Overview
S Balance
S Value
$0.00Latest 1 from a total of 1 transactions
| Transaction Hash |
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
| Relay | 1549022 | 401 days ago | IN | 0 S | 0.00003945 |
Latest 3 internal transactions
Advanced mode:
| Parent Transaction Hash | Block | From | To | |||
|---|---|---|---|---|---|---|
| 1548216 | 401 days ago | Contract Creation | 0 S | |||
| 1548216 | 401 days ago | Contract Creation | 0 S | |||
| 1548216 | 401 days ago | Contract Creation | 0 S |
Cross-Chain Transactions
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
XYZ Relayer
Compiler Version
vyper:0.3.10
Contract Source Code (Vyper language format)
# @version 0.3.10
"""
@title XYZ Relayer
@author CurveFi
"""
event SetMessenger:
messenger: address
interface IAgent:
def execute(_messages: DynArray[Message, MAX_MESSAGES]): nonpayable
enum Agent:
OWNERSHIP
PARAMETER
EMERGENCY
struct Message:
target: address
data: Bytes[MAX_BYTES]
MAX_BYTES: constant(uint256) = 1024
MAX_MESSAGES: constant(uint256) = 8
CODE_OFFSET: constant(uint256) = 3
OWNERSHIP_AGENT: public(immutable(address))
PARAMETER_AGENT: public(immutable(address))
EMERGENCY_AGENT: public(immutable(address))
agent: HashMap[Agent, address]
messenger: public(address)
@external
def __init__(_agent_blueprint: address, _messenger: address):
self.messenger = _messenger
log SetMessenger(_messenger)
OWNERSHIP_AGENT = create_from_blueprint(_agent_blueprint, code_offset=CODE_OFFSET)
PARAMETER_AGENT = create_from_blueprint(_agent_blueprint, code_offset=CODE_OFFSET)
EMERGENCY_AGENT = create_from_blueprint(_agent_blueprint, code_offset=CODE_OFFSET)
self.agent[Agent.OWNERSHIP] = OWNERSHIP_AGENT
self.agent[Agent.PARAMETER] = PARAMETER_AGENT
self.agent[Agent.EMERGENCY] = EMERGENCY_AGENT
@external
def relay(_agent: Agent, _messages: DynArray[Message, MAX_MESSAGES]):
"""
@notice Receive messages for an agent and relay them.
@param _agent The agent to relay messages to.
@param _messages The sequence of messages to relay.
"""
assert msg.sender == self.messenger
IAgent(self.agent[_agent]).execute(_messages)
@external
def set_messenger(_messenger: address):
"""
@notice Set the messenger which verifies messages and is permitted to call `relay`.
@dev Only callable by the OWNERSHIP_AGENT.
"""
assert msg.sender == OWNERSHIP_AGENT
self.messenger = _messenger
log SetMessenger(_messenger)Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"name":"SetMessenger","inputs":[{"name":"messenger","type":"address","indexed":false}],"anonymous":false,"type":"event"},{"stateMutability":"nonpayable","type":"constructor","inputs":[{"name":"_agent_blueprint","type":"address"},{"name":"_messenger","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"relay","inputs":[{"name":"_agent","type":"uint256"},{"name":"_messages","type":"tuple[]","components":[{"name":"target","type":"address"},{"name":"data","type":"bytes"}]}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"set_messenger","inputs":[{"name":"_messenger","type":"address"}],"outputs":[]},{"stateMutability":"view","type":"function","name":"OWNERSHIP_AGENT","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"PARAMETER_AGENT","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"EMERGENCY_AGENT","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"messenger","inputs":[],"outputs":[{"name":"","type":"address"}]}]Contract Creation Code
6102e35150346101295760206103e55f395f518060a01c6101295760405260206104055f395f518060a01c610129576060526060516001557f1cad8cc1a8d1a401572813203e22d0879c363a2a84037659987e185b0354ba0460605160805260206080a16040516003813b0359600182126101295781600382853c81815ff08015610129579050905090506102a3526040516003813b0359600182126101295781600382853c81815ff08015610129579050905090506102c3526040516003813b0359600182126101295781600382853c81815ff08015610129579050905090506102e3526102a3515f60016020525f5260405f20556102c3515f60026020525f5260405f20556102e3515f60046020525f5260405f20556102a361012d61000039610303610000f35b5f80fd5f3560e01c60026005820660011b61029901601e395f51565b63b8eee20e811861029157346102955760206102a360403960206040f3610291565b633175905b811861029157346102955760206102c360403960206040f3610291565b63c67aac47811861007a57346102955760206102e360403960206040f35b63f6caf910811861020b57606436103417610295576004358060031c6102955760405260243560040160088135116102955780355f816008811161029557801561011157905b61044081026080018160051b602086010135602086010180358060a01c61029557825260208101358101610400813511610295576020813501602084018183823750505050506001018181186100c0575b50508060605250506001543318610295575f6040516020525f5260405f205463baae8abf612280526020806122a052806122a0015f6060518083528060051b5f82600881116102955780156101d757905b828160051b60208801015261044081026080018360208801016040825182528060208301526020830181830160208251018082828560045afa50508051806020830101601f825f03163682375050601f19601f8251602001011690509050810190509050905083019250600101818118610162575b50508201602001915050905081015050803b15610295575f61228061244461229c5f855af1610208573d5f5f3e3d5ffd5b50005b6368007e12811861029157602436103417610295576004358060a01c6102955760405260206102a35f395f513318610295576040516001557f1cad8cc1a8d1a401572813203e22d0879c363a2a84037659987e185b0354ba0460405160605260206060a100610291565b633cb747bf811861029157346102955760015460405260206040f35b5f5ffd5b5f80fd0275003a0018005c0291841902a3810a1860a16576797065728300030a001500000000000000000000000013dff1809d1e9ddf9ac901f47817b7f45220a84600000000000000000000000071f718d3e4d1449d1502a6a7595eb84ebccb1683
Deployed Bytecode
0x5f3560e01c60026005820660011b61029901601e395f51565b63b8eee20e811861029157346102955760206102a360403960206040f3610291565b633175905b811861029157346102955760206102c360403960206040f3610291565b63c67aac47811861007a57346102955760206102e360403960206040f35b63f6caf910811861020b57606436103417610295576004358060031c6102955760405260243560040160088135116102955780355f816008811161029557801561011157905b61044081026080018160051b602086010135602086010180358060a01c61029557825260208101358101610400813511610295576020813501602084018183823750505050506001018181186100c0575b50508060605250506001543318610295575f6040516020525f5260405f205463baae8abf612280526020806122a052806122a0015f6060518083528060051b5f82600881116102955780156101d757905b828160051b60208801015261044081026080018360208801016040825182528060208301526020830181830160208251018082828560045afa50508051806020830101601f825f03163682375050601f19601f8251602001011690509050810190509050905083019250600101818118610162575b50508201602001915050905081015050803b15610295575f61228061244461229c5f855af1610208573d5f5f3e3d5ffd5b50005b6368007e12811861029157602436103417610295576004358060a01c6102955760405260206102a35f395f513318610295576040516001557f1cad8cc1a8d1a401572813203e22d0879c363a2a84037659987e185b0354ba0460405160605260206060a100610291565b633cb747bf811861029157346102955760015460405260206040f35b5f5ffd5b5f80fd0275003a0018005c02910000000000000000000000006c9578402a3ace046a12839f45f84aa5448e9c30000000000000000000000000ec5afc9590964f2fa0feed54f0fbb2a34480908d000000000000000000000000a73edcf18421b56d9af1ce08a34e102e23b2c4b6
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000013dff1809d1e9ddf9ac901f47817b7f45220a84600000000000000000000000071f718d3e4d1449d1502a6a7595eb84ebccb1683
-----Decoded View---------------
Arg [0] : _agent_blueprint (address): 0x13DFF1809D1E9ddf9Ac901F47817B7F45220A846
Arg [1] : _messenger (address): 0x71F718D3e4d1449D1502A6A7595eb84eBcCB1683
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 00000000000000000000000013dff1809d1e9ddf9ac901f47817b7f45220a846
Arg [1] : 00000000000000000000000071f718d3e4d1449d1502a6a7595eb84ebccb1683
Loading...
Loading
Loading...
Loading
Loading...
Loading
Net Worth in USD
$36.61
Net Worth in S
Token Allocations
USDC
100.00%
Multichain Portfolio | 35 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|---|---|---|---|---|
| GNO | 100.00% | $0.999631 | 36.6276 | $36.61 |
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.