Overview
CELO Balance
CELO Value
$0.00Multichain Info
Latest 25 from a total of 75 transactions
| Transaction Hash |
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
| Set Price Index ... | 48464815 | 110 days ago | IN | 0 CELO | 0.00121044 | ||||
| Set Price Index ... | 48449643 | 110 days ago | IN | 0 CELO | 0.00121044 | ||||
| Set Price Index ... | 48376511 | 111 days ago | IN | 0 CELO | 0.00121044 | ||||
| Set Price Index ... | 48376383 | 111 days ago | IN | 0 CELO | 0.00121044 | ||||
| Set Price Index ... | 48359978 | 111 days ago | IN | 0 CELO | 0.00078354 | ||||
| Set Price Index ... | 48359597 | 111 days ago | IN | 0 CELO | 0.00078293 | ||||
| Set Price Index ... | 48359492 | 111 days ago | IN | 0 CELO | 0.00078293 | ||||
| Set Price Index ... | 48359352 | 111 days ago | IN | 0 CELO | 0.00078293 | ||||
| Set Price Index ... | 48359169 | 111 days ago | IN | 0 CELO | 0.00078293 | ||||
| Set Price Index ... | 48359091 | 111 days ago | IN | 0 CELO | 0.00078293 | ||||
| Set Price Index ... | 48359039 | 111 days ago | IN | 0 CELO | 0.00078293 | ||||
| Set Price Index ... | 48358988 | 111 days ago | IN | 0 CELO | 0.00078293 | ||||
| Set Price Index ... | 48358913 | 111 days ago | IN | 0 CELO | 0.00078293 | ||||
| Set Price Index ... | 48284989 | 112 days ago | IN | 0 CELO | 0.00078263 | ||||
| Set Price Index ... | 48283081 | 112 days ago | IN | 0 CELO | 0.00078321 | ||||
| Set Price Index ... | 48282688 | 112 days ago | IN | 0 CELO | 0.00121014 | ||||
| Set Price Index ... | 48282129 | 112 days ago | IN | 0 CELO | 0.00078293 | ||||
| Set Price Index ... | 48278298 | 112 days ago | IN | 0 CELO | 0.00121014 | ||||
| Set Price Index ... | 48278065 | 112 days ago | IN | 0 CELO | 0.00121014 | ||||
| Set Price Index ... | 48195202 | 113 days ago | IN | 0 CELO | 0.00121014 | ||||
| Set Price Index ... | 48195075 | 113 days ago | IN | 0 CELO | 0.00121014 | ||||
| Set Price Index ... | 48194955 | 113 days ago | IN | 0 CELO | 0.00121014 | ||||
| Set Price Index ... | 48194791 | 113 days ago | IN | 0 CELO | 0.00121014 | ||||
| Set Price Index ... | 48194705 | 113 days ago | IN | 0 CELO | 0.00121014 | ||||
| Set Price Index ... | 48132239 | 114 days ago | IN | 0 CELO | 0.00121014 |
View more zero value Internal Transactions in Advanced View mode
Cross-Chain Transactions
Similar Match Source Code This contract matches the deployed Bytecode of the Source Code for Contract 0xCB6bE14c...954Cb4048 The constructor portion of the code might be different and could alter the actual behaviour of the contract
Contract Source Code (Solidity)
/** *Submitted for verification at celoscan.io on 2024-03-07 */ // Author: Louis Holbrook <[email protected]> 0826EDA1702D1E87C6E2875121D2E7BB88C2A746 // Author: Mohamed Sohail <[email protected]> // SPDX-License-Identifier: AGPL-3.0-or-later // File-Version: 1 // Description: ACL-enabled ERC20 token swap quoter that queries a price index for the latest exchange rates. pragma solidity ^0.8.0; contract PriceIndexQuoter { // Implements EIP173 address public owner; uint256 public constant DEFAULT_EXCHANGE_RATE = 10 ** 4; mapping(address => uint256) public priceIndex; event PriceIndexUpdated(address _tokenAddress, uint256 _exchangeRate); event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); constructor() { owner = msg.sender; } function setPriceIndexValue( address _tokenAddress, uint256 _exchangeRate ) public returns (uint256) { require(owner == msg.sender, "ERR_NOT_OWNER"); priceIndex[_tokenAddress] = _exchangeRate; emit PriceIndexUpdated(_tokenAddress, _exchangeRate); return _exchangeRate; } // Implements TokenQuote function valueFor( address _outToken, address _inToken, uint256 _value ) public returns (uint256) { uint8 dout; uint8 din; bool r; bytes memory v; uint256 inExchangeRate = DEFAULT_EXCHANGE_RATE; uint256 outExchangeRate = DEFAULT_EXCHANGE_RATE; if (priceIndex[_inToken] > 0) { inExchangeRate = priceIndex[_inToken]; } if (priceIndex[_outToken] > 0) { outExchangeRate = priceIndex[_outToken]; } (r, v) = _outToken.call(abi.encodeWithSignature("decimals()")); require(r, "ERR_TOKEN_OUT"); dout = abi.decode(v, (uint8)); (r, v) = _inToken.call(abi.encodeWithSignature("decimals()")); require(r, "ERR_TOKEN_IN"); din = abi.decode(v, (uint8)); if (din == dout) { return determineOutput(_value, inExchangeRate, outExchangeRate); } uint256 d = din > dout ? 10 ** ((din - dout)) : 10 ** ((dout - din)); if (din > dout) { return determineOutput(_value / d, inExchangeRate, outExchangeRate); } else { return determineOutput(_value * d, inExchangeRate, outExchangeRate); } } // When testing with forge convert to a public function // https://github.com/foundry-rs/foundry/issues/1040 function determineOutput(uint256 inputValue, uint256 inExchangeRate, uint256 outExchangeRate) internal pure returns (uint256) { return (inputValue * inExchangeRate) / outExchangeRate; } // Implements EIP173 function transferOwnership(address _newOwner) public returns (bool) { address oldOwner; require(msg.sender == owner, "ERR_AXX"); oldOwner = owner; owner = _newOwner; emit OwnershipTransferred(oldOwner, owner); return true; } // Implements EIP165 function supportsInterface(bytes4 _sum) public pure returns (bool) { if (_sum == 0x01ffc9a7) { // ERC165 return true; } if (_sum == 0x9493f8b2) { // ERC173 return true; } if (_sum == 0xdbb21d40) { // TokenQuote return true; } return false; } }
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":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_tokenAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"_exchangeRate","type":"uint256"}],"name":"PriceIndexUpdated","type":"event"},{"inputs":[],"name":"DEFAULT_EXCHANGE_RATE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"priceIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddress","type":"address"},{"internalType":"uint256","name":"_exchangeRate","type":"uint256"}],"name":"setPriceIndexValue","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"_sum","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_outToken","type":"address"},{"internalType":"address","name":"_inToken","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"valueFor","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"}]Contract Creation Code
0x608060405234801561001057600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506111c9806100606000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c80638da5cb5b1161005b5780638da5cb5b14610100578063dbb21d401461011e578063ebc59dff1461014e578063f2fde38b1461017e5761007d565b806301ffc9a71461008257806362dfa4a5146100b257806379e25f3a146100d0575b600080fd5b61009c60048036038101906100979190610a2c565b6101ae565b6040516100a99190610a74565b60405180910390f35b6100ba61025c565b6040516100c79190610aa8565b60405180910390f35b6100ea60048036038101906100e59190610b21565b610262565b6040516100f79190610aa8565b60405180910390f35b61010861027a565b6040516101159190610b5d565b60405180910390f35b61013860048036038101906101339190610ba4565b61029e565b6040516101459190610aa8565b60405180910390f35b61016860048036038101906101639190610bf7565b61071f565b6040516101759190610aa8565b60405180910390f35b61019860048036038101906101939190610b21565b610835565b6040516101a59190610a74565b60405180910390f35b60006301ffc9a760e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916036101e65760019050610257565b639493f8b260e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19160361021c5760019050610257565b63dbb21d4060e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916036102525760019050610257565b600090505b919050565b61271081565b60016020528060005260406000206000915090505481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600080606060006127109050600061271090506000600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054111561033f57600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205491505b6000600160008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411156103ca57600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490505b8973ffffffffffffffffffffffffffffffffffffffff166040516024016040516020818303038152906040527f313ce567000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516104719190610ca8565b6000604051808303816000865af19150503d80600081146104ae576040519150601f19603f3d011682016040523d82523d6000602084013e6104b3565b606091505b508094508195505050836104fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104f390610d1c565b60405180910390fd5b828060200190518101906105109190610d75565b95508873ffffffffffffffffffffffffffffffffffffffff166040516024016040516020818303038152906040527f313ce567000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516105b99190610ca8565b6000604051808303816000865af19150503d80600081146105f6576040519150601f19603f3d011682016040523d82523d6000602084013e6105fb565b606091505b50809450819550505083610644576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161063b90610dee565b60405180910390fd5b828060200190518101906106589190610d75565b94508560ff168560ff160361067f576106728883836109ad565b9650505050505050610718565b60008660ff168660ff16116106ab57858761069a9190610e3d565b600a6106a69190610fa5565b6106c4565b86866106b79190610e3d565b600a6106c39190610fa5565b5b90508660ff168660ff1611156106f8576106ea818a6106e3919061101f565b84846109ad565b975050505050505050610718565b61070e818a6107079190611050565b84846109ad565b9750505050505050505b9392505050565b60003373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a6906110de565b60405180910390fd5b81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507fdb9ce1a76955721ca61ac50cd1b87f9ab8620325c8619a62192c2dc7871d56b183836040516108249291906110fe565b60405180910390a181905092915050565b60008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146108c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108bd90611173565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050826000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36001915050919050565b60008183856109bc9190611050565b6109c6919061101f565b90509392505050565b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610a09816109d4565b8114610a1457600080fd5b50565b600081359050610a2681610a00565b92915050565b600060208284031215610a4257610a416109cf565b5b6000610a5084828501610a17565b91505092915050565b60008115159050919050565b610a6e81610a59565b82525050565b6000602082019050610a896000830184610a65565b92915050565b6000819050919050565b610aa281610a8f565b82525050565b6000602082019050610abd6000830184610a99565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610aee82610ac3565b9050919050565b610afe81610ae3565b8114610b0957600080fd5b50565b600081359050610b1b81610af5565b92915050565b600060208284031215610b3757610b366109cf565b5b6000610b4584828501610b0c565b91505092915050565b610b5781610ae3565b82525050565b6000602082019050610b726000830184610b4e565b92915050565b610b8181610a8f565b8114610b8c57600080fd5b50565b600081359050610b9e81610b78565b92915050565b600080600060608486031215610bbd57610bbc6109cf565b5b6000610bcb86828701610b0c565b9350506020610bdc86828701610b0c565b9250506040610bed86828701610b8f565b9150509250925092565b60008060408385031215610c0e57610c0d6109cf565b5b6000610c1c85828601610b0c565b9250506020610c2d85828601610b8f565b9150509250929050565b600081519050919050565b600081905092915050565b60005b83811015610c6b578082015181840152602081019050610c50565b60008484015250505050565b6000610c8282610c37565b610c8c8185610c42565b9350610c9c818560208601610c4d565b80840191505092915050565b6000610cb48284610c77565b915081905092915050565b600082825260208201905092915050565b7f4552525f544f4b454e5f4f555400000000000000000000000000000000000000600082015250565b6000610d06600d83610cbf565b9150610d1182610cd0565b602082019050919050565b60006020820190508181036000830152610d3581610cf9565b9050919050565b600060ff82169050919050565b610d5281610d3c565b8114610d5d57600080fd5b50565b600081519050610d6f81610d49565b92915050565b600060208284031215610d8b57610d8a6109cf565b5b6000610d9984828501610d60565b91505092915050565b7f4552525f544f4b454e5f494e0000000000000000000000000000000000000000600082015250565b6000610dd8600c83610cbf565b9150610de382610da2565b602082019050919050565b60006020820190508181036000830152610e0781610dcb565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610e4882610d3c565b9150610e5383610d3c565b9250828203905060ff811115610e6c57610e6b610e0e565b5b92915050565b60008160011c9050919050565b6000808291508390505b6001851115610ec957808604811115610ea557610ea4610e0e565b5b6001851615610eb45780820291505b8081029050610ec285610e72565b9450610e89565b94509492505050565b600082610ee25760019050610f9e565b81610ef05760009050610f9e565b8160018114610f065760028114610f1057610f3f565b6001915050610f9e565b60ff841115610f2257610f21610e0e565b5b8360020a915084821115610f3957610f38610e0e565b5b50610f9e565b5060208310610133831016604e8410600b8410161715610f745782820a905083811115610f6f57610f6e610e0e565b5b610f9e565b610f818484846001610e7f565b92509050818404811115610f9857610f97610e0e565b5b81810290505b9392505050565b6000610fb082610a8f565b9150610fbb83610d3c565b9250610fe87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484610ed2565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061102a82610a8f565b915061103583610a8f565b92508261104557611044610ff0565b5b828204905092915050565b600061105b82610a8f565b915061106683610a8f565b925082820261107481610a8f565b9150828204841483151761108b5761108a610e0e565b5b5092915050565b7f4552525f4e4f545f4f574e455200000000000000000000000000000000000000600082015250565b60006110c8600d83610cbf565b91506110d382611092565b602082019050919050565b600060208201905081810360008301526110f7816110bb565b9050919050565b60006040820190506111136000830185610b4e565b6111206020830184610a99565b9392505050565b7f4552525f41585800000000000000000000000000000000000000000000000000600082015250565b600061115d600783610cbf565b915061116882611127565b602082019050919050565b6000602082019050818103600083015261118c81611150565b905091905056fea264697066735822122098603741719639e482e6d691a755167cf8fc9bdfb7b55562a03952e9dccfe71a64736f6c63430008180033
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061007d5760003560e01c80638da5cb5b1161005b5780638da5cb5b14610100578063dbb21d401461011e578063ebc59dff1461014e578063f2fde38b1461017e5761007d565b806301ffc9a71461008257806362dfa4a5146100b257806379e25f3a146100d0575b600080fd5b61009c60048036038101906100979190610a2c565b6101ae565b6040516100a99190610a74565b60405180910390f35b6100ba61025c565b6040516100c79190610aa8565b60405180910390f35b6100ea60048036038101906100e59190610b21565b610262565b6040516100f79190610aa8565b60405180910390f35b61010861027a565b6040516101159190610b5d565b60405180910390f35b61013860048036038101906101339190610ba4565b61029e565b6040516101459190610aa8565b60405180910390f35b61016860048036038101906101639190610bf7565b61071f565b6040516101759190610aa8565b60405180910390f35b61019860048036038101906101939190610b21565b610835565b6040516101a59190610a74565b60405180910390f35b60006301ffc9a760e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916036101e65760019050610257565b639493f8b260e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19160361021c5760019050610257565b63dbb21d4060e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916036102525760019050610257565b600090505b919050565b61271081565b60016020528060005260406000206000915090505481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600080606060006127109050600061271090506000600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054111561033f57600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205491505b6000600160008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411156103ca57600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490505b8973ffffffffffffffffffffffffffffffffffffffff166040516024016040516020818303038152906040527f313ce567000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516104719190610ca8565b6000604051808303816000865af19150503d80600081146104ae576040519150601f19603f3d011682016040523d82523d6000602084013e6104b3565b606091505b508094508195505050836104fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104f390610d1c565b60405180910390fd5b828060200190518101906105109190610d75565b95508873ffffffffffffffffffffffffffffffffffffffff166040516024016040516020818303038152906040527f313ce567000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516105b99190610ca8565b6000604051808303816000865af19150503d80600081146105f6576040519150601f19603f3d011682016040523d82523d6000602084013e6105fb565b606091505b50809450819550505083610644576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161063b90610dee565b60405180910390fd5b828060200190518101906106589190610d75565b94508560ff168560ff160361067f576106728883836109ad565b9650505050505050610718565b60008660ff168660ff16116106ab57858761069a9190610e3d565b600a6106a69190610fa5565b6106c4565b86866106b79190610e3d565b600a6106c39190610fa5565b5b90508660ff168660ff1611156106f8576106ea818a6106e3919061101f565b84846109ad565b975050505050505050610718565b61070e818a6107079190611050565b84846109ad565b9750505050505050505b9392505050565b60003373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a6906110de565b60405180910390fd5b81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507fdb9ce1a76955721ca61ac50cd1b87f9ab8620325c8619a62192c2dc7871d56b183836040516108249291906110fe565b60405180910390a181905092915050565b60008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146108c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108bd90611173565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050826000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36001915050919050565b60008183856109bc9190611050565b6109c6919061101f565b90509392505050565b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610a09816109d4565b8114610a1457600080fd5b50565b600081359050610a2681610a00565b92915050565b600060208284031215610a4257610a416109cf565b5b6000610a5084828501610a17565b91505092915050565b60008115159050919050565b610a6e81610a59565b82525050565b6000602082019050610a896000830184610a65565b92915050565b6000819050919050565b610aa281610a8f565b82525050565b6000602082019050610abd6000830184610a99565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610aee82610ac3565b9050919050565b610afe81610ae3565b8114610b0957600080fd5b50565b600081359050610b1b81610af5565b92915050565b600060208284031215610b3757610b366109cf565b5b6000610b4584828501610b0c565b91505092915050565b610b5781610ae3565b82525050565b6000602082019050610b726000830184610b4e565b92915050565b610b8181610a8f565b8114610b8c57600080fd5b50565b600081359050610b9e81610b78565b92915050565b600080600060608486031215610bbd57610bbc6109cf565b5b6000610bcb86828701610b0c565b9350506020610bdc86828701610b0c565b9250506040610bed86828701610b8f565b9150509250925092565b60008060408385031215610c0e57610c0d6109cf565b5b6000610c1c85828601610b0c565b9250506020610c2d85828601610b8f565b9150509250929050565b600081519050919050565b600081905092915050565b60005b83811015610c6b578082015181840152602081019050610c50565b60008484015250505050565b6000610c8282610c37565b610c8c8185610c42565b9350610c9c818560208601610c4d565b80840191505092915050565b6000610cb48284610c77565b915081905092915050565b600082825260208201905092915050565b7f4552525f544f4b454e5f4f555400000000000000000000000000000000000000600082015250565b6000610d06600d83610cbf565b9150610d1182610cd0565b602082019050919050565b60006020820190508181036000830152610d3581610cf9565b9050919050565b600060ff82169050919050565b610d5281610d3c565b8114610d5d57600080fd5b50565b600081519050610d6f81610d49565b92915050565b600060208284031215610d8b57610d8a6109cf565b5b6000610d9984828501610d60565b91505092915050565b7f4552525f544f4b454e5f494e0000000000000000000000000000000000000000600082015250565b6000610dd8600c83610cbf565b9150610de382610da2565b602082019050919050565b60006020820190508181036000830152610e0781610dcb565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610e4882610d3c565b9150610e5383610d3c565b9250828203905060ff811115610e6c57610e6b610e0e565b5b92915050565b60008160011c9050919050565b6000808291508390505b6001851115610ec957808604811115610ea557610ea4610e0e565b5b6001851615610eb45780820291505b8081029050610ec285610e72565b9450610e89565b94509492505050565b600082610ee25760019050610f9e565b81610ef05760009050610f9e565b8160018114610f065760028114610f1057610f3f565b6001915050610f9e565b60ff841115610f2257610f21610e0e565b5b8360020a915084821115610f3957610f38610e0e565b5b50610f9e565b5060208310610133831016604e8410600b8410161715610f745782820a905083811115610f6f57610f6e610e0e565b5b610f9e565b610f818484846001610e7f565b92509050818404811115610f9857610f97610e0e565b5b81810290505b9392505050565b6000610fb082610a8f565b9150610fbb83610d3c565b9250610fe87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484610ed2565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061102a82610a8f565b915061103583610a8f565b92508261104557611044610ff0565b5b828204905092915050565b600061105b82610a8f565b915061106683610a8f565b925082820261107481610a8f565b9150828204841483151761108b5761108a610e0e565b5b5092915050565b7f4552525f4e4f545f4f574e455200000000000000000000000000000000000000600082015250565b60006110c8600d83610cbf565b91506110d382611092565b602082019050919050565b600060208201905081810360008301526110f7816110bb565b9050919050565b60006040820190506111136000830185610b4e565b6111206020830184610a99565b9392505050565b7f4552525f41585800000000000000000000000000000000000000000000000000600082015250565b600061115d600783610cbf565b915061116882611127565b602082019050919050565b6000602082019050818103600083015261118c81611150565b905091905056fea264697066735822122098603741719639e482e6d691a755167cf8fc9bdfb7b55562a03952e9dccfe71a64736f6c63430008180033
Deployed Bytecode Sourcemap
341:3181:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3132:387;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;433:55;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;497:45;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;400:20;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1175:1276;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;803:334;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2811:287;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3132:387;3193:4;3222:10;3214:18;;:4;:18;;;;3210:85;;3279:4;3272:11;;;;3210:85;3317:10;3309:18;;:4;:18;;;;3305:85;;3374:4;3367:11;;;;3305:85;3412:10;3404:18;;:4;:18;;;;3400:89;;3473:4;3466:11;;;;3400:89;3506:5;3499:12;;3132:387;;;;:::o;433:55::-;481:7;433:55;:::o;497:45::-;;;;;;;;;;;;;;;;;:::o;400:20::-;;;;;;;;;;;;:::o;1175:1276::-;1296:7;1316:10;1337:9;1357:6;1374:14;1401:22;481:7;1401:46;;1458:23;481:7;1458:47;;1545:1;1522:10;:20;1533:8;1522:20;;;;;;;;;;;;;;;;:24;1518:94;;;1580:10;:20;1591:8;1580:20;;;;;;;;;;;;;;;;1563:37;;1518:94;1652:1;1628:10;:21;1639:9;1628:21;;;;;;;;;;;;;;;;:25;1624:97;;;1688:10;:21;1699:9;1688:21;;;;;;;;;;;;;;;;1670:39;;1624:97;1742:9;:14;;1757:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1742:53;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1733:62;;;;;;;;1814:1;1806:27;;;;;;;;;;;;:::i;:::-;;;;;;;;;1862:1;1851:22;;;;;;;;;;;;:::i;:::-;1844:29;;1895:8;:13;;1909:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1895:52;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1886:61;;;;;;;;1966:1;1958:26;;;;;;;;;;;;:::i;:::-;;;;;;;;;2012:1;2001:22;;;;;;;;;;;;:::i;:::-;1995:28;;2047:4;2040:11;;:3;:11;;;2036:107;;2075:56;2091:6;2099:14;2115:15;2075;:56::i;:::-;2068:63;;;;;;;;;;2036:107;2155:9;2173:4;2167:10;;:3;:10;;;:56;;2218:3;2211:4;:10;;;;:::i;:::-;2203:2;:20;;;;:::i;:::-;2167:56;;;2194:4;2188:3;:10;;;;:::i;:::-;2180:2;:20;;;;:::i;:::-;2167:56;2155:68;;2244:4;2238:10;;:3;:10;;;2234:210;;;2272:60;2297:1;2288:6;:10;;;;:::i;:::-;2300:14;2316:15;2272;:60::i;:::-;2265:67;;;;;;;;;;;2234:210;2372:60;2397:1;2388:6;:10;;;;:::i;:::-;2400:14;2416:15;2372;:60::i;:::-;2365:67;;;;;;;;;1175:1276;;;;;;:::o;803:334::-;918:7;955:10;946:19;;:5;;;;;;;;;;:19;;;938:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;1022:13;994:10;:25;1005:13;994:25;;;;;;;;;;;;;;;:41;;;;1051:47;1069:13;1084;1051:47;;;;;;;:::i;:::-;;;;;;;;1116:13;1109:20;;803:334;;;;:::o;2811:287::-;2873:4;2890:16;2939:5;;;;;;;;;;2925:19;;:10;:19;;;2917:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;2980:5;;;;;;;;;;2969:16;;3004:9;2996:5;;:17;;;;;;;;;;;;;;;;;;3062:5;;;;;;;;;;3031:37;;3052:8;3031:37;;;;;;;;;;;;3086:4;3079:11;;;2811:287;;;:::o;2578:199::-;2695:7;2754:15;2736:14;2723:10;:27;;;;:::i;:::-;2722:47;;;;:::i;:::-;2715:54;;2578:199;;;;;:::o;88:117:1:-;197:1;194;187:12;334:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:77::-;1555:7;1584:5;1573:16;;1518:77;;;:::o;1601:118::-;1688:24;1706:5;1688:24;:::i;:::-;1683:3;1676:37;1601:118;;:::o;1725:222::-;1818:4;1856:2;1845:9;1841:18;1833:26;;1869:71;1937:1;1926:9;1922:17;1913:6;1869:71;:::i;:::-;1725:222;;;;:::o;1953:126::-;1990:7;2030:42;2023:5;2019:54;2008:65;;1953:126;;;:::o;2085:96::-;2122:7;2151:24;2169:5;2151:24;:::i;:::-;2140:35;;2085:96;;;:::o;2187:122::-;2260:24;2278:5;2260:24;:::i;:::-;2253:5;2250:35;2240:63;;2299:1;2296;2289:12;2240:63;2187:122;:::o;2315:139::-;2361:5;2399:6;2386:20;2377:29;;2415:33;2442:5;2415:33;:::i;:::-;2315:139;;;;:::o;2460:329::-;2519:6;2568:2;2556:9;2547:7;2543:23;2539:32;2536:119;;;2574:79;;:::i;:::-;2536:119;2694:1;2719:53;2764:7;2755:6;2744:9;2740:22;2719:53;:::i;:::-;2709:63;;2665:117;2460:329;;;;:::o;2795:118::-;2882:24;2900:5;2882:24;:::i;:::-;2877:3;2870:37;2795:118;;:::o;2919:222::-;3012:4;3050:2;3039:9;3035:18;3027:26;;3063:71;3131:1;3120:9;3116:17;3107:6;3063:71;:::i;:::-;2919:222;;;;:::o;3147:122::-;3220:24;3238:5;3220:24;:::i;:::-;3213:5;3210:35;3200:63;;3259:1;3256;3249:12;3200:63;3147:122;:::o;3275:139::-;3321:5;3359:6;3346:20;3337:29;;3375:33;3402:5;3375:33;:::i;:::-;3275:139;;;;:::o;3420:619::-;3497:6;3505;3513;3562:2;3550:9;3541:7;3537:23;3533:32;3530:119;;;3568:79;;:::i;:::-;3530:119;3688:1;3713:53;3758:7;3749:6;3738:9;3734:22;3713:53;:::i;:::-;3703:63;;3659:117;3815:2;3841:53;3886:7;3877:6;3866:9;3862:22;3841:53;:::i;:::-;3831:63;;3786:118;3943:2;3969:53;4014:7;4005:6;3994:9;3990:22;3969:53;:::i;:::-;3959:63;;3914:118;3420:619;;;;;:::o;4045:474::-;4113:6;4121;4170:2;4158:9;4149:7;4145:23;4141:32;4138:119;;;4176:79;;:::i;:::-;4138:119;4296:1;4321:53;4366:7;4357:6;4346:9;4342:22;4321:53;:::i;:::-;4311:63;;4267:117;4423:2;4449:53;4494:7;4485:6;4474:9;4470:22;4449:53;:::i;:::-;4439:63;;4394:118;4045:474;;;;;:::o;4525:98::-;4576:6;4610:5;4604:12;4594:22;;4525:98;;;:::o;4629:147::-;4730:11;4767:3;4752:18;;4629:147;;;;:::o;4782:246::-;4863:1;4873:113;4887:6;4884:1;4881:13;4873:113;;;4972:1;4967:3;4963:11;4957:18;4953:1;4948:3;4944:11;4937:39;4909:2;4906:1;4902:10;4897:15;;4873:113;;;5020:1;5011:6;5006:3;5002:16;4995:27;4844:184;4782:246;;;:::o;5034:386::-;5138:3;5166:38;5198:5;5166:38;:::i;:::-;5220:88;5301:6;5296:3;5220:88;:::i;:::-;5213:95;;5317:65;5375:6;5370:3;5363:4;5356:5;5352:16;5317:65;:::i;:::-;5407:6;5402:3;5398:16;5391:23;;5142:278;5034:386;;;;:::o;5426:271::-;5556:3;5578:93;5667:3;5658:6;5578:93;:::i;:::-;5571:100;;5688:3;5681:10;;5426:271;;;;:::o;5703:169::-;5787:11;5821:6;5816:3;5809:19;5861:4;5856:3;5852:14;5837:29;;5703:169;;;;:::o;5878:163::-;6018:15;6014:1;6006:6;6002:14;5995:39;5878:163;:::o;6047:366::-;6189:3;6210:67;6274:2;6269:3;6210:67;:::i;:::-;6203:74;;6286:93;6375:3;6286:93;:::i;:::-;6404:2;6399:3;6395:12;6388:19;;6047:366;;;:::o;6419:419::-;6585:4;6623:2;6612:9;6608:18;6600:26;;6672:9;6666:4;6662:20;6658:1;6647:9;6643:17;6636:47;6700:131;6826:4;6700:131;:::i;:::-;6692:139;;6419:419;;;:::o;6844:86::-;6879:7;6919:4;6912:5;6908:16;6897:27;;6844:86;;;:::o;6936:118::-;7007:22;7023:5;7007:22;:::i;:::-;7000:5;6997:33;6987:61;;7044:1;7041;7034:12;6987:61;6936:118;:::o;7060:139::-;7115:5;7146:6;7140:13;7131:22;;7162:31;7187:5;7162:31;:::i;:::-;7060:139;;;;:::o;7205:347::-;7273:6;7322:2;7310:9;7301:7;7297:23;7293:32;7290:119;;;7328:79;;:::i;:::-;7290:119;7448:1;7473:62;7527:7;7518:6;7507:9;7503:22;7473:62;:::i;:::-;7463:72;;7419:126;7205:347;;;;:::o;7558:162::-;7698:14;7694:1;7686:6;7682:14;7675:38;7558:162;:::o;7726:366::-;7868:3;7889:67;7953:2;7948:3;7889:67;:::i;:::-;7882:74;;7965:93;8054:3;7965:93;:::i;:::-;8083:2;8078:3;8074:12;8067:19;;7726:366;;;:::o;8098:419::-;8264:4;8302:2;8291:9;8287:18;8279:26;;8351:9;8345:4;8341:20;8337:1;8326:9;8322:17;8315:47;8379:131;8505:4;8379:131;:::i;:::-;8371:139;;8098:419;;;:::o;8523:180::-;8571:77;8568:1;8561:88;8668:4;8665:1;8658:15;8692:4;8689:1;8682:15;8709:191;8747:4;8767:18;8783:1;8767:18;:::i;:::-;8762:23;;8799:18;8815:1;8799:18;:::i;:::-;8794:23;;8841:1;8838;8834:9;8826:17;;8865:4;8859;8856:14;8853:40;;;8873:18;;:::i;:::-;8853:40;8709:191;;;;:::o;8906:102::-;8948:8;8995:5;8992:1;8988:13;8967:34;;8906:102;;;:::o;9014:848::-;9075:5;9082:4;9106:6;9097:15;;9130:5;9121:14;;9144:712;9165:1;9155:8;9152:15;9144:712;;;9260:4;9255:3;9251:14;9245:4;9242:24;9239:50;;;9269:18;;:::i;:::-;9239:50;9319:1;9309:8;9305:16;9302:451;;;9734:4;9727:5;9723:16;9714:25;;9302:451;9784:4;9778;9774:15;9766:23;;9814:32;9837:8;9814:32;:::i;:::-;9802:44;;9144:712;;;9014:848;;;;;;;:::o;9868:1073::-;9922:5;10113:8;10103:40;;10134:1;10125:10;;10136:5;;10103:40;10162:4;10152:36;;10179:1;10170:10;;10181:5;;10152:36;10248:4;10296:1;10291:27;;;;10332:1;10327:191;;;;10241:277;;10291:27;10309:1;10300:10;;10311:5;;;10327:191;10372:3;10362:8;10359:17;10356:43;;;10379:18;;:::i;:::-;10356:43;10428:8;10425:1;10421:16;10412:25;;10463:3;10456:5;10453:14;10450:40;;;10470:18;;:::i;:::-;10450:40;10503:5;;;10241:277;;10627:2;10617:8;10614:16;10608:3;10602:4;10599:13;10595:36;10577:2;10567:8;10564:16;10559:2;10553:4;10550:12;10546:35;10530:111;10527:246;;;10683:8;10677:4;10673:19;10664:28;;10718:3;10711:5;10708:14;10705:40;;;10725:18;;:::i;:::-;10705:40;10758:5;;10527:246;10798:42;10836:3;10826:8;10820:4;10817:1;10798:42;:::i;:::-;10783:57;;;;10872:4;10867:3;10863:14;10856:5;10853:25;10850:51;;;10881:18;;:::i;:::-;10850:51;10930:4;10923:5;10919:16;10910:25;;9868:1073;;;;;;:::o;10947:281::-;11005:5;11029:23;11047:4;11029:23;:::i;:::-;11021:31;;11073:25;11089:8;11073:25;:::i;:::-;11061:37;;11117:104;11154:66;11144:8;11138:4;11117:104;:::i;:::-;11108:113;;10947:281;;;;:::o;11234:180::-;11282:77;11279:1;11272:88;11379:4;11376:1;11369:15;11403:4;11400:1;11393:15;11420:185;11460:1;11477:20;11495:1;11477:20;:::i;:::-;11472:25;;11511:20;11529:1;11511:20;:::i;:::-;11506:25;;11550:1;11540:35;;11555:18;;:::i;:::-;11540:35;11597:1;11594;11590:9;11585:14;;11420:185;;;;:::o;11611:410::-;11651:7;11674:20;11692:1;11674:20;:::i;:::-;11669:25;;11708:20;11726:1;11708:20;:::i;:::-;11703:25;;11763:1;11760;11756:9;11785:30;11803:11;11785:30;:::i;:::-;11774:41;;11964:1;11955:7;11951:15;11948:1;11945:22;11925:1;11918:9;11898:83;11875:139;;11994:18;;:::i;:::-;11875:139;11659:362;11611:410;;;;:::o;12027:163::-;12167:15;12163:1;12155:6;12151:14;12144:39;12027:163;:::o;12196:366::-;12338:3;12359:67;12423:2;12418:3;12359:67;:::i;:::-;12352:74;;12435:93;12524:3;12435:93;:::i;:::-;12553:2;12548:3;12544:12;12537:19;;12196:366;;;:::o;12568:419::-;12734:4;12772:2;12761:9;12757:18;12749:26;;12821:9;12815:4;12811:20;12807:1;12796:9;12792:17;12785:47;12849:131;12975:4;12849:131;:::i;:::-;12841:139;;12568:419;;;:::o;12993:332::-;13114:4;13152:2;13141:9;13137:18;13129:26;;13165:71;13233:1;13222:9;13218:17;13209:6;13165:71;:::i;:::-;13246:72;13314:2;13303:9;13299:18;13290:6;13246:72;:::i;:::-;12993:332;;;;;:::o;13331:157::-;13471:9;13467:1;13459:6;13455:14;13448:33;13331:157;:::o;13494:365::-;13636:3;13657:66;13721:1;13716:3;13657:66;:::i;:::-;13650:73;;13732:93;13821:3;13732:93;:::i;:::-;13850:2;13845:3;13841:12;13834:19;;13494:365;;;:::o;13865:419::-;14031:4;14069:2;14058:9;14054:18;14046:26;;14118:9;14112:4;14108:20;14104:1;14093:9;14089:17;14082:47;14146:131;14272:4;14146:131;:::i;:::-;14138:139;;13865:419;;;:::o
Swarm Source
ipfs://98603741719639e482e6d691a755167cf8fc9bdfb7b55562a03952e9dccfe71a
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.