Skip to content

Instantly share code, notes, and snippets.

@QEDK
Last active August 10, 2021 13:37
Show Gist options
  • Save QEDK/13c5673a461523f81554e4651e6af2d3 to your computer and use it in GitHub Desktop.
Save QEDK/13c5673a461523f81554e4651e6af2d3 to your computer and use it in GitHub Desktop.
DecodeStateSynced.js
const ethers = require('ethers')
const abiCoder = new ethers.utils.AbiCoder()
// DEPOSIT
let data = '0x000000000000000000000000BFDEFCD92335B22B205BB5B63B9EC909D6E99C16000000000000000000000000D0DDBAB3BD60E591C300B2E365D732D9CE76D3FD0000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000014087A7811F4BFEDEA3D341AD165680AE306B01AAEACC205D227629CF157DD9F821000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000E00000000000000000000000002E274FBE47C0CB873F327362B8959021830DC886000000000000000000000000920E938A80FA1669B608166741EEB01DE6C57402000000000000000000000000920E938A80FA1669B608166741EEB01DE6C5740200000000000000000000000000000000000000000000000AD78EBC5AC620000000000000000000000000000000000000000000000000000000000000000000A000000000000000000000000000000000000000000000000000000000000000031234560000000000000000000000000000000000000000000000000000000000'
let stateSyncData = abiCoder.decode(['address', 'address', 'bytes'], data)
let outerEventData = abiCoder.decode(['bytes32', 'bytes'], stateSyncData[2])
console.log(abiCoder.decode(['address', 'address', 'address', 'uint256', 'bytes'], outerEventData[1]))
// MAP_TOKEN
data = '0x000000000000000000000000BFDEFCD92335B22B205BB5B63B9EC909D6E99C16000000000000000000000000D0DDBAB3BD60E591C300B2E365D732D9CE76D3FD000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000001602CEF46A936BDC5B7E6E8C71AA04560C41CF7D88BB26901A7E7F4936FF02ACCAD000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001000000000000000000000000007E90539BAC033A1DA6F532B6D62BC6B28F1A7F36000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000C000000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000006414552433230000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064145524332300000000000000000000000000000000000000000000000000000'
stateSyncData = abiCoder.decode(['address', 'address', 'bytes'], data)
outerEventData = abiCoder.decode(['bytes32', 'bytes'], stateSyncData[2])
console.log(abiCoder.decode(['address', 'string', 'string', 'uint8'], outerEventData[1]))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment