Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 5 from a total of 5 transactions
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
OneClickBond
Compiler Version
v0.8.23+commit.f704f362
Optimization Enabled:
Yes with 1000000 runs
Other Settings:
paris EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity ^0.8.23; interface IToken { /// @dev Gets the amount of tokens owned by a specified account. /// @param account Account address. /// @return Amount of tokens owned. function balanceOf(address account) external view returns (uint256); /// @dev Transfers the token amount. /// @param to Address to transfer to. /// @param amount The amount to transfer. /// @return True if the function execution is successful. function transfer(address to, uint256 amount) external returns (bool); /// @dev Sets `amount` as the allowance of `spender` over the caller's tokens. /// @param spender Account address that will be able to transfer tokens on behalf of the caller. /// @param amount Token amount. /// @return True if the function execution is successful. function approve(address spender, uint256 amount) external returns (bool); /// @dev Transfers the token amount that was previously approved up until the maximum allowance. /// @param from Account address to transfer from. /// @param to Account address to transfer to. /// @param amount Amount to transfer to. /// @return True if the function execution is successful. function transferFrom(address from, address to, uint256 amount) external returns (bool); } // UniswapV2 router interface interface IUniswapV2Router { /// @dev Swap exact tokens A for tokens B. function swapExactTokensForTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external returns (uint256[] memory amounts); /// @dev Add liquidity to the pool. function addLiquidity( address tokenA, address tokenB, uint256 amountADesired, uint256 amountBDesired, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline ) external returns (uint256 amountA, uint256 amountB, uint256 liquidity); } // Depository interface interface IDepository { /// @dev Deposits tokens in exchange for a bond from a specified product. /// @param productId Product Id. /// @param tokenAmount Token amount to deposit for the bond. /// @return payout The amount of OLAS tokens due. /// @return maturity Timestamp for payout redemption. /// @return bondId Id of a newly created bond. function deposit(uint256 productId, uint256 tokenAmount) external returns (uint256 payout, uint256 maturity, uint256 bondId); /// @dev Redeems account bonds. /// @param bondIds Bond Ids to redeem. /// @return payout Total payout sent in OLAS tokens. function redeem(uint256[] memory bondIds) external returns (uint256 payout); } /// @dev Only `owner` has a privilege, but the `sender` was provided. /// @param sender Sender address. /// @param owner Required sender address as an owner. error OwnerOnly(address sender, address owner); /// @dev Provided zero address. error ZeroAddress(); /// @dev Provided zero value. error ZeroValue(); /// @title 1cb - Smart contract for one click bonding /// @author Aleksandr Kuperman - <[email protected]> /// @author Andrey Lebedev - <[email protected]> contract OneClickBond { event OwnerUpdated(address indexed owner); event Deposit(address indexed owner, uint256 olasAmount, uint256 wethAmount, uint256 liquidity, uint256 wethLeft); event Withdraw(address indexed owner, uint256 olasAmount); // Owner address address public owner; // OLAS token contract address address public constant OLAS = 0x0001A500A6B18995B03f44bb040A5fFc28E45CB0; // Treasury contract address address public constant TREASURY = 0xa0DA53447C0f6C4987964d8463da7e6628B30f82; // Depository contract address address public constant DEPOSITORY = 0xfF8697d8d2998d6AA2e09B405795C6F4BEeB0C81; // UniswapV2 router address address public constant ROUTER = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; // WETH token address address public constant WETH = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2; // LP token address address public constant PAIR = 0x09D1d767eDF8Fa23A64C51fa559E0688E526812F; /// @dev OneClickBond constructor. constructor() { owner = msg.sender; } /// @dev Changes the owner address. /// @param newOwner Address of a new owner. function changeOwner(address newOwner) external { // Check for the contract ownership if (msg.sender != owner) { revert OwnerOnly(msg.sender, owner); } // Check for the zero address if (newOwner == address(0)) { revert ZeroAddress(); } owner = newOwner; emit OwnerUpdated(newOwner); } /// @dev Deposit OLAS to create OLAS-WETH LP and bond. /// @param amount OLAS amount. /// @param productId Bonding product Id. function deposit(uint256 amount, uint256 productId) external { // Check for the contract ownership if (msg.sender != owner) { revert OwnerOnly(msg.sender, owner); } // Check for the amount value if (amount < 2) { revert ZeroValue(); } // Transfer tokens from the owner to this contract IToken(OLAS).transferFrom(msg.sender, address(this), amount); uint256 olasAmount = amount / 2; // Approve OLAS for the router IToken(OLAS).approve(ROUTER, amount); // Get the token path address[] memory path = new address[](2); path[0] = OLAS; path[1] = WETH; // Swap WETH to another token uint256[] memory swapAmounts = IUniswapV2Router(ROUTER).swapExactTokensForTokens( olasAmount, 1, path, address(this), block.timestamp + 1000 ); // Get the amount of WETH received uint256 wethAmount = swapAmounts[1]; // Approve WETH to the router IToken(WETH).approve(ROUTER, wethAmount); // Add liquidity (uint256 olasAmountLP, uint256 wethAmountLP, uint256 liquidity) = IUniswapV2Router(ROUTER).addLiquidity( OLAS, WETH, olasAmount, wethAmount, 1, 1, address(this), block.timestamp + 1000 ); if (liquidity == 0) { revert ZeroValue(); } // Approve LP tokens for treasury IToken(PAIR).approve(TREASURY, liquidity); // Deposit liquidity into the bonding product IDepository(DEPOSITORY).deposit(productId, liquidity); // Transfer WETH leftovers back to the owner wethAmount -= wethAmountLP; if (wethAmount > 0) { IToken(WETH).transfer(msg.sender, wethAmount); } emit Deposit(msg.sender, olasAmountLP, wethAmountLP, liquidity, wethAmount); } /// @dev Withdraw OLAS (and WETH) from redeemed bonds. /// @param bondIds Bond Ids. function withdraw(uint256[] memory bondIds) external { // Check for the contract ownership if (msg.sender != owner) { revert OwnerOnly(msg.sender, owner); } // Redeem bonds IDepository(DEPOSITORY).redeem(bondIds); // Get OLAS balance uint256 olasAmount = IToken(OLAS).balanceOf(address(this)); // Transfer OLAS back to the owner IToken(OLAS).transfer(msg.sender, olasAmount); emit Withdraw(msg.sender, olasAmount); } }
{ "optimizer": { "enabled": true, "runs": 1000000 }, "evmVersion": "paris", "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "metadata": { "useLiteralContent": true }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"name":"OwnerOnly","type":"error"},{"inputs":[],"name":"ZeroAddress","type":"error"},{"inputs":[],"name":"ZeroValue","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"uint256","name":"olasAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"wethAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"liquidity","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"wethLeft","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"}],"name":"OwnerUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"uint256","name":"olasAmount","type":"uint256"}],"name":"Withdraw","type":"event"},{"inputs":[],"name":"DEPOSITORY","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"OLAS","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PAIR","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ROUTER","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TREASURY","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WETH","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"changeOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"productId","type":"uint256"}],"name":"deposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"bondIds","type":"uint256[]"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b50600080546001600160a01b031916331790556111c5806100326000396000f3fe608060405234801561001057600080fd5b50600436106100be5760003560e01c8063a6f9dae111610076578063ad5c46481161005b578063ad5c4648146101a0578063df796f2c146101bb578063e2bbb158146101d557600080fd5b8063a6f9dae114610172578063ace3a8a71461018557600080fd5b806332fe7b26116100a757806332fe7b26146101225780638da5cb5b1461013d578063983d95ce1461015d57600080fd5b8063095bdbc8146100c35780632d2c556514610107575b600080fd5b6100de73ff8697d8d2998d6aa2e09b405795c6f4beeb0c8181565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b6100de73a0da53447c0f6c4987964d8463da7e6628b30f8281565b6100de737a250d5630b4cf539739df2c5dacb4c659f2488d81565b6000546100de9073ffffffffffffffffffffffffffffffffffffffff1681565b61017061016b366004610e15565b6101e8565b005b610170610180366004610eab565b610453565b6100de7309d1d767edf8fa23a64c51fa559e0688e526812f81565b6100de73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281565b6100de7201a500a6b18995b03f44bb040a5ffc28e45cb081565b6101706101e3366004610ee8565b610580565b60005473ffffffffffffffffffffffffffffffffffffffff163314610260576000546040517fa43d6ada00000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff90911660248201526044015b60405180910390fd5b6040517ff9afb26a00000000000000000000000000000000000000000000000000000000815273ff8697d8d2998d6aa2e09b405795c6f4beeb0c819063f9afb26a906102b0908490600401610f0a565b6020604051808303816000875af11580156102cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102f39190610f4e565b506040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526000907201a500a6b18995b03f44bb040a5ffc28e45cb0906370a0823190602401602060405180830381865afa15801561035e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103829190610f4e565b6040517fa9059cbb000000000000000000000000000000000000000000000000000000008152336004820152602481018290529091507201a500a6b18995b03f44bb040a5ffc28e45cb09063a9059cbb906044016020604051808303816000875af11580156103f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104199190610f67565b5060405181815233907f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a94243649060200160405180910390a25050565b60005473ffffffffffffffffffffffffffffffffffffffff1633146104c6576000546040517fa43d6ada00000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff9091166024820152604401610257565b73ffffffffffffffffffffffffffffffffffffffff8116610513576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8316908117825560405190917f4ffd725fc4a22075e9ec71c59edf9c38cdeb588a91b24fc5b61388c5be41282b91a250565b60005473ffffffffffffffffffffffffffffffffffffffff1633146105f3576000546040517fa43d6ada00000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff9091166024820152604401610257565b600282101561062e576040517f7c946ed700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018390527201a500a6b18995b03f44bb040a5ffc28e45cb0906323b872dd906064016020604051808303816000875af11580156106a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106c89190610f67565b5060006106d6600284610fb8565b6040517f095ea7b3000000000000000000000000000000000000000000000000000000008152737a250d5630b4cf539739df2c5dacb4c659f2488d6004820152602481018590529091507201a500a6b18995b03f44bb040a5ffc28e45cb09063095ea7b3906044016020604051808303816000875af115801561075d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107819190610f67565b506040805160028082526060820183526000926020830190803683370190505090507201a500a6b18995b03f44bb040a5ffc28e45cb0816000815181106107ca576107ca610ff3565b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28160018151811061082c5761082c610ff3565b73ffffffffffffffffffffffffffffffffffffffff909216602092830291909101909101526000737a250d5630b4cf539739df2c5dacb4c659f2488d6338ed1739846001853061087e426103e8611022565b6040518663ffffffff1660e01b815260040161089e95949392919061103b565b6000604051808303816000875af11580156108bd573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405261090391908101906110c8565b905060008160018151811061091a5761091a610ff3565b60209081029190910101516040517f095ea7b3000000000000000000000000000000000000000000000000000000008152737a250d5630b4cf539739df2c5dacb4c659f2488d60048201526024810182905290915073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc29063095ea7b3906044016020604051808303816000875af11580156109ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109d19190610f67565b5060008080737a250d5630b4cf539739df2c5dacb4c659f2488d63e8e337007201a500a6b18995b03f44bb040a5ffc28e45cb073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28a8860018030610a2b426103e8611022565b60405160e08a901b7fffffffff0000000000000000000000000000000000000000000000000000000016815273ffffffffffffffffffffffffffffffffffffffff9889166004820152968816602488015260448701959095526064860193909352608485019190915260a484015290921660c482015260e4810191909152610104016060604051808303816000875af1158015610acc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af0919061114e565b92509250925080600003610b30576040517f7c946ed700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f095ea7b300000000000000000000000000000000000000000000000000000000815273a0da53447c0f6c4987964d8463da7e6628b30f826004820152602481018290527309d1d767edf8fa23a64c51fa559e0688e526812f9063095ea7b3906044016020604051808303816000875af1158015610bb5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bd99190610f67565b506040517fe2bbb158000000000000000000000000000000000000000000000000000000008152600481018990526024810182905273ff8697d8d2998d6aa2e09b405795c6f4beeb0c819063e2bbb158906044016060604051808303816000875af1158015610c4c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c70919061114e565b5050508184610c7f919061117c565b93508315610d1e576040517fa9059cbb0000000000000000000000000000000000000000000000000000000081523360048201526024810185905273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc29063a9059cbb906044016020604051808303816000875af1158015610cf8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d1c9190610f67565b505b60408051848152602081018490529081018290526060810185905233907f7162984403f6c73c8639375d45a9187dfd04602231bd8e587c415718b5f7e5f99060800160405180910390a2505050505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715610de957610de9610d73565b604052919050565b600067ffffffffffffffff821115610e0b57610e0b610d73565b5060051b60200190565b60006020808385031215610e2857600080fd5b823567ffffffffffffffff811115610e3f57600080fd5b8301601f81018513610e5057600080fd5b8035610e63610e5e82610df1565b610da2565b81815260059190911b82018301908381019087831115610e8257600080fd5b928401925b82841015610ea057833582529284019290840190610e87565b979650505050505050565b600060208284031215610ebd57600080fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610ee157600080fd5b9392505050565b60008060408385031215610efb57600080fd5b50508035926020909101359150565b6020808252825182820181905260009190848201906040850190845b81811015610f4257835183529284019291840191600101610f26565b50909695505050505050565b600060208284031215610f6057600080fd5b5051919050565b600060208284031215610f7957600080fd5b81518015158114610ee157600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082610fee577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b8082018082111561103557611035610f89565b92915050565b600060a08201878352602087602085015260a0604085015281875180845260c08601915060208901935060005b8181101561109a57845173ffffffffffffffffffffffffffffffffffffffff1683529383019391830191600101611068565b505073ffffffffffffffffffffffffffffffffffffffff969096166060850152505050608001529392505050565b600060208083850312156110db57600080fd5b825167ffffffffffffffff8111156110f257600080fd5b8301601f8101851361110357600080fd5b8051611111610e5e82610df1565b81815260059190911b8201830190838101908783111561113057600080fd5b928401925b82841015610ea057835182529284019290840190611135565b60008060006060848603121561116357600080fd5b8351925060208401519150604084015190509250925092565b8181038181111561103557611035610f8956fea2646970667358221220cbfd8fe6d7e87051c7c60cf704c479da11e5e0aa58a453b470424c6d78d2178d64736f6c63430008170033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100be5760003560e01c8063a6f9dae111610076578063ad5c46481161005b578063ad5c4648146101a0578063df796f2c146101bb578063e2bbb158146101d557600080fd5b8063a6f9dae114610172578063ace3a8a71461018557600080fd5b806332fe7b26116100a757806332fe7b26146101225780638da5cb5b1461013d578063983d95ce1461015d57600080fd5b8063095bdbc8146100c35780632d2c556514610107575b600080fd5b6100de73ff8697d8d2998d6aa2e09b405795c6f4beeb0c8181565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b6100de73a0da53447c0f6c4987964d8463da7e6628b30f8281565b6100de737a250d5630b4cf539739df2c5dacb4c659f2488d81565b6000546100de9073ffffffffffffffffffffffffffffffffffffffff1681565b61017061016b366004610e15565b6101e8565b005b610170610180366004610eab565b610453565b6100de7309d1d767edf8fa23a64c51fa559e0688e526812f81565b6100de73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281565b6100de7201a500a6b18995b03f44bb040a5ffc28e45cb081565b6101706101e3366004610ee8565b610580565b60005473ffffffffffffffffffffffffffffffffffffffff163314610260576000546040517fa43d6ada00000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff90911660248201526044015b60405180910390fd5b6040517ff9afb26a00000000000000000000000000000000000000000000000000000000815273ff8697d8d2998d6aa2e09b405795c6f4beeb0c819063f9afb26a906102b0908490600401610f0a565b6020604051808303816000875af11580156102cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102f39190610f4e565b506040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526000907201a500a6b18995b03f44bb040a5ffc28e45cb0906370a0823190602401602060405180830381865afa15801561035e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103829190610f4e565b6040517fa9059cbb000000000000000000000000000000000000000000000000000000008152336004820152602481018290529091507201a500a6b18995b03f44bb040a5ffc28e45cb09063a9059cbb906044016020604051808303816000875af11580156103f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104199190610f67565b5060405181815233907f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a94243649060200160405180910390a25050565b60005473ffffffffffffffffffffffffffffffffffffffff1633146104c6576000546040517fa43d6ada00000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff9091166024820152604401610257565b73ffffffffffffffffffffffffffffffffffffffff8116610513576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8316908117825560405190917f4ffd725fc4a22075e9ec71c59edf9c38cdeb588a91b24fc5b61388c5be41282b91a250565b60005473ffffffffffffffffffffffffffffffffffffffff1633146105f3576000546040517fa43d6ada00000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff9091166024820152604401610257565b600282101561062e576040517f7c946ed700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018390527201a500a6b18995b03f44bb040a5ffc28e45cb0906323b872dd906064016020604051808303816000875af11580156106a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106c89190610f67565b5060006106d6600284610fb8565b6040517f095ea7b3000000000000000000000000000000000000000000000000000000008152737a250d5630b4cf539739df2c5dacb4c659f2488d6004820152602481018590529091507201a500a6b18995b03f44bb040a5ffc28e45cb09063095ea7b3906044016020604051808303816000875af115801561075d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107819190610f67565b506040805160028082526060820183526000926020830190803683370190505090507201a500a6b18995b03f44bb040a5ffc28e45cb0816000815181106107ca576107ca610ff3565b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28160018151811061082c5761082c610ff3565b73ffffffffffffffffffffffffffffffffffffffff909216602092830291909101909101526000737a250d5630b4cf539739df2c5dacb4c659f2488d6338ed1739846001853061087e426103e8611022565b6040518663ffffffff1660e01b815260040161089e95949392919061103b565b6000604051808303816000875af11580156108bd573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405261090391908101906110c8565b905060008160018151811061091a5761091a610ff3565b60209081029190910101516040517f095ea7b3000000000000000000000000000000000000000000000000000000008152737a250d5630b4cf539739df2c5dacb4c659f2488d60048201526024810182905290915073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc29063095ea7b3906044016020604051808303816000875af11580156109ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109d19190610f67565b5060008080737a250d5630b4cf539739df2c5dacb4c659f2488d63e8e337007201a500a6b18995b03f44bb040a5ffc28e45cb073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28a8860018030610a2b426103e8611022565b60405160e08a901b7fffffffff0000000000000000000000000000000000000000000000000000000016815273ffffffffffffffffffffffffffffffffffffffff9889166004820152968816602488015260448701959095526064860193909352608485019190915260a484015290921660c482015260e4810191909152610104016060604051808303816000875af1158015610acc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af0919061114e565b92509250925080600003610b30576040517f7c946ed700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f095ea7b300000000000000000000000000000000000000000000000000000000815273a0da53447c0f6c4987964d8463da7e6628b30f826004820152602481018290527309d1d767edf8fa23a64c51fa559e0688e526812f9063095ea7b3906044016020604051808303816000875af1158015610bb5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bd99190610f67565b506040517fe2bbb158000000000000000000000000000000000000000000000000000000008152600481018990526024810182905273ff8697d8d2998d6aa2e09b405795c6f4beeb0c819063e2bbb158906044016060604051808303816000875af1158015610c4c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c70919061114e565b5050508184610c7f919061117c565b93508315610d1e576040517fa9059cbb0000000000000000000000000000000000000000000000000000000081523360048201526024810185905273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc29063a9059cbb906044016020604051808303816000875af1158015610cf8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d1c9190610f67565b505b60408051848152602081018490529081018290526060810185905233907f7162984403f6c73c8639375d45a9187dfd04602231bd8e587c415718b5f7e5f99060800160405180910390a2505050505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715610de957610de9610d73565b604052919050565b600067ffffffffffffffff821115610e0b57610e0b610d73565b5060051b60200190565b60006020808385031215610e2857600080fd5b823567ffffffffffffffff811115610e3f57600080fd5b8301601f81018513610e5057600080fd5b8035610e63610e5e82610df1565b610da2565b81815260059190911b82018301908381019087831115610e8257600080fd5b928401925b82841015610ea057833582529284019290840190610e87565b979650505050505050565b600060208284031215610ebd57600080fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610ee157600080fd5b9392505050565b60008060408385031215610efb57600080fd5b50508035926020909101359150565b6020808252825182820181905260009190848201906040850190845b81811015610f4257835183529284019291840191600101610f26565b50909695505050505050565b600060208284031215610f6057600080fd5b5051919050565b600060208284031215610f7957600080fd5b81518015158114610ee157600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082610fee577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b8082018082111561103557611035610f89565b92915050565b600060a08201878352602087602085015260a0604085015281875180845260c08601915060208901935060005b8181101561109a57845173ffffffffffffffffffffffffffffffffffffffff1683529383019391830191600101611068565b505073ffffffffffffffffffffffffffffffffffffffff969096166060850152505050608001529392505050565b600060208083850312156110db57600080fd5b825167ffffffffffffffff8111156110f257600080fd5b8301601f8101851361110357600080fd5b8051611111610e5e82610df1565b81815260059190911b8201830190838101908783111561113057600080fd5b928401925b82841015610ea057835182529284019290840190611135565b60008060006060848603121561116357600080fd5b8351925060208401519150604084015190509250925092565b8181038181111561103557611035610f8956fea2646970667358221220cbfd8fe6d7e87051c7c60cf704c479da11e5e0aa58a453b470424c6d78d2178d64736f6c63430008170033
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.