Source Code
Overview
ETH Balance
31.577796574759165656 ETH
Token Holdings
More Info
ContractCreator
Multichain Info
N/A
Latest 1 from a total of 1 transactions
| Transaction Hash |
Method
|
Block
|
From
|
To
|
Amount
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Transfer | 6842692 | 519 days ago | IN | 10 ETH | 0.00003162 |
Latest 25 internal transactions (View All)
Advanced mode:
| Parent Transaction Hash | Method | Block |
From
|
To
|
Amount
|
||
|---|---|---|---|---|---|---|---|
| Transfer | 10381562 | 8 days ago | 0 ETH | ||||
| Transfer | 10381504 | 8 days ago | 0 ETH | ||||
| Transfer | 10377105 | 9 days ago | 0.00058564 ETH | ||||
| Transfer | 10377102 | 9 days ago | 0.00058564 ETH | ||||
| Transfer | 10377100 | 9 days ago | 0.00067937 ETH | ||||
| Transfer | 10376970 | 9 days ago | 0.0006783 ETH | ||||
| Transfer | 10376954 | 9 days ago | 0.00202731 ETH | ||||
| Transfer | 10244615 | 28 days ago | 0.003 ETH | ||||
| Transfer | 10244537 | 28 days ago | 0.003 ETH | ||||
| Transfer | 10244358 | 28 days ago | 0.00058454 ETH | ||||
| Transfer | 10243091 | 28 days ago | 0.001 ETH | ||||
| Transfer | 10243065 | 28 days ago | 0.001 ETH | ||||
| Transfer | 10239414 | 29 days ago | 0.00157825 ETH | ||||
| Transfer | 10239331 | 29 days ago | 0.00059321 ETH | ||||
| Transfer | 10239210 | 29 days ago | 0.01058715 ETH | ||||
| Transfer | 10239160 | 29 days ago | 0.01058715 ETH | ||||
| Transfer | 10133186 | 44 days ago | 0.0001 ETH | ||||
| Transfer | 10076190 | 52 days ago | 0.01058715 ETH | ||||
| Transfer | 10076190 | 52 days ago | 0.01058715 ETH | ||||
| Transfer | 10076180 | 52 days ago | 0.00059321 ETH | ||||
| Transfer | 10065008 | 54 days ago | 0.001 ETH | ||||
| Transfer | 10065001 | 54 days ago | 0.00159449 ETH | ||||
| Transfer | 10064945 | 54 days ago | 0.00158812 ETH | ||||
| Transfer | 10064921 | 54 days ago | 0.00059449 ETH | ||||
| Transfer | 10064056 | 54 days ago | 0.01058715 ETH |
Loading...
Loading
Loading...
Loading
Loading...
Loading
This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.
Contract Name:
Agent
Compiler Version
v0.8.25+commit.b61c2a91
Optimization Enabled:
Yes with 20000 runs
Other Settings:
paris EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: Apache-2.0 // SPDX-FileCopyrightText: 2023 Snowfork <[email protected]> pragma solidity 0.8.25; /// @title An agent contract that acts on behalf of a consensus system on Polkadot /// @dev Instances of this contract act as an agents for arbitrary consensus systems on Polkadot. These consensus systems /// can include toplevel parachains as as well as nested consensus systems within a parachain. contract Agent { error Unauthorized(); /// @dev The unique ID for this agent, derived from the MultiLocation of the corresponding consensus system on Polkadot bytes32 public immutable AGENT_ID; /// @dev The gateway contract controlling this agent address public immutable GATEWAY; constructor(bytes32 agentID) { AGENT_ID = agentID; GATEWAY = msg.sender; } /// @dev Agents can receive ether permissionlessly. /// This is important, as agents for top-level parachains also act as sovereign accounts from which message relayers /// are rewarded. receive() external payable {} /// @dev Allow the gateway to invoke some code within the context of this agent /// using `delegatecall`. Typically this code will be provided by `AgentExecutor.sol`. function invoke(address executor, bytes calldata data) external returns (bool, bytes memory) { if (msg.sender != GATEWAY) { revert Unauthorized(); } return executor.delegatecall(data); } }
{
"remappings": [
"canonical-weth/=lib/canonical-weth/contracts/",
"ds-test/=lib/ds-test/src/",
"forge-std/=lib/forge-std/src/",
"openzeppelin-contracts/=lib/openzeppelin-contracts/",
"openzeppelin/=lib/openzeppelin-contracts/contracts/",
"prb/math/=lib/prb-math/",
"@prb/test/=lib/prb-math/lib/prb-test/src/",
"erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/",
"prb-math/=lib/prb-math/src/",
"prb-test/=lib/prb-math/lib/prb-test/src/"
],
"optimizer": {
"enabled": true,
"runs": 20000
},
"metadata": {
"useLiteralContent": false,
"bytecodeHash": "ipfs",
"appendCBOR": true
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
},
"evmVersion": "paris",
"viaIR": true,
"libraries": {
"src/Assets.sol": {
"Assets": "0xcdF343dF71c1843F7A3074cc12fB1C2B5973010B"
},
"src/TokenLib.sol": {
"TokenLib": "0xb454ee58caeA44473926FFB21F02ed26E896E452"
},
"src/Verification.sol": {
"Verification": "0x30c740a2fa36fF3fF995086D565a6b8Cdb70c99c"
}
}
}Contract ABI
API[{"inputs":[{"internalType":"bytes32","name":"agentID","type":"bytes32"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"Unauthorized","type":"error"},{"inputs":[],"name":"AGENT_ID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"GATEWAY","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"executor","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"invoke","outputs":[{"internalType":"bool","name":"","type":"bool"},{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
60c034606a57601f61040938819003918201601f19168301916001600160401b03831184841017606f57808492602094604052833981010312606a57516080523360a05260405161038390816100868239608051816087015260a05181818161013801526103290152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604081815260049182361015610022575b505050361561002057600080fd5b005b600092833560e01c918263338c5371146102df575081639bb66b28146100ae575063e905182a146100535780610012565b346100aa57817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100aa57602090517f00000000000000000000000000000000000000000000000000000000000000008152f35b5080fd5b8284346102dc57817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102dc5773ffffffffffffffffffffffffffffffffffffffff92803584811681036102d85760243567ffffffffffffffff958682116102d457366023830112156102d45781840135908782116102d05736602483850101116102d0577f00000000000000000000000000000000000000000000000000000000000000001633036102a8579160248593928385948951938493018337810184815203915af4933d1561029d573d9080821161027157845192601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168401918211848310176102455750845281523d82602083013e92905b82519384921515835260209084602085015280518095850152825b85811061022e57505050601f837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe092606080968601015201168101030190f35b8181018301518782016060015286945082016101ee565b8460416024927f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b6024846041857f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b5050606092906101d3565b8386517f82b42900000000000000000000000000000000000000000000000000000000008152fd5b8580fd5b8480fd5b8280fd5b80fd5b8490346100aa57817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100aa5760209073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f3fea26469706673582212201b1cc577f24b9d8e5472b448ec535a07efeb64b1500d66f0e9d785be4e3792d964736f6c6343000819003381c5ab2571199e3188135178f3c2c8e2d268be1313d029b30f534fa579b69b79
Deployed Bytecode
0x6080604081815260049182361015610022575b505050361561002057600080fd5b005b600092833560e01c918263338c5371146102df575081639bb66b28146100ae575063e905182a146100535780610012565b346100aa57817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100aa57602090517f81c5ab2571199e3188135178f3c2c8e2d268be1313d029b30f534fa579b69b798152f35b5080fd5b8284346102dc57817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102dc5773ffffffffffffffffffffffffffffffffffffffff92803584811681036102d85760243567ffffffffffffffff958682116102d457366023830112156102d45781840135908782116102d05736602483850101116102d0577f0000000000000000000000009ed8b47bc3417e3bd0507adc06e56e2fa360a4e91633036102a8579160248593928385948951938493018337810184815203915af4933d1561029d573d9080821161027157845192601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168401918211848310176102455750845281523d82602083013e92905b82519384921515835260209084602085015280518095850152825b85811061022e57505050601f837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe092606080968601015201168101030190f35b8181018301518782016060015286945082016101ee565b8460416024927f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b6024846041857f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b5050606092906101d3565b8386517f82b42900000000000000000000000000000000000000000000000000000000008152fd5b8580fd5b8480fd5b8280fd5b80fd5b8490346100aa57817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100aa5760209073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000009ed8b47bc3417e3bd0507adc06e56e2fa360a4e9168152f3fea26469706673582212201b1cc577f24b9d8e5472b448ec535a07efeb64b1500d66f0e9d785be4e3792d964736f6c63430008190033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
81c5ab2571199e3188135178f3c2c8e2d268be1313d029b30f534fa579b69b79
-----Decoded View---------------
Arg [0] : agentID (bytes32): 0x81c5ab2571199e3188135178f3c2c8e2d268be1313d029b30f534fa579b69b79
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 81c5ab2571199e3188135178f3c2c8e2d268be1313d029b30f534fa579b69b79
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.