Contract Details
Overview
COOK BALANCE
Loading…TOKEN NAME
EVM ContractTOTAL SUPPLY
Not availableMore Info
CONTRACT ADDRESS
0x5b7b146395e0d04b76d3d14952890b0e5eb0abd4CONTRACT CREATOR
0xdf6e7e94ed8c6fe335c28a8ec50381e9172f7d30Creation transaction
TOKEN TRACKER
Checking ERC-20 metadata…Contract Info
SOURCE CODE
✓ Verified
TOKEN DECIMALS
Not availableMarket and multichain values require verified data feeds.
Latest Contract Transactions
Loading indexed transactions…
| Transaction Hash | Action | Block | Age | From | To | Amount | Txn Fee |
|---|
Token Transfers
ERC-20 Transfer events from the latest indexed transactions involving this contract.
Loading receipt events…
Contract Events
Event logs emitted by this contract in the latest indexed contract transactions.
Loading receipt events…
Internal Transactions
Execution traces are not currently indexed. Internal calls cannot be reconstructed from receipts alone.
Token & Contract Information
- Network
- Cookchain · Chain ID 20261001
- Contract
- 0x5b7b146395e0d04b76d3d14952890b0e5eb0abd4
- Verification
- Verified
Token metadata is read from the contract. Market valuations and multichain holdings are not currently indexed.
Verified Solidity Source
Compiler: 0.8.30+commit.73712a01.Emscripten.clang · Contract: contracts/AutomaticTokenRoutesV2Fresh.sol:AutomaticTokenRoutesV2Fresh · Creation bytecode: matched
contracts/AutomaticTokenRoutesV2Fresh.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.30;
interface IAutoToken { function decimals() external view returns(uint8); function name() external view returns(string memory); function symbol() external view returns(string memory); }
interface IAutoCollateral {function initialize(address,address,address) external; function enrollRemoteRouter(uint32,bytes32) external;}
interface IAutoSynthetic {function initialize(uint256,string calldata,string calldata,address,address,address) external;}
interface ILegacyRoutes { function routers(bytes32) external view returns(address); function administrator() external view returns(address); }
contract AutomaticTokenRoutesV2Fresh {
struct Plan {uint32 origin; address asset; uint8 decimals; string name; string symbol; address localRouter; address remoteRouter;}
address public immutable administrator;
ILegacyRoutes public immutable legacyFactory;
uint32 public immutable remoteDomain;
address public immutable mailbox;
address public immutable hook;
address public immutable ism;
bytes32 public immutable collateralHash;
bytes32 public immutable syntheticHash;
address[4] public signers;
address public peer;
mapping(bytes32=>address) public routers;
mapping(bytes32=>bytes32) public approvedPlans;
event FactoryCreated(address indexed administrator);
event RouteRequested(uint32 indexed origin,address indexed asset,address requester);
event PeerConfigured(address peer);
event AutomaticRouteCreated(uint32 indexed origin,address indexed asset,address router,address remoteRouter,uint8 decimals,bytes32 digest);
constructor(address admin,uint32 remote,address m,address h,address i,bytes32 collateral,bytes32 synthetic,address[4] memory validators,address legacy) {
require(block.chainid<=type(uint32).max&&remote!=block.chainid&&remote!=0,"domain");
require(admin!=address(0)&&m.code.length>0&&h.code.length>0&&i.code.length>0,"core");
for(uint256 j;j<4;j++){require(validators[j]!=address(0),"signer");for(uint256 k;k<j;k++)require(validators[j]!=validators[k],"duplicate signer");}
require(legacy==address(0)||(legacy.code.length>0 && ILegacyRoutes(legacy).administrator()==admin),"legacy factory");legacyFactory=ILegacyRoutes(legacy);administrator=admin;remoteDomain=remote;mailbox=m;hook=h;ism=i;collateralHash=collateral;syntheticHash=synthetic;signers=validators;emit FactoryCreated(admin);
}
function configurePeer(address remoteFactory) external {require(msg.sender==administrator&&peer==address(0)&&remoteFactory!=address(0),"peer locked");peer=remoteFactory;emit PeerConfigured(remoteFactory);}
function requestRoute(address asset) external {require(peer!=address(0)&&asset.code.length>0,"not ready");require(routers[key(uint32(block.chainid),asset)]==address(0)&&legacyRouter(key(uint32(block.chainid),asset))==address(0),"route exists");IAutoToken t=IAutoToken(asset);require(t.decimals()<=18&&bytes(t.name()).length>0&&bytes(t.name()).length<=60&&bytes(t.symbol()).length>0&&bytes(t.symbol()).length<=24,"metadata");emit RouteRequested(uint32(block.chainid),asset,msg.sender);}
function legacyRouter(bytes32 k) private view returns(address){return address(legacyFactory)==address(0)?address(0):legacyFactory.routers(k);}
function bridgedName(string memory original,uint32 origin) public pure returns(string memory) {
string memory label;
if(origin==137)label="Polygon";else if(origin==143)label="Monad";else if(origin==43114)label="Avalanche";else if(origin==59144)label="Linea";else if(origin==146)label="Sonic";else if(origin==250)label="Fantom";else if(origin==42161)label="Arbitrum";else if(origin==56)label="BSC";else if(origin==8453)label="Base";else if(origin==4663)label="Robinhood";else if(origin==5042)label="Arc";else if(origin==20261001)label="Cookchain";
else {uint32 value=origin;bytes memory digits=new bytes(10);uint256 count;do{digits[count++]=bytes1(uint8(48+value%10));value/=10;}while(value>0);bytes memory result=new bytes(count);for(uint256 i;i<count;i++)result[i]=digits[count-1-i];label=string(result);}
return string.concat(original," (Bridged from ",label,")");
}
function key(uint32 origin,address asset) public pure returns(bytes32){return keccak256(abi.encode(origin,asset));}
function predict(uint32 origin,address asset,uint8 decimals,bytes calldata code) public view returns(address){bool original=origin==block.chainid;require(keccak256(code)==(original?collateralHash:syntheticHash),"code");bytes memory init=original?bytes.concat(code,abi.encode(asset,uint256(1),uint256(1),mailbox)):bytes.concat(code,abi.encode(decimals,uint256(1),uint256(1),mailbox));return address(uint160(uint256(keccak256(abi.encodePacked(bytes1(0xff),address(this),key(origin,asset),keccak256(init))))));}
function digest(Plan calldata p) public view returns(bytes32){require(peer!=address(0),"peer missing");bool first=block.chainid<remoteDomain;return keccak256(abi.encode("COOKCHAIN_AUTOROUTE_V2",first?uint32(block.chainid):remoteDomain,first?remoteDomain:uint32(block.chainid),first?address(this):peer,first?peer:address(this),p.origin,p.asset,p.decimals,p.name,p.symbol,first?p.localRouter:p.remoteRouter,first?p.remoteRouter:p.localRouter));}
function authorize(bytes32 hash,bytes[] calldata signatures) private view {require(signatures.length==3,"three signatures");bytes32 signed=keccak256(abi.encodePacked("\x19Ethereum Signed Message:\n32",hash));address previous;
for(uint256 j;j<3;j++){bytes calldata sig=signatures[j];require(sig.length==65,"signature length");bytes32 r;bytes32 s;uint8 v;assembly("memory-safe"){r:=calldataload(sig.offset) s:=calldataload(add(sig.offset,32)) v:=byte(0,calldataload(add(sig.offset,64)))}require(uint256(s)<=0x7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0&&(v==27||v==28),"signature encoding");address signer=ecrecover(signed,v,r,s);require(signer>previous,"signature order");bool enrolled;for(uint256 k;k<4;k++)if(signers[k]==signer)enrolled=true;require(enrolled,"unknown signer");previous=signer;}
}
function deployRoute(Plan calldata p,bytes[] calldata signatures,bytes calldata code) external returns(address router){require(p.origin==block.chainid||p.origin==remoteDomain,"origin");require(p.asset!=address(0)&&p.decimals<=18&&p.remoteRouter!=address(0),"plan");require(bytes(p.name).length>0&&bytes(p.name).length<=60&&bytes(p.symbol).length>0&&bytes(p.symbol).length<=24,"metadata");bytes32 hash=digest(p);authorize(hash,signatures);bytes32 salt=key(p.origin,p.asset);require(routers[salt]==address(0)&&legacyRouter(salt)==address(0),"route exists");require(p.localRouter==predict(p.origin,p.asset,p.decimals,code),"prediction");bool original=p.origin==block.chainid;if(original){require(p.asset.code.length>0,"asset");IAutoToken t=IAutoToken(p.asset);require(t.decimals()==p.decimals&&keccak256(bytes(t.name()))==keccak256(bytes(p.name))&&keccak256(bytes(t.symbol()))==keccak256(bytes(p.symbol)),"original metadata");}
bytes memory init=original?bytes.concat(code,abi.encode(p.asset,uint256(1),uint256(1),mailbox)):bytes.concat(code,abi.encode(p.decimals,uint256(1),uint256(1),mailbox));assembly("memory-safe"){router:=create2(0,add(init,32),mload(init),salt)}require(router==p.localRouter,"creation");routers[salt]=router;approvedPlans[salt]=hash;
if(original)IAutoCollateral(router).initialize(hook,ism,address(this));else IAutoSynthetic(router).initialize(0,bridgedName(p.name,p.origin),p.symbol,hook,ism,address(this));
IAutoCollateral(router).enrollRemoteRouter(remoteDomain,bytes32(uint256(uint160(p.remoteRouter))));emit AutomaticRouteCreated(p.origin,p.asset,router,p.remoteRouter,p.decimals,hash);
}
}
contracts/AtomicBridgeCoreDeploymentV2.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.30;
interface ICoreMailbox {function initialize(address,address,address,address) external;}
interface ICoreSetFactory {function deploy(address[] calldata,uint8) external returns(address);}
/// Hash-pinned, atomic infrastructure deployment without issuing a token.
contract AtomicBridgeCoreDeploymentV2 {
address public immutable administrator;
uint32 public immutable remoteDomain;
bytes32[6] public codeHashes;
bytes32 public immutable factoryHash;
bytes32 public immutable collateralHash;
bytes32 public immutable syntheticHash;
address public factory;
bool private deployed;
event CoreCreated(uint32 indexed domain,address mailbox,address merkleTreeHook,address pause,address ism,address factory);
constructor(address admin,uint32 remote,bytes32[6] memory hashes,bytes32 autoHash,bytes32 collateral,bytes32 synthetic){
require(admin!=address(0)&&remote!=0&&remote!=block.chainid&&block.chainid<=type(uint32).max,"configuration");
administrator=admin;remoteDomain=remote;codeHashes=hashes;factoryHash=autoHash;collateralHash=collateral;syntheticHash=synthetic;
}
function create(bytes memory code) private returns(address result){assembly("memory-safe"){result:=create(0,add(code,32),mload(code))}require(result!=address(0),"creation failed");}
function deploy(bytes[6] calldata codes,bytes calldata automaticCode,address[4] calldata validators) external {
require(msg.sender==administrator&&!deployed,"administrator or already deployed");
for(uint256 j;j<6;j++)require(keccak256(codes[j])==codeHashes[j],"core code");
require(keccak256(automaticCode)==factoryHash,"factory code");
address[] memory members=new address[](4);
for(uint256 j;j<4;j++){require(validators[j]!=address(0)&&(j==0||validators[j]>validators[j-1]),"sorted distinct signers");members[j]=validators[j];}
deployed=true;
uint32 domain=uint32(block.chainid);
address mailbox=create(bytes.concat(codes[0],abi.encode(domain)));
address hook=create(bytes.concat(codes[1],abi.encode(mailbox)));
address fee=create(bytes.concat(codes[2],abi.encode(uint256(0),uint256(0),administrator,administrator)));
address pause=create(bytes.concat(codes[3],abi.encode(administrator)));
address multisigFactory=create(codes[4]);address aggregationFactory=create(codes[5]);
address multisig=ICoreSetFactory(multisigFactory).deploy(members,3);
address[] memory modules=new address[](2);modules[0]=multisig;modules[1]=pause;
address ism=ICoreSetFactory(aggregationFactory).deploy(modules,2);
ICoreMailbox(mailbox).initialize(administrator,ism,hook,fee);
factory=create(bytes.concat(automaticCode,abi.encode(administrator,remoteDomain,mailbox,hook,ism,collateralHash,syntheticHash,validators,address(0))));
emit CoreCreated(domain,mailbox,hook,pause,ism,factory);
}
}
contracts/TokenRouteDeployment.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.30;
interface IRouteMetadata {function decimals() external view returns(uint8);}
interface IRouteCollateral {function initialize(address,address,address) external;}
interface IRouteSynthetic {function initialize(uint256,string calldata,string calldata,address,address,address) external;}
contract TokenRouteDeployment {
address public immutable owner;
bytes32 public immutable collateralHash;
bytes32 public immutable syntheticHash;
mapping(bytes32=>address) public routers;
event RouteCreated(uint32 indexed origin,address indexed asset,address router,uint8 decimals);
constructor(address admin,bytes32 collateral,bytes32 synthetic){require(admin!=address(0),"zero owner");owner=admin;collateralHash=collateral;syntheticHash=synthetic;}
function create(bytes memory code) private returns(address a){assembly("memory-safe"){a:=create(0,add(code,32),mload(code))}require(a!=address(0),"creation failed");}
function deploy(uint32 origin,address asset,uint8 decimals,string calldata name,string calldata symbol,address mailbox,address hook,address ism,bytes calldata code) external returns(address router){
require(msg.sender==owner,"owner only");require(asset!=address(0),"zero asset");require(decimals<=18,"unsupported decimals");require(mailbox.code.length>0&&hook.code.length>0&&ism.code.length>0,"missing core");bytes32 key=keccak256(abi.encode(origin,asset));require(routers[key]==address(0),"route exists");
if(block.chainid==origin){require(keccak256(code)==collateralHash,"unexpected code");require(asset.code.length>0&&IRouteMetadata(asset).decimals()==decimals,"wrong token");router=create(bytes.concat(code,abi.encode(asset,uint256(1),uint256(1),mailbox)));IRouteCollateral(router).initialize(hook,ism,owner);}
else{require(keccak256(code)==syntheticHash,"unexpected code");require(bytes(name).length>0&&bytes(name).length<=96&&bytes(symbol).length>0&&bytes(symbol).length<=24,"invalid metadata");router=create(bytes.concat(code,abi.encode(decimals,uint256(1),uint256(1),mailbox)));IRouteSynthetic(router).initialize(0,name,symbol,hook,ism,owner);}
routers[key]=router;emit RouteCreated(origin,asset,router,decimals);
}
}
Contract ABI
[
{
"inputs": [
{
"internalType": "address",
"name": "admin",
"type": "address"
},
{
"internalType": "uint32",
"name": "remote",
"type": "uint32"
},
{
"internalType": "address",
"name": "m",
"type": "address"
},
{
"internalType": "address",
"name": "h",
"type": "address"
},
{
"internalType": "address",
"name": "i",
"type": "address"
},
{
"internalType": "bytes32",
"name": "collateral",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "synthetic",
"type": "bytes32"
},
{
"internalType": "address[4]",
"name": "validators",
"type": "address[4]"
},
{
"internalType": "address",
"name": "legacy",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint32",
"name": "origin",
"type": "uint32"
},
{
"indexed": true,
"internalType": "address",
"name": "asset",
"type": "address"
},
{
"indexed": false,
"internalType": "address",
"name": "router",
"type": "address"
},
{
"indexed": false,
"internalType": "address",
"name": "remoteRouter",
"type": "address"
},
{
"indexed": false,
"internalType": "uint8",
"name": "decimals",
"type": "uint8"
},
{
"indexed": false,
"internalType": "bytes32",
"name": "digest",
"type": "bytes32"
}
],
"name": "AutomaticRouteCreated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "administrator",
"type": "address"
}
],
"name": "FactoryCreated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "peer",
"type": "address"
}
],
"name": "PeerConfigured",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint32",
"name": "origin",
"type": "uint32"
},
{
"indexed": true,
"internalType": "address",
"name": "asset",
"type": "address"
},
{
"indexed": false,
"internalType": "address",
"name": "requester",
"type": "address"
}
],
"name": "RouteRequested",
"type": "event"
},
{
"inputs": [],
"name": "administrator",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"name": "approvedPlans",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "original",
"type": "string"
},
{
"internalType": "uint32",
"name": "origin",
"type": "uint32"
}
],
"name": "bridgedName",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [],
"name": "collateralHash",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "remoteFactory",
"type": "address"
}
],
"name": "configurePeer",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"components": [
{
"internalType": "uint32",
"name": "origin",
"type": "uint32"
},
{
"internalType": "address",
"name": "asset",
"type": "address"
},
{
"internalType": "uint8",
"name": "decimals",
"type": "uint8"
},
{
"internalType": "string",
"name": "name",
"type": "string"
},
{
"internalType": "string",
"name": "symbol",
"type": "string"
},
{
"internalType": "address",
"name": "localRouter",
"type": "address"
},
{
"internalType": "address",
"name": "remoteRouter",
"type": "address"
}
],
"internalType": "struct AutomaticTokenRoutesV2Fresh.Plan",
"name": "p",
"type": "tuple"
},
{
"internalType": "bytes[]",
"name": "signatures",
"type": "bytes[]"
},
{
"internalType": "bytes",
"name": "code",
"type": "bytes"
}
],
"name": "deployRoute",
"outputs": [
{
"internalType": "address",
"name": "router",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"components": [
{
"internalType": "uint32",
"name": "origin",
"type": "uint32"
},
{
"internalType": "address",
"name": "asset",
"type": "address"
},
{
"internalType": "uint8",
"name": "decimals",
"type": "uint8"
},
{
"internalType": "string",
"name": "name",
"type": "string"
},
{
"internalType": "string",
"name": "symbol",
"type": "string"
},
{
"internalType": "address",
"name": "localRouter",
"type": "address"
},
{
"internalType": "address",
"name": "remoteRouter",
"type": "address"
}
],
"internalType": "struct AutomaticTokenRoutesV2Fresh.Plan",
"name": "p",
"type": "tuple"
}
],
"name": "digest",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "hook",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "ism",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint32",
"name": "origin",
"type": "uint32"
},
{
"internalType": "address",
"name": "asset",
"type": "address"
}
],
"name": "key",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [],
"name": "legacyFactory",
"outputs": [
{
"internalType": "contract ILegacyRoutes",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "mailbox",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "peer",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint32",
"name": "origin",
"type": "uint32"
},
{
"internalType": "address",
"name": "asset",
"type": "address"
},
{
"internalType": "uint8",
"name": "decimals",
"type": "uint8"
},
{
"internalType": "bytes",
"name": "code",
"type": "bytes"
}
],
"name": "predict",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "remoteDomain",
"outputs": [
{
"internalType": "uint32",
"name": "",
"type": "uint32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "asset",
"type": "address"
}
],
"name": "requestRoute",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"name": "routers",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "signers",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "syntheticHash",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
}
]Raw Contract Data · JSON
{
"id": "0x5b7b146395e0d04b76d3d14952890b0e5eb0abd4",
"contract": "0x5b7b146395e0d04b76d3d14952890b0e5eb0abd4",
"name": "EVM Contract",
"type": "contract",
"bytecode": "0x608080604052600436101561001357600080fd5b600090813560e01c90816311cda415146114db575080632079fb9a146114a65780632da5347b146114615780634178bb3b146114265780634deefab2146113e157806375be792e1461136e5780637c539e8a146113475780637f5a7c7b14611302578063856f495a14611289578063961681dc1461124857806397b2766a1461121e578063aa1fce69146111eb578063c30aaad2146111b0578063ce56e02c14610f09578063d0ba559e146102c3578063d5438eae1461027e578063e0d1393614610235578063f53d0a8e146101f05763f8236ad9146100f257600080fd5b346101ed5760203660031901126101ed5761010b61152e565b337f000000000000000000000000df6e7e94ed8c6fe335c28a8ec50381e9172f7d306001600160a01b031614806101da575b806101c8575b1561019557600480546001600160a01b0319166001600160a01b0390921691821790556040519081527f0f46ae31117307bd9a5f7d575b168cb5643647cc77c8bd2b3727eb3cfce4350490602090a180f35b60405162461bcd60e51b815260206004820152600b60248201526a1c19595c881b1bd8dad95960aa1b6044820152606490fd5b506001600160a01b0381161515610143565b506004546001600160a01b03161561013d565b80fd5b50346101ed57806003193601126101ed576040517f000000000000000000000000df6e7e94ed8c6fe335c28a8ec50381e9172f7d306001600160a01b03168152602090f35b50346101ed5760203660031901126101ed576004359067ffffffffffffffff82116101ed5760e060031983360301126101ed57602061027683600401611e7d565b604051908152f35b50346101ed57806003193601126101ed576040517f0000000000000000000000008ecd10fd6d7822ef16418689f92e5e1d5f144bd96001600160a01b03168152602090f35b50346101ed5760603660031901126101ed5760043567ffffffffffffffff811161077e578060040160e060031983360301126108b2576024359067ffffffffffffffff8211610f055736602383011215610f055781600401359167ffffffffffffffff8311610f01573660248460051b83010111610f015760443567ffffffffffffffff8111610efd5761035b903690600401611544565b92909461036782611df6565b63ffffffff1646148015610ec3575b15610e955760248101946001600160a01b0361039187611e07565b16151580610e7c575b80610e5f575b15610e345760648201906103b48285611e29565b9050151580610e1e575b80610e07575b80610de9575b6103d390611dbf565b6103dc84611e7d565b9460038203610db15760405160208101907f19457468657265756d205369676e6564204d6573736167653a0a333200000000825287603c820152603c8152610425605c82611572565b519020908a908b905b60038210610b9e57505050505061045661044784611df6565b61045088611e07565b9061183c565b808952600560205260408920549097906001600160a01b03161580610b80575b61047f90611d0c565b60a483019761048d89611e07565b9661049786611df6565b976104a18a611e07565b60448701996001600160a01b03916104c79185918891906104c18f611e1b565b91611683565b166001600160a01b0390911603610b4e5781904663ffffffff6104e989611df6565b16149384610954575b8a85156108e657916105649161057261050d61057795611e07565b604080516001600160a01b039283166020820152600191810182905260608101919091527f0000000000000000000000008ecd10fd6d7822ef16418689f92e5e1d5f144bd9909116608082015293849060a0820190565b03601f198101855284611572565b611645565b6020815191018cf5986001600160a01b039061059290611e07565b6001600160a01b03909a16991689036108b657808a52600560205260408a20896bffffffffffffffffffffffff60a01b825416179055895260066020528460408a205560001461079b5750853b156107975760405163c0c53b8b60e01b81526001600160a01b037f000000000000000000000000cd1beec4de141b70ed9974eb132d7053068f5427811660048301527f000000000000000000000000d6cedeedf59d18ea88b30dbbbc6ffe242928420a16602482015230604482015287908181606481838c5af1801561077357610782575b505060c4905b01956001600160a01b0361067d88611e07565b16863b1561077e576040519063b49c53a760e01b825263ffffffff7f0000000000000000000000000000000000000000000000000000000000013e3116600483015260248201528181604481838b5af180156107735761075e575b505063ffffffff6020967fa7865770248a6aa782bcfe84bcd16eab98d3ef61bc3ab17504733491a94376da9360ff61072c61072661072061071a608098611df6565b9a611e07565b94611e07565b97611e1b565b604051978a895260018060a01b03168b890152166040870152606086015260018060a01b0316941692a3604051908152f35b610769828092611572565b6101ed57806106d8565b6040513d84823e3d90fd5b5080fd5b8161078c91611572565b610797578638610664565b8680fd5b6107be6107ab6107c39285611e29565b91906107b686611df6565b9236916115c6565b611898565b876107d16084840185611e29565b92893b156108b25761081b61080992604051958694859463e80a7c7960e01b865287600487015260c0602487015260c4860190611620565b84810360031901604486015291611e5c565b6001600160a01b037f000000000000000000000000cd1beec4de141b70ed9974eb132d7053068f5427811660648401527f000000000000000000000000d6cedeedf59d18ea88b30dbbbc6ffe242928420a1660848301523060a48301520381838b5af180156108a757610892575b5060c49061066a565b966108a08160c49399611572565b9690610889565b6040513d8a823e3d90fd5b8280fd5b60405162461bcd60e51b815260206004820152600860248201526731b932b0ba34b7b760c11b6044820152606490fd5b5061094f91610564916105726108fb8d611e1b565b6040805160ff9092166020830152600190820181905260608201526001600160a01b037f0000000000000000000000008ecd10fd6d7822ef16418689f92e5e1d5f144bd916608082015293849060a0820190565b610577565b915061095f8a611e07565b3b15610b21576001600160a01b036109768b611e07565b168c60405163313ce56760e01b8152602081600481865afa908115610773578c908392610ae7575b5060ff6109ab8192611e1b565b169116149182610a84575b82610a03575b5050156109ca5782916104f2565b60405162461bcd60e51b81526020600482015260116024820152706f726967696e616c206d6574616461746160781b6044820152606490fd5b6040516395d89b4160e01b81529250829060049082905afa908115610a79578d91610a57575b5060208151910120610a48610a41608489018a611e29565b36916115c6565b60208151910120148c386109bc565b610a7391503d808f833e610a6b8183611572565b810190611d60565b38610a29565b6040513d8f823e3d90fd5b6040516306fdde0360e01b81529092508181600481865afa908115610773578291610acd575b5060208151910120610abf610a41898c611e29565b6020815191012014916109b6565b610ae191503d8084833e610a6b8183611572565b38610aaa565b60ff9192506109ab610b11839260203d602011610b1a575b610b098183611572565b810190611d47565b9392505061099e565b503d610aff565b60405162461bcd60e51b8152602060048201526005602482015264185cdcd95d60da1b6044820152606490fd5b60405162461bcd60e51b815260206004820152600a602482015269383932b234b1ba34b7b760b11b6044820152606490fd5b5061047f6001600160a01b03610b958a6120ab565b16159050610476565b96919994848299949c97929d9a959d1015610d9d576041610bca60248b60051b8b010160248b01611e29565b91909103610d6557602081013560408201358c1a7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a082111580610d51575b15610d17578e8d9260209460809360405193845286840152356040830152606082015282805260015afa15610d0c5789519c6001600160a01b03808f169c168c1115610cd5578a9c8b5b6004811015610c7e5780546001600160a01b03168e14610c75575b600101610c52565b60019e50610c6d565b50939892979c90959a9d91969b5098939815610c9f5791926001019061042e565b60405162461bcd60e51b815260206004820152600e60248201526d3ab735b737bbb71039b4b3b732b960911b6044820152606490fd5b60405162461bcd60e51b815260206004820152600f60248201526e39b4b3b730ba3ab9329037b93232b960891b6044820152606490fd5b6040513d8b823e3d90fd5b60405162461bcd60e51b81526020600482015260126024820152717369676e617475726520656e636f64696e6760701b6044820152606490fd5b50601b811480610c085750601c8114610c08565b60405162461bcd60e51b815260206004820152601060248201526f0e6d2cedcc2e8eae4ca40d8cadccee8d60831b6044820152606490fd5b634e487b7160e01b8a52603260045260248afd5b60405162461bcd60e51b815260206004820152601060248201526f7468726565207369676e61747572657360801b6044820152606490fd5b506103d36018610dfc6084860187611e29565b9050111590506103ca565b50610e156084840185611e29565b905015156103c4565b50603c610e2b8386611e29565b905011156103be565b606460405162461bcd60e51b8152602060048201526004602482015263383630b760e11b6044820152fd5b506001600160a01b03610e7460c48401611e07565b1615156103a0565b50601260ff610e8d60448501611e1b565b16111561039a565b60405162461bcd60e51b815260206004820152600660248201526537b934b3b4b760d11b6044820152606490fd5b50610ecd82611df6565b63ffffffff807f0000000000000000000000000000000000000000000000000000000000013e3116911614610376565b8580fd5b8480fd5b8380fd5b50346101ed5760203660031901126101ed57610f2361152e565b6004546001600160a01b03161515806111a6575b156111755763ffffffff461690610f4e818361183c565b8352600560205260408320546001600160a01b0316158061114e575b610f7390611d0c565b60405163313ce56760e01b81526001600160a01b03919091169190602081600481865afa90811561104d5760129160ff91869161112f575b50161115806110e8575b8061109f575b80611058575b80610ffd575b610fd090611dbf565b7fb3766c4ef7117f654e54fdfc96ff05c608c0a7bb21257050309334cb0798052c6020604051338152a380f35b506040516395d89b4160e01b81528381600481865afa90811561104d57610fd0916018918691611033575b505111159050610fc7565b61104791503d8088833e610a6b8183611572565b38611028565b6040513d86823e3d90fd5b506040516395d89b4160e01b81528381600481865afa90811561104d578491611085575b50511515610fc1565b61109991503d8086833e610a6b8183611572565b3861107c565b506040516306fdde0360e01b81528381600481865afa801561104d57603c9185916110ce575b50511115610fbb565b6110e291503d8087833e610a6b8183611572565b386110c5565b506040516306fdde0360e01b81528381600481865afa90811561104d578491611115575b50511515610fb5565b61112991503d8086833e610a6b8183611572565b3861110c565b611148915060203d602011610b1a57610b098183611572565b38610fab565b50610f736001600160a01b0361116c611167848661183c565b6120ab565b16159050610f6a565b60405162461bcd60e51b81526020600482015260096024820152686e6f7420726561647960b81b6044820152606490fd5b50803b1515610f37565b50346101ed57806003193601126101ed5760206040517fa958f9628dcbf52a103e4399714805811ed312515684ec4b1031599dd31071098152f35b50346101ed5760203660031901126101ed57602090600435815260058252604060018060a01b0391205416604051908152f35b50346101ed5760203660031901126101ed5760406020916004358152600683522054604051908152f35b50346101ed57806003193601126101ed57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000013e31168152f35b50346101ed5760403660031901126101ed5760043567ffffffffffffffff811161077e573660238201121561077e576112cc9036906024816004013591016115c6565b6024359163ffffffff831683036101ed576112fe6112ea8484611898565b604051918291602083526020830190611620565b0390f35b50346101ed57806003193601126101ed576040517f000000000000000000000000cd1beec4de141b70ed9974eb132d7053068f54276001600160a01b03168152602090f35b50346101ed5760403660031901126101ed576020610276611366611500565b610450611518565b50346101ed5760803660031901126101ed57611388611500565b611390611518565b916044359060ff821682036101ed576064359067ffffffffffffffff82116101ed5760206113cf8686866113c73660048901611544565b939092611683565b6040516001600160a01b039091168152f35b50346101ed57806003193601126101ed576040517f000000000000000000000000d6cedeedf59d18ea88b30dbbbc6ffe242928420a6001600160a01b03168152602090f35b50346101ed57806003193601126101ed5760206040517f80caa35bee32d9ad74dd17a5aa09bda24847b145200798eba26219e4133234288152f35b50346101ed57806003193601126101ed576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b50346101ed5760203660031901126101ed57600435600481101561077e57546040516001600160a01b03909116815260209150f35b90503461077e578160031936011261077e576004546001600160a01b03168152602090f35b6004359063ffffffff8216820361151357565b600080fd5b602435906001600160a01b038216820361151357565b600435906001600160a01b038216820361151357565b9181601f840112156115135782359167ffffffffffffffff8311611513576020838186019501011161151357565b90601f8019910116810190811067ffffffffffffffff82111761159457604052565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff811161159457601f01601f191660200190565b9291926115d2826115aa565b916115e06040519384611572565b829481845281830111611513578281602093846000960137010152565b60005b8381106116105750506000910152565b8181015183820152602001611600565b90602091611639815180928185528580860191016115fd565b601f01601f1916010190565b6020806116819395946116718760405198899685880137850191838301600081528151948592016115fd565b010103601f198101845283611572565b565b93929190914663ffffffff8616149361169d3682846115c6565b6020815191012085600014611815577f80caa35bee32d9ad74dd17a5aa09bda24847b145200798eba26219e413323428905b036117ea57611743941561178e57604080516001600160a01b038681166020830152600192820183905260608201929092527f0000000000000000000000008ecd10fd6d7822ef16418689f92e5e1d5f144bd9909116608082015261173d9350916105728360a08101610564565b9261183c565b90602081519101209060405191602083019160ff60f81b83523060601b6021850152603584015260558301526055825261177e607583611572565b905190206001600160a01b031690565b6040805160ff9094166020850152600190840181905260608401526001600160a01b037f0000000000000000000000008ecd10fd6d7822ef16418689f92e5e1d5f144bd916608084015261173d92916105728360a08101610564565b606460405162461bcd60e51b8152602060048201526004602482015263636f646560e01b6044820152fd5b7fa958f9628dcbf52a103e4399714805811ed312515684ec4b1031599dd3107109906116cf565b6040805163ffffffff909216602083019081526001600160a01b0390931682820152815261186b606082611572565b51902090565b908151811015611882570160200190565b634e487b7160e01b600052603260045260246000fd5b9060009063ffffffff81166089810361193d5750505061193a6001600f6040516118c3604082611572565b60078152662837b63cb3b7b760c91b6020820152935b602060405195826118f388945180928580880191016115fd565b83016e01014213934b233b2b210333937b69608d1b8382015261191f8251809385602f850191016115fd565b0101602960f81b838201520301601e19810184520182611572565b90565b608f81036119755750505061193a6001600f60405161195d604082611572565b6005815264135bdb985960da1b6020820152936118d9565b61a86a81036119b25750505061193a6001600f604051611996604082611572565b60098152684176616c616e63686560b81b6020820152936118d9565b61e70881036119eb5750505061193a6001600f6040516119d3604082611572565b60058152644c696e656160d81b6020820152936118d9565b60928103611a235750505061193a6001600f604051611a0b604082611572565b6005815264536f6e696360d81b6020820152936118d9565b60fa8103611a5c5750505061193a6001600f604051611a43604082611572565b600681526546616e746f6d60d01b6020820152936118d9565b61a4b18103611a985750505061193a6001600f604051611a7d604082611572565b6008815267417262697472756d60c01b6020820152936118d9565b60388103611ace5750505061193a6001600f604051611ab8604082611572565b600381526242534360e81b6020820152936118d9565b6121058103611b065750505061193a6001600f604051611aef604082611572565b60048152634261736560e01b6020820152936118d9565b6112378103611b435750505061193a6001600f604051611b27604082611572565b6009815268149bd89a5b9a1bdbd960ba1b6020820152936118d9565b6113b28103611b7a5750505061193a6001600f604051611b64604082611572565b600381526241726360e81b6020820152936118d9565b630135288903611bb757505061193a6001600f604051611b9b604082611572565b600981526821b7b7b5b1b430b4b760b91b6020820152936118d9565b92909260405191611bc9604084611572565b600a835260203681850137849360015b15611c59575b63ffffffff86931663ffffffff600a8206166030019563ffffffff8711611c4557806000198114611c315790611c296001600a9493019860ff60f81b9060f81b168a1a9188611871565b530492611bd9565b634e487b7160e01b89526011600452602489fd5b634e487b7160e01b88526011600452602488fd5b63ffffffff8316611bdf579390949150611c72816115aa565b92611c806040519485611572565b818452601f19611c8f836115aa565b01366020860137825b828110611cb157505050506001600f61193a92936118d9565b6000198301838111611cf85781840360001901908111611cf857600191906001600160f81b031990611ce39085611871565b5116851a611cf18288611871565b5301611c98565b634e487b7160e01b85526011600452602485fd5b15611d1357565b60405162461bcd60e51b815260206004820152600c60248201526b726f7574652065786973747360a01b6044820152606490fd5b90816020910312611513575160ff811681036115135790565b6020818303126115135780519067ffffffffffffffff8211611513570181601f82011215611513578051611d93816115aa565b92611da16040519485611572565b818452602082840101116115135761193a91602080850191016115fd565b15611dc657565b60405162461bcd60e51b81526020600482015260086024820152676d6574616461746160c01b6044820152606490fd5b3563ffffffff811681036115135790565b356001600160a01b03811681036115135790565b3560ff811681036115135790565b903590601e1981360301821215611513570180359067ffffffffffffffff82116115135760200191813603831361151357565b908060209392818452848401376000828201840152601f01601f1916010190565b6004546001600160a01b03168015612077577f0000000000000000000000000000000000000000000000000000000000013e319063ffffffff821646109081156120715763ffffffff4616925b821561206357935b821561205d5730915b8315612056575b611eeb82611df6565b611ef760208401611e07565b611f0360408501611e1b565b611f106060860186611e29565b929093611f206080880188611e29565b9690978a60001461204457611f3760a08201611e07565b9a5b156120325760c0611f4a9101611e07565b985b60408051610180602082015260166101a08201527521a7a7a5a1a420a4a72fa0aaaa27a927aaaa22afab1960511b6101c08083019190915263ffffffff9e8f16928201929092529d8d1660608f01526001600160a01b0391821660808f015291811660a08e015291909a1660c08c01521660e08a015260ff166101008901526101208801969096528695611fe6916101e088019190611e5c565b90601f1986830301610140870152611ffd92611e5c565b6001600160a01b03928316610160850152911661018083015203601f19810182526120289082611572565b8051906020012090565b60a061203e9101611e07565b98611f4c565b61205060c08201611e07565b9a611f39565b5030611ee2565b81611edb565b5063ffffffff461693611ed2565b82611eca565b60405162461bcd60e51b815260206004820152600c60248201526b70656572206d697373696e6760a01b6044820152606490fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690600090826120e657505050600090565b60209060246040518095819363aa1fce6960e01b835260048301525afa91821561215757819261211557505090565b9091506020813d60201161214f575b8161213160209383611572565b8101031261077e5751906001600160a01b03821682036101ed575090565b3d9150612124565b50604051903d90823e3d90fdfea26469706673582212200dfa271b1c597ccd3651d196d4b9ce6a7c21b2e3da76da25acee6dd40d87b0b164736f6c634300081e0033",
"is_contract": true,
"verified": true,
"verification": {
"address": "0x5b7b146395e0d04b76d3d14952890b0e5eb0abd4",
"compiler": "0.8.30+commit.73712a01.Emscripten.clang",
"contract": "contracts/AutomaticTokenRoutesV2Fresh.sol:AutomaticTokenRoutesV2Fresh",
"verified": true,
"match": "runtime-with-metadata",
"creation_verified": true,
"factory_deployment": null,
"constructor_arguments": "000000000000000000000000df6e7e94ed8c6fe335c28a8ec50381e9172f7d300000000000000000000000000000000000000000000000000000000000013e310000000000000000000000008ecd10fd6d7822ef16418689f92e5e1d5f144bd9000000000000000000000000cd1beec4de141b70ed9974eb132d7053068f5427000000000000000000000000d6cedeedf59d18ea88b30dbbbc6ffe242928420a80caa35bee32d9ad74dd17a5aa09bda24847b145200798eba26219e413323428a958f9628dcbf52a103e4399714805811ed312515684ec4b1031599dd3107109000000000000000000000000600ea15df4e3a13ae9710d6fcbd0fa1719e6be610000000000000000000000006bd1e0f78e42ca9cbfe414fa3c2f126c129f37560000000000000000000000007bc526d25b15272696a97e35f64fe76ca7f3d82f0000000000000000000000007c7d34e2da773c839cd168e8e52b7c3d94fc40e80000000000000000000000000000000000000000000000000000000000000000",
"verified_at": "2026-10-03T15:12:21.574Z",
"chain_id": 20261001,
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "admin",
"type": "address"
},
{
"internalType": "uint32",
"name": "remote",
"type": "uint32"
},
{
"internalType": "address",
"name": "m",
"type": "address"
},
{
"internalType": "address",
"name": "h",
"type": "address"
},
{
"internalType": "address",
"name": "i",
"type": "address"
},
{
"internalType": "bytes32",
"name": "collateral",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "synthetic",
"type": "bytes32"
},
{
"internalType": "address[4]",
"name": "validators",
"type": "address[4]"
},
{
"internalType": "address",
"name": "legacy",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint32",
"name": "origin",
"type": "uint32"
},
{
"indexed": true,
"internalType": "address",
"name": "asset",
"type": "address"
},
{
"indexed": false,
"internalType": "address",
"name": "router",
"type": "address"
},
{
"indexed": false,
"internalType": "address",
"name": "remoteRouter",
"type": "address"
},
{
"indexed": false,
"internalType": "uint8",
"name": "decimals",
"type": "uint8"
},
{
"indexed": false,
"internalType": "bytes32",
"name": "digest",
"type": "bytes32"
}
],
"name": "AutomaticRouteCreated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "administrator",
"type": "address"
}
],
"name": "FactoryCreated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "peer",
"type": "address"
}
],
"name": "PeerConfigured",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint32",
"name": "origin",
"type": "uint32"
},
{
"indexed": true,
"internalType": "address",
"name": "asset",
"type": "address"
},
{
"indexed": false,
"internalType": "address",
"name": "requester",
"type": "address"
}
],
"name": "RouteRequested",
"type": "event"
},
{
"inputs": [],
"name": "administrator",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"name": "approvedPlans",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "original",
"type": "string"
},
{
"internalType": "uint32",
"name": "origin",
"type": "uint32"
}
],
"name": "bridgedName",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [],
"name": "collateralHash",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "remoteFactory",
"type": "address"
}
],
"name": "configurePeer",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"components": [
{
"internalType": "uint32",
"name": "origin",
"type": "uint32"
},
{
"internalType": "address",
"name": "asset",
"type": "address"
},
{
"internalType": "uint8",
"name": "decimals",
"type": "uint8"
},
{
"internalType": "string",
"name": "name",
"type": "string"
},
{
"internalType": "string",
"name": "symbol",
"type": "string"
},
{
"internalType": "address",
"name": "localRouter",
"type": "address"
},
{
"internalType": "address",
"name": "remoteRouter",
"type": "address"
}
],
"internalType": "struct AutomaticTokenRoutesV2Fresh.Plan",
"name": "p",
"type": "tuple"
},
{
"internalType": "bytes[]",
"name": "signatures",
"type": "bytes[]"
},
{
"internalType": "bytes",
"name": "code",
"type": "bytes"
}
],
"name": "deployRoute",
"outputs": [
{
"internalType": "address",
"name": "router",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"components": [
{
"internalType": "uint32",
"name": "origin",
"type": "uint32"
},
{
"internalType": "address",
"name": "asset",
"type": "address"
},
{
"internalType": "uint8",
"name": "decimals",
"type": "uint8"
},
{
"internalType": "string",
"name": "name",
"type": "string"
},
{
"internalType": "string",
"name": "symbol",
"type": "string"
},
{
"internalType": "address",
"name": "localRouter",
"type": "address"
},
{
"internalType": "address",
"name": "remoteRouter",
"type": "address"
}
],
"internalType": "struct AutomaticTokenRoutesV2Fresh.Plan",
"name": "p",
"type": "tuple"
}
],
"name": "digest",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "hook",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "ism",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint32",
"name": "origin",
"type": "uint32"
},
{
"internalType": "address",
"name": "asset",
"type": "address"
}
],
"name": "key",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [],
"name": "legacyFactory",
"outputs": [
{
"internalType": "contract ILegacyRoutes",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "mailbox",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "peer",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint32",
"name": "origin",
"type": "uint32"
},
{
"internalType": "address",
"name": "asset",
"type": "address"
},
{
"internalType": "uint8",
"name": "decimals",
"type": "uint8"
},
{
"internalType": "bytes",
"name": "code",
"type": "bytes"
}
],
"name": "predict",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "remoteDomain",
"outputs": [
{
"internalType": "uint32",
"name": "",
"type": "uint32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "asset",
"type": "address"
}
],
"name": "requestRoute",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"name": "routers",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "signers",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "syntheticHash",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
}
],
"input": {
"language": "Solidity",
"sources": {
"contracts/AutomaticTokenRoutesV2Fresh.sol": {
"content": "// SPDX-License-Identifier: MIT\r\npragma solidity 0.8.30;\r\ninterface IAutoToken { function decimals() external view returns(uint8); function name() external view returns(string memory); function symbol() external view returns(string memory); }\r\ninterface IAutoCollateral {function initialize(address,address,address) external; function enrollRemoteRouter(uint32,bytes32) external;}\r\ninterface IAutoSynthetic {function initialize(uint256,string calldata,string calldata,address,address,address) external;}\r\ninterface ILegacyRoutes { function routers(bytes32) external view returns(address); function administrator() external view returns(address); }\ncontract AutomaticTokenRoutesV2Fresh {\r\n struct Plan {uint32 origin; address asset; uint8 decimals; string name; string symbol; address localRouter; address remoteRouter;}\r\n address public immutable administrator;\n ILegacyRoutes public immutable legacyFactory;\r\n uint32 public immutable remoteDomain;\r\n address public immutable mailbox;\r\n address public immutable hook;\r\n address public immutable ism;\r\n bytes32 public immutable collateralHash;\r\n bytes32 public immutable syntheticHash;\r\n address[4] public signers;\r\n address public peer;\r\n mapping(bytes32=>address) public routers;\r\n mapping(bytes32=>bytes32) public approvedPlans;\r\n event FactoryCreated(address indexed administrator);\r\n event RouteRequested(uint32 indexed origin,address indexed asset,address requester);\r\n event PeerConfigured(address peer);\r\n event AutomaticRouteCreated(uint32 indexed origin,address indexed asset,address router,address remoteRouter,uint8 decimals,bytes32 digest);\r\n constructor(address admin,uint32 remote,address m,address h,address i,bytes32 collateral,bytes32 synthetic,address[4] memory validators,address legacy) {\r\n require(block.chainid<=type(uint32).max&&remote!=block.chainid&&remote!=0,\"domain\");\r\n require(admin!=address(0)&&m.code.length>0&&h.code.length>0&&i.code.length>0,\"core\");\r\n for(uint256 j;j<4;j++){require(validators[j]!=address(0),\"signer\");for(uint256 k;k<j;k++)require(validators[j]!=validators[k],\"duplicate signer\");}\r\n require(legacy==address(0)||(legacy.code.length>0 && ILegacyRoutes(legacy).administrator()==admin),\"legacy factory\");legacyFactory=ILegacyRoutes(legacy);administrator=admin;remoteDomain=remote;mailbox=m;hook=h;ism=i;collateralHash=collateral;syntheticHash=synthetic;signers=validators;emit FactoryCreated(admin);\r\n }\r\n function configurePeer(address remoteFactory) external {require(msg.sender==administrator&&peer==address(0)&&remoteFactory!=address(0),\"peer locked\");peer=remoteFactory;emit PeerConfigured(remoteFactory);}\r\n function requestRoute(address asset) external {require(peer!=address(0)&&asset.code.length>0,\"not ready\");require(routers[key(uint32(block.chainid),asset)]==address(0)&&legacyRouter(key(uint32(block.chainid),asset))==address(0),\"route exists\");IAutoToken t=IAutoToken(asset);require(t.decimals()<=18&&bytes(t.name()).length>0&&bytes(t.name()).length<=60&&bytes(t.symbol()).length>0&&bytes(t.symbol()).length<=24,\"metadata\");emit RouteRequested(uint32(block.chainid),asset,msg.sender);}\r\n function legacyRouter(bytes32 k) private view returns(address){return address(legacyFactory)==address(0)?address(0):legacyFactory.routers(k);}\n function bridgedName(string memory original,uint32 origin) public pure returns(string memory) {\n string memory label;\n if(origin==137)label=\"Polygon\";else if(origin==143)label=\"Monad\";else if(origin==43114)label=\"Avalanche\";else if(origin==59144)label=\"Linea\";else if(origin==146)label=\"Sonic\";else if(origin==250)label=\"Fantom\";else if(origin==42161)label=\"Arbitrum\";else if(origin==56)label=\"BSC\";else if(origin==8453)label=\"Base\";else if(origin==4663)label=\"Robinhood\";else if(origin==5042)label=\"Arc\";else if(origin==20261001)label=\"Cookchain\";\n else {uint32 value=origin;bytes memory digits=new bytes(10);uint256 count;do{digits[count++]=bytes1(uint8(48+value%10));value/=10;}while(value>0);bytes memory result=new bytes(count);for(uint256 i;i<count;i++)result[i]=digits[count-1-i];label=string(result);}\n return string.concat(original,\" (Bridged from \",label,\")\");\n }\n function key(uint32 origin,address asset) public pure returns(bytes32){return keccak256(abi.encode(origin,asset));}\r\n function predict(uint32 origin,address asset,uint8 decimals,bytes calldata code) public view returns(address){bool original=origin==block.chainid;require(keccak256(code)==(original?collateralHash:syntheticHash),\"code\");bytes memory init=original?bytes.concat(code,abi.encode(asset,uint256(1),uint256(1),mailbox)):bytes.concat(code,abi.encode(decimals,uint256(1),uint256(1),mailbox));return address(uint160(uint256(keccak256(abi.encodePacked(bytes1(0xff),address(this),key(origin,asset),keccak256(init))))));}\r\n function digest(Plan calldata p) public view returns(bytes32){require(peer!=address(0),\"peer missing\");bool first=block.chainid<remoteDomain;return keccak256(abi.encode(\"COOKCHAIN_AUTOROUTE_V2\",first?uint32(block.chainid):remoteDomain,first?remoteDomain:uint32(block.chainid),first?address(this):peer,first?peer:address(this),p.origin,p.asset,p.decimals,p.name,p.symbol,first?p.localRouter:p.remoteRouter,first?p.remoteRouter:p.localRouter));}\r\n function authorize(bytes32 hash,bytes[] calldata signatures) private view {require(signatures.length==3,\"three signatures\");bytes32 signed=keccak256(abi.encodePacked(\"\\x19Ethereum Signed Message:\\n32\",hash));address previous;\r\n for(uint256 j;j<3;j++){bytes calldata sig=signatures[j];require(sig.length==65,\"signature length\");bytes32 r;bytes32 s;uint8 v;assembly(\"memory-safe\"){r:=calldataload(sig.offset) s:=calldataload(add(sig.offset,32)) v:=byte(0,calldataload(add(sig.offset,64)))}require(uint256(s)<=0x7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0&&(v==27||v==28),\"signature encoding\");address signer=ecrecover(signed,v,r,s);require(signer>previous,\"signature order\");bool enrolled;for(uint256 k;k<4;k++)if(signers[k]==signer)enrolled=true;require(enrolled,\"unknown signer\");previous=signer;}\r\n }\r\n function deployRoute(Plan calldata p,bytes[] calldata signatures,bytes calldata code) external returns(address router){require(p.origin==block.chainid||p.origin==remoteDomain,\"origin\");require(p.asset!=address(0)&&p.decimals<=18&&p.remoteRouter!=address(0),\"plan\");require(bytes(p.name).length>0&&bytes(p.name).length<=60&&bytes(p.symbol).length>0&&bytes(p.symbol).length<=24,\"metadata\");bytes32 hash=digest(p);authorize(hash,signatures);bytes32 salt=key(p.origin,p.asset);require(routers[salt]==address(0)&&legacyRouter(salt)==address(0),\"route exists\");require(p.localRouter==predict(p.origin,p.asset,p.decimals,code),\"prediction\");bool original=p.origin==block.chainid;if(original){require(p.asset.code.length>0,\"asset\");IAutoToken t=IAutoToken(p.asset);require(t.decimals()==p.decimals&&keccak256(bytes(t.name()))==keccak256(bytes(p.name))&&keccak256(bytes(t.symbol()))==keccak256(bytes(p.symbol)),\"original metadata\");}\r\n bytes memory init=original?bytes.concat(code,abi.encode(p.asset,uint256(1),uint256(1),mailbox)):bytes.concat(code,abi.encode(p.decimals,uint256(1),uint256(1),mailbox));assembly(\"memory-safe\"){router:=create2(0,add(init,32),mload(init),salt)}require(router==p.localRouter,\"creation\");routers[salt]=router;approvedPlans[salt]=hash;\r\n if(original)IAutoCollateral(router).initialize(hook,ism,address(this));else IAutoSynthetic(router).initialize(0,bridgedName(p.name,p.origin),p.symbol,hook,ism,address(this));\r\n IAutoCollateral(router).enrollRemoteRouter(remoteDomain,bytes32(uint256(uint160(p.remoteRouter))));emit AutomaticRouteCreated(p.origin,p.asset,router,p.remoteRouter,p.decimals,hash);\r\n }\r\n}\r\n"
},
"contracts/AtomicBridgeCoreDeploymentV2.sol": {
"content": "// SPDX-License-Identifier: MIT\npragma solidity 0.8.30;\ninterface ICoreMailbox {function initialize(address,address,address,address) external;}\ninterface ICoreSetFactory {function deploy(address[] calldata,uint8) external returns(address);}\n/// Hash-pinned, atomic infrastructure deployment without issuing a token.\ncontract AtomicBridgeCoreDeploymentV2 {\n address public immutable administrator;\n uint32 public immutable remoteDomain;\n bytes32[6] public codeHashes;\n bytes32 public immutable factoryHash;\n bytes32 public immutable collateralHash;\n bytes32 public immutable syntheticHash;\n address public factory;\n bool private deployed;\n event CoreCreated(uint32 indexed domain,address mailbox,address merkleTreeHook,address pause,address ism,address factory);\n constructor(address admin,uint32 remote,bytes32[6] memory hashes,bytes32 autoHash,bytes32 collateral,bytes32 synthetic){\n require(admin!=address(0)&&remote!=0&&remote!=block.chainid&&block.chainid<=type(uint32).max,\"configuration\");\n administrator=admin;remoteDomain=remote;codeHashes=hashes;factoryHash=autoHash;collateralHash=collateral;syntheticHash=synthetic;\n }\n function create(bytes memory code) private returns(address result){assembly(\"memory-safe\"){result:=create(0,add(code,32),mload(code))}require(result!=address(0),\"creation failed\");}\n function deploy(bytes[6] calldata codes,bytes calldata automaticCode,address[4] calldata validators) external {\n require(msg.sender==administrator&&!deployed,\"administrator or already deployed\");\n for(uint256 j;j<6;j++)require(keccak256(codes[j])==codeHashes[j],\"core code\");\n require(keccak256(automaticCode)==factoryHash,\"factory code\");\n address[] memory members=new address[](4);\n for(uint256 j;j<4;j++){require(validators[j]!=address(0)&&(j==0||validators[j]>validators[j-1]),\"sorted distinct signers\");members[j]=validators[j];}\n deployed=true;\n uint32 domain=uint32(block.chainid);\n address mailbox=create(bytes.concat(codes[0],abi.encode(domain)));\n address hook=create(bytes.concat(codes[1],abi.encode(mailbox)));\n address fee=create(bytes.concat(codes[2],abi.encode(uint256(0),uint256(0),administrator,administrator)));\n address pause=create(bytes.concat(codes[3],abi.encode(administrator)));\n address multisigFactory=create(codes[4]);address aggregationFactory=create(codes[5]);\n address multisig=ICoreSetFactory(multisigFactory).deploy(members,3);\n address[] memory modules=new address[](2);modules[0]=multisig;modules[1]=pause;\n address ism=ICoreSetFactory(aggregationFactory).deploy(modules,2);\n ICoreMailbox(mailbox).initialize(administrator,ism,hook,fee);\n factory=create(bytes.concat(automaticCode,abi.encode(administrator,remoteDomain,mailbox,hook,ism,collateralHash,syntheticHash,validators,address(0))));\n emit CoreCreated(domain,mailbox,hook,pause,ism,factory);\n }\n}\n"
},
"contracts/TokenRouteDeployment.sol": {
"content": "// SPDX-License-Identifier: MIT\npragma solidity 0.8.30;\ninterface IRouteMetadata {function decimals() external view returns(uint8);}\ninterface IRouteCollateral {function initialize(address,address,address) external;}\ninterface IRouteSynthetic {function initialize(uint256,string calldata,string calldata,address,address,address) external;}\ncontract TokenRouteDeployment {\n address public immutable owner;\n bytes32 public immutable collateralHash;\n bytes32 public immutable syntheticHash;\n mapping(bytes32=>address) public routers;\n event RouteCreated(uint32 indexed origin,address indexed asset,address router,uint8 decimals);\n constructor(address admin,bytes32 collateral,bytes32 synthetic){require(admin!=address(0),\"zero owner\");owner=admin;collateralHash=collateral;syntheticHash=synthetic;}\n function create(bytes memory code) private returns(address a){assembly(\"memory-safe\"){a:=create(0,add(code,32),mload(code))}require(a!=address(0),\"creation failed\");}\n function deploy(uint32 origin,address asset,uint8 decimals,string calldata name,string calldata symbol,address mailbox,address hook,address ism,bytes calldata code) external returns(address router){\n require(msg.sender==owner,\"owner only\");require(asset!=address(0),\"zero asset\");require(decimals<=18,\"unsupported decimals\");require(mailbox.code.length>0&&hook.code.length>0&&ism.code.length>0,\"missing core\");bytes32 key=keccak256(abi.encode(origin,asset));require(routers[key]==address(0),\"route exists\");\n if(block.chainid==origin){require(keccak256(code)==collateralHash,\"unexpected code\");require(asset.code.length>0&&IRouteMetadata(asset).decimals()==decimals,\"wrong token\");router=create(bytes.concat(code,abi.encode(asset,uint256(1),uint256(1),mailbox)));IRouteCollateral(router).initialize(hook,ism,owner);}\n else{require(keccak256(code)==syntheticHash,\"unexpected code\");require(bytes(name).length>0&&bytes(name).length<=96&&bytes(symbol).length>0&&bytes(symbol).length<=24,\"invalid metadata\");router=create(bytes.concat(code,abi.encode(decimals,uint256(1),uint256(1),mailbox)));IRouteSynthetic(router).initialize(0,name,symbol,hook,ism,owner);}\n routers[key]=router;emit RouteCreated(origin,asset,router,decimals);\n }\n}\r\n"
}
},
"settings": {
"optimizer": {
"enabled": true,
"runs": 200
},
"viaIR": true,
"evmVersion": "paris",
"outputSelection": {
"contracts/AutomaticTokenRoutesV2Fresh.sol": {
"AutomaticTokenRoutesV2Fresh": [
"abi",
"metadata",
"evm.bytecode",
"evm.deployedBytecode"
],
"": [
"ast"
]
}
}
}
},
"metadata": {
"compiler": {
"version": "0.8.30+commit.73712a01"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "admin",
"type": "address"
},
{
"internalType": "uint32",
"name": "remote",
"type": "uint32"
},
{
"internalType": "address",
"name": "m",
"type": "address"
},
{
"internalType": "address",
"name": "h",
"type": "address"
},
{
"internalType": "address",
"name": "i",
"type": "address"
},
{
"internalType": "bytes32",
"name": "collateral",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "synthetic",
"type": "bytes32"
},
{
"internalType": "address[4]",
"name": "validators",
"type": "address[4]"
},
{
"internalType": "address",
"name": "legacy",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint32",
"name": "origin",
"type": "uint32"
},
{
"indexed": true,
"internalType": "address",
"name": "asset",
"type": "address"
},
{
"indexed": false,
"internalType": "address",
"name": "router",
"type": "address"
},
{
"indexed": false,
"internalType": "address",
"name": "remoteRouter",
"type": "address"
},
{
"indexed": false,
"internalType": "uint8",
"name": "decimals",
"type": "uint8"
},
{
"indexed": false,
"internalType": "bytes32",
"name": "digest",
"type": "bytes32"
}
],
"name": "AutomaticRouteCreated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "administrator",
"type": "address"
}
],
"name": "FactoryCreated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "peer",
"type": "address"
}
],
"name": "PeerConfigured",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint32",
"name": "origin",
"type": "uint32"
},
{
"indexed": true,
"internalType": "address",
"name": "asset",
"type": "address"
},
{
"indexed": false,
"internalType": "address",
"name": "requester",
"type": "address"
}
],
"name": "RouteRequested",
"type": "event"
},
{
"inputs": [],
"name": "administrator",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"name": "approvedPlans",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "original",
"type": "string"
},
{
"internalType": "uint32",
"name": "origin",
"type": "uint32"
}
],
"name": "bridgedName",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [],
"name": "collateralHash",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "remoteFactory",
"type": "address"
}
],
"name": "configurePeer",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"components": [
{
"internalType": "uint32",
"name": "origin",
"type": "uint32"
},
{
"internalType": "address",
"name": "asset",
"type": "address"
},
{
"internalType": "uint8",
"name": "decimals",
"type": "uint8"
},
{
"internalType": "string",
"name": "name",
"type": "string"
},
{
"internalType": "string",
"name": "symbol",
"type": "string"
},
{
"internalType": "address",
"name": "localRouter",
"type": "address"
},
{
"internalType": "address",
"name": "remoteRouter",
"type": "address"
}
],
"internalType": "struct AutomaticTokenRoutesV2Fresh.Plan",
"name": "p",
"type": "tuple"
},
{
"internalType": "bytes[]",
"name": "signatures",
"type": "bytes[]"
},
{
"internalType": "bytes",
"name": "code",
"type": "bytes"
}
],
"name": "deployRoute",
"outputs": [
{
"internalType": "address",
"name": "router",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"components": [
{
"internalType": "uint32",
"name": "origin",
"type": "uint32"
},
{
"internalType": "address",
"name": "asset",
"type": "address"
},
{
"internalType": "uint8",
"name": "decimals",
"type": "uint8"
},
{
"internalType": "string",
"name": "name",
"type": "string"
},
{
"internalType": "string",
"name": "symbol",
"type": "string"
},
{
"internalType": "address",
"name": "localRouter",
"type": "address"
},
{
"internalType": "address",
"name": "remoteRouter",
"type": "address"
}
],
"internalType": "struct AutomaticTokenRoutesV2Fresh.Plan",
"name": "p",
"type": "tuple"
}
],
"name": "digest",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "hook",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "ism",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint32",
"name": "origin",
"type": "uint32"
},
{
"internalType": "address",
"name": "asset",
"type": "address"
}
],
"name": "key",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [],
"name": "legacyFactory",
"outputs": [
{
"internalType": "contract ILegacyRoutes",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "mailbox",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "peer",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint32",
"name": "origin",
"type": "uint32"
},
{
"internalType": "address",
"name": "asset",
"type": "address"
},
{
"internalType": "uint8",
"name": "decimals",
"type": "uint8"
},
{
"internalType": "bytes",
"name": "code",
"type": "bytes"
}
],
"name": "predict",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "remoteDomain",
"outputs": [
{
"internalType": "uint32",
"name": "",
"type": "uint32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "asset",
"type": "address"
}
],
"name": "requestRoute",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"name": "routers",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "signers",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "syntheticHash",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"contracts/AutomaticTokenRoutesV2Fresh.sol": "AutomaticTokenRoutesV2Fresh"
},
"evmVersion": "paris",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": true,
"runs": 200
},
"remappings": [],
"viaIR": true
},
"sources": {
"contracts/AutomaticTokenRoutesV2Fresh.sol": {
"keccak256": "0xa9115a70807889666b5b7a598287e8b72c4495bdea36395e182b2dfbde86dfdd",
"license": "MIT",
"urls": [
"bzz-raw://99827d76e696fcdec52d08a1258a2ea4ced223fb87504bf0598d3e1ff34439ac",
"dweb:/ipfs/Qmco4ePmknRTBAb8fCaWQ72HkAZTQBPjtbZ12ybQkh4D7h"
]
}
},
"version": 1
}
},
"deployment": {
"txid": "0xe92ee9ec9ee9cf803d01a4391c9cc7b76791e711b490e0ff1f41be03806c2493",
"hash": "0xe92ee9ec9ee9cf803d01a4391c9cc7b76791e711b490e0ff1f41be03806c2493",
"sender": "0xdf6e7e94ed8c6fe335c28a8ec50381e9172f7d30",
"recipient": "0x5b7b146395e0d04b76d3d14952890b0e5eb0abd4",
"amount_dec": "0",
"value_raw": "0",
"fee_dec": "0.000000020324237014",
"fee_raw": "20324237014",
"asset": "COOK",
"timestamp_ms": 1791037900000,
"block": 67053,
"status": "Success",
"kind": "Contract creation",
"source": "EVM",
"nonce": 117,
"transaction_type": 2,
"gas_limit": "2457945",
"gas_used": "2031002",
"gas_price_wei": "10007",
"gas_price_gwei": "0.000010007",
"data_hex": "0x6101808060405234610311576126a4803803809161001d82856104ab565b83398101906101808183031261031157610036816104ce565b9160208201519263ffffffff84169384810361031157610058604085016104ce565b610064606086016104ce565b90610071608087016104ce565b9260a08701519460c0880151968060ff8a011215610311576040519860808a016001600160401b0381118b82101761049557604052899061016081019283116103115760e001905b82821061047d5750506100cb906104ce565b9863ffffffff4611159081610472575b81610468575b501561043a576001600160a01b0381169889151580610430575b80610426575b8061041c575b156103f15760005b6004811061032a57506001600160a01b038116908115908115610295575b501561025f5760a05260805260c05260e0526101005261012052610140526101605260005b6004811061024457604051837fcd011e85967592f54bff824c845ac9b3e769e0f54ba0d66b4d76ac0f77fa2a00600080a261219a908161050a823960805181818161010e0152610206015260a05181818161147701526120ad015260c05181818161069a01528181610ed5015281816112650152611e91015260e05181818161029401528181610533015281816109200152818161170301526117b30152610100518181816105fb0152818161082501526113180152610120518181816106230152818161084d01526113f701526101405181818161143e01526116ae0152610160518181816111c801526118170152f35b81516001600160a01b03168155602090910190600101610152565b60405162461bcd60e51b815260206004820152600e60248201526d6c656761637920666163746f727960901b6044820152606490fd5b90503b1515806102a6575b3861012d565b50604051637a9e854760e11b8152602081600481855afa801561031e578b916000916102dd575b506001600160a01b0316146102a0565b9150506020813d602011610316575b816102f9602093836104ab565b810103126103115761030b8b916104ce565b386102cd565b600080fd5b3d91506102ec565b6040513d6000823e3d90fd5b6001600160a01b0361033c828c6104e2565b5116156103c35760005b818110610356575060010161010f565b6001600160a01b03610368838d6104e2565b51166001600160a01b0361037c838e6104e2565b51161461038b57600101610346565b60405162461bcd60e51b815260206004820152601060248201526f323ab83634b1b0ba329039b4b3b732b960811b6044820152606490fd5b60405162461bcd60e51b815260206004820152600660248201526539b4b3b732b960d11b6044820152606490fd5b606460405162461bcd60e51b8152602060048201526004602482015263636f726560e01b6044820152fd5b50853b1515610107565b50843b1515610101565b50833b15156100fb565b60405162461bcd60e51b81526020600482015260066024820152653237b6b0b4b760d11b6044820152606490fd5b90501515386100e1565b4681141591506100db565b6020809161048a846104ce565b8152019101906100b9565b634e487b7160e01b600052604160045260246000fd5b601f909101601f19168101906001600160401b0382119082101761049557604052565b51906001600160a01b038216820361031157565b9060048110156104f35760051b0190565b634e487b7160e01b600052603260045260246000fdfe608080604052600436101561001357600080fd5b600090813560e01c90816311cda415146114db575080632079fb9a146114a65780632da5347b146114615780634178bb3b146114265780634deefab2146113e157806375be792e1461136e5780637c539e8a146113475780637f5a7c7b14611302578063856f495a14611289578063961681dc1461124857806397b2766a1461121e578063aa1fce69146111eb578063c30aaad2146111b0578063ce56e02c14610f09578063d0ba559e146102c3578063d5438eae1461027e578063e0d1393614610235578063f53d0a8e146101f05763f8236ad9146100f257600080fd5b346101ed5760203660031901126101ed5761010b61152e565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614806101da575b806101c8575b1561019557600480546001600160a01b0319166001600160a01b0390921691821790556040519081527f0f46ae31117307bd9a5f7d575b168cb5643647cc77c8bd2b3727eb3cfce4350490602090a180f35b60405162461bcd60e51b815260206004820152600b60248201526a1c19595c881b1bd8dad95960aa1b6044820152606490fd5b506001600160a01b0381161515610143565b506004546001600160a01b03161561013d565b80fd5b50346101ed57806003193601126101ed576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b50346101ed5760203660031901126101ed576004359067ffffffffffffffff82116101ed5760e060031983360301126101ed57602061027683600401611e7d565b604051908152f35b50346101ed57806003193601126101ed576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b50346101ed5760603660031901126101ed5760043567ffffffffffffffff811161077e578060040160e060031983360301126108b2576024359067ffffffffffffffff8211610f055736602383011215610f055781600401359167ffffffffffffffff8311610f01573660248460051b83010111610f015760443567ffffffffffffffff8111610efd5761035b903690600401611544565b92909461036782611df6565b63ffffffff1646148015610ec3575b15610e955760248101946001600160a01b0361039187611e07565b16151580610e7c575b80610e5f575b15610e345760648201906103b48285611e29565b9050151580610e1e575b80610e07575b80610de9575b6103d390611dbf565b6103dc84611e7d565b9460038203610db15760405160208101907f19457468657265756d205369676e6564204d6573736167653a0a333200000000825287603c820152603c8152610425605c82611572565b519020908a908b905b60038210610b9e57505050505061045661044784611df6565b61045088611e07565b9061183c565b808952600560205260408920549097906001600160a01b03161580610b80575b61047f90611d0c565b60a483019761048d89611e07565b9661049786611df6565b976104a18a611e07565b60448701996001600160a01b03916104c79185918891906104c18f611e1b565b91611683565b166001600160a01b0390911603610b4e5781904663ffffffff6104e989611df6565b16149384610954575b8a85156108e657916105649161057261050d61057795611e07565b604080516001600160a01b039283166020820152600191810182905260608101919091527f0000000000000000000000000000000000000000000000000000000000000000909116608082015293849060a0820190565b03601f198101855284611572565b611645565b6020815191018cf5986001600160a01b039061059290611e07565b6001600160a01b03909a16991689036108b657808a52600560205260408a20896bffffffffffffffffffffffff60a01b825416179055895260066020528460408a205560001461079b5750853b156107975760405163c0c53b8b60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301527f000000000000000000000000000000000000000000000000000000000000000016602482015230604482015287908181606481838c5af1801561077357610782575b505060c4905b01956001600160a01b0361067d88611e07565b16863b1561077e576040519063b49c53a760e01b825263ffffffff7f000000000000000000000000000000000000000000000000000000000000000016600483015260248201528181604481838b5af180156107735761075e575b505063ffffffff6020967fa7865770248a6aa782bcfe84bcd16eab98d3ef61bc3ab17504733491a94376da9360ff61072c61072661072061071a608098611df6565b9a611e07565b94611e07565b97611e1b565b604051978a895260018060a01b03168b890152166040870152606086015260018060a01b0316941692a3604051908152f35b610769828092611572565b6101ed57806106d8565b6040513d84823e3d90fd5b5080fd5b8161078c91611572565b610797578638610664565b8680fd5b6107be6107ab6107c39285611e29565b91906107b686611df6565b9236916115c6565b611898565b876107d16084840185611e29565b92893b156108b25761081b61080992604051958694859463e80a7c7960e01b865287600487015260c0602487015260c4860190611620565b84810360031901604486015291611e5c565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660648401527f00000000000000000000000000000000000000000000000000000000000000001660848301523060a48301520381838b5af180156108a757610892575b5060c49061066a565b966108a08160c49399611572565b9690610889565b6040513d8a823e3d90fd5b8280fd5b60405162461bcd60e51b815260206004820152600860248201526731b932b0ba34b7b760c11b6044820152606490fd5b5061094f91610564916105726108fb8d611e1b565b6040805160ff9092166020830152600190820181905260608201526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016608082015293849060a0820190565b610577565b915061095f8a611e07565b3b15610b21576001600160a01b036109768b611e07565b168c60405163313ce56760e01b8152602081600481865afa908115610773578c908392610ae7575b5060ff6109ab8192611e1b565b169116149182610a84575b82610a03575b5050156109ca5782916104f2565b60405162461bcd60e51b81526020600482015260116024820152706f726967696e616c206d6574616461746160781b6044820152606490fd5b6040516395d89b4160e01b81529250829060049082905afa908115610a79578d91610a57575b5060208151910120610a48610a41608489018a611e29565b36916115c6565b60208151910120148c386109bc565b610a7391503d808f833e610a6b8183611572565b810190611d60565b38610a29565b6040513d8f823e3d90fd5b6040516306fdde0360e01b81529092508181600481865afa908115610773578291610acd575b5060208151910120610abf610a41898c611e29565b6020815191012014916109b6565b610ae191503d8084833e610a6b8183611572565b38610aaa565b60ff9192506109ab610b11839260203d602011610b1a575b610b098183611572565b810190611d47565b9392505061099e565b503d610aff565b60405162461bcd60e51b8152602060048201526005602482015264185cdcd95d60da1b6044820152606490fd5b60405162461bcd60e51b815260206004820152600a602482015269383932b234b1ba34b7b760b11b6044820152606490fd5b5061047f6001600160a01b03610b958a6120ab565b16159050610476565b96919994848299949c97929d9a959d1015610d9d576041610bca60248b60051b8b010160248b01611e29565b91909103610d6557602081013560408201358c1a7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a082111580610d51575b15610d17578e8d9260209460809360405193845286840152356040830152606082015282805260015afa15610d0c5789519c6001600160a01b03808f169c168c1115610cd5578a9c8b5b6004811015610c7e5780546001600160a01b03168e14610c75575b600101610c52565b60019e50610c6d565b50939892979c90959a9d91969b5098939815610c9f5791926001019061042e565b60405162461bcd60e51b815260206004820152600e60248201526d3ab735b737bbb71039b4b3b732b960911b6044820152606490fd5b60405162461bcd60e51b815260206004820152600f60248201526e39b4b3b730ba3ab9329037b93232b960891b6044820152606490fd5b6040513d8b823e3d90fd5b60405162461bcd60e51b81526020600482015260126024820152717369676e617475726520656e636f64696e6760701b6044820152606490fd5b50601b811480610c085750601c8114610c08565b60405162461bcd60e51b815260206004820152601060248201526f0e6d2cedcc2e8eae4ca40d8cadccee8d60831b6044820152606490fd5b634e487b7160e01b8a52603260045260248afd5b60405162461bcd60e51b815260206004820152601060248201526f7468726565207369676e61747572657360801b6044820152606490fd5b506103d36018610dfc6084860187611e29565b9050111590506103ca565b50610e156084840185611e29565b905015156103c4565b50603c610e2b8386611e29565b905011156103be565b606460405162461bcd60e51b8152602060048201526004602482015263383630b760e11b6044820152fd5b506001600160a01b03610e7460c48401611e07565b1615156103a0565b50601260ff610e8d60448501611e1b565b16111561039a565b60405162461bcd60e51b815260206004820152600660248201526537b934b3b4b760d11b6044820152606490fd5b50610ecd82611df6565b63ffffffff807f000000000000000000000000000000000000000000000000000000000000000016911614610376565b8580fd5b8480fd5b8380fd5b50346101ed5760203660031901126101ed57610f2361152e565b6004546001600160a01b03161515806111a6575b156111755763ffffffff461690610f4e818361183c565b8352600560205260408320546001600160a01b0316158061114e575b610f7390611d0c565b60405163313ce56760e01b81526001600160a01b03919091169190602081600481865afa90811561104d5760129160ff91869161112f575b50161115806110e8575b8061109f575b80611058575b80610ffd575b610fd090611dbf565b7fb3766c4ef7117f654e54fdfc96ff05c608c0a7bb21257050309334cb0798052c6020604051338152a380f35b506040516395d89b4160e01b81528381600481865afa90811561104d57610fd0916018918691611033575b505111159050610fc7565b61104791503d8088833e610a6b8183611572565b38611028565b6040513d86823e3d90fd5b506040516395d89b4160e01b81528381600481865afa90811561104d578491611085575b50511515610fc1565b61109991503d8086833e610a6b8183611572565b3861107c565b506040516306fdde0360e01b81528381600481865afa801561104d57603c9185916110ce575b50511115610fbb565b6110e291503d8087833e610a6b8183611572565b386110c5565b506040516306fdde0360e01b81528381600481865afa90811561104d578491611115575b50511515610fb5565b61112991503d8086833e610a6b8183611572565b3861110c565b611148915060203d602011610b1a57610b098183611572565b38610fab565b50610f736001600160a01b0361116c611167848661183c565b6120ab565b16159050610f6a565b60405162461bcd60e51b81526020600482015260096024820152686e6f7420726561647960b81b6044820152606490fd5b50803b1515610f37565b50346101ed57806003193601126101ed5760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b50346101ed5760203660031901126101ed57602090600435815260058252604060018060a01b0391205416604051908152f35b50346101ed5760203660031901126101ed5760406020916004358152600683522054604051908152f35b50346101ed57806003193601126101ed57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50346101ed5760403660031901126101ed5760043567ffffffffffffffff811161077e573660238201121561077e576112cc9036906024816004013591016115c6565b6024359163ffffffff831683036101ed576112fe6112ea8484611898565b604051918291602083526020830190611620565b0390f35b50346101ed57806003193601126101ed576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b50346101ed5760403660031901126101ed576020610276611366611500565b610450611518565b50346101ed5760803660031901126101ed57611388611500565b611390611518565b916044359060ff821682036101ed576064359067ffffffffffffffff82116101ed5760206113cf8686866113c73660048901611544565b939092611683565b6040516001600160a01b039091168152f35b50346101ed57806003193601126101ed576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b50346101ed57806003193601126101ed5760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b50346101ed57806003193601126101ed576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b50346101ed5760203660031901126101ed57600435600481101561077e57546040516001600160a01b03909116815260209150f35b90503461077e578160031936011261077e576004546001600160a01b03168152602090f35b6004359063ffffffff8216820361151357565b600080fd5b602435906001600160a01b038216820361151357565b600435906001600160a01b038216820361151357565b9181601f840112156115135782359167ffffffffffffffff8311611513576020838186019501011161151357565b90601f8019910116810190811067ffffffffffffffff82111761159457604052565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff811161159457601f01601f191660200190565b9291926115d2826115aa565b916115e06040519384611572565b829481845281830111611513578281602093846000960137010152565b60005b8381106116105750506000910152565b8181015183820152602001611600565b90602091611639815180928185528580860191016115fd565b601f01601f1916010190565b6020806116819395946116718760405198899685880137850191838301600081528151948592016115fd565b010103601f198101845283611572565b565b93929190914663ffffffff8616149361169d3682846115c6565b6020815191012085600014611815577f0000000000000000000000000000000000000000000000000000000000000000905b036117ea57611743941561178e57604080516001600160a01b038681166020830152600192820183905260608201929092527f0000000000000000000000000000000000000000000000000000000000000000909116608082015261173d9350916105728360a08101610564565b9261183c565b90602081519101209060405191602083019160ff60f81b83523060601b6021850152603584015260558301526055825261177e607583611572565b905190206001600160a01b031690565b6040805160ff9094166020850152600190840181905260608401526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016608084015261173d92916105728360a08101610564565b606460405162461bcd60e51b8152602060048201526004602482015263636f646560e01b6044820152fd5b7f0000000000000000000000000000000000000000000000000000000000000000906116cf565b6040805163ffffffff909216602083019081526001600160a01b0390931682820152815261186b606082611572565b51902090565b908151811015611882570160200190565b634e487b7160e01b600052603260045260246000fd5b9060009063ffffffff81166089810361193d5750505061193a6001600f6040516118c3604082611572565b60078152662837b63cb3b7b760c91b6020820152935b602060405195826118f388945180928580880191016115fd565b83016e01014213934b233b2b210333937b69608d1b8382015261191f8251809385602f850191016115fd565b0101602960f81b838201520301601e19810184520182611572565b90565b608f81036119755750505061193a6001600f60405161195d604082611572565b6005815264135bdb985960da1b6020820152936118d9565b61a86a81036119b25750505061193a6001600f604051611996604082611572565b60098152684176616c616e63686560b81b6020820152936118d9565b61e70881036119eb5750505061193a6001600f6040516119d3604082611572565b60058152644c696e656160d81b6020820152936118d9565b60928103611a235750505061193a6001600f604051611a0b604082611572565b6005815264536f6e696360d81b6020820152936118d9565b60fa8103611a5c5750505061193a6001600f604051611a43604082611572565b600681526546616e746f6d60d01b6020820152936118d9565b61a4b18103611a985750505061193a6001600f604051611a7d604082611572565b6008815267417262697472756d60c01b6020820152936118d9565b60388103611ace5750505061193a6001600f604051611ab8604082611572565b600381526242534360e81b6020820152936118d9565b6121058103611b065750505061193a6001600f604051611aef604082611572565b60048152634261736560e01b6020820152936118d9565b6112378103611b435750505061193a6001600f604051611b27604082611572565b6009815268149bd89a5b9a1bdbd960ba1b6020820152936118d9565b6113b28103611b7a5750505061193a6001600f604051611b64604082611572565b600381526241726360e81b6020820152936118d9565b630135288903611bb757505061193a6001600f604051611b9b604082611572565b600981526821b7b7b5b1b430b4b760b91b6020820152936118d9565b92909260405191611bc9604084611572565b600a835260203681850137849360015b15611c59575b63ffffffff86931663ffffffff600a8206166030019563ffffffff8711611c4557806000198114611c315790611c296001600a9493019860ff60f81b9060f81b168a1a9188611871565b530492611bd9565b634e487b7160e01b89526011600452602489fd5b634e487b7160e01b88526011600452602488fd5b63ffffffff8316611bdf579390949150611c72816115aa565b92611c806040519485611572565b818452601f19611c8f836115aa565b01366020860137825b828110611cb157505050506001600f61193a92936118d9565b6000198301838111611cf85781840360001901908111611cf857600191906001600160f81b031990611ce39085611871565b5116851a611cf18288611871565b5301611c98565b634e487b7160e01b85526011600452602485fd5b15611d1357565b60405162461bcd60e51b815260206004820152600c60248201526b726f7574652065786973747360a01b6044820152606490fd5b90816020910312611513575160ff811681036115135790565b6020818303126115135780519067ffffffffffffffff8211611513570181601f82011215611513578051611d93816115aa565b92611da16040519485611572565b818452602082840101116115135761193a91602080850191016115fd565b15611dc657565b60405162461bcd60e51b81526020600482015260086024820152676d6574616461746160c01b6044820152606490fd5b3563ffffffff811681036115135790565b356001600160a01b03811681036115135790565b3560ff811681036115135790565b903590601e1981360301821215611513570180359067ffffffffffffffff82116115135760200191813603831361151357565b908060209392818452848401376000828201840152601f01601f1916010190565b6004546001600160a01b03168015612077577f00000000000000000000000000000000000000000000000000000000000000009063ffffffff821646109081156120715763ffffffff4616925b821561206357935b821561205d5730915b8315612056575b611eeb82611df6565b611ef760208401611e07565b611f0360408501611e1b565b611f106060860186611e29565b929093611f206080880188611e29565b9690978a60001461204457611f3760a08201611e07565b9a5b156120325760c0611f4a9101611e07565b985b60408051610180602082015260166101a08201527521a7a7a5a1a420a4a72fa0aaaa27a927aaaa22afab1960511b6101c08083019190915263ffffffff9e8f16928201929092529d8d1660608f01526001600160a01b0391821660808f015291811660a08e015291909a1660c08c01521660e08a015260ff166101008901526101208801969096528695611fe6916101e088019190611e5c565b90601f1986830301610140870152611ffd92611e5c565b6001600160a01b03928316610160850152911661018083015203601f19810182526120289082611572565b8051906020012090565b60a061203e9101611e07565b98611f4c565b61205060c08201611e07565b9a611f39565b5030611ee2565b81611edb565b5063ffffffff461693611ed2565b82611eca565b60405162461bcd60e51b815260206004820152600c60248201526b70656572206d697373696e6760a01b6044820152606490fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690600090826120e657505050600090565b60209060246040518095819363aa1fce6960e01b835260048301525afa91821561215757819261211557505090565b9091506020813d60201161214f575b8161213160209383611572565b8101031261077e5751906001600160a01b03821682036101ed575090565b3d9150612124565b50604051903d90823e3d90fdfea26469706673582212200dfa271b1c597ccd3651d196d4b9ce6a7c21b2e3da76da25acee6dd40d87b0b164736f6c634300081e0033000000000000000000000000df6e7e94ed8c6fe335c28a8ec50381e9172f7d300000000000000000000000000000000000000000000000000000000000013e310000000000000000000000008ecd10fd6d7822ef16418689f92e5e1d5f144bd9000000000000000000000000cd1beec4de141b70ed9974eb132d7053068f5427000000000000000000000000d6cedeedf59d18ea88b30dbbbc6ffe242928420a80caa35bee32d9ad74dd17a5aa09bda24847b145200798eba26219e413323428a958f9628dcbf52a103e4399714805811ed312515684ec4b1031599dd3107109000000000000000000000000600ea15df4e3a13ae9710d6fcbd0fa1719e6be610000000000000000000000006bd1e0f78e42ca9cbfe414fa3c2f126c129f37560000000000000000000000007bc526d25b15272696a97e35f64fe76ca7f3d82f0000000000000000000000007c7d34e2da773c839cd168e8e52b7c3d94fc40e80000000000000000000000000000000000000000000000000000000000000000",
"receipt": {
"blockHash": "0x6dd3b0886cacdaca978370c10caf6f3163d9701a5dd837275557492d01394b4b",
"blockNumber": "0x105ed",
"contractAddress": "0x5b7b146395e0d04b76d3d14952890b0e5eb0abd4",
"cumulativeGasUsed": "0x1efd9a",
"from": "0xdf6e7e94ed8c6fe335c28a8ec50381e9172f7d30",
"gasUsed": "0x1efd9a",
"effectiveGasPrice": "0x2717",
"logs": [
{
"address": "0x5b7b146395e0d04b76d3d14952890b0e5eb0abd4",
"topics": [
"0xcd011e85967592f54bff824c845ac9b3e769e0f54ba0d66b4d76ac0f77fa2a00",
"0x000000000000000000000000df6e7e94ed8c6fe335c28a8ec50381e9172f7d30"
],
"data": "0x",
"blockNumber": "0x105ed",
"transactionHash": "0xe92ee9ec9ee9cf803d01a4391c9cc7b76791e711b490e0ff1f41be03806c2493",
"transactionIndex": "0x0",
"blockHash": "0x6dd3b0886cacdaca978370c10caf6f3163d9701a5dd837275557492d01394b4b",
"blockTimestamp": "0x6ac111cc",
"logIndex": "0x0",
"removed": false
}
],
"logsBloom": "0x00000020000000000002000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000800040000000000000000000000000000000000000000000000000000000000000000000000000004000000040000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"status": "0x1",
"to": null,
"transactionHash": "0xe92ee9ec9ee9cf803d01a4391c9cc7b76791e711b490e0ff1f41be03806c2493",
"transactionIndex": "0x0",
"type": "0x2"
},
"logs": [
{
"address": "0x5b7b146395e0d04b76d3d14952890b0e5eb0abd4",
"topics": [
"0xcd011e85967592f54bff824c845ac9b3e769e0f54ba0d66b4d76ac0f77fa2a00",
"0x000000000000000000000000df6e7e94ed8c6fe335c28a8ec50381e9172f7d30"
],
"data": "0x",
"blockNumber": "0x105ed",
"transactionHash": "0xe92ee9ec9ee9cf803d01a4391c9cc7b76791e711b490e0ff1f41be03806c2493",
"transactionIndex": "0x0",
"blockHash": "0x6dd3b0886cacdaca978370c10caf6f3163d9701a5dd837275557492d01394b4b",
"blockTimestamp": "0x6ac111cc",
"logIndex": "0x0",
"removed": false
}
],
"raw_transaction": {
"accessList": [],
"blockHash": "0x6dd3b0886cacdaca978370c10caf6f3163d9701a5dd837275557492d01394b4b",
"blockNumber": "0x105ed",
"blockTimestamp": "0x6ac111cc",
"chainId": "0x1352889",
"from": "0xdf6e7e94ed8c6fe335c28a8ec50381e9172f7d30",
"gas": "0x258159",
"gasPrice": "0x2717",
"maxPriorityFeePerGas": "0x2717",
"maxFeePerGas": "0x2717",
"hash": "0xe92ee9ec9ee9cf803d01a4391c9cc7b76791e711b490e0ff1f41be03806c2493",
"input": "0x6101808060405234610311576126a4803803809161001d82856104ab565b83398101906101808183031261031157610036816104ce565b9160208201519263ffffffff84169384810361031157610058604085016104ce565b610064606086016104ce565b90610071608087016104ce565b9260a08701519460c0880151968060ff8a011215610311576040519860808a016001600160401b0381118b82101761049557604052899061016081019283116103115760e001905b82821061047d5750506100cb906104ce565b9863ffffffff4611159081610472575b81610468575b501561043a576001600160a01b0381169889151580610430575b80610426575b8061041c575b156103f15760005b6004811061032a57506001600160a01b038116908115908115610295575b501561025f5760a05260805260c05260e0526101005261012052610140526101605260005b6004811061024457604051837fcd011e85967592f54bff824c845ac9b3e769e0f54ba0d66b4d76ac0f77fa2a00600080a261219a908161050a823960805181818161010e0152610206015260a05181818161147701526120ad015260c05181818161069a01528181610ed5015281816112650152611e91015260e05181818161029401528181610533015281816109200152818161170301526117b30152610100518181816105fb0152818161082501526113180152610120518181816106230152818161084d01526113f701526101405181818161143e01526116ae0152610160518181816111c801526118170152f35b81516001600160a01b03168155602090910190600101610152565b60405162461bcd60e51b815260206004820152600e60248201526d6c656761637920666163746f727960901b6044820152606490fd5b90503b1515806102a6575b3861012d565b50604051637a9e854760e11b8152602081600481855afa801561031e578b916000916102dd575b506001600160a01b0316146102a0565b9150506020813d602011610316575b816102f9602093836104ab565b810103126103115761030b8b916104ce565b386102cd565b600080fd5b3d91506102ec565b6040513d6000823e3d90fd5b6001600160a01b0361033c828c6104e2565b5116156103c35760005b818110610356575060010161010f565b6001600160a01b03610368838d6104e2565b51166001600160a01b0361037c838e6104e2565b51161461038b57600101610346565b60405162461bcd60e51b815260206004820152601060248201526f323ab83634b1b0ba329039b4b3b732b960811b6044820152606490fd5b60405162461bcd60e51b815260206004820152600660248201526539b4b3b732b960d11b6044820152606490fd5b606460405162461bcd60e51b8152602060048201526004602482015263636f726560e01b6044820152fd5b50853b1515610107565b50843b1515610101565b50833b15156100fb565b60405162461bcd60e51b81526020600482015260066024820152653237b6b0b4b760d11b6044820152606490fd5b90501515386100e1565b4681141591506100db565b6020809161048a846104ce565b8152019101906100b9565b634e487b7160e01b600052604160045260246000fd5b601f909101601f19168101906001600160401b0382119082101761049557604052565b51906001600160a01b038216820361031157565b9060048110156104f35760051b0190565b634e487b7160e01b600052603260045260246000fdfe608080604052600436101561001357600080fd5b600090813560e01c90816311cda415146114db575080632079fb9a146114a65780632da5347b146114615780634178bb3b146114265780634deefab2146113e157806375be792e1461136e5780637c539e8a146113475780637f5a7c7b14611302578063856f495a14611289578063961681dc1461124857806397b2766a1461121e578063aa1fce69146111eb578063c30aaad2146111b0578063ce56e02c14610f09578063d0ba559e146102c3578063d5438eae1461027e578063e0d1393614610235578063f53d0a8e146101f05763f8236ad9146100f257600080fd5b346101ed5760203660031901126101ed5761010b61152e565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614806101da575b806101c8575b1561019557600480546001600160a01b0319166001600160a01b0390921691821790556040519081527f0f46ae31117307bd9a5f7d575b168cb5643647cc77c8bd2b3727eb3cfce4350490602090a180f35b60405162461bcd60e51b815260206004820152600b60248201526a1c19595c881b1bd8dad95960aa1b6044820152606490fd5b506001600160a01b0381161515610143565b506004546001600160a01b03161561013d565b80fd5b50346101ed57806003193601126101ed576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b50346101ed5760203660031901126101ed576004359067ffffffffffffffff82116101ed5760e060031983360301126101ed57602061027683600401611e7d565b604051908152f35b50346101ed57806003193601126101ed576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b50346101ed5760603660031901126101ed5760043567ffffffffffffffff811161077e578060040160e060031983360301126108b2576024359067ffffffffffffffff8211610f055736602383011215610f055781600401359167ffffffffffffffff8311610f01573660248460051b83010111610f015760443567ffffffffffffffff8111610efd5761035b903690600401611544565b92909461036782611df6565b63ffffffff1646148015610ec3575b15610e955760248101946001600160a01b0361039187611e07565b16151580610e7c575b80610e5f575b15610e345760648201906103b48285611e29565b9050151580610e1e575b80610e07575b80610de9575b6103d390611dbf565b6103dc84611e7d565b9460038203610db15760405160208101907f19457468657265756d205369676e6564204d6573736167653a0a333200000000825287603c820152603c8152610425605c82611572565b519020908a908b905b60038210610b9e57505050505061045661044784611df6565b61045088611e07565b9061183c565b808952600560205260408920549097906001600160a01b03161580610b80575b61047f90611d0c565b60a483019761048d89611e07565b9661049786611df6565b976104a18a611e07565b60448701996001600160a01b03916104c79185918891906104c18f611e1b565b91611683565b166001600160a01b0390911603610b4e5781904663ffffffff6104e989611df6565b16149384610954575b8a85156108e657916105649161057261050d61057795611e07565b604080516001600160a01b039283166020820152600191810182905260608101919091527f0000000000000000000000000000000000000000000000000000000000000000909116608082015293849060a0820190565b03601f198101855284611572565b611645565b6020815191018cf5986001600160a01b039061059290611e07565b6001600160a01b03909a16991689036108b657808a52600560205260408a20896bffffffffffffffffffffffff60a01b825416179055895260066020528460408a205560001461079b5750853b156107975760405163c0c53b8b60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301527f000000000000000000000000000000000000000000000000000000000000000016602482015230604482015287908181606481838c5af1801561077357610782575b505060c4905b01956001600160a01b0361067d88611e07565b16863b1561077e576040519063b49c53a760e01b825263ffffffff7f000000000000000000000000000000000000000000000000000000000000000016600483015260248201528181604481838b5af180156107735761075e575b505063ffffffff6020967fa7865770248a6aa782bcfe84bcd16eab98d3ef61bc3ab17504733491a94376da9360ff61072c61072661072061071a608098611df6565b9a611e07565b94611e07565b97611e1b565b604051978a895260018060a01b03168b890152166040870152606086015260018060a01b0316941692a3604051908152f35b610769828092611572565b6101ed57806106d8565b6040513d84823e3d90fd5b5080fd5b8161078c91611572565b610797578638610664565b8680fd5b6107be6107ab6107c39285611e29565b91906107b686611df6565b9236916115c6565b611898565b876107d16084840185611e29565b92893b156108b25761081b61080992604051958694859463e80a7c7960e01b865287600487015260c0602487015260c4860190611620565b84810360031901604486015291611e5c565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660648401527f00000000000000000000000000000000000000000000000000000000000000001660848301523060a48301520381838b5af180156108a757610892575b5060c49061066a565b966108a08160c49399611572565b9690610889565b6040513d8a823e3d90fd5b8280fd5b60405162461bcd60e51b815260206004820152600860248201526731b932b0ba34b7b760c11b6044820152606490fd5b5061094f91610564916105726108fb8d611e1b565b6040805160ff9092166020830152600190820181905260608201526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016608082015293849060a0820190565b610577565b915061095f8a611e07565b3b15610b21576001600160a01b036109768b611e07565b168c60405163313ce56760e01b8152602081600481865afa908115610773578c908392610ae7575b5060ff6109ab8192611e1b565b169116149182610a84575b82610a03575b5050156109ca5782916104f2565b60405162461bcd60e51b81526020600482015260116024820152706f726967696e616c206d6574616461746160781b6044820152606490fd5b6040516395d89b4160e01b81529250829060049082905afa908115610a79578d91610a57575b5060208151910120610a48610a41608489018a611e29565b36916115c6565b60208151910120148c386109bc565b610a7391503d808f833e610a6b8183611572565b810190611d60565b38610a29565b6040513d8f823e3d90fd5b6040516306fdde0360e01b81529092508181600481865afa908115610773578291610acd575b5060208151910120610abf610a41898c611e29565b6020815191012014916109b6565b610ae191503d8084833e610a6b8183611572565b38610aaa565b60ff9192506109ab610b11839260203d602011610b1a575b610b098183611572565b810190611d47565b9392505061099e565b503d610aff565b60405162461bcd60e51b8152602060048201526005602482015264185cdcd95d60da1b6044820152606490fd5b60405162461bcd60e51b815260206004820152600a602482015269383932b234b1ba34b7b760b11b6044820152606490fd5b5061047f6001600160a01b03610b958a6120ab565b16159050610476565b96919994848299949c97929d9a959d1015610d9d576041610bca60248b60051b8b010160248b01611e29565b91909103610d6557602081013560408201358c1a7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a082111580610d51575b15610d17578e8d9260209460809360405193845286840152356040830152606082015282805260015afa15610d0c5789519c6001600160a01b03808f169c168c1115610cd5578a9c8b5b6004811015610c7e5780546001600160a01b03168e14610c75575b600101610c52565b60019e50610c6d565b50939892979c90959a9d91969b5098939815610c9f5791926001019061042e565b60405162461bcd60e51b815260206004820152600e60248201526d3ab735b737bbb71039b4b3b732b960911b6044820152606490fd5b60405162461bcd60e51b815260206004820152600f60248201526e39b4b3b730ba3ab9329037b93232b960891b6044820152606490fd5b6040513d8b823e3d90fd5b60405162461bcd60e51b81526020600482015260126024820152717369676e617475726520656e636f64696e6760701b6044820152606490fd5b50601b811480610c085750601c8114610c08565b60405162461bcd60e51b815260206004820152601060248201526f0e6d2cedcc2e8eae4ca40d8cadccee8d60831b6044820152606490fd5b634e487b7160e01b8a52603260045260248afd5b60405162461bcd60e51b815260206004820152601060248201526f7468726565207369676e61747572657360801b6044820152606490fd5b506103d36018610dfc6084860187611e29565b9050111590506103ca565b50610e156084840185611e29565b905015156103c4565b50603c610e2b8386611e29565b905011156103be565b606460405162461bcd60e51b8152602060048201526004602482015263383630b760e11b6044820152fd5b506001600160a01b03610e7460c48401611e07565b1615156103a0565b50601260ff610e8d60448501611e1b565b16111561039a565b60405162461bcd60e51b815260206004820152600660248201526537b934b3b4b760d11b6044820152606490fd5b50610ecd82611df6565b63ffffffff807f000000000000000000000000000000000000000000000000000000000000000016911614610376565b8580fd5b8480fd5b8380fd5b50346101ed5760203660031901126101ed57610f2361152e565b6004546001600160a01b03161515806111a6575b156111755763ffffffff461690610f4e818361183c565b8352600560205260408320546001600160a01b0316158061114e575b610f7390611d0c565b60405163313ce56760e01b81526001600160a01b03919091169190602081600481865afa90811561104d5760129160ff91869161112f575b50161115806110e8575b8061109f575b80611058575b80610ffd575b610fd090611dbf565b7fb3766c4ef7117f654e54fdfc96ff05c608c0a7bb21257050309334cb0798052c6020604051338152a380f35b506040516395d89b4160e01b81528381600481865afa90811561104d57610fd0916018918691611033575b505111159050610fc7565b61104791503d8088833e610a6b8183611572565b38611028565b6040513d86823e3d90fd5b506040516395d89b4160e01b81528381600481865afa90811561104d578491611085575b50511515610fc1565b61109991503d8086833e610a6b8183611572565b3861107c565b506040516306fdde0360e01b81528381600481865afa801561104d57603c9185916110ce575b50511115610fbb565b6110e291503d8087833e610a6b8183611572565b386110c5565b506040516306fdde0360e01b81528381600481865afa90811561104d578491611115575b50511515610fb5565b61112991503d8086833e610a6b8183611572565b3861110c565b611148915060203d602011610b1a57610b098183611572565b38610fab565b50610f736001600160a01b0361116c611167848661183c565b6120ab565b16159050610f6a565b60405162461bcd60e51b81526020600482015260096024820152686e6f7420726561647960b81b6044820152606490fd5b50803b1515610f37565b50346101ed57806003193601126101ed5760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b50346101ed5760203660031901126101ed57602090600435815260058252604060018060a01b0391205416604051908152f35b50346101ed5760203660031901126101ed5760406020916004358152600683522054604051908152f35b50346101ed57806003193601126101ed57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50346101ed5760403660031901126101ed5760043567ffffffffffffffff811161077e573660238201121561077e576112cc9036906024816004013591016115c6565b6024359163ffffffff831683036101ed576112fe6112ea8484611898565b604051918291602083526020830190611620565b0390f35b50346101ed57806003193601126101ed576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b50346101ed5760403660031901126101ed576020610276611366611500565b610450611518565b50346101ed5760803660031901126101ed57611388611500565b611390611518565b916044359060ff821682036101ed576064359067ffffffffffffffff82116101ed5760206113cf8686866113c73660048901611544565b939092611683565b6040516001600160a01b039091168152f35b50346101ed57806003193601126101ed576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b50346101ed57806003193601126101ed5760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b50346101ed57806003193601126101ed576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b50346101ed5760203660031901126101ed57600435600481101561077e57546040516001600160a01b03909116815260209150f35b90503461077e578160031936011261077e576004546001600160a01b03168152602090f35b6004359063ffffffff8216820361151357565b600080fd5b602435906001600160a01b038216820361151357565b600435906001600160a01b038216820361151357565b9181601f840112156115135782359167ffffffffffffffff8311611513576020838186019501011161151357565b90601f8019910116810190811067ffffffffffffffff82111761159457604052565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff811161159457601f01601f191660200190565b9291926115d2826115aa565b916115e06040519384611572565b829481845281830111611513578281602093846000960137010152565b60005b8381106116105750506000910152565b8181015183820152602001611600565b90602091611639815180928185528580860191016115fd565b601f01601f1916010190565b6020806116819395946116718760405198899685880137850191838301600081528151948592016115fd565b010103601f198101845283611572565b565b93929190914663ffffffff8616149361169d3682846115c6565b6020815191012085600014611815577f0000000000000000000000000000000000000000000000000000000000000000905b036117ea57611743941561178e57604080516001600160a01b038681166020830152600192820183905260608201929092527f0000000000000000000000000000000000000000000000000000000000000000909116608082015261173d9350916105728360a08101610564565b9261183c565b90602081519101209060405191602083019160ff60f81b83523060601b6021850152603584015260558301526055825261177e607583611572565b905190206001600160a01b031690565b6040805160ff9094166020850152600190840181905260608401526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016608084015261173d92916105728360a08101610564565b606460405162461bcd60e51b8152602060048201526004602482015263636f646560e01b6044820152fd5b7f0000000000000000000000000000000000000000000000000000000000000000906116cf565b6040805163ffffffff909216602083019081526001600160a01b0390931682820152815261186b606082611572565b51902090565b908151811015611882570160200190565b634e487b7160e01b600052603260045260246000fd5b9060009063ffffffff81166089810361193d5750505061193a6001600f6040516118c3604082611572565b60078152662837b63cb3b7b760c91b6020820152935b602060405195826118f388945180928580880191016115fd565b83016e01014213934b233b2b210333937b69608d1b8382015261191f8251809385602f850191016115fd565b0101602960f81b838201520301601e19810184520182611572565b90565b608f81036119755750505061193a6001600f60405161195d604082611572565b6005815264135bdb985960da1b6020820152936118d9565b61a86a81036119b25750505061193a6001600f604051611996604082611572565b60098152684176616c616e63686560b81b6020820152936118d9565b61e70881036119eb5750505061193a6001600f6040516119d3604082611572565b60058152644c696e656160d81b6020820152936118d9565b60928103611a235750505061193a6001600f604051611a0b604082611572565b6005815264536f6e696360d81b6020820152936118d9565b60fa8103611a5c5750505061193a6001600f604051611a43604082611572565b600681526546616e746f6d60d01b6020820152936118d9565b61a4b18103611a985750505061193a6001600f604051611a7d604082611572565b6008815267417262697472756d60c01b6020820152936118d9565b60388103611ace5750505061193a6001600f604051611ab8604082611572565b600381526242534360e81b6020820152936118d9565b6121058103611b065750505061193a6001600f604051611aef604082611572565b60048152634261736560e01b6020820152936118d9565b6112378103611b435750505061193a6001600f604051611b27604082611572565b6009815268149bd89a5b9a1bdbd960ba1b6020820152936118d9565b6113b28103611b7a5750505061193a6001600f604051611b64604082611572565b600381526241726360e81b6020820152936118d9565b630135288903611bb757505061193a6001600f604051611b9b604082611572565b600981526821b7b7b5b1b430b4b760b91b6020820152936118d9565b92909260405191611bc9604084611572565b600a835260203681850137849360015b15611c59575b63ffffffff86931663ffffffff600a8206166030019563ffffffff8711611c4557806000198114611c315790611c296001600a9493019860ff60f81b9060f81b168a1a9188611871565b530492611bd9565b634e487b7160e01b89526011600452602489fd5b634e487b7160e01b88526011600452602488fd5b63ffffffff8316611bdf579390949150611c72816115aa565b92611c806040519485611572565b818452601f19611c8f836115aa565b01366020860137825b828110611cb157505050506001600f61193a92936118d9565b6000198301838111611cf85781840360001901908111611cf857600191906001600160f81b031990611ce39085611871565b5116851a611cf18288611871565b5301611c98565b634e487b7160e01b85526011600452602485fd5b15611d1357565b60405162461bcd60e51b815260206004820152600c60248201526b726f7574652065786973747360a01b6044820152606490fd5b90816020910312611513575160ff811681036115135790565b6020818303126115135780519067ffffffffffffffff8211611513570181601f82011215611513578051611d93816115aa565b92611da16040519485611572565b818452602082840101116115135761193a91602080850191016115fd565b15611dc657565b60405162461bcd60e51b81526020600482015260086024820152676d6574616461746160c01b6044820152606490fd5b3563ffffffff811681036115135790565b356001600160a01b03811681036115135790565b3560ff811681036115135790565b903590601e1981360301821215611513570180359067ffffffffffffffff82116115135760200191813603831361151357565b908060209392818452848401376000828201840152601f01601f1916010190565b6004546001600160a01b03168015612077577f00000000000000000000000000000000000000000000000000000000000000009063ffffffff821646109081156120715763ffffffff4616925b821561206357935b821561205d5730915b8315612056575b611eeb82611df6565b611ef760208401611e07565b611f0360408501611e1b565b611f106060860186611e29565b929093611f206080880188611e29565b9690978a60001461204457611f3760a08201611e07565b9a5b156120325760c0611f4a9101611e07565b985b60408051610180602082015260166101a08201527521a7a7a5a1a420a4a72fa0aaaa27a927aaaa22afab1960511b6101c08083019190915263ffffffff9e8f16928201929092529d8d1660608f01526001600160a01b0391821660808f015291811660a08e015291909a1660c08c01521660e08a015260ff166101008901526101208801969096528695611fe6916101e088019190611e5c565b90601f1986830301610140870152611ffd92611e5c565b6001600160a01b03928316610160850152911661018083015203601f19810182526120289082611572565b8051906020012090565b60a061203e9101611e07565b98611f4c565b61205060c08201611e07565b9a611f39565b5030611ee2565b81611edb565b5063ffffffff461693611ed2565b82611eca565b60405162461bcd60e51b815260206004820152600c60248201526b70656572206d697373696e6760a01b6044820152606490fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690600090826120e657505050600090565b60209060246040518095819363aa1fce6960e01b835260048301525afa91821561215757819261211557505090565b9091506020813d60201161214f575b8161213160209383611572565b8101031261077e5751906001600160a01b03821682036101ed575090565b3d9150612124565b50604051903d90823e3d90fdfea26469706673582212200dfa271b1c597ccd3651d196d4b9ce6a7c21b2e3da76da25acee6dd40d87b0b164736f6c634300081e0033000000000000000000000000df6e7e94ed8c6fe335c28a8ec50381e9172f7d300000000000000000000000000000000000000000000000000000000000013e310000000000000000000000008ecd10fd6d7822ef16418689f92e5e1d5f144bd9000000000000000000000000cd1beec4de141b70ed9974eb132d7053068f5427000000000000000000000000d6cedeedf59d18ea88b30dbbbc6ffe242928420a80caa35bee32d9ad74dd17a5aa09bda24847b145200798eba26219e413323428a958f9628dcbf52a103e4399714805811ed312515684ec4b1031599dd3107109000000000000000000000000600ea15df4e3a13ae9710d6fcbd0fa1719e6be610000000000000000000000006bd1e0f78e42ca9cbfe414fa3c2f126c129f37560000000000000000000000007bc526d25b15272696a97e35f64fe76ca7f3d82f0000000000000000000000007c7d34e2da773c839cd168e8e52b7c3d94fc40e80000000000000000000000000000000000000000000000000000000000000000",
"nonce": "0x75",
"to": null,
"transactionIndex": "0x0",
"type": "0x2",
"value": "0x0",
"yParity": "0x0",
"v": "0x0",
"r": "0xa0125efb1e4eaa6718660e11d5b272daa67d1db8a76ff28af0e2e79ab30434fc",
"s": "0x7aceff4a9ce18569272bf53bc8efe133a231f7ef0f0644766cfecdb1552a4759"
}
}
}