Polygon Sponsored slots available. Book your slot here!
Contract Overview
Balance:
0 MATIC
MATIC Value:
$0.00
My Name Tag:
Not Available, login to update
Txn Hash |
Method
|
Block
|
From
|
To
|
Value | [Txn Fee] | |||
---|---|---|---|---|---|---|---|---|---|
0x1768c76661cb5f6c88f87b04ba4af9f60595497dcf051c50517e160a18bd2ffb | Publish Personal... | 33229024 | 136 days 16 hrs ago | 0xa48c718ae6de6599c5a46fd6cabff54def39473a | IN | 0x637aeabc614e95da58f232e493fca63d09e15b8f | 0 MATIC | 0.0046573 | |
0x59ae6575208cefa640e7407abf8046d3d4fe1edf93f7a27acd8e53a9681ea2c8 | Publish Verifica... | 28308636 | 262 days 21 hrs ago | 0xa48c718ae6de6599c5a46fd6cabff54def39473a | IN | 0x637aeabc614e95da58f232e493fca63d09e15b8f | 0 MATIC | 0.004427022619 | |
0x53e57675b576fc33090faec329fe5708c5b5a3325617bdc10cc0e0c57a5dada1 | 0x60806040 | 28308183 | 262 days 21 hrs ago | 0xa48c718ae6de6599c5a46fd6cabff54def39473a | IN | Create: Verification | 0 MATIC | 0.08319936 |
[ Download CSV Export ]
Contract Name:
Verification
Compiler Version
v0.8.13+commit.abaa5c0e
Contract Source Code (Solidity)
/** *Submitted for verification at polygonscan.com on 2022-05-14 */ // SPDX-License-Identifier: MIT pragma solidity 0.8.13; contract Verification { address private _owner; address private signer; IERC20 private feeToken; uint private feeAmount; struct VerifiedPassport { uint expiration; bytes32 countryAndDocNumberHash; } struct PersonalDetails { bool over18; bool over21; uint countryCode; } mapping(address => VerifiedPassport) private accounts; mapping(address => PersonalDetails) private personalData; mapping(bytes32 => address) private idHashToAccount; mapping(address => uint) private hasPaidFee; event FeePaid(address indexed account); event VerificationUpdated(address indexed account, uint256 expiration); event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); event FeeTokenChanged(address indexed previousFeeToken, address indexed newFeeToken); event FeeAmountChanged(uint previousFeeAmount, uint newFeeAmount); event IsOver18(address indexed account); event IsOver21(address indexed account); event CountryOfOrigin(address indexed account, uint countryCode); constructor(address _signer, address _feeToken, uint _feeAmount) { require(_signer != address(0), "Signer must not be zero address"); require(_feeToken != address(0), "Fee token must not be zero address"); _transferOwnership(msg.sender); signer = _signer; feeToken = IERC20(_feeToken); feeAmount = _feeAmount; } function getFeeToken() external view returns (address) { return address(feeToken); } function getFeeAmount() external view returns (uint) { return feeAmount; } function owner() public view returns (address) { return _owner; } function payFeeFor(address account) public { emit FeePaid(account); hasPaidFee[account] = block.number; bool received = feeToken.transferFrom(msg.sender, address(this), feeAmount); require(received, "Fee transfer failed"); } function payFee() external { payFeeFor(msg.sender); } function unsetPaidFee(address account) external onlyOwner { delete hasPaidFee[account]; } function feePaidFor(address account) external view returns (uint) { return hasPaidFee[account]; } function publishVerification( uint256 expiration, bytes32 countryAndDocNumberHash, bytes calldata signature ) external { // Signing server will only provide signature if fee has been paid, // not necessary to require it here delete hasPaidFee[msg.sender]; // Recreate hash as built by the client bytes32 hash = keccak256(abi.encode(msg.sender, expiration, countryAndDocNumberHash)); (bytes32 r, bytes32 s, uint8 v) = splitSignature(signature); bytes32 ethSignedHash = keccak256( abi.encodePacked("\x19Ethereum Signed Message:\n32", hash)); address sigAddr = ecrecover(ethSignedHash, v, r, s); require(sigAddr == signer, "Invalid Signature"); // Revoke verification for any other account that uses // the same document number/country // e.g. for case of stolen keys if(idHashToAccount[countryAndDocNumberHash] != address(0x0)) { _revokeVerification(idHashToAccount[countryAndDocNumberHash]); } // Update account state idHashToAccount[countryAndDocNumberHash] = msg.sender; accounts[msg.sender] = VerifiedPassport(expiration, countryAndDocNumberHash); emit VerificationUpdated(msg.sender, expiration); } function revokeVerification() external { require(accounts[msg.sender].expiration > 0, "Account not verified"); _revokeVerification(msg.sender); } function revokeVerificationOf(address account) external onlyOwner { require(accounts[account].expiration > 0, "Account not verified"); _revokeVerification(account); } function _revokeVerification(address account) internal { // Do not need to delete from idHashToAccount since that data is // not used for determining account status delete accounts[account]; // Revoking the verification also redacts the personal data delete personalData[account]; emit VerificationUpdated(account, 0); } function addressActive(address toCheck) public view returns (bool) { return accounts[toCheck].expiration > block.timestamp; } function addressExpiration(address toCheck) external view returns (uint) { return accounts[toCheck].expiration; } function addressIdHash(address toCheck) external view returns(bytes32) { return accounts[toCheck].countryAndDocNumberHash; } function publishPersonalData( bool over18, bytes calldata over18Signature, bool over21, bytes calldata over21Signature, uint countryCode, bytes calldata countrySignature ) external { require(addressActive(msg.sender), "Account must be active"); if(over18Signature.length == 65) { bytes32 hash = keccak256(abi.encode(msg.sender, over18 ? "over18" : "notOver18")); (bytes32 r, bytes32 s, uint8 v) = splitSignature(over18Signature); bytes32 ethSignedHash = keccak256( abi.encodePacked("\x19Ethereum Signed Message:\n32", hash)); address sigAddr = ecrecover(ethSignedHash, v, r, s); require(sigAddr == signer, "Invalid Signature"); personalData[msg.sender].over18 = over18; if(over18) { emit IsOver18(msg.sender); } } if(over21Signature.length == 65) { bytes32 hash = keccak256(abi.encode(msg.sender, over21 ? "over21" : "notOver21")); (bytes32 r, bytes32 s, uint8 v) = splitSignature(over21Signature); bytes32 ethSignedHash = keccak256( abi.encodePacked("\x19Ethereum Signed Message:\n32", hash)); address sigAddr = ecrecover(ethSignedHash, v, r, s); require(sigAddr == signer, "Invalid Signature"); personalData[msg.sender].over21 = over21; if(over21) { emit IsOver21(msg.sender); } } if(countrySignature.length == 65) { bytes32 hash = keccak256(abi.encode(msg.sender, countryCode)); (bytes32 r, bytes32 s, uint8 v) = splitSignature(countrySignature); bytes32 ethSignedHash = keccak256( abi.encodePacked("\x19Ethereum Signed Message:\n32", hash)); address sigAddr = ecrecover(ethSignedHash, v, r, s); require(sigAddr == signer, "Invalid Signature"); personalData[msg.sender].countryCode = countryCode; emit CountryOfOrigin(msg.sender, countryCode); } } function redactPersonalData() external { delete personalData[msg.sender]; } function isOver18(address toCheck) external view returns (bool) { return personalData[toCheck].over18; } function isOver21(address toCheck) external view returns (bool) { return personalData[toCheck].over21; } function getCountryCode(address toCheck) external view returns (uint) { return personalData[toCheck].countryCode; } function setSigner(address newSigner) external onlyOwner { require(newSigner != address(0), "Signer cannot be zero address"); signer = newSigner; } function setFeeToken(address newFeeToken) external onlyOwner { require(newFeeToken != address(0), "Fee Token cannot be zero address"); address oldFeeToken = address(feeToken); feeToken = IERC20(newFeeToken); emit FeeTokenChanged(oldFeeToken, newFeeToken); } function setFeeAmount(uint newFeeAmount) external onlyOwner { uint oldFeeAmount = feeAmount; feeAmount = newFeeAmount; emit FeeAmountChanged(oldFeeAmount, newFeeAmount); } function _transferOwnership(address newOwner) internal { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } function transferOwnership(address newOwner) external onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } function transferFeeToken(address recipient, uint amount) external onlyOwner { bool sent = feeToken.transfer(recipient, amount); require(sent, "Fee transfer failed"); } modifier onlyOwner() { require(owner() == msg.sender, "Ownable: caller is not the owner"); _; } // From https://solidity-by-example.org/signature/ function splitSignature(bytes memory sig) internal pure returns (bytes32 r, bytes32 s, uint8 v) { require(sig.length == 65, "invalid signature length"); assembly { // first 32 bytes, after the length prefix r := mload(add(sig, 32)) // second 32 bytes s := mload(add(sig, 64)) // final byte (first byte of the next 32 bytes) v := byte(0, mload(add(sig, 96))) } } } interface IERC20 { function totalSupply() external view returns (uint); function balanceOf(address account) external view returns (uint); function transfer(address recipient, uint amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint); function approve(address spender, uint amount) external returns (bool); function transferFrom( address sender, address recipient, uint amount ) external returns (bool); event Transfer(address indexed from, address indexed to, uint value); event Approval(address indexed owner, address indexed spender, uint value); }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_signer","type":"address"},{"internalType":"address","name":"_feeToken","type":"address"},{"internalType":"uint256","name":"_feeAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"countryCode","type":"uint256"}],"name":"CountryOfOrigin","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"previousFeeAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newFeeAmount","type":"uint256"}],"name":"FeeAmountChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"FeePaid","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousFeeToken","type":"address"},{"indexed":true,"internalType":"address","name":"newFeeToken","type":"address"}],"name":"FeeTokenChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"IsOver18","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"IsOver21","type":"event"},{"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":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"expiration","type":"uint256"}],"name":"VerificationUpdated","type":"event"},{"inputs":[{"internalType":"address","name":"toCheck","type":"address"}],"name":"addressActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"toCheck","type":"address"}],"name":"addressExpiration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"toCheck","type":"address"}],"name":"addressIdHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"feePaidFor","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"toCheck","type":"address"}],"name":"getCountryCode","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getFeeAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getFeeToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"toCheck","type":"address"}],"name":"isOver18","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"toCheck","type":"address"}],"name":"isOver21","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"payFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"payFeeFor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"over18","type":"bool"},{"internalType":"bytes","name":"over18Signature","type":"bytes"},{"internalType":"bool","name":"over21","type":"bool"},{"internalType":"bytes","name":"over21Signature","type":"bytes"},{"internalType":"uint256","name":"countryCode","type":"uint256"},{"internalType":"bytes","name":"countrySignature","type":"bytes"}],"name":"publishPersonalData","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"expiration","type":"uint256"},{"internalType":"bytes32","name":"countryAndDocNumberHash","type":"bytes32"},{"internalType":"bytes","name":"signature","type":"bytes"}],"name":"publishVerification","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"redactPersonalData","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"revokeVerification","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"revokeVerificationOf","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newFeeAmount","type":"uint256"}],"name":"setFeeAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newFeeToken","type":"address"}],"name":"setFeeToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newSigner","type":"address"}],"name":"setSigner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFeeToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"unsetPaidFee","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040523480156200001157600080fd5b506040516200184b3803806200184b8339810160408190526200003491620001a4565b6001600160a01b038316620000905760405162461bcd60e51b815260206004820152601f60248201527f5369676e6572206d757374206e6f74206265207a65726f20616464726573730060448201526064015b60405180910390fd5b6001600160a01b038216620000f35760405162461bcd60e51b815260206004820152602260248201527f46656520746f6b656e206d757374206e6f74206265207a65726f206164647265604482015261737360f01b606482015260840162000087565b620000fe3362000137565b600180546001600160a01b039485166001600160a01b0319918216179091556002805493909416921691909117909155600355620001e5565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b03811681146200019f57600080fd5b919050565b600080600060608486031215620001ba57600080fd5b620001c58462000187565b9250620001d56020850162000187565b9150604084015190509250925092565b61165680620001f56000396000f3fe608060405234801561001057600080fd5b506004361061014c5760003560e01c80636b392680116100c3578063c33dc9161161007c578063c33dc91614610341578063ca709a2514610349578063d79729301461035a578063f2fde38b1461036d578063fdb3200f14610380578063fe0c346c146103a957600080fd5b80636b392680146102a15780636c19e783146102b457806381ba6ce2146102c75780638691bdf5146102f35780638da5cb5b14610314578063bf5c98221461033957600080fd5b806318b8064f1161011557806318b8064f1461021c578063296102521461022f5780632e7d24d114610237578063447597cc1461024a5780634a529aad1461025d5780635b19acd91461028e57600080fd5b80621b428a146101515780630567763d146101665780630ac07226146101a557806315cce224146101e05780631616129d146101f3575b600080fd5b61016461015f36600461135e565b6103d5565b005b6101926101743660046113cd565b6001600160a01b031660009081526004602052604090206001015490565b6040519081526020015b60405180910390f35b6101d06101b33660046113cd565b6001600160a01b0316600090815260046020526040902054421090565b604051901515815260200161019c565b6101646101ee3660046113cd565b6105f1565b6101926102013660046113cd565b6001600160a01b031660009081526007602052604090205490565b61016461022a3660046113cd565b6106d2565b6101646107e5565b6101646102453660046113cd565b6107f0565b6101646102583660046113ef565b610891565b6101d061026b3660046113cd565b6001600160a01b0316600090815260056020526040902054610100900460ff1690565b61016461029c3660046113cd565b61098c565b6101646102af366004611419565b6109df565b6101646102c23660046113cd565b610a5d565b6101926102d53660046113cd565b6001600160a01b031660009081526005602052604090206001015490565b610164336000908152600560205260408120805461ffff1916815560010155565b6000546001600160a01b03165b6040516001600160a01b03909116815260200161019c565b600354610192565b610164610b0e565b6002546001600160a01b0316610321565b610164610368366004611440565b610b6a565b61016461037b3660046113cd565b61113e565b61019261038e3660046113cd565b6001600160a01b031660009081526004602052604090205490565b6101d06103b73660046113cd565b6001600160a01b031660009081526005602052604090205460ff1690565b3360008181526007602090815260408083208390558051918201939093529182018690526060820185905290608001604051602081830303815290604052805190602001209050600080600061046086868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506111e592505050565b925092509250600084604051602001610479919061150d565b60408051601f198184030181528282528051602091820120600080855291840180845281905260ff86169284019290925260608301879052608083018690529092509060019060a0016020604051602081039080840390855afa1580156104e4573d6000803e3d6000fd5b5050604051601f1901516001549092506001600160a01b0380841691161490506105295760405162461bcd60e51b81526004016105209061153e565b60405180910390fd5b6000898152600660205260409020546001600160a01b03161561056757600089815260066020526040902054610567906001600160a01b0316611259565b600089815260066020908152604080832080546001600160a01b03191633908117909155815180830183528e81528084018e8152828652600485529483902090518155935160019490940193909355518c81527ffe7944a9ab5ccc41963809a0d6bd51d8ba2d8ee3109c8f9876e41d01414b2733910160405180910390a250505050505050505050565b336106046000546001600160a01b031690565b6001600160a01b03161461062a5760405162461bcd60e51b815260040161052090611569565b6001600160a01b0381166106805760405162461bcd60e51b815260206004820181905260248201527f46656520546f6b656e2063616e6e6f74206265207a65726f20616464726573736044820152606401610520565b600280546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f1080b8de45190ac9d8745f3724225c9b50b849890e73595c4403edd52b94937090600090a35050565b6040516001600160a01b038216907fd6eb8f1fd49548df938b7af028bb8422b4f4c5e08343a426a0dbd647d08af5d790600090a26001600160a01b0381811660009081526007602052604080822043905560025460035491516323b872dd60e01b81523360048201523060248201526044810192909252919291909116906323b872dd906064016020604051808303816000875af1158015610778573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061079c919061159e565b9050806107e15760405162461bcd60e51b8152602060048201526013602482015272119959481d1c985b9cd9995c8819985a5b1959606a1b6044820152606401610520565b5050565b6107ee336106d2565b565b336108036000546001600160a01b031690565b6001600160a01b0316146108295760405162461bcd60e51b815260040161052090611569565b6001600160a01b0381166000908152600460205260409020546108855760405162461bcd60e51b81526020600482015260146024820152731058d8dbdd5b9d081b9bdd081d995c9a599a595960621b6044820152606401610520565b61088e81611259565b50565b336108a46000546001600160a01b031690565b6001600160a01b0316146108ca5760405162461bcd60e51b815260040161052090611569565b60025460405163a9059cbb60e01b81526001600160a01b03848116600483015260248201849052600092169063a9059cbb906044016020604051808303816000875af115801561091e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610942919061159e565b9050806109875760405162461bcd60e51b8152602060048201526013602482015272119959481d1c985b9cd9995c8819985a5b1959606a1b6044820152606401610520565b505050565b3361099f6000546001600160a01b031690565b6001600160a01b0316146109c55760405162461bcd60e51b815260040161052090611569565b6001600160a01b0316600090815260076020526040812055565b336109f26000546001600160a01b031690565b6001600160a01b031614610a185760405162461bcd60e51b815260040161052090611569565b600380549082905560408051828152602081018490527f628999ddb8cc6bb99cec0350ca6e43277be4a15b13e849d3e532cada20effa82910160405180910390a15050565b33610a706000546001600160a01b031690565b6001600160a01b031614610a965760405162461bcd60e51b815260040161052090611569565b6001600160a01b038116610aec5760405162461bcd60e51b815260206004820152601d60248201527f5369676e65722063616e6e6f74206265207a65726f20616464726573730000006044820152606401610520565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b33600090815260046020526040902054610b615760405162461bcd60e51b81526020600482015260146024820152731058d8dbdd5b9d081b9bdd081d995c9a599a595960621b6044820152606401610520565b6107ee33611259565b336000908152600460205260409020544210610bc15760405162461bcd60e51b81526020600482015260166024820152754163636f756e74206d7573742062652061637469766560501b6044820152606401610520565b6041879003610dbf576000338a610bf957604051806040016040528060098152602001680dcdee89eeccae462760bb1b815250610c19565b604051806040016040528060068152602001650deeccae462760d31b8152505b604051602001610c2a9291906115bb565b6040516020818303038152906040528051906020012090506000806000610c868c8c8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506111e592505050565b925092509250600084604051602001610c9f919061150d565b60408051601f198184030181528282528051602091820120600080855291840180845281905260ff86169284019290925260608301879052608083018690529092509060019060a0016020604051602081039080840390855afa158015610d0a573d6000803e3d6000fd5b5050604051601f1901516001549092506001600160a01b038084169116149050610d465760405162461bcd60e51b81526004016105209061153e565b8e60056000336001600160a01b03166001600160a01b0316815260200190815260200160002060000160006101000a81548160ff0219169083151502179055508e15610db85760405133907f2aa4cbf8be8bf94e25edcb601f989fa2efb2fd98aa89b5df364b00a6b7de31d790600090a25b5050505050505b6041849003610fa25760003387610df757604051806040016040528060098152602001686e6f744f766572323160b81b815250610e17565b604051806040016040528060068152602001656f766572323160d01b8152505b604051602001610e289291906115bb565b6040516020818303038152906040528051906020012090506000806000610e8489898080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506111e592505050565b925092509250600084604051602001610e9d919061150d565b60408051601f198184030181528282528051602091820120600080855291840180845281905260ff86169284019290925260608301879052608083018690529092509060019060a0016020604051602081039080840390855afa158015610f08573d6000803e3d6000fd5b5050604051601f1901516001549092506001600160a01b038084169116149050610f445760405162461bcd60e51b81526004016105209061153e565b33600090815260056020526040902080548d1580156101000261ff001990921691909117909155610f9b5760405133907f3e6e8b4440c2877b4ddd16c21023f8701e5ffdec53a22c19fee7778ac47fb82390600090a25b5050505050505b60418190036111335760408051336020820152908101849052600090606001604051602081830303815290604052805190602001209050600080600061101d86868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506111e592505050565b925092509250600084604051602001611036919061150d565b60408051601f198184030181528282528051602091820120600080855291840180845281905260ff86169284019290925260608301879052608083018690529092509060019060a0016020604051602081039080840390855afa1580156110a1573d6000803e3d6000fd5b5050604051601f1901516001549092506001600160a01b0380841691161490506110dd5760405162461bcd60e51b81526004016105209061153e565b33600081815260056020526040908190206001018b9055517f237210580d7aea49bb2ba2a10d934288f4d26c3bc785d9ff382e764c4108555290611124908c815260200190565b60405180910390a25050505050505b505050505050505050565b336111516000546001600160a01b031690565b6001600160a01b0316146111775760405162461bcd60e51b815260040161052090611569565b6001600160a01b0381166111dc5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610520565b61088e816112c5565b6000806000835160411461123b5760405162461bcd60e51b815260206004820152601860248201527f696e76616c6964207369676e6174757265206c656e67746800000000000000006044820152606401610520565b50505060208101516040820151606090920151909260009190911a90565b6001600160a01b0381166000818152600460209081526040808320838155600190810184905560058352818420805461ffff1916815501839055519182527ffe7944a9ab5ccc41963809a0d6bd51d8ba2d8ee3109c8f9876e41d01414b2733910160405180910390a250565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008083601f84011261132757600080fd5b50813567ffffffffffffffff81111561133f57600080fd5b60208301915083602082850101111561135757600080fd5b9250929050565b6000806000806060858703121561137457600080fd5b8435935060208501359250604085013567ffffffffffffffff81111561139957600080fd5b6113a587828801611315565b95989497509550505050565b80356001600160a01b03811681146113c857600080fd5b919050565b6000602082840312156113df57600080fd5b6113e8826113b1565b9392505050565b6000806040838503121561140257600080fd5b61140b836113b1565b946020939093013593505050565b60006020828403121561142b57600080fd5b5035919050565b801515811461088e57600080fd5b600080600080600080600080600060c08a8c03121561145e57600080fd5b893561146981611432565b985060208a013567ffffffffffffffff8082111561148657600080fd5b6114928d838e01611315565b909a50985060408c013591506114a782611432565b90965060608b013590808211156114bd57600080fd5b6114c98d838e01611315565b909750955060808c0135945060a08c01359150808211156114e957600080fd5b506114f68c828d01611315565b915080935050809150509295985092959850929598565b7f19457468657265756d205369676e6564204d6573736167653a0a3332000000008152601c810191909152603c0190565b602080825260119082015270496e76616c6964205369676e617475726560781b604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000602082840312156115b057600080fd5b81516113e881611432565b60018060a01b038316815260006020604081840152835180604085015260005b818110156115f7578581018301518582016060015282016115db565b81811115611609576000606083870101525b50601f01601f19169290920160600194935050505056fea2646970667358221220dd29d05c004982bbfef8de24287c489ef6da3bbfa4f1407bf734324a4ce07b9164736f6c634300080d0033000000000000000000000000cd21a4eaf4f3d11905e1c09577735694641f39db0000000000000000000000002791bca1f2de4661ed88a30c99a7a9449aa8417400000000000000000000000000000000000000000000000000000000002dc6c0
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000cd21a4eaf4f3d11905e1c09577735694641f39db0000000000000000000000002791bca1f2de4661ed88a30c99a7a9449aa8417400000000000000000000000000000000000000000000000000000000002dc6c0
-----Decoded View---------------
Arg [0] : _signer (address): 0xcd21a4eaf4f3d11905e1c09577735694641f39db
Arg [1] : _feeToken (address): 0x2791bca1f2de4661ed88a30c99a7a9449aa84174
Arg [2] : _feeAmount (uint256): 3000000
-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 000000000000000000000000cd21a4eaf4f3d11905e1c09577735694641f39db
Arg [1] : 0000000000000000000000002791bca1f2de4661ed88a30c99a7a9449aa84174
Arg [2] : 00000000000000000000000000000000000000000000000000000000002dc6c0
Deployed ByteCode Sourcemap
60:8785:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2286:1233;;;;;;:::i;:::-;;:::i;:::-;;4500:132;;;;;;:::i;:::-;-1:-1:-1;;;;;4585:17:0;4562:7;4585:17;;;:8;:17;;;;;:41;;;;4500:132;;;;1431:25:1;;;1419:2;1404:18;4500:132:0;;;;;;;;4234:133;;;;;;:::i;:::-;-1:-1:-1;;;;;4315:17:0;4295:4;4315:17;;;:8;:17;;;;;:28;4346:15;-1:-1:-1;4315:46:0;4234:133;;;;1632:14:1;;1625:22;1607:41;;1595:2;1580:18;4234:133:0;1467:187:1;7197:280:0;;;;;;:::i;:::-;;:::i;2175:105::-;;;;;;:::i;:::-;-1:-1:-1;;;;;2255:19:0;2235:4;2255:19;;;:10;:19;;;;;;;2175:105;1752:247;;;;;;:::i;:::-;;:::i;2005:61::-;;;:::i;3689:179::-;;;;;;:::i;:::-;;:::i;8044:181::-;;;;;;:::i;:::-;;:::i;6784:112::-;;;;;;:::i;:::-;-1:-1:-1;;;;;6862:21:0;6842:4;6862:21;;;:12;:21;;;;;:28;;;;;;;6784:112;2072:97;;;;;;:::i;:::-;;:::i;7483:189::-;;;;;;:::i;:::-;;:::i;7031:160::-;;;;;;:::i;:::-;;:::i;6902:123::-;;;;;;:::i;:::-;-1:-1:-1;;;;;6986:21:0;6966:4;6986:21;;;:12;:21;;;;;:33;;;;6902:123;6577:83;;6643:10;6630:24;;;;:12;:24;;;;;6623:31;;-1:-1:-1;;6623:31:0;;;;;;6577:83;1673:73;1711:7;1734:6;-1:-1:-1;;;;;1734:6:0;1673:73;;;-1:-1:-1;;;;;2449:32:1;;;2431:51;;2419:2;2404:18;1673:73:0;2285:203:1;1585:82:0;1652:9;;1585:82;;3525:158;;;:::i;1487:92::-;1564:8;;-1:-1:-1;;;;;1564:8:0;1487:92;;4638:1933;;;;;;:::i;:::-;;:::i;7853:185::-;;;;;;:::i;:::-;;:::i;4373:121::-;;;;;;:::i;:::-;-1:-1:-1;;;;;4460:17:0;4440:4;4460:17;;;:8;:17;;;;;:28;;4373:121;6666:112;;;;;;:::i;:::-;-1:-1:-1;;;;;6744:21:0;6724:4;6744:21;;;:12;:21;;;;;:28;;;;6666:112;2286:1233;2563:10;2552:22;;;;:10;:22;;;;;;;;2545:29;;;2651:59;;;;;4162:51:1;;;;4229:18;;;4222:34;;;4272:18;;;4265:34;;;2552:22:0;4135:18:1;;2651:59:0;;;;;;;;;;;;2641:70;;;;;;2626:85;;2719:9;2730;2741:7;2752:25;2767:9;;2752:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2752:14:0;;-1:-1:-1;;;2752:25:0:i;:::-;2718:59;;;;;;2784:21;2879:4;2826:58;;;;;;;;:::i;:::-;;;;-1:-1:-1;;2826:58:0;;;;;;;;;2808:77;;2826:58;2808:77;;;;2894:15;2912:33;;;;;;;;;4922:25:1;;;4995:4;4983:17;;4963:18;;;4956:45;;;;5017:18;;;5010:34;;;5060:18;;;5053:34;;;2808:77:0;;-1:-1:-1;2894:15:0;2912:33;;4894:19:1;;2912:33:0;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2912:33:0;;-1:-1:-1;;2912:33:0;;2971:6;;2912:33;;-1:-1:-1;;;;;;2960:17:0;;;2971:6;;2960:17;;-1:-1:-1;2952:47:0;;;;-1:-1:-1;;;2952:47:0;;;;;;;:::i;:::-;;;;;;;;;3203:3;3151:40;;;:15;:40;;;;;;-1:-1:-1;;;;;3151:40:0;:56;3148:139;;3238:40;;;;:15;:40;;;;;;3218:61;;-1:-1:-1;;;;;3238:40:0;3218:19;:61::i;:::-;3322:40;;;;:15;:40;;;;;;;;:53;;-1:-1:-1;;;;;;3322:53:0;3365:10;3322:53;;;;;;3405;;;;;;;;;;;;;;;;3382:20;;;:8;:20;;;;;;:76;;;;;;-1:-1:-1;3382:76:0;;;;;;;;3470:43;1431:25:1;;;3470:43:0;;1404:18:1;3470:43:0;;;;;;;2423:1096;;;;;;2286:1233;;;;:::o;7197:280::-;8278:10;8267:7;1711;1734:6;-1:-1:-1;;;;;1734:6:0;;1673:73;8267:7;-1:-1:-1;;;;;8267:21:0;;8259:66;;;;-1:-1:-1;;;8259:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7273:25:0;::::1;7265:70;;;::::0;-1:-1:-1;;;7265:70:0;;6007:2:1;7265:70:0::1;::::0;::::1;5989:21:1::0;;;6026:18;;;6019:30;6085:34;6065:18;;;6058:62;6137:18;;7265:70:0::1;5805:356:1::0;7265:70:0::1;7372:8;::::0;;-1:-1:-1;;;;;7388:30:0;;::::1;-1:-1:-1::0;;;;;;7388:30:0;::::1;::::0;::::1;::::0;;;7430:41:::1;::::0;7372:8;::::1;::::0;7388:30;7372:8;;7430:41:::1;::::0;7342:19:::1;::::0;7430:41:::1;7258:219;7197:280:::0;:::o;1752:247::-;1807:16;;-1:-1:-1;;;;;1807:16:0;;;;;;;;-1:-1:-1;;;;;1830:19:0;;;;;;;:10;:19;;;;;;1852:12;1830:34;;1887:8;;1936:9;;1887:59;;-1:-1:-1;;;1887:59:0;;1909:10;1887:59;;;6406:34:1;1929:4:0;6456:18:1;;;6449:43;6508:18;;;6501:34;;;;1830:19:0;;1887:8;;;;;:21;;6341:18:1;;1887:59:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1871:75;;1961:8;1953:40;;;;-1:-1:-1;;;1953:40:0;;6998:2:1;1953:40:0;;;6980:21:1;7037:2;7017:18;;;7010:30;-1:-1:-1;;;7056:18:1;;;7049:49;7115:18;;1953:40:0;6796:343:1;1953:40:0;1795:204;1752:247;:::o;2005:61::-;2039:21;2049:10;2039:9;:21::i;:::-;2005:61::o;3689:179::-;8278:10;8267:7;1711;1734:6;-1:-1:-1;;;;;1734:6:0;;1673:73;8267:7;-1:-1:-1;;;;;8267:21:0;;8259:66;;;;-1:-1:-1;;;8259:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3770:17:0;::::1;3801:1;3770:17:::0;;;:8:::1;:17;::::0;;;;:28;3762:65:::1;;;::::0;-1:-1:-1;;;3762:65:0;;7346:2:1;3762:65:0::1;::::0;::::1;7328:21:1::0;7385:2;7365:18;;;7358:30;-1:-1:-1;;;7404:18:1;;;7397:50;7464:18;;3762:65:0::1;7144:344:1::0;3762:65:0::1;3834:28;3854:7;3834:19;:28::i;:::-;3689:179:::0;:::o;8044:181::-;8278:10;8267:7;1711;1734:6;-1:-1:-1;;;;;1734:6:0;;1673:73;8267:7;-1:-1:-1;;;;;8267:21:0;;8259:66;;;;-1:-1:-1;;;8259:66:0;;;;;;;:::i;:::-;8140:8:::1;::::0;:36:::1;::::0;-1:-1:-1;;;8140:36:0;;-1:-1:-1;;;;;7685:32:1;;;8140:36:0::1;::::0;::::1;7667:51:1::0;7734:18;;;7727:34;;;8128:9:0::1;::::0;8140:8:::1;::::0;:17:::1;::::0;7640:18:1;;8140:36:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8128:48;;8191:4;8183:36;;;::::0;-1:-1:-1;;;8183:36:0;;6998:2:1;8183:36:0::1;::::0;::::1;6980:21:1::0;7037:2;7017:18;;;7010:30;-1:-1:-1;;;7056:18:1;;;7049:49;7115:18;;8183:36:0::1;6796:343:1::0;8183:36:0::1;8121:104;8044:181:::0;;:::o;2072:97::-;8278:10;8267:7;1711;1734:6;-1:-1:-1;;;;;1734:6:0;;1673:73;8267:7;-1:-1:-1;;;;;8267:21:0;;8259:66;;;;-1:-1:-1;;;8259:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2144:19:0::1;;::::0;;;:10:::1;:19;::::0;;;;2137:26;2072:97::o;7483:189::-;8278:10;8267:7;1711;1734:6;-1:-1:-1;;;;;1734:6:0;;1673:73;8267:7;-1:-1:-1;;;;;8267:21:0;;8259:66;;;;-1:-1:-1;;;8259:66:0;;;;;;;:::i;:::-;7570:9:::1;::::0;;7586:24;;;;7622:44:::1;::::0;;7946:25:1;;;8002:2;7987:18;;7980:34;;;7622:44:0::1;::::0;7919:18:1;7622:44:0::1;;;;;;;7543:129;7483:189:::0;:::o;7031:160::-;8278:10;8267:7;1711;1734:6;-1:-1:-1;;;;;1734:6:0;;1673:73;8267:7;-1:-1:-1;;;;;8267:21:0;;8259:66;;;;-1:-1:-1;;;8259:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7103:23:0;::::1;7095:65;;;::::0;-1:-1:-1;;;7095:65:0;;8227:2:1;7095:65:0::1;::::0;::::1;8209:21:1::0;8266:2;8246:18;;;8239:30;8305:31;8285:18;;;8278:59;8354:18;;7095:65:0::1;8025:353:1::0;7095:65:0::1;7167:6;:18:::0;;-1:-1:-1;;;;;;7167:18:0::1;-1:-1:-1::0;;;;;7167:18:0;;;::::1;::::0;;;::::1;::::0;;7031:160::o;3525:158::-;3588:10;3613:1;3579:20;;;:8;:20;;;;;:31;3571:68;;;;-1:-1:-1;;;3571:68:0;;7346:2:1;3571:68:0;;;7328:21:1;7385:2;7365:18;;;7358:30;-1:-1:-1;;;7404:18:1;;;7397:50;7464:18;;3571:68:0;7144:344:1;3571:68:0;3646:31;3666:10;3646:19;:31::i;4638:1933::-;4881:10;4295:4;4315:17;;;:8;:17;;;;;:28;4346:15;-1:-1:-1;4859:60:0;;;;-1:-1:-1;;;4859:60:0;;8585:2:1;4859:60:0;;;8567:21:1;8624:2;8604:18;;;8597:30;-1:-1:-1;;;8643:18:1;;;8636:52;8705:18;;4859:60:0;8383:346:1;4859:60:0;4955:2;4929:28;;;4926:549;;4968:12;5004:10;5016:6;:31;;;;;;;;;;;;;;;-1:-1:-1;;;5016:31:0;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5016:31:0;;;;4993:55;;;;;;;;;:::i;:::-;;;;;;;;;;;;;4983:66;;;;;;4968:81;;5059:9;5070;5081:7;5092:31;5107:15;;5092:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5092:14:0;;-1:-1:-1;;;5092:31:0:i;:::-;5058:65;;;;;;5132:21;5229:4;5176:58;;;;;;;;:::i;:::-;;;;-1:-1:-1;;5176:58:0;;;;;;;;;5156:79;;5176:58;5156:79;;;;5246:15;5264:33;;;;;;;;;4922:25:1;;;4995:4;4983:17;;4963:18;;;4956:45;;;;5017:18;;;5010:34;;;5060:18;;;5053:34;;;5156:79:0;;-1:-1:-1;5246:15:0;5264:33;;4894:19:1;;5264:33:0;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5264:33:0;;-1:-1:-1;;5264:33:0;;5325:6;;5264:33;;-1:-1:-1;;;;;;5314:17:0;;;5325:6;;5314:17;;-1:-1:-1;5306:47:0;;;;-1:-1:-1;;;5306:47:0;;;;;;;:::i;:::-;5396:6;5362:12;:24;5375:10;-1:-1:-1;;;;;5362:24:0;-1:-1:-1;;;;;5362:24:0;;;;;;;;;;;;:31;;;:40;;;;;;;;;;;;;;;;;;5414:6;5411:57;;;5438:20;;5447:10;;5438:20;;;;;5411:57;4959:516;;;;;;4926:549;5510:2;5484:28;;;5481:549;;5523:12;5559:10;5571:6;:31;;;;;;;;;;;;;;;-1:-1:-1;;;5571:31:0;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5571:31:0;;;;5548:55;;;;;;;;;:::i;:::-;;;;;;;;;;;;;5538:66;;;;;;5523:81;;5614:9;5625;5636:7;5647:31;5662:15;;5647:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5647:14:0;;-1:-1:-1;;;5647:31:0:i;:::-;5613:65;;;;;;5687:21;5784:4;5731:58;;;;;;;;:::i;:::-;;;;-1:-1:-1;;5731:58:0;;;;;;;;;5711:79;;5731:58;5711:79;;;;5801:15;5819:33;;;;;;;;;4922:25:1;;;4995:4;4983:17;;4963:18;;;4956:45;;;;5017:18;;;5010:34;;;5060:18;;;5053:34;;;5711:79:0;;-1:-1:-1;5801:15:0;5819:33;;4894:19:1;;5819:33:0;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5819:33:0;;-1:-1:-1;;5819:33:0;;5880:6;;5819:33;;-1:-1:-1;;;;;;5869:17:0;;;5880:6;;5869:17;;-1:-1:-1;5861:47:0;;;;-1:-1:-1;;;5861:47:0;;;;;;;:::i;:::-;5930:10;5917:24;;;;:12;:24;;;;;:40;;;;;;;;-1:-1:-1;;5917:40:0;;;;;;;;;;5966:57;;5993:20;;6002:10;;5993:20;;;;;5966:57;5514:516;;;;;;5481:549;6066:2;6039:29;;;6036:530;;6104:35;;;6115:10;6104:35;;;7667:51:1;7734:18;;;7727:34;;;6079:12:0;;7640:18:1;;6104:35:0;;;;;;;;;;;;6094:46;;;;;;6079:61;;6150:9;6161;6172:7;6183:32;6198:16;;6183:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6183:14:0;;-1:-1:-1;;;6183:32:0:i;:::-;6149:66;;;;;;6224:21;6321:4;6268:58;;;;;;;;:::i;:::-;;;;-1:-1:-1;;6268:58:0;;;;;;;;;6248:79;;6268:58;6248:79;;;;6338:15;6356:33;;;;;;;;;4922:25:1;;;4995:4;4983:17;;4963:18;;;4956:45;;;;5017:18;;;5010:34;;;5060:18;;;5053:34;;;6248:79:0;;-1:-1:-1;6338:15:0;6356:33;;4894:19:1;;6356:33:0;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6356:33:0;;-1:-1:-1;;6356:33:0;;6417:6;;6356:33;;-1:-1:-1;;;;;;6406:17:0;;;6417:6;;6406:17;;-1:-1:-1;6398:47:0;;;;-1:-1:-1;;;6398:47:0;;;;;;;:::i;:::-;6467:10;6454:24;;;;:12;:24;;;;;;;:36;;:50;;;6518:40;;;;;6493:11;1431:25:1;;1419:2;1404:18;;1285:177;6518:40:0;;;;;;;;6070:496;;;;;;6036:530;4638:1933;;;;;;;;;:::o;7853:185::-;8278:10;8267:7;1711;1734:6;-1:-1:-1;;;;;1734:6:0;;1673:73;8267:7;-1:-1:-1;;;;;8267:21:0;;8259:66;;;;-1:-1:-1;;;8259:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7932:22:0;::::1;7924:73;;;::::0;-1:-1:-1;;;7924:73:0;;9635:2:1;7924:73:0::1;::::0;::::1;9617:21:1::0;9674:2;9654:18;;;9647:30;9713:34;9693:18;;;9686:62;-1:-1:-1;;;9764:18:1;;;9757:36;9810:19;;7924:73:0::1;9433:402:1::0;7924:73:0::1;8004:28;8023:8;8004:18;:28::i;8399:441::-:0;8469:9;8480;8491:7;8518:3;:10;8532:2;8518:16;8510:53;;;;-1:-1:-1;;;8510:53:0;;10042:2:1;8510:53:0;;;10024:21:1;10081:2;10061:18;;;10054:30;10120:26;10100:18;;;10093:54;10164:18;;8510:53:0;9840:348:1;8510:53:0;-1:-1:-1;;;8662:2:0;8653:12;;8647:19;8724:2;8715:12;;8709:19;8823:2;8814:12;;;8808:19;8647;;8805:1;8800:28;;;;;8399:441::o;3874:354::-;-1:-1:-1;;;;;4062:17:0;;;;;;:8;:17;;;;;;;;4055:24;;;;;;;;;;4158:12;:21;;;;;4151:28;;-1:-1:-1;;4151:28:0;;;;;;;4191:31;1431:25:1;;;4191:31:0;;1404:18:1;4191:31:0;;;;;;;3874:354;:::o;7678:169::-;7740:16;7759:6;;-1:-1:-1;;;;;7772:17:0;;;-1:-1:-1;;;;;;7772:17:0;;;;;;7801:40;;7759:6;;;;;;;7801:40;;7740:16;7801:40;7733:114;7678:169;:::o;14:347:1:-;65:8;75:6;129:3;122:4;114:6;110:17;106:27;96:55;;147:1;144;137:12;96:55;-1:-1:-1;170:20:1;;213:18;202:30;;199:50;;;245:1;242;235:12;199:50;282:4;274:6;270:17;258:29;;334:3;327:4;318:6;310;306:19;302:30;299:39;296:59;;;351:1;348;341:12;296:59;14:347;;;;;:::o;366:545::-;454:6;462;470;478;531:2;519:9;510:7;506:23;502:32;499:52;;;547:1;544;537:12;499:52;583:9;570:23;560:33;;640:2;629:9;625:18;612:32;602:42;;695:2;684:9;680:18;667:32;722:18;714:6;711:30;708:50;;;754:1;751;744:12;708:50;793:58;843:7;834:6;823:9;819:22;793:58;:::i;:::-;366:545;;;;-1:-1:-1;870:8:1;-1:-1:-1;;;;366:545:1:o;916:173::-;984:20;;-1:-1:-1;;;;;1033:31:1;;1023:42;;1013:70;;1079:1;1076;1069:12;1013:70;916:173;;;:::o;1094:186::-;1153:6;1206:2;1194:9;1185:7;1181:23;1177:32;1174:52;;;1222:1;1219;1212:12;1174:52;1245:29;1264:9;1245:29;:::i;:::-;1235:39;1094:186;-1:-1:-1;;;1094:186:1:o;1841:254::-;1909:6;1917;1970:2;1958:9;1949:7;1945:23;1941:32;1938:52;;;1986:1;1983;1976:12;1938:52;2009:29;2028:9;2009:29;:::i;:::-;1999:39;2085:2;2070:18;;;;2057:32;;-1:-1:-1;;;1841:254:1:o;2100:180::-;2159:6;2212:2;2200:9;2191:7;2187:23;2183:32;2180:52;;;2228:1;2225;2218:12;2180:52;-1:-1:-1;2251:23:1;;2100:180;-1:-1:-1;2100:180:1:o;2493:118::-;2579:5;2572:13;2565:21;2558:5;2555:32;2545:60;;2601:1;2598;2591:12;2616:1339;2747:6;2755;2763;2771;2779;2787;2795;2803;2811;2864:3;2852:9;2843:7;2839:23;2835:33;2832:53;;;2881:1;2878;2871:12;2832:53;2920:9;2907:23;2939:28;2961:5;2939:28;:::i;:::-;2986:5;-1:-1:-1;3042:2:1;3027:18;;3014:32;3065:18;3095:14;;;3092:34;;;3122:1;3119;3112:12;3092:34;3161:58;3211:7;3202:6;3191:9;3187:22;3161:58;:::i;:::-;3238:8;;-1:-1:-1;3135:84:1;-1:-1:-1;3325:2:1;3310:18;;3297:32;;-1:-1:-1;3338:30:1;3297:32;3338:30;:::i;:::-;3387:7;;-1:-1:-1;3447:2:1;3432:18;;3419:32;;3463:16;;;3460:36;;;3492:1;3489;3482:12;3460:36;3531:60;3583:7;3572:8;3561:9;3557:24;3531:60;:::i;:::-;3610:8;;-1:-1:-1;3505:86:1;-1:-1:-1;3692:3:1;3677:19;;3664:33;;-1:-1:-1;3750:3:1;3735:19;;3722:33;;-1:-1:-1;3767:16:1;;;3764:36;;;3796:1;3793;3786:12;3764:36;;3835:60;3887:7;3876:8;3865:9;3861:24;3835:60;:::i;:::-;3809:86;;3914:8;3904:18;;;3941:8;3931:18;;;2616:1339;;;;;;;;;;;:::o;4310:380::-;4552:66;4540:79;;4644:2;4635:12;;4628:28;;;;4681:2;4672:12;;4310:380::o;5098:341::-;5300:2;5282:21;;;5339:2;5319:18;;;5312:30;-1:-1:-1;;;5373:2:1;5358:18;;5351:47;5430:2;5415:18;;5098:341::o;5444:356::-;5646:2;5628:21;;;5665:18;;;5658:30;5724:34;5719:2;5704:18;;5697:62;5791:2;5776:18;;5444:356::o;6546:245::-;6613:6;6666:2;6654:9;6645:7;6641:23;6637:32;6634:52;;;6682:1;6679;6672:12;6634:52;6714:9;6708:16;6733:28;6755:5;6733:28;:::i;8734:694::-;8940:1;8936;8931:3;8927:11;8923:19;8915:6;8911:32;8900:9;8893:51;8874:4;8963:2;9001;8996;8985:9;8981:18;8974:30;9033:6;9027:13;9076:6;9071:2;9060:9;9056:18;9049:34;9101:1;9111:140;9125:6;9122:1;9119:13;9111:140;;;9220:14;;;9216:23;;9210:30;9186:17;;;9205:2;9182:26;9175:66;9140:10;;9111:140;;;9269:6;9266:1;9263:13;9260:91;;;9339:1;9334:2;9325:6;9314:9;9310:22;9306:31;9299:42;9260:91;-1:-1:-1;9412:2:1;9391:15;-1:-1:-1;;9387:29:1;9372:45;;;;9419:2;9368:54;;8734:694;-1:-1:-1;;;;8734:694:1:o
Swarm Source
ipfs://dd29d05c004982bbfef8de24287c489ef6da3bbfa4f1407bf734324a4ce07b91
Age | Block | Fee Address | BC Fee Address | Voting Power | Jailed | Incoming |
---|
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.