Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Multichain Info
No addresses found
Latest 6 from a total of 6 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Withdraw All | 11883680 | 1494 days ago | IN | 0 ETH | 0.01385487 | ||||
Withdraw All | 11883680 | 1494 days ago | IN | 0 ETH | 0.01477313 | ||||
Swap | 11883632 | 1494 days ago | IN | 0 ETH | 0.04643128 | ||||
Add Synth | 11883209 | 1494 days ago | IN | 0 ETH | 0.0094744 | ||||
Add Synth | 11883202 | 1494 days ago | IN | 0 ETH | 0.00991237 | ||||
Add Synth | 11883201 | 1494 days ago | IN | 0 ETH | 0.00991507 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
SynthetixAMM
Compiler Version
v0.8.1+commit.df193b15
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-02-18 */ // SPDX-License-Identifier: bsl-1.1 pragma solidity ^0.8.1; pragma experimental ABIEncoderV2; interface IKeep3rV1Quote { struct LiquidityParams { uint sReserveA; uint sReserveB; uint uReserveA; uint uReserveB; uint sLiquidity; uint uLiquidity; } struct QuoteParams { uint quoteOut; uint amountOut; uint currentOut; uint sTWAP; uint uTWAP; uint sCUR; uint uCUR; } function assetToUsd(address tokenIn, uint amountIn, uint granularity) external returns (QuoteParams memory q, LiquidityParams memory l); function assetToEth(address tokenIn, uint amountIn, uint granularity) external view returns (QuoteParams memory q, LiquidityParams memory l); function ethToUsd(uint amountIn, uint granularity) external view returns (QuoteParams memory q, LiquidityParams memory l); function pairFor(address tokenA, address tokenB) external pure returns (address sPair, address uPair); function sPairFor(address tokenA, address tokenB) external pure returns (address sPair); function uPairFor(address tokenA, address tokenB) external pure returns (address uPair); function getLiquidity(address tokenA, address tokenB) external view returns (LiquidityParams memory l); function assetToAsset(address tokenIn, uint amountIn, address tokenOut, uint granularity) external view returns (QuoteParams memory q, LiquidityParams memory l); } interface IERC20 { function totalSupply() external view returns (uint256); function decimals() external view returns (uint8); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); function name() external view returns (string memory); function symbol() external view returns (string memory); } library Address { function isContract(address account) internal view returns (bool) { bytes32 codehash; bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470; // solhint-disable-next-line no-inline-assembly assembly { codehash := extcodehash(account) } return (codehash != 0x0 && codehash != accountHash); } } library SafeERC20 { using Address for address; function safeTransfer(IERC20 token, address to, uint value) internal { callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value)); } function safeTransferFrom(IERC20 token, address from, address to, uint value) internal { callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value)); } function safeApprove(IERC20 token, address spender, uint value) internal { require((value == 0) || (token.allowance(address(this), spender) == 0), "SafeERC20: approve from non-zero to non-zero allowance" ); callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value)); } function callOptionalReturn(IERC20 token, bytes memory data) private { require(address(token).isContract(), "SafeERC20: call to non-contract"); // solhint-disable-next-line avoid-low-level-calls (bool success, bytes memory returndata) = address(token).call(data); require(success, "SafeERC20: low-level call failed"); if (returndata.length > 0) { // Return data is optional // solhint-disable-next-line max-line-length require(abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed"); } } } contract SynthetixAMM { using SafeERC20 for IERC20; address public governance; address public pendingGovernance; mapping(address => address) synths; IKeep3rV1Quote public constant exchange = IKeep3rV1Quote(0xDd6eb7F03F8cd9b5C9565172E37C0Bb98D67E078); event Swap( address indexed sender, uint amount0In, uint amount1In, uint amount0Out, uint amount1Out, address indexed to ); constructor() { governance = msg.sender; } function setGovernance(address _gov) external { require(msg.sender == governance); pendingGovernance = _gov; } function acceptGovernance() external { require(msg.sender == pendingGovernance); governance = pendingGovernance; } function withdraw(address token, uint amount) external { require(msg.sender == governance); IERC20(token).safeTransfer(governance, amount); } function withdrawAll(address token) external { require(msg.sender == governance); IERC20(token).safeTransfer(governance, IERC20(token).balanceOf(address(this))); } function addSynth(address synth, address token) external { require(msg.sender == governance); synths[synth] = token; } function quote(address synthIn, uint amountIn, address synthOut) public view returns (uint) { address _tokenOut = synths[synthOut]; address _tokenIn = synths[synthIn]; (IKeep3rV1Quote.QuoteParams memory q,) = exchange.assetToAsset(_tokenIn, amountIn * 10 ** IERC20(_tokenIn).decimals() / 10 ** 18, _tokenOut, 2); return q.quoteOut * 10 ** 18 / 10 ** IERC20(_tokenOut).decimals(); } function swap(address synthIn, uint amountIn, address synthOut, address recipient) external returns (uint) { uint quoteOut = quote(synthIn, amountIn, synthOut); IERC20(synthIn).safeTransferFrom(msg.sender, address(this), amountIn); IERC20(synthOut).safeTransfer(recipient, quoteOut); emit Swap(msg.sender, amountIn, 0, 0, quoteOut, recipient); return quoteOut; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount0In","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1In","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount0Out","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1Out","type":"uint256"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"Swap","type":"event"},{"inputs":[],"name":"acceptGovernance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"synth","type":"address"},{"internalType":"address","name":"token","type":"address"}],"name":"addSynth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"exchange","outputs":[{"internalType":"contract IKeep3rV1Quote","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"governance","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingGovernance","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"synthIn","type":"address"},{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"address","name":"synthOut","type":"address"}],"name":"quote","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_gov","type":"address"}],"name":"setGovernance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"synthIn","type":"address"},{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"address","name":"synthOut","type":"address"},{"internalType":"address","name":"recipient","type":"address"}],"name":"swap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"withdrawAll","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b50600080546001600160a01b03191633179055610d21806100326000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c8063d2f7265a11610066578063d2f7265a14610111578063f39c38a014610119578063f3fef3a314610121578063fa09e63014610134578063ff11b5c0146101475761009e565b8063238efcbc146100a35780635a837efd146100ad5780635aa6e675146100d6578063ab033ea9146100eb578063ad18ad0c146100fe575b600080fd5b6100ab61015a565b005b6100c06100bb366004610890565b610195565b6040516100cd9190610b1c565b60405180910390f35b6100de610229565b6040516100cd91906109eb565b6100ab6100f93660046107e0565b610238565b6100c061010c366004610855565b610271565b6100de61046f565b6100de610487565b6100ab61012f36600461082c565b610496565b6100ab6101423660046107e0565b6104cb565b6100ab6101553660046107fa565b61057e565b6001546001600160a01b0316331461017157600080fd5b600154600080546001600160a01b0319166001600160a01b03909216919091179055565b6000806101a3868686610271565b90506101ba6001600160a01b0387163330886105c3565b6101ce6001600160a01b0385168483610621565b826001600160a01b0316336001600160a01b03167fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d82287600080866040516102189493929190610b25565b60405180910390a395945050505050565b6000546001600160a01b031681565b6000546001600160a01b0316331461024f57600080fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03808216600090815260026020908152604080832054878516845281842054825163313ce56760e01b81529251949591821694911692859273dd6eb7f03f8cd9b5c9565172e37c0bb98d67e07892637c661949928692670de0b6b3a764000092849263313ce5679260048082019391829003018186803b1580156102fb57600080fd5b505afa15801561030f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103339190610991565b61033e90600a610be5565b610348908b610cb6565b6103529190610b7f565b8660026040518563ffffffff1660e01b81526004016103749493929190610a3c565b6101a06040518083038186803b15801561038d57600080fd5b505afa1580156103a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103c591906108fc565b509050826001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561040157600080fd5b505afa158015610415573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104399190610991565b61044490600a610be5565b815161045890670de0b6b3a7640000610cb6565b6104629190610b7f565b93505050505b9392505050565b73dd6eb7f03f8cd9b5c9565172e37c0bb98d67e07881565b6001546001600160a01b031681565b6000546001600160a01b031633146104ad57600080fd5b6000546104c7906001600160a01b03848116911683610621565b5050565b6000546001600160a01b031633146104e257600080fd5b6000546040516370a0823160e01b815261057b916001600160a01b0390811691908416906370a082319061051a9030906004016109eb565b60206040518083038186803b15801561053257600080fd5b505afa158015610546573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061056a9190610979565b6001600160a01b0384169190610621565b50565b6000546001600160a01b0316331461059557600080fd5b6001600160a01b03918216600090815260026020526040902080546001600160a01b03191691909216179055565b61061b846323b872dd60e01b8585856040516024016105e4939291906109ff565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152610645565b50505050565b6106408363a9059cbb60e01b84846040516024016105e4929190610a23565b505050565b610657826001600160a01b0316610732565b61067c5760405162461bcd60e51b815260040161067390610ae5565b60405180910390fd5b600080836001600160a01b03168360405161069791906109b2565b6000604051808303816000865af19150503d80600081146106d4576040519150601f19603f3d011682016040523d82523d6000602084013e6106d9565b606091505b5091509150816106fb5760405162461bcd60e51b815260040161067390610a66565b80511561061b578080602001905181019061071691906108dc565b61061b5760405162461bcd60e51b815260040161067390610a9b565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081158015906107665750808214155b925050505b919050565b80356001600160a01b038116811461076b57600080fd5b600060c08284031215610798578081fd5b6107a260c0610b40565b9050815181526020820151602082015260408201516040820152606082015160608201526080820151608082015260a082015160a082015292915050565b6000602082840312156107f1578081fd5b61046882610770565b6000806040838503121561080c578081fd5b61081583610770565b915061082360208401610770565b90509250929050565b6000806040838503121561083e578182fd5b61084783610770565b946020939093013593505050565b600080600060608486031215610869578081fd5b61087284610770565b92506020840135915061088760408501610770565b90509250925092565b600080600080608085870312156108a5578081fd5b6108ae85610770565b9350602085013592506108c360408601610770565b91506108d160608601610770565b905092959194509250565b6000602082840312156108ed578081fd5b81518015158114610468578182fd5b6000808284036101a0811215610910578283fd5b60e081121561091d578283fd5b5061092860e0610b40565b835181526020840151602082015260408401516040820152606084015160608201526080840151608082015260a084015160a082015260c084015160c0820152809250506108238460e08501610787565b60006020828403121561098a578081fd5b5051919050565b6000602082840312156109a2578081fd5b815160ff81168114610468578182fd5b60008251815b818110156109d257602081860181015185830152016109b8565b818111156109e05782828501525b509190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b039485168152602081019390935292166040820152606081019190915260800190565b6020808252818101527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604082015260600190565b6020808252602a908201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6040820152691bdd081cdd58d8d9595960b21b606082015260800190565b6020808252601f908201527f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400604082015260600190565b90815260200190565b93845260208401929092526040830152606082015260800190565b604051601f8201601f1916810167ffffffffffffffff81118282101715610b7757634e487b7160e01b600052604160045260246000fd5b604052919050565b600082610b9a57634e487b7160e01b81526012600452602481fd5b500490565b80825b6001808611610bb15750610bdc565b818704821115610bc357610bc3610cd5565b80861615610bd057918102915b9490941c938002610ba2565b94509492505050565b600061046860001960ff851684600082610c0157506001610468565b81610c0e57506000610468565b8160018114610c245760028114610c2e57610c5b565b6001915050610468565b60ff841115610c3f57610c3f610cd5565b6001841b915084821115610c5557610c55610cd5565b50610468565b5060208310610133831016604e8410600b8410161715610c8e575081810a83811115610c8957610c89610cd5565b610468565b610c9b8484846001610b9f565b808604821115610cad57610cad610cd5565b02949350505050565b6000816000190483118215151615610cd057610cd0610cd5565b500290565b634e487b7160e01b600052601160045260246000fdfea264697066735822122078b530288f1cffe879bb7d9062e904deb3aa9b9c8d27ea4ecafa987583c18a6e64736f6c63430008010033
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061009e5760003560e01c8063d2f7265a11610066578063d2f7265a14610111578063f39c38a014610119578063f3fef3a314610121578063fa09e63014610134578063ff11b5c0146101475761009e565b8063238efcbc146100a35780635a837efd146100ad5780635aa6e675146100d6578063ab033ea9146100eb578063ad18ad0c146100fe575b600080fd5b6100ab61015a565b005b6100c06100bb366004610890565b610195565b6040516100cd9190610b1c565b60405180910390f35b6100de610229565b6040516100cd91906109eb565b6100ab6100f93660046107e0565b610238565b6100c061010c366004610855565b610271565b6100de61046f565b6100de610487565b6100ab61012f36600461082c565b610496565b6100ab6101423660046107e0565b6104cb565b6100ab6101553660046107fa565b61057e565b6001546001600160a01b0316331461017157600080fd5b600154600080546001600160a01b0319166001600160a01b03909216919091179055565b6000806101a3868686610271565b90506101ba6001600160a01b0387163330886105c3565b6101ce6001600160a01b0385168483610621565b826001600160a01b0316336001600160a01b03167fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d82287600080866040516102189493929190610b25565b60405180910390a395945050505050565b6000546001600160a01b031681565b6000546001600160a01b0316331461024f57600080fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03808216600090815260026020908152604080832054878516845281842054825163313ce56760e01b81529251949591821694911692859273dd6eb7f03f8cd9b5c9565172e37c0bb98d67e07892637c661949928692670de0b6b3a764000092849263313ce5679260048082019391829003018186803b1580156102fb57600080fd5b505afa15801561030f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103339190610991565b61033e90600a610be5565b610348908b610cb6565b6103529190610b7f565b8660026040518563ffffffff1660e01b81526004016103749493929190610a3c565b6101a06040518083038186803b15801561038d57600080fd5b505afa1580156103a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103c591906108fc565b509050826001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561040157600080fd5b505afa158015610415573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104399190610991565b61044490600a610be5565b815161045890670de0b6b3a7640000610cb6565b6104629190610b7f565b93505050505b9392505050565b73dd6eb7f03f8cd9b5c9565172e37c0bb98d67e07881565b6001546001600160a01b031681565b6000546001600160a01b031633146104ad57600080fd5b6000546104c7906001600160a01b03848116911683610621565b5050565b6000546001600160a01b031633146104e257600080fd5b6000546040516370a0823160e01b815261057b916001600160a01b0390811691908416906370a082319061051a9030906004016109eb565b60206040518083038186803b15801561053257600080fd5b505afa158015610546573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061056a9190610979565b6001600160a01b0384169190610621565b50565b6000546001600160a01b0316331461059557600080fd5b6001600160a01b03918216600090815260026020526040902080546001600160a01b03191691909216179055565b61061b846323b872dd60e01b8585856040516024016105e4939291906109ff565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152610645565b50505050565b6106408363a9059cbb60e01b84846040516024016105e4929190610a23565b505050565b610657826001600160a01b0316610732565b61067c5760405162461bcd60e51b815260040161067390610ae5565b60405180910390fd5b600080836001600160a01b03168360405161069791906109b2565b6000604051808303816000865af19150503d80600081146106d4576040519150601f19603f3d011682016040523d82523d6000602084013e6106d9565b606091505b5091509150816106fb5760405162461bcd60e51b815260040161067390610a66565b80511561061b578080602001905181019061071691906108dc565b61061b5760405162461bcd60e51b815260040161067390610a9b565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081158015906107665750808214155b925050505b919050565b80356001600160a01b038116811461076b57600080fd5b600060c08284031215610798578081fd5b6107a260c0610b40565b9050815181526020820151602082015260408201516040820152606082015160608201526080820151608082015260a082015160a082015292915050565b6000602082840312156107f1578081fd5b61046882610770565b6000806040838503121561080c578081fd5b61081583610770565b915061082360208401610770565b90509250929050565b6000806040838503121561083e578182fd5b61084783610770565b946020939093013593505050565b600080600060608486031215610869578081fd5b61087284610770565b92506020840135915061088760408501610770565b90509250925092565b600080600080608085870312156108a5578081fd5b6108ae85610770565b9350602085013592506108c360408601610770565b91506108d160608601610770565b905092959194509250565b6000602082840312156108ed578081fd5b81518015158114610468578182fd5b6000808284036101a0811215610910578283fd5b60e081121561091d578283fd5b5061092860e0610b40565b835181526020840151602082015260408401516040820152606084015160608201526080840151608082015260a084015160a082015260c084015160c0820152809250506108238460e08501610787565b60006020828403121561098a578081fd5b5051919050565b6000602082840312156109a2578081fd5b815160ff81168114610468578182fd5b60008251815b818110156109d257602081860181015185830152016109b8565b818111156109e05782828501525b509190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b039485168152602081019390935292166040820152606081019190915260800190565b6020808252818101527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604082015260600190565b6020808252602a908201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6040820152691bdd081cdd58d8d9595960b21b606082015260800190565b6020808252601f908201527f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400604082015260600190565b90815260200190565b93845260208401929092526040830152606082015260800190565b604051601f8201601f1916810167ffffffffffffffff81118282101715610b7757634e487b7160e01b600052604160045260246000fd5b604052919050565b600082610b9a57634e487b7160e01b81526012600452602481fd5b500490565b80825b6001808611610bb15750610bdc565b818704821115610bc357610bc3610cd5565b80861615610bd057918102915b9490941c938002610ba2565b94509492505050565b600061046860001960ff851684600082610c0157506001610468565b81610c0e57506000610468565b8160018114610c245760028114610c2e57610c5b565b6001915050610468565b60ff841115610c3f57610c3f610cd5565b6001841b915084821115610c5557610c55610cd5565b50610468565b5060208310610133831016604e8410600b8410161715610c8e575081810a83811115610c8957610c89610cd5565b610468565b610c9b8484846001610b9f565b808604821115610cad57610cad610cd5565b02949350505050565b6000816000190483118215151615610cd057610cd0610cd5565b500290565b634e487b7160e01b600052601160045260246000fdfea264697066735822122078b530288f1cffe879bb7d9062e904deb3aa9b9c8d27ea4ecafa987583c18a6e64736f6c63430008010033
Deployed Bytecode Sourcemap
4013:2239:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4727:137;;;:::i;:::-;;5837:412;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4082:25;;;:::i;:::-;;;;;;;:::i;4581:133::-;;;;;;:::i;:::-;;:::i;5403:422::-;;;;;;:::i;:::-;;:::i;4206:100::-;;;:::i;4114:32::-;;;:::i;4876:164::-;;;;;;:::i;:::-;;:::i;5052:186::-;;;;;;:::i;:::-;;:::i;5250:141::-;;;;;;:::i;:::-;;:::i;4727:137::-;4797:17;;-1:-1:-1;;;;;4797:17:0;4783:10;:31;4775:40;;;;;;4839:17;;;4826:30;;-1:-1:-1;;;;;;4826:30:0;-1:-1:-1;;;;;4839:17:0;;;4826:30;;;;;;4727:137::o;5837:412::-;5938:4;5955:13;5971:34;5977:7;5986:8;5996;5971:5;:34::i;:::-;5955:50;-1:-1:-1;6016:69:0;-1:-1:-1;;;;;6016:32:0;;6049:10;6069:4;6076:8;6016:32;:69::i;:::-;6096:50;-1:-1:-1;;;;;6096:29:0;;6126:9;6137:8;6096:29;:50::i;:::-;6205:9;-1:-1:-1;;;;;6162:53:0;6167:10;-1:-1:-1;;;;;6162:53:0;;6179:8;6189:1;6192;6195:8;6162:53;;;;;;;;;:::i;:::-;;;;;;;;6233:8;5837:412;-1:-1:-1;;;;;5837:412:0:o;4082:25::-;;;-1:-1:-1;;;;;4082:25:0;;:::o;4581:133::-;4660:10;;-1:-1:-1;;;;;4660:10:0;4646;:24;4638:33;;;;;;4682:17;:24;;-1:-1:-1;;;;;;4682:24:0;-1:-1:-1;;;;;4682:24:0;;;;;;;;;;4581:133::o;5403:422::-;-1:-1:-1;;;;;5526:16:0;;;5489:4;5526:16;;;:6;:16;;;;;;;;;5572:15;;;;;;;;;5688:27;;-1:-1:-1;;;5688:27:0;;;;5489:4;;5526:16;;;;5572:15;;;5489:4;;4263:42;;5639:21;;5572:15;;5718:8;;5572:15;;5688:25;;:27;;;;;;;;;;;5572:15;5688:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5682:33;;:2;:33;:::i;:::-;5671:44;;:8;:44;:::i;:::-;:55;;;;:::i;:::-;5728:9;5739:1;5639:102;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5598:143;;;5796:9;-1:-1:-1;;;;;5789:26:0;;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5783:34;;:2;:34;:::i;:::-;5759:10;;:21;;5772:8;5759:21;:::i;:::-;:58;;;;:::i;:::-;5752:65;;;;;5403:422;;;;;;:::o;4206:100::-;4263:42;4206:100;:::o;4114:32::-;;;-1:-1:-1;;;;;4114:32:0;;:::o;4876:164::-;4964:10;;-1:-1:-1;;;;;4964:10:0;4950;:24;4942:33;;;;;;5013:10;;4986:46;;-1:-1:-1;;;;;4986:26:0;;;;5013:10;5025:6;4986:26;:46::i;:::-;4876:164;;:::o;5052:186::-;5130:10;;-1:-1:-1;;;;;5130:10:0;5116;:24;5108:33;;;;;;5179:10;;5191:38;;-1:-1:-1;;;5191:38:0;;5152:78;;-1:-1:-1;;;;;5179:10:0;;;;5191:23;;;;;;:38;;5223:4;;5191:38;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;5152:26:0;;;:78;:26;:78::i;:::-;5052:186;:::o;5250:141::-;5340:10;;-1:-1:-1;;;;;5340:10:0;5326;:24;5318:33;;;;;;-1:-1:-1;;;;;5362:13:0;;;;;;;:6;:13;;;;;:21;;-1:-1:-1;;;;;;5362:21:0;;;;;;;;5250:141::o;2849:201::-;2947:95;2966:5;2996:27;;;3025:4;3031:2;3035:5;2973:68;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;2973:68:0;;;;;;;;;;;;;;-1:-1:-1;;;;;2973:68:0;-1:-1:-1;;;;;;2973:68:0;;;;;;;;;;2947:18;:95::i;:::-;2849:201;;;;:::o;2668:173::-;2748:85;2767:5;2797:23;;;2822:2;2826:5;2774:58;;;;;;;;;:::i;2748:85::-;2668:173;;;:::o;3408:598::-;3496:27;3504:5;-1:-1:-1;;;;;3496:25:0;;:27::i;:::-;3488:71;;;;-1:-1:-1;;;3488:71:0;;;;;;;:::i;:::-;;;;;;;;;3633:12;3647:23;3682:5;-1:-1:-1;;;;;3674:19:0;3694:4;3674:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3632:67;;;;3718:7;3710:52;;;;-1:-1:-1;;;3710:52:0;;;;;;;:::i;:::-;3779:17;;:21;3775:224;;3921:10;3910:30;;;;;;;;;;;;:::i;:::-;3902:85;;;;-1:-1:-1;;;3902:85:0;;;;;;;:::i;2228:374::-;2288:4;2511:20;;2354:66;2551:15;;;;;:42;;;2582:11;2570:8;:23;;2551:42;2543:51;;;;2228:374;;;;:::o;14:175:1:-;84:20;;-1:-1:-1;;;;;133:31:1;;123:42;;113:2;;179:1;176;169:12;194:533;;318:4;306:9;301:3;297:19;293:30;290:2;;;340:5;333;326:20;290:2;366:21;382:4;366:21;:::i;:::-;357:30;;416:9;410:16;403:5;396:31;480:2;469:9;465:18;459:25;454:2;447:5;443:14;436:49;538:2;527:9;523:18;517:25;512:2;505:5;501:14;494:49;596:2;585:9;581:18;575:25;570:2;563:5;559:14;552:49;655:3;644:9;640:19;634:26;628:3;621:5;617:15;610:51;715:3;704:9;700:19;694:26;688:3;681:5;677:15;670:51;280:447;;;;:::o;732:198::-;;844:2;832:9;823:7;819:23;815:32;812:2;;;865:6;857;850:22;812:2;893:31;914:9;893:31;:::i;935:274::-;;;1064:2;1052:9;1043:7;1039:23;1035:32;1032:2;;;1085:6;1077;1070:22;1032:2;1113:31;1134:9;1113:31;:::i;:::-;1103:41;;1163:40;1199:2;1188:9;1184:18;1163:40;:::i;:::-;1153:50;;1022:187;;;;;:::o;1214:266::-;;;1343:2;1331:9;1322:7;1318:23;1314:32;1311:2;;;1364:6;1356;1349:22;1311:2;1392:31;1413:9;1392:31;:::i;:::-;1382:41;1470:2;1455:18;;;;1442:32;;-1:-1:-1;;;1301:179:1:o;1485:342::-;;;;1631:2;1619:9;1610:7;1606:23;1602:32;1599:2;;;1652:6;1644;1637:22;1599:2;1680:31;1701:9;1680:31;:::i;:::-;1670:41;;1758:2;1747:9;1743:18;1730:32;1720:42;;1781:40;1817:2;1806:9;1802:18;1781:40;:::i;:::-;1771:50;;1589:238;;;;;:::o;1832:419::-;;;;;1995:3;1983:9;1974:7;1970:23;1966:33;1963:2;;;2017:6;2009;2002:22;1963:2;2045:31;2066:9;2045:31;:::i;:::-;2035:41;;2123:2;2112:9;2108:18;2095:32;2085:42;;2146:40;2182:2;2171:9;2167:18;2146:40;:::i;:::-;2136:50;;2205:40;2241:2;2230:9;2226:18;2205:40;:::i;:::-;2195:50;;1953:298;;;;;;;:::o;2256:297::-;;2376:2;2364:9;2355:7;2351:23;2347:32;2344:2;;;2397:6;2389;2382:22;2344:2;2434:9;2428:16;2487:5;2480:13;2473:21;2466:5;2463:32;2453:2;;2514:6;2506;2499:22;2558:866;;;2747:9;2738:7;2734:23;2777:3;2773:2;2769:12;2766:2;;;2799:6;2791;2784:22;2766:2;2828:4;2824:2;2820:13;2817:2;;;2851:6;2843;2836:22;2817:2;;2882:21;2898:4;2882:21;:::i;:::-;2932:9;2926:16;2919:5;2912:31;2996:2;2985:9;2981:18;2975:25;2970:2;2963:5;2959:14;2952:49;3054:2;3043:9;3039:18;3033:25;3028:2;3021:5;3017:14;3010:49;3112:2;3101:9;3097:18;3091:25;3086:2;3079:5;3075:14;3068:49;3171:3;3160:9;3156:19;3150:26;3144:3;3137:5;3133:15;3126:51;3231:3;3220:9;3216:19;3210:26;3204:3;3197:5;3193:15;3186:51;3291:3;3280:9;3276:19;3270:26;3264:3;3257:5;3253:15;3246:51;3316:5;3306:15;;;3340:78;3410:7;3403:4;3392:9;3388:20;3340:78;:::i;3429:194::-;;3552:2;3540:9;3531:7;3527:23;3523:32;3520:2;;;3573:6;3565;3558:22;3520:2;-1:-1:-1;3601:16:1;;3510:113;-1:-1:-1;3510:113:1:o;3628:293::-;;3749:2;3737:9;3728:7;3724:23;3720:32;3717:2;;;3770:6;3762;3755:22;3717:2;3807:9;3801:16;3857:4;3850:5;3846:16;3839:5;3836:27;3826:2;;3882:6;3874;3867:22;3926:430;;4093:6;4087:13;4118:3;4130:129;4144:6;4141:1;4138:13;4130:129;;;4242:4;4226:14;;;4222:25;;4216:32;4203:11;;;4196:53;4159:12;4130:129;;;4277:6;4274:1;4271:13;4268:2;;;4312:3;4303:6;4298:3;4294:16;4287:29;4268:2;-1:-1:-1;4334:16:1;;;;;4063:293;-1:-1:-1;;4063:293:1:o;4361:203::-;-1:-1:-1;;;;;4525:32:1;;;;4507:51;;4495:2;4480:18;;4462:102::o;4569:375::-;-1:-1:-1;;;;;4827:15:1;;;4809:34;;4879:15;;;;4874:2;4859:18;;4852:43;4926:2;4911:18;;4904:34;;;;4759:2;4744:18;;4726:218::o;4949:274::-;-1:-1:-1;;;;;5141:32:1;;;;5123:51;;5205:2;5190:18;;5183:34;5111:2;5096:18;;5078:145::o;5228:455::-;-1:-1:-1;;;;;5523:15:1;;;5505:34;;5570:2;5555:18;;5548:34;;;;5618:15;;5613:2;5598:18;;5591:43;5665:2;5650:18;;5643:34;;;;5454:3;5439:19;;5421:262::o;5918:356::-;6120:2;6102:21;;;6139:18;;;6132:30;6198:34;6193:2;6178:18;;6171:62;6265:2;6250:18;;6092:182::o;6279:406::-;6481:2;6463:21;;;6520:2;6500:18;;;6493:30;6559:34;6554:2;6539:18;;6532:62;-1:-1:-1;;;6625:2:1;6610:18;;6603:40;6675:3;6660:19;;6453:232::o;6690:355::-;6892:2;6874:21;;;6931:2;6911:18;;;6904:30;6970:33;6965:2;6950:18;;6943:61;7036:2;7021:18;;6864:181::o;7050:177::-;7196:25;;;7184:2;7169:18;;7151:76::o;7232:407::-;7479:25;;;7535:2;7520:18;;7513:34;;;;7578:2;7563:18;;7556:34;7621:2;7606:18;;7599:34;7466:3;7451:19;;7433:206::o;7644:372::-;7715:2;7709:9;7780:2;7761:13;;-1:-1:-1;;7757:27:1;7745:40;;7815:18;7800:34;;7836:22;;;7797:62;7794:2;;;7901:10;7896:3;7892:20;7889:1;7882:31;7936:4;7933:1;7926:15;7964:4;7961:1;7954:15;7794:2;7995;7988:22;7689:327;;-1:-1:-1;7689:327:1:o;8021:217::-;;8087:1;8077:2;;-1:-1:-1;;;8112:31:1;;8166:4;8163:1;8156:15;8194:4;8119:1;8184:15;8077:2;-1:-1:-1;8223:9:1;;8067:171::o;8243:453::-;8339:6;8362:5;8376:314;8425:1;8462:2;8452:8;8449:16;8439:2;;8469:5;;;8439:2;8510:4;8505:3;8501:14;8495:4;8492:24;8489:2;;;8519:18;;:::i;:::-;8569:2;8559:8;8555:17;8552:2;;;8584:16;;;;8552:2;8663:17;;;;;8623:15;;8376:314;;;8320:376;;;;;;;:::o;8701:148::-;;8788:55;-1:-1:-1;;8829:4:1;8815:19;;8809:4;8854:922;8938:8;8928:2;;-1:-1:-1;8979:1:1;8993:5;;8928:2;9027:4;9017:2;;-1:-1:-1;9064:1:1;9078:5;;9017:2;9109:4;9127:1;9122:59;;;;9195:1;9190:183;;;;9102:271;;9122:59;9152:1;9143:10;;9166:5;;;9190:183;9227:3;9217:8;9214:17;9211:2;;;9234:18;;:::i;:::-;9290:1;9280:8;9276:16;9267:25;;9318:3;9311:5;9308:14;9305:2;;;9325:18;;:::i;:::-;9358:5;;;9102:271;;9457:2;9447:8;9444:16;9438:3;9432:4;9429:13;9425:36;9419:2;9409:8;9406:16;9401:2;9395:4;9392:12;9388:35;9385:77;9382:2;;;-1:-1:-1;9494:19:1;;;9529:14;;;9526:2;;;9546:18;;:::i;:::-;9579:5;;9382:2;9626:42;9664:3;9654:8;9648:4;9645:1;9626:42;:::i;:::-;9701:6;9696:3;9692:16;9683:7;9680:29;9677:2;;;9712:18;;:::i;:::-;9750:20;;8918:858;-1:-1:-1;;;;8918:858:1:o;9781:168::-;;9887:1;9883;9879:6;9875:14;9872:1;9869:21;9864:1;9857:9;9850:17;9846:45;9843:2;;;9894:18;;:::i;:::-;-1:-1:-1;9934:9:1;;9833:116::o;9954:127::-;10015:10;10010:3;10006:20;10003:1;9996:31;10046:4;10043:1;10036:15;10070:4;10067:1;10060:15
Swarm Source
ipfs://78b530288f1cffe879bb7d9062e904deb3aa9b9c8d27ea4ecafa987583c18a6e
Loading...
Loading
Loading...
Loading
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ 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.