From e0912c3c455f8c2949d529d12d764de9df45f47a Mon Sep 17 00:00:00 2001 From: CamposBruno Date: Mon, 15 Apr 2024 16:52:20 +0000 Subject: [PATCH] Apply automatic changes Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- data/abis/MaxOwnershipByCountryModule.json | 435 +++++++++++++++++++++ data/abis/MaxOwnershipModule.json | 419 ++++++++++++++++++++ 2 files changed, 854 insertions(+) create mode 100644 data/abis/MaxOwnershipByCountryModule.json create mode 100644 data/abis/MaxOwnershipModule.json diff --git a/data/abis/MaxOwnershipByCountryModule.json b/data/abis/MaxOwnershipByCountryModule.json new file mode 100644 index 0000000..be08aaa --- /dev/null +++ b/data/abis/MaxOwnershipByCountryModule.json @@ -0,0 +1,435 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "MaxOwnershipByCountryModule", + "sourceName": "contracts/erc3643/compliance/modular/modules/MaxOwnershipByCountryModule.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_compliance", + "type": "address" + }, + { + "internalType": "address[]", + "name": "_id", + "type": "address[]" + }, + { + "internalType": "uint256[]", + "name": "_balance", + "type": "uint256[]" + } + ], + "name": "InvalidPresetValues", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_compliance", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_value", + "type": "uint256" + } + ], + "name": "MaxOwnershipExceeded", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_compliance", + "type": "address" + } + ], + "name": "OnlyComplianceOwnerCanCall", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_compliance", + "type": "address" + } + ], + "name": "TokenAlreadyBound", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_compliance", + "type": "address" + } + ], + "name": "ComplianceBound", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_compliance", + "type": "address" + } + ], + "name": "ComplianceUnbound", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_compliance", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "_id", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_balance", + "type": "uint256" + } + ], + "name": "IDBalancePreSet", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_compliance", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_maxPercetageLocal", + "type": "uint256" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_maxPercetageNonlocal", + "type": "uint256" + } + ], + "name": "MaxPercentageSet", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_compliance", + "type": "address" + }, + { + "internalType": "address[]", + "name": "_id", + "type": "address[]" + }, + { + "internalType": "uint256[]", + "name": "_balance", + "type": "uint256[]" + } + ], + "name": "batchPreSetModuleState", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_compliance", + "type": "address" + } + ], + "name": "bindCompliance", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_compliance", + "type": "address" + } + ], + "name": "canComplianceBind", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_compliance", + "type": "address" + }, + { + "internalType": "address", + "name": "_identity", + "type": "address" + } + ], + "name": "getIDBalance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_compliance", + "type": "address" + } + ], + "name": "isComplianceBound", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "isPlugAndPlay", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_from", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_value", + "type": "uint256" + } + ], + "name": "moduleBurnAction", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "_to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_value", + "type": "uint256" + }, + { + "internalType": "address", + "name": "_compliance", + "type": "address" + } + ], + "name": "moduleCheck", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_value", + "type": "uint256" + } + ], + "name": "moduleMintAction", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_from", + "type": "address" + }, + { + "internalType": "address", + "name": "_to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_value", + "type": "uint256" + } + ], + "name": "moduleTransferAction", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "_name", + "type": "string" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_compliance", + "type": "address" + }, + { + "internalType": "address", + "name": "_id", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_balance", + "type": "uint256" + } + ], + "name": "preSetModuleState", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_compliance", + "type": "address" + } + ], + "name": "presetCompleted", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint16", + "name": "_country", + "type": "uint16" + }, + { + "internalType": "uint16", + "name": "_maxLocal", + "type": "uint16" + }, + { + "internalType": "uint16", + "name": "_maxNonlocal", + "type": "uint16" + } + ], + "name": "setMaxPercentage", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_compliance", + "type": "address" + } + ], + "name": "unbindCompliance", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x608060405234801561001057600080fd5b506118e0806100206000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c80638f27c0eb11610097578063dd50b74c11610066578063dd50b74c14610235578063e6f5e80714610248578063f104a8c91461024f578063f7c4722c1461026257600080fd5b80638f27c0eb146101db578063bcc21053146101ee578063cc203f7514610201578063d5be92ad1461022257600080fd5b80632cb7e1ec116100d35780632cb7e1ec14610176578063372491a2146101895780634a9325441461019c5780634cf4d295146101af57600080fd5b8063013b7ce4146100fa5780630694a5fb1461012257806306fdde0314610137575b600080fd5b61010d6101083660046113c6565b610275565b60405190151581526020015b60405180910390f35b610135610130366004611419565b61035b565b005b604080518082018252601b81527f4d61784f776e6572736869704279436f756e7472794d6f64756c650000000000602082015290516101199190611436565b610135610184366004611485565b61045a565b6101356101973660046114c6565b6105a4565b6101356101aa366004611419565b610621565b61010d6101bd366004611419565b6001600160a01b031660009081526020819052604090205460ff1690565b6101356101e936600461153e565b610754565b61010d6101fc366004611419565b610944565b61021461020f3660046115c1565b610a55565b604051908152602001610119565b61013561023036600461160a565b610a82565b610135610243366004611419565b610b37565b600061010d565b61013561025d3660046114c6565b610bfc565b610135610270366004611485565b610cfe565b6000806102828386610e3d565b905060006102908487610fc3565b6001600160a01b0385166000908152600360209081526040808320841515845290915290205490915061ffff166102c78587611191565b61ffff1611156102dc57600092505050610353565b6001600160a01b0380851660008181526003602090815260408083208615158452825280832054938352600482528083209487168352939052919091205461ffff9091169061033790869061033290899061166b565b611191565b61ffff16111561034c57600092505050610353565b6001925050505b949350505050565b3360009081526020819052604090205460ff166103935760405162461bcd60e51b815260040161038a9061167e565b60405180910390fd5b6001600160a01b0381166103e95760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f206164647265737300604482015260640161038a565b336001600160a01b038216146104115760405162461bcd60e51b815260040161038a906116b5565b6001600160a01b038116600081815260208190526040808220805460ff19169055517f408b49d9be1c914c52a0227e18a077e5a892dddf32a26cfa94a5d9708fad77189190a250565b3360009081526020819052604090205460ff166104895760405162461bcd60e51b815260040161038a9061167e565b60006104953385610e3d565b905060006104a33385610e3d565b905060006104b13386610fc3565b3360009081526004602090815260408083206001600160a01b03871684529091528120805492935086929091906104e990849061166b565b90915550503360009081526004602090815260408083206001600160a01b0387168452909152812080548692906105219084906116f6565b90915550503360008181526003602090815260408083208515158452825280832054848452600483528184206001600160a01b03881685529092529091205461ffff9091169161057091611191565b61ffff16111561059c5760405163bc37982360e01b81523360048201526024810185905260440161038a565b505050505050565b3360009081526020819052604090205460ff166105d35760405162461bcd60e51b815260040161038a9061167e565b60006105df3384610e3d565b3360009081526004602090815260408083206001600160a01b03851684529091528120805492935084929091906106179084906116f6565b9091555050505050565b6001600160a01b0381166106775760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f206164647265737300604482015260640161038a565b6001600160a01b03811660009081526020819052604090205460ff16156106e05760405162461bcd60e51b815260206004820152601860248201527f636f6d706c69616e636520616c726561647920626f756e640000000000000000604482015260640161038a565b336001600160a01b038216146107085760405162461bcd60e51b815260040161038a906116b5565b6001600160a01b038116600081815260208190526040808220805460ff19166001179055517f1f7b76c58fb697eb53c6c7c1becb96911516a136e24d7ced386b2355358b75a39190a250565b828015806107625750808214155b1561078a57858585858560405163355c2bfd60e11b815260040161038a959493929190611709565b336001600160a01b0316866001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107f69190611798565b6001600160a01b0316146108285760405163e8649dab60e01b81526001600160a01b038716600482015260240161038a565b60405163a446d49f60e01b81523060048201526001600160a01b0387169063a446d49f90602401602060405180830381865afa15801561086c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061089091906117b5565b156108b95760405163346a0c0160e21b81526001600160a01b038716600482015260240161038a565b60005b818110156109155761090d878787848181106108da576108da6117d7565b90506020020160208101906108ef9190611419565b868685818110610901576109016117d7565b90506020020135611307565b6001016108bc565b5050506001600160a01b039093166000908152600160208190526040909120805460ff19169091179055505050565b6001600160a01b03811660009081526001602052604081205460ff161561096d57506001919050565b6000826001600160a01b0316636a3edf286040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109d19190611798565b90506000816001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a3791906117ed565b905080600003610a4b575060019392505050565b5060009392505050565b6001600160a01b038083166000908152600460209081526040808320938516835292905220545b92915050565b3360009081526020819052604090205460ff16610ab15760405162461bcd60e51b815260040161038a9061167e565b336000818152600260209081526040808320805461ffff808a1661ffff1992831617909255600384528285206001865280855283862080548a851690841681179091558680529452828520805492881692909116821790559051909391927f28cb11a33332bc47c32fb9d625d79476808e022f515e43da3916a3c8b6b5557691a4505050565b336001600160a01b0316816001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b7f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ba39190611798565b6001600160a01b031614610bd55760405163e8649dab60e01b81526001600160a01b038216600482015260240161038a565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b3360009081526020819052604090205460ff16610c2b5760405162461bcd60e51b815260040161038a9061167e565b6000610c373384610e3d565b90506000610c453385610fc3565b3360009081526004602090815260408083206001600160a01b0387168452909152812080549293508592909190610c7d90849061166b565b90915550503360008181526003602090815260408083208515158452825280832054848452600483528184206001600160a01b03881685529092529091205461ffff90911691610ccc91611191565b61ffff161115610cf85760405163bc37982360e01b81523360048201526024810184905260440161038a565b50505050565b336001600160a01b0316836001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d46573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d6a9190611798565b6001600160a01b031614610d9c5760405163e8649dab60e01b81526001600160a01b038416600482015260240161038a565b60405163a446d49f60e01b81523060048201526001600160a01b0384169063a446d49f90602401602060405180830381865afa158015610de0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e0491906117b5565b15610e2d5760405163346a0c0160e21b81526001600160a01b038416600482015260240161038a565b610e38838383611307565b505050565b600080836001600160a01b0316636a3edf286040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ea29190611798565b6001600160a01b031663134e18f46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610edf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f039190611798565b604051633c3ad79560e21b81526001600160a01b038581166004830152919091169063f0eb5e5490602401602060405180830381865afa158015610f4b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f6f9190611798565b90506001600160a01b038116610fbc5760405162461bcd60e51b81526020600482015260126024820152711a59195b9d1a5d1e481b9bdd08199bdd5b9960721b604482015260640161038a565b9392505050565b600080836001600160a01b0316636a3edf286040518163ffffffff1660e01b8152600401602060405180830381865afa158015611004573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110289190611798565b6001600160a01b031663134e18f46040518163ffffffff1660e01b8152600401602060405180830381865afa158015611065573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110899190611798565b604051637e42683b60e01b81526001600160a01b0385811660048301529190911690637e42683b90602401602060405180830381865afa1580156110d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110f59190611806565b90508061ffff166000036111675760405162461bcd60e51b815260206004820152603360248201527f4d61784f776e6572736869704279436f756e7472794d6f64756c653a207573656044820152721c8818dbdd5b9d1c9e481b9bdd08199bdd5b99606a1b606482015260840161038a565b6001600160a01b03841660009081526002602052604090205461ffff918216911614905092915050565b600080836001600160a01b0316636a3edf286040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111f69190611798565b90506000816001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611238573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061125c91906117ed565b90506000826001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561129e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112c29190611823565b60ff169050600061271090506112fc83604051806060016040528060378152602001611874603791396112f58985611368565b9190611374565b979650505050505050565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f0a777417e1c0a4b24c5f556b0c3dd522c37b99b2c3ca4bf9fea2fa1293c660c9910160405180910390a3505050565b6000610fbc8284611846565b600081836113955760405162461bcd60e51b815260040161038a9190611436565b508284816113a5576113a561185d565b04949350505050565b6001600160a01b03811681146113c357600080fd5b50565b600080600080608085870312156113dc57600080fd5b84356113e7816113ae565b935060208501356113f7816113ae565b925060408501359150606085013561140e816113ae565b939692955090935050565b60006020828403121561142b57600080fd5b8135610fbc816113ae565b60006020808352835180602085015260005b8181101561146457858101830151858201604001528201611448565b506000604082860101526040601f19601f8301168501019250505092915050565b60008060006060848603121561149a57600080fd5b83356114a5816113ae565b925060208401356114b5816113ae565b929592945050506040919091013590565b600080604083850312156114d957600080fd5b82356114e4816113ae565b946020939093013593505050565b60008083601f84011261150457600080fd5b50813567ffffffffffffffff81111561151c57600080fd5b6020830191508360208260051b850101111561153757600080fd5b9250929050565b60008060008060006060868803121561155657600080fd5b8535611561816113ae565b9450602086013567ffffffffffffffff8082111561157e57600080fd5b61158a89838a016114f2565b909650945060408801359150808211156115a357600080fd5b506115b0888289016114f2565b969995985093965092949392505050565b600080604083850312156115d457600080fd5b82356115df816113ae565b915060208301356115ef816113ae565b809150509250929050565b61ffff811681146113c357600080fd5b60008060006060848603121561161f57600080fd5b833561162a816115fa565b9250602084013561163a816115fa565b9150604084013561164a816115fa565b809150509250925092565b634e487b7160e01b600052601160045260246000fd5b80820180821115610a7c57610a7c611655565b6020808252601e908201527f6f6e6c7920626f756e6420636f6d706c69616e63652063616e2063616c6c0000604082015260600190565b60208082526021908201527f6f6e6c7920636f6d706c69616e636520636f6e74726163742063616e2063616c6040820152601b60fa1b606082015260800190565b81810381811115610a7c57610a7c611655565b6001600160a01b03868116825260606020808401829052908301869052600091879160808501845b89811015611758578435611744816113ae565b841682529382019390820190600101611731565b5085810360408701528681526001600160fb1b0387111561177857600080fd5b8660051b9350838860208301379092016020019998505050505050505050565b6000602082840312156117aa57600080fd5b8151610fbc816113ae565b6000602082840312156117c757600080fd5b81518015158114610fbc57600080fd5b634e487b7160e01b600052603260045260246000fd5b6000602082840312156117ff57600080fd5b5051919050565b60006020828403121561181857600080fd5b8151610fbc816115fa565b60006020828403121561183557600080fd5b815160ff81168114610fbc57600080fd5b8082028115828204841417610a7c57610a7c611655565b634e487b7160e01b600052601260045260246000fdfe4d61784f776e6572736869704279436f756e7472794d6f64756c653a20746f6b656e20746f74616c20737570706c79206973207a65726fa26469706673582212203fe5ad0f566d620d1d0322279f04bcead72ab267e3dfadb186095412120169a464736f6c63430008180033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100f55760003560e01c80638f27c0eb11610097578063dd50b74c11610066578063dd50b74c14610235578063e6f5e80714610248578063f104a8c91461024f578063f7c4722c1461026257600080fd5b80638f27c0eb146101db578063bcc21053146101ee578063cc203f7514610201578063d5be92ad1461022257600080fd5b80632cb7e1ec116100d35780632cb7e1ec14610176578063372491a2146101895780634a9325441461019c5780634cf4d295146101af57600080fd5b8063013b7ce4146100fa5780630694a5fb1461012257806306fdde0314610137575b600080fd5b61010d6101083660046113c6565b610275565b60405190151581526020015b60405180910390f35b610135610130366004611419565b61035b565b005b604080518082018252601b81527f4d61784f776e6572736869704279436f756e7472794d6f64756c650000000000602082015290516101199190611436565b610135610184366004611485565b61045a565b6101356101973660046114c6565b6105a4565b6101356101aa366004611419565b610621565b61010d6101bd366004611419565b6001600160a01b031660009081526020819052604090205460ff1690565b6101356101e936600461153e565b610754565b61010d6101fc366004611419565b610944565b61021461020f3660046115c1565b610a55565b604051908152602001610119565b61013561023036600461160a565b610a82565b610135610243366004611419565b610b37565b600061010d565b61013561025d3660046114c6565b610bfc565b610135610270366004611485565b610cfe565b6000806102828386610e3d565b905060006102908487610fc3565b6001600160a01b0385166000908152600360209081526040808320841515845290915290205490915061ffff166102c78587611191565b61ffff1611156102dc57600092505050610353565b6001600160a01b0380851660008181526003602090815260408083208615158452825280832054938352600482528083209487168352939052919091205461ffff9091169061033790869061033290899061166b565b611191565b61ffff16111561034c57600092505050610353565b6001925050505b949350505050565b3360009081526020819052604090205460ff166103935760405162461bcd60e51b815260040161038a9061167e565b60405180910390fd5b6001600160a01b0381166103e95760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f206164647265737300604482015260640161038a565b336001600160a01b038216146104115760405162461bcd60e51b815260040161038a906116b5565b6001600160a01b038116600081815260208190526040808220805460ff19169055517f408b49d9be1c914c52a0227e18a077e5a892dddf32a26cfa94a5d9708fad77189190a250565b3360009081526020819052604090205460ff166104895760405162461bcd60e51b815260040161038a9061167e565b60006104953385610e3d565b905060006104a33385610e3d565b905060006104b13386610fc3565b3360009081526004602090815260408083206001600160a01b03871684529091528120805492935086929091906104e990849061166b565b90915550503360009081526004602090815260408083206001600160a01b0387168452909152812080548692906105219084906116f6565b90915550503360008181526003602090815260408083208515158452825280832054848452600483528184206001600160a01b03881685529092529091205461ffff9091169161057091611191565b61ffff16111561059c5760405163bc37982360e01b81523360048201526024810185905260440161038a565b505050505050565b3360009081526020819052604090205460ff166105d35760405162461bcd60e51b815260040161038a9061167e565b60006105df3384610e3d565b3360009081526004602090815260408083206001600160a01b03851684529091528120805492935084929091906106179084906116f6565b9091555050505050565b6001600160a01b0381166106775760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f206164647265737300604482015260640161038a565b6001600160a01b03811660009081526020819052604090205460ff16156106e05760405162461bcd60e51b815260206004820152601860248201527f636f6d706c69616e636520616c726561647920626f756e640000000000000000604482015260640161038a565b336001600160a01b038216146107085760405162461bcd60e51b815260040161038a906116b5565b6001600160a01b038116600081815260208190526040808220805460ff19166001179055517f1f7b76c58fb697eb53c6c7c1becb96911516a136e24d7ced386b2355358b75a39190a250565b828015806107625750808214155b1561078a57858585858560405163355c2bfd60e11b815260040161038a959493929190611709565b336001600160a01b0316866001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107f69190611798565b6001600160a01b0316146108285760405163e8649dab60e01b81526001600160a01b038716600482015260240161038a565b60405163a446d49f60e01b81523060048201526001600160a01b0387169063a446d49f90602401602060405180830381865afa15801561086c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061089091906117b5565b156108b95760405163346a0c0160e21b81526001600160a01b038716600482015260240161038a565b60005b818110156109155761090d878787848181106108da576108da6117d7565b90506020020160208101906108ef9190611419565b868685818110610901576109016117d7565b90506020020135611307565b6001016108bc565b5050506001600160a01b039093166000908152600160208190526040909120805460ff19169091179055505050565b6001600160a01b03811660009081526001602052604081205460ff161561096d57506001919050565b6000826001600160a01b0316636a3edf286040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109d19190611798565b90506000816001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a3791906117ed565b905080600003610a4b575060019392505050565b5060009392505050565b6001600160a01b038083166000908152600460209081526040808320938516835292905220545b92915050565b3360009081526020819052604090205460ff16610ab15760405162461bcd60e51b815260040161038a9061167e565b336000818152600260209081526040808320805461ffff808a1661ffff1992831617909255600384528285206001865280855283862080548a851690841681179091558680529452828520805492881692909116821790559051909391927f28cb11a33332bc47c32fb9d625d79476808e022f515e43da3916a3c8b6b5557691a4505050565b336001600160a01b0316816001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b7f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ba39190611798565b6001600160a01b031614610bd55760405163e8649dab60e01b81526001600160a01b038216600482015260240161038a565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b3360009081526020819052604090205460ff16610c2b5760405162461bcd60e51b815260040161038a9061167e565b6000610c373384610e3d565b90506000610c453385610fc3565b3360009081526004602090815260408083206001600160a01b0387168452909152812080549293508592909190610c7d90849061166b565b90915550503360008181526003602090815260408083208515158452825280832054848452600483528184206001600160a01b03881685529092529091205461ffff90911691610ccc91611191565b61ffff161115610cf85760405163bc37982360e01b81523360048201526024810184905260440161038a565b50505050565b336001600160a01b0316836001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d46573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d6a9190611798565b6001600160a01b031614610d9c5760405163e8649dab60e01b81526001600160a01b038416600482015260240161038a565b60405163a446d49f60e01b81523060048201526001600160a01b0384169063a446d49f90602401602060405180830381865afa158015610de0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e0491906117b5565b15610e2d5760405163346a0c0160e21b81526001600160a01b038416600482015260240161038a565b610e38838383611307565b505050565b600080836001600160a01b0316636a3edf286040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ea29190611798565b6001600160a01b031663134e18f46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610edf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f039190611798565b604051633c3ad79560e21b81526001600160a01b038581166004830152919091169063f0eb5e5490602401602060405180830381865afa158015610f4b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f6f9190611798565b90506001600160a01b038116610fbc5760405162461bcd60e51b81526020600482015260126024820152711a59195b9d1a5d1e481b9bdd08199bdd5b9960721b604482015260640161038a565b9392505050565b600080836001600160a01b0316636a3edf286040518163ffffffff1660e01b8152600401602060405180830381865afa158015611004573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110289190611798565b6001600160a01b031663134e18f46040518163ffffffff1660e01b8152600401602060405180830381865afa158015611065573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110899190611798565b604051637e42683b60e01b81526001600160a01b0385811660048301529190911690637e42683b90602401602060405180830381865afa1580156110d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110f59190611806565b90508061ffff166000036111675760405162461bcd60e51b815260206004820152603360248201527f4d61784f776e6572736869704279436f756e7472794d6f64756c653a207573656044820152721c8818dbdd5b9d1c9e481b9bdd08199bdd5b99606a1b606482015260840161038a565b6001600160a01b03841660009081526002602052604090205461ffff918216911614905092915050565b600080836001600160a01b0316636a3edf286040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111f69190611798565b90506000816001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611238573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061125c91906117ed565b90506000826001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561129e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112c29190611823565b60ff169050600061271090506112fc83604051806060016040528060378152602001611874603791396112f58985611368565b9190611374565b979650505050505050565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f0a777417e1c0a4b24c5f556b0c3dd522c37b99b2c3ca4bf9fea2fa1293c660c9910160405180910390a3505050565b6000610fbc8284611846565b600081836113955760405162461bcd60e51b815260040161038a9190611436565b508284816113a5576113a561185d565b04949350505050565b6001600160a01b03811681146113c357600080fd5b50565b600080600080608085870312156113dc57600080fd5b84356113e7816113ae565b935060208501356113f7816113ae565b925060408501359150606085013561140e816113ae565b939692955090935050565b60006020828403121561142b57600080fd5b8135610fbc816113ae565b60006020808352835180602085015260005b8181101561146457858101830151858201604001528201611448565b506000604082860101526040601f19601f8301168501019250505092915050565b60008060006060848603121561149a57600080fd5b83356114a5816113ae565b925060208401356114b5816113ae565b929592945050506040919091013590565b600080604083850312156114d957600080fd5b82356114e4816113ae565b946020939093013593505050565b60008083601f84011261150457600080fd5b50813567ffffffffffffffff81111561151c57600080fd5b6020830191508360208260051b850101111561153757600080fd5b9250929050565b60008060008060006060868803121561155657600080fd5b8535611561816113ae565b9450602086013567ffffffffffffffff8082111561157e57600080fd5b61158a89838a016114f2565b909650945060408801359150808211156115a357600080fd5b506115b0888289016114f2565b969995985093965092949392505050565b600080604083850312156115d457600080fd5b82356115df816113ae565b915060208301356115ef816113ae565b809150509250929050565b61ffff811681146113c357600080fd5b60008060006060848603121561161f57600080fd5b833561162a816115fa565b9250602084013561163a816115fa565b9150604084013561164a816115fa565b809150509250925092565b634e487b7160e01b600052601160045260246000fd5b80820180821115610a7c57610a7c611655565b6020808252601e908201527f6f6e6c7920626f756e6420636f6d706c69616e63652063616e2063616c6c0000604082015260600190565b60208082526021908201527f6f6e6c7920636f6d706c69616e636520636f6e74726163742063616e2063616c6040820152601b60fa1b606082015260800190565b81810381811115610a7c57610a7c611655565b6001600160a01b03868116825260606020808401829052908301869052600091879160808501845b89811015611758578435611744816113ae565b841682529382019390820190600101611731565b5085810360408701528681526001600160fb1b0387111561177857600080fd5b8660051b9350838860208301379092016020019998505050505050505050565b6000602082840312156117aa57600080fd5b8151610fbc816113ae565b6000602082840312156117c757600080fd5b81518015158114610fbc57600080fd5b634e487b7160e01b600052603260045260246000fd5b6000602082840312156117ff57600080fd5b5051919050565b60006020828403121561181857600080fd5b8151610fbc816115fa565b60006020828403121561183557600080fd5b815160ff81168114610fbc57600080fd5b8082028115828204841417610a7c57610a7c611655565b634e487b7160e01b600052601260045260246000fdfe4d61784f776e6572736869704279436f756e7472794d6f64756c653a20746f6b656e20746f74616c20737570706c79206973207a65726fa26469706673582212203fe5ad0f566d620d1d0322279f04bcead72ab267e3dfadb186095412120169a464736f6c63430008180033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/data/abis/MaxOwnershipModule.json b/data/abis/MaxOwnershipModule.json new file mode 100644 index 0000000..8a788b7 --- /dev/null +++ b/data/abis/MaxOwnershipModule.json @@ -0,0 +1,419 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "MaxOwnershipModule", + "sourceName": "contracts/erc3643/compliance/modular/modules/MaxOwnershipModule.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_compliance", + "type": "address" + }, + { + "internalType": "address[]", + "name": "_id", + "type": "address[]" + }, + { + "internalType": "uint256[]", + "name": "_balance", + "type": "uint256[]" + } + ], + "name": "InvalidPresetValues", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_compliance", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_value", + "type": "uint256" + } + ], + "name": "MaxOwnershipExceeded", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_compliance", + "type": "address" + } + ], + "name": "OnlyComplianceOwnerCanCall", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_compliance", + "type": "address" + } + ], + "name": "TokenAlreadyBound", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_compliance", + "type": "address" + } + ], + "name": "ComplianceBound", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_compliance", + "type": "address" + } + ], + "name": "ComplianceUnbound", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_compliance", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "_id", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_balance", + "type": "uint256" + } + ], + "name": "IDBalancePreSet", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_compliance", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_maxPercetage", + "type": "uint256" + } + ], + "name": "MaxPercentageSet", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_compliance", + "type": "address" + }, + { + "internalType": "address[]", + "name": "_id", + "type": "address[]" + }, + { + "internalType": "uint256[]", + "name": "_balance", + "type": "uint256[]" + } + ], + "name": "batchPreSetModuleState", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_compliance", + "type": "address" + } + ], + "name": "bindCompliance", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_compliance", + "type": "address" + } + ], + "name": "canComplianceBind", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_compliance", + "type": "address" + }, + { + "internalType": "address", + "name": "_identity", + "type": "address" + } + ], + "name": "getIDBalance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_compliance", + "type": "address" + } + ], + "name": "isComplianceBound", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "isPlugAndPlay", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_from", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_value", + "type": "uint256" + } + ], + "name": "moduleBurnAction", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "_to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_value", + "type": "uint256" + }, + { + "internalType": "address", + "name": "_compliance", + "type": "address" + } + ], + "name": "moduleCheck", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_value", + "type": "uint256" + } + ], + "name": "moduleMintAction", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_from", + "type": "address" + }, + { + "internalType": "address", + "name": "_to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_value", + "type": "uint256" + } + ], + "name": "moduleTransferAction", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "_name", + "type": "string" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_compliance", + "type": "address" + }, + { + "internalType": "address", + "name": "_id", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_balance", + "type": "uint256" + } + ], + "name": "preSetModuleState", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_compliance", + "type": "address" + } + ], + "name": "presetCompleted", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_max", + "type": "uint256" + } + ], + "name": "setMaxPercentage", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_compliance", + "type": "address" + } + ], + "name": "unbindCompliance", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x608060405234801561001057600080fd5b506116c9806100206000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c80638f27c0eb11610097578063dd50b74c11610066578063dd50b74c1461022a578063e6f5e8071461023d578063f104a8c914610244578063f7c4722c1461025757600080fd5b80638f27c0eb146101d057806394ab5382146101e3578063bcc21053146101f6578063cc203f751461020957600080fd5b80632cb7e1ec116100d35780632cb7e1ec1461016b578063372491a21461017e5780634a932544146101915780634cf4d295146101a457600080fd5b8063013b7ce4146100fa5780630694a5fb1461012257806306fdde0314610137575b600080fd5b61010d610108366004611127565b61026a565b60405190151581526020015b60405180910390f35b61013561013036600461117a565b61030f565b005b60408051808201825260128152714d61784f776e6572736869704d6f64756c6560701b602082015290516101199190611197565b6101356101793660046111e6565b61040e565b61013561018c366004611227565b610533565b61013561019f36600461117a565b6105b0565b61010d6101b236600461117a565b6001600160a01b031660009081526020819052604090205460ff1690565b6101356101de36600461129f565b6106e3565b6101356101f1366004611322565b6108d3565b61010d61020436600461117a565b61093f565b61021c61021736600461133b565b610a50565b604051908152602001610119565b61013561023836600461117a565b610a7d565b600061010d565b610135610252366004611227565b610b42565b6101356102653660046111e6565b610c1f565b6001600160a01b03811660009081526002602052604081205461028d8385610d59565b111561029b57506000610307565b60006102a78386610ee2565b6001600160a01b0380851660009081526002602090815260408083205460038352818420948616845293909152902054919250906102f19085906102ec90889061138a565b610d59565b1115610301576000915050610307565b60019150505b949350505050565b3360009081526020819052604090205460ff166103475760405162461bcd60e51b815260040161033e9061139d565b60405180910390fd5b6001600160a01b03811661039d5760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f206164647265737300604482015260640161033e565b336001600160a01b038216146103c55760405162461bcd60e51b815260040161033e906113d4565b6001600160a01b038116600081815260208190526040808220805460ff19169055517f408b49d9be1c914c52a0227e18a077e5a892dddf32a26cfa94a5d9708fad77189190a250565b3360009081526020819052604090205460ff1661043d5760405162461bcd60e51b815260040161033e9061139d565b60006104493385610ee2565b905060006104573385610ee2565b3360009081526003602090815260408083206001600160a01b038516845290915281208054929350859290919061048f90849061138a565b90915550503360009081526003602090815260408083206001600160a01b0386168452909152812080548592906104c7908490611415565b909155505033600081815260026020908152604080832054600383528184206001600160a01b038716855290925290912054909161050491610d59565b111561052c5760405163bc37982360e01b81523360048201526024810184905260440161033e565b5050505050565b3360009081526020819052604090205460ff166105625760405162461bcd60e51b815260040161033e9061139d565b600061056e3384610ee2565b3360009081526003602090815260408083206001600160a01b03851684529091528120805492935084929091906105a6908490611415565b9091555050505050565b6001600160a01b0381166106065760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f206164647265737300604482015260640161033e565b6001600160a01b03811660009081526020819052604090205460ff161561066f5760405162461bcd60e51b815260206004820152601860248201527f636f6d706c69616e636520616c726561647920626f756e640000000000000000604482015260640161033e565b336001600160a01b038216146106975760405162461bcd60e51b815260040161033e906113d4565b6001600160a01b038116600081815260208190526040808220805460ff19166001179055517f1f7b76c58fb697eb53c6c7c1becb96911516a136e24d7ced386b2355358b75a39190a250565b828015806106f15750808214155b1561071957858585858560405163355c2bfd60e11b815260040161033e959493929190611428565b336001600160a01b0316866001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610761573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061078591906114b7565b6001600160a01b0316146107b75760405163e8649dab60e01b81526001600160a01b038716600482015260240161033e565b60405163a446d49f60e01b81523060048201526001600160a01b0387169063a446d49f90602401602060405180830381865afa1580156107fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061081f91906114d4565b156108485760405163346a0c0160e21b81526001600160a01b038716600482015260240161033e565b60005b818110156108a45761089c87878784818110610869576108696114f6565b905060200201602081019061087e919061117a565b868685818110610890576108906114f6565b90506020020135611068565b60010161084b565b5050506001600160a01b039093166000908152600160208190526040909120805460ff19169091179055505050565b3360009081526020819052604090205460ff166109025760405162461bcd60e51b815260040161033e9061139d565b33600081815260026020526040808220849055518392917f69d3f17a4d359a9ec124095039a7a29ced624e1c6cd5d4f6cbe7ddc0dc434beb91a350565b6001600160a01b03811660009081526001602052604081205460ff161561096857506001919050565b6000826001600160a01b0316636a3edf286040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109cc91906114b7565b90506000816001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a32919061150c565b905080600003610a46575060019392505050565b5060009392505050565b6001600160a01b038083166000908152600360209081526040808320938516835292905220545b92915050565b336001600160a01b0316816001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ac5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ae991906114b7565b6001600160a01b031614610b1b5760405163e8649dab60e01b81526001600160a01b038216600482015260240161033e565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b3360009081526020819052604090205460ff16610b715760405162461bcd60e51b815260040161033e9061139d565b6000610b7d3384610ee2565b3360009081526003602090815260408083206001600160a01b0385168452909152812080549293508492909190610bb590849061138a565b909155505033600081815260026020908152604080832054600383528184206001600160a01b0387168552909252909120549091610bf291610d59565b1115610c1a5760405163bc37982360e01b81523360048201526024810183905260440161033e565b505050565b336001600160a01b0316836001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c8b91906114b7565b6001600160a01b031614610cbd5760405163e8649dab60e01b81526001600160a01b038416600482015260240161033e565b60405163a446d49f60e01b81523060048201526001600160a01b0384169063a446d49f90602401602060405180830381865afa158015610d01573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d2591906114d4565b15610d4e5760405163346a0c0160e21b81526001600160a01b038416600482015260240161033e565b610c1a838383611068565b600080836001600160a01b0316636a3edf286040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dbe91906114b7565b90506000816001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e24919061150c565b90506000826001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e66573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e8a9190611525565b60ff1690506000610e9c82600a61162c565b610ea7906064611638565b9050610ed7836040518060600160405280602e8152602001611666602e9139610ed089856110c9565b91906110d5565b979650505050505050565b600080836001600160a01b0316636a3edf286040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f23573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f4791906114b7565b6001600160a01b031663134e18f46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f84573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa891906114b7565b604051633c3ad79560e21b81526001600160a01b038581166004830152919091169063f0eb5e5490602401602060405180830381865afa158015610ff0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061101491906114b7565b90506001600160a01b0381166110615760405162461bcd60e51b81526020600482015260126024820152711a59195b9d1a5d1e481b9bdd08199bdd5b9960721b604482015260640161033e565b9392505050565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f0a777417e1c0a4b24c5f556b0c3dd522c37b99b2c3ca4bf9fea2fa1293c660c9910160405180910390a3505050565b60006110618284611638565b600081836110f65760405162461bcd60e51b815260040161033e9190611197565b508284816111065761110661164f565b04949350505050565b6001600160a01b038116811461112457600080fd5b50565b6000806000806080858703121561113d57600080fd5b84356111488161110f565b935060208501356111588161110f565b925060408501359150606085013561116f8161110f565b939692955090935050565b60006020828403121561118c57600080fd5b81356110618161110f565b60006020808352835180602085015260005b818110156111c5578581018301518582016040015282016111a9565b506000604082860101526040601f19601f8301168501019250505092915050565b6000806000606084860312156111fb57600080fd5b83356112068161110f565b925060208401356112168161110f565b929592945050506040919091013590565b6000806040838503121561123a57600080fd5b82356112458161110f565b946020939093013593505050565b60008083601f84011261126557600080fd5b50813567ffffffffffffffff81111561127d57600080fd5b6020830191508360208260051b850101111561129857600080fd5b9250929050565b6000806000806000606086880312156112b757600080fd5b85356112c28161110f565b9450602086013567ffffffffffffffff808211156112df57600080fd5b6112eb89838a01611253565b9096509450604088013591508082111561130457600080fd5b5061131188828901611253565b969995985093965092949392505050565b60006020828403121561133457600080fd5b5035919050565b6000806040838503121561134e57600080fd5b82356113598161110f565b915060208301356113698161110f565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610a7757610a77611374565b6020808252601e908201527f6f6e6c7920626f756e6420636f6d706c69616e63652063616e2063616c6c0000604082015260600190565b60208082526021908201527f6f6e6c7920636f6d706c69616e636520636f6e74726163742063616e2063616c6040820152601b60fa1b606082015260800190565b81810381811115610a7757610a77611374565b6001600160a01b03868116825260606020808401829052908301869052600091879160808501845b898110156114775784356114638161110f565b841682529382019390820190600101611450565b5085810360408701528681526001600160fb1b0387111561149757600080fd5b8660051b9350838860208301379092016020019998505050505050505050565b6000602082840312156114c957600080fd5b81516110618161110f565b6000602082840312156114e657600080fd5b8151801515811461106157600080fd5b634e487b7160e01b600052603260045260246000fd5b60006020828403121561151e57600080fd5b5051919050565b60006020828403121561153757600080fd5b815160ff8116811461106157600080fd5b600181815b8085111561158357816000190482111561156957611569611374565b8085161561157657918102915b93841c939080029061154d565b509250929050565b60008261159a57506001610a77565b816115a757506000610a77565b81600181146115bd57600281146115c7576115e3565b6001915050610a77565b60ff8411156115d8576115d8611374565b50506001821b610a77565b5060208310610133831016604e8410600b8410161715611606575081810a610a77565b6116108383611548565b806000190482111561162457611624611374565b029392505050565b6000611061838361158b565b8082028115828204841417610a7757610a77611374565b634e487b7160e01b600052601260045260246000fdfe4d61784f776e6572736869704d6f64756c653a20746f6b656e20746f74616c20737570706c79206973207a65726fa264697066735822122072b09443767e344479f9220710a3ad30974a4b63f7651adf6517bf126469a8c664736f6c63430008180033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100f55760003560e01c80638f27c0eb11610097578063dd50b74c11610066578063dd50b74c1461022a578063e6f5e8071461023d578063f104a8c914610244578063f7c4722c1461025757600080fd5b80638f27c0eb146101d057806394ab5382146101e3578063bcc21053146101f6578063cc203f751461020957600080fd5b80632cb7e1ec116100d35780632cb7e1ec1461016b578063372491a21461017e5780634a932544146101915780634cf4d295146101a457600080fd5b8063013b7ce4146100fa5780630694a5fb1461012257806306fdde0314610137575b600080fd5b61010d610108366004611127565b61026a565b60405190151581526020015b60405180910390f35b61013561013036600461117a565b61030f565b005b60408051808201825260128152714d61784f776e6572736869704d6f64756c6560701b602082015290516101199190611197565b6101356101793660046111e6565b61040e565b61013561018c366004611227565b610533565b61013561019f36600461117a565b6105b0565b61010d6101b236600461117a565b6001600160a01b031660009081526020819052604090205460ff1690565b6101356101de36600461129f565b6106e3565b6101356101f1366004611322565b6108d3565b61010d61020436600461117a565b61093f565b61021c61021736600461133b565b610a50565b604051908152602001610119565b61013561023836600461117a565b610a7d565b600061010d565b610135610252366004611227565b610b42565b6101356102653660046111e6565b610c1f565b6001600160a01b03811660009081526002602052604081205461028d8385610d59565b111561029b57506000610307565b60006102a78386610ee2565b6001600160a01b0380851660009081526002602090815260408083205460038352818420948616845293909152902054919250906102f19085906102ec90889061138a565b610d59565b1115610301576000915050610307565b60019150505b949350505050565b3360009081526020819052604090205460ff166103475760405162461bcd60e51b815260040161033e9061139d565b60405180910390fd5b6001600160a01b03811661039d5760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f206164647265737300604482015260640161033e565b336001600160a01b038216146103c55760405162461bcd60e51b815260040161033e906113d4565b6001600160a01b038116600081815260208190526040808220805460ff19169055517f408b49d9be1c914c52a0227e18a077e5a892dddf32a26cfa94a5d9708fad77189190a250565b3360009081526020819052604090205460ff1661043d5760405162461bcd60e51b815260040161033e9061139d565b60006104493385610ee2565b905060006104573385610ee2565b3360009081526003602090815260408083206001600160a01b038516845290915281208054929350859290919061048f90849061138a565b90915550503360009081526003602090815260408083206001600160a01b0386168452909152812080548592906104c7908490611415565b909155505033600081815260026020908152604080832054600383528184206001600160a01b038716855290925290912054909161050491610d59565b111561052c5760405163bc37982360e01b81523360048201526024810184905260440161033e565b5050505050565b3360009081526020819052604090205460ff166105625760405162461bcd60e51b815260040161033e9061139d565b600061056e3384610ee2565b3360009081526003602090815260408083206001600160a01b03851684529091528120805492935084929091906105a6908490611415565b9091555050505050565b6001600160a01b0381166106065760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f206164647265737300604482015260640161033e565b6001600160a01b03811660009081526020819052604090205460ff161561066f5760405162461bcd60e51b815260206004820152601860248201527f636f6d706c69616e636520616c726561647920626f756e640000000000000000604482015260640161033e565b336001600160a01b038216146106975760405162461bcd60e51b815260040161033e906113d4565b6001600160a01b038116600081815260208190526040808220805460ff19166001179055517f1f7b76c58fb697eb53c6c7c1becb96911516a136e24d7ced386b2355358b75a39190a250565b828015806106f15750808214155b1561071957858585858560405163355c2bfd60e11b815260040161033e959493929190611428565b336001600160a01b0316866001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610761573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061078591906114b7565b6001600160a01b0316146107b75760405163e8649dab60e01b81526001600160a01b038716600482015260240161033e565b60405163a446d49f60e01b81523060048201526001600160a01b0387169063a446d49f90602401602060405180830381865afa1580156107fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061081f91906114d4565b156108485760405163346a0c0160e21b81526001600160a01b038716600482015260240161033e565b60005b818110156108a45761089c87878784818110610869576108696114f6565b905060200201602081019061087e919061117a565b868685818110610890576108906114f6565b90506020020135611068565b60010161084b565b5050506001600160a01b039093166000908152600160208190526040909120805460ff19169091179055505050565b3360009081526020819052604090205460ff166109025760405162461bcd60e51b815260040161033e9061139d565b33600081815260026020526040808220849055518392917f69d3f17a4d359a9ec124095039a7a29ced624e1c6cd5d4f6cbe7ddc0dc434beb91a350565b6001600160a01b03811660009081526001602052604081205460ff161561096857506001919050565b6000826001600160a01b0316636a3edf286040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109cc91906114b7565b90506000816001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a32919061150c565b905080600003610a46575060019392505050565b5060009392505050565b6001600160a01b038083166000908152600360209081526040808320938516835292905220545b92915050565b336001600160a01b0316816001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ac5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ae991906114b7565b6001600160a01b031614610b1b5760405163e8649dab60e01b81526001600160a01b038216600482015260240161033e565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b3360009081526020819052604090205460ff16610b715760405162461bcd60e51b815260040161033e9061139d565b6000610b7d3384610ee2565b3360009081526003602090815260408083206001600160a01b0385168452909152812080549293508492909190610bb590849061138a565b909155505033600081815260026020908152604080832054600383528184206001600160a01b0387168552909252909120549091610bf291610d59565b1115610c1a5760405163bc37982360e01b81523360048201526024810183905260440161033e565b505050565b336001600160a01b0316836001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c8b91906114b7565b6001600160a01b031614610cbd5760405163e8649dab60e01b81526001600160a01b038416600482015260240161033e565b60405163a446d49f60e01b81523060048201526001600160a01b0384169063a446d49f90602401602060405180830381865afa158015610d01573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d2591906114d4565b15610d4e5760405163346a0c0160e21b81526001600160a01b038416600482015260240161033e565b610c1a838383611068565b600080836001600160a01b0316636a3edf286040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dbe91906114b7565b90506000816001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e24919061150c565b90506000826001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e66573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e8a9190611525565b60ff1690506000610e9c82600a61162c565b610ea7906064611638565b9050610ed7836040518060600160405280602e8152602001611666602e9139610ed089856110c9565b91906110d5565b979650505050505050565b600080836001600160a01b0316636a3edf286040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f23573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f4791906114b7565b6001600160a01b031663134e18f46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f84573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa891906114b7565b604051633c3ad79560e21b81526001600160a01b038581166004830152919091169063f0eb5e5490602401602060405180830381865afa158015610ff0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061101491906114b7565b90506001600160a01b0381166110615760405162461bcd60e51b81526020600482015260126024820152711a59195b9d1a5d1e481b9bdd08199bdd5b9960721b604482015260640161033e565b9392505050565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f0a777417e1c0a4b24c5f556b0c3dd522c37b99b2c3ca4bf9fea2fa1293c660c9910160405180910390a3505050565b60006110618284611638565b600081836110f65760405162461bcd60e51b815260040161033e9190611197565b508284816111065761110661164f565b04949350505050565b6001600160a01b038116811461112457600080fd5b50565b6000806000806080858703121561113d57600080fd5b84356111488161110f565b935060208501356111588161110f565b925060408501359150606085013561116f8161110f565b939692955090935050565b60006020828403121561118c57600080fd5b81356110618161110f565b60006020808352835180602085015260005b818110156111c5578581018301518582016040015282016111a9565b506000604082860101526040601f19601f8301168501019250505092915050565b6000806000606084860312156111fb57600080fd5b83356112068161110f565b925060208401356112168161110f565b929592945050506040919091013590565b6000806040838503121561123a57600080fd5b82356112458161110f565b946020939093013593505050565b60008083601f84011261126557600080fd5b50813567ffffffffffffffff81111561127d57600080fd5b6020830191508360208260051b850101111561129857600080fd5b9250929050565b6000806000806000606086880312156112b757600080fd5b85356112c28161110f565b9450602086013567ffffffffffffffff808211156112df57600080fd5b6112eb89838a01611253565b9096509450604088013591508082111561130457600080fd5b5061131188828901611253565b969995985093965092949392505050565b60006020828403121561133457600080fd5b5035919050565b6000806040838503121561134e57600080fd5b82356113598161110f565b915060208301356113698161110f565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610a7757610a77611374565b6020808252601e908201527f6f6e6c7920626f756e6420636f6d706c69616e63652063616e2063616c6c0000604082015260600190565b60208082526021908201527f6f6e6c7920636f6d706c69616e636520636f6e74726163742063616e2063616c6040820152601b60fa1b606082015260800190565b81810381811115610a7757610a77611374565b6001600160a01b03868116825260606020808401829052908301869052600091879160808501845b898110156114775784356114638161110f565b841682529382019390820190600101611450565b5085810360408701528681526001600160fb1b0387111561149757600080fd5b8660051b9350838860208301379092016020019998505050505050505050565b6000602082840312156114c957600080fd5b81516110618161110f565b6000602082840312156114e657600080fd5b8151801515811461106157600080fd5b634e487b7160e01b600052603260045260246000fd5b60006020828403121561151e57600080fd5b5051919050565b60006020828403121561153757600080fd5b815160ff8116811461106157600080fd5b600181815b8085111561158357816000190482111561156957611569611374565b8085161561157657918102915b93841c939080029061154d565b509250929050565b60008261159a57506001610a77565b816115a757506000610a77565b81600181146115bd57600281146115c7576115e3565b6001915050610a77565b60ff8411156115d8576115d8611374565b50506001821b610a77565b5060208310610133831016604e8410600b8410161715611606575081810a610a77565b6116108383611548565b806000190482111561162457611624611374565b029392505050565b6000611061838361158b565b8082028115828204841417610a7757610a77611374565b634e487b7160e01b600052601260045260246000fdfe4d61784f776e6572736869704d6f64756c653a20746f6b656e20746f74616c20737570706c79206973207a65726fa264697066735822122072b09443767e344479f9220710a3ad30974a4b63f7651adf6517bf126469a8c664736f6c63430008180033", + "linkReferences": {}, + "deployedLinkReferences": {} +}