UNPKG

@0xcert/ethereum-gateway-contracts

Version:

Smart contracts used by the gateway on the Ethereum blockchain.

1,278 lines (1,277 loc) 74.1 kB
{ "XcertDeployGateway": { "abi": [ { "inputs": [ { "internalType": "address", "name": "_xcertDeployProxy", "type": "address" }, { "internalType": "address", "name": "_tokenTransferProxy", "type": "address" }, { "internalType": "address", "name": "_xcertCreateProxy", "type": "address" }, { "internalType": "address", "name": "_xcertUpdateProxy", "type": "address" }, { "internalType": "address", "name": "_abilitableManageProxy", "type": "address" }, { "internalType": "address", "name": "_nftSafeTransferProxy", "type": "address" }, { "internalType": "address", "name": "_xcertBurnProxy", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "_maker", "type": "address" }, { "indexed": true, "internalType": "address", "name": "_taker", "type": "address" }, { "indexed": false, "internalType": "bytes32", "name": "_claim", "type": "bytes32" } ], "name": "Cancel", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "_maker", "type": "address" }, { "indexed": true, "internalType": "address", "name": "_taker", "type": "address" }, { "indexed": false, "internalType": "address", "name": "_createdContract", "type": "address" }, { "indexed": false, "internalType": "bytes32", "name": "_claim", "type": "bytes32" } ], "name": "Perform", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "_proxy", "type": "address" } ], "name": "ProxyChange", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "_target", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "_abilities", "type": "uint256" } ], "name": "SetAbilities", "type": "event" }, { "inputs": [], "name": "abilitableManageProxy", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "addressToAbility", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "address", "name": "maker", "type": "address" }, { "internalType": "address", "name": "taker", "type": "address" }, { "components": [ { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "symbol", "type": "string" }, { "internalType": "string", "name": "uriPrefix", "type": "string" }, { "internalType": "string", "name": "uriPostfix", "type": "string" }, { "internalType": "bytes32", "name": "schemaId", "type": "bytes32" }, { "internalType": "bytes4[]", "name": "capabilities", "type": "bytes4[]" }, { "internalType": "address", "name": "owner", "type": "address" } ], "internalType": "struct XcertDeployGateway.XcertData", "name": "xcertData", "type": "tuple" }, { "components": [ { "internalType": "address", "name": "token", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "internalType": "struct XcertDeployGateway.TransferData", "name": "transferData", "type": "tuple" }, { "internalType": "uint256", "name": "seed", "type": "uint256" }, { "internalType": "uint256", "name": "expiration", "type": "uint256" } ], "internalType": "struct XcertDeployGateway.DeployData", "name": "_data", "type": "tuple" } ], "name": "cancel", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "name": "deployCancelled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "name": "deployPerformed", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "address", "name": "maker", "type": "address" }, { "internalType": "address", "name": "taker", "type": "address" }, { "components": [ { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "symbol", "type": "string" }, { "internalType": "string", "name": "uriPrefix", "type": "string" }, { "internalType": "string", "name": "uriPostfix", "type": "string" }, { "internalType": "bytes32", "name": "schemaId", "type": "bytes32" }, { "internalType": "bytes4[]", "name": "capabilities", "type": "bytes4[]" }, { "internalType": "address", "name": "owner", "type": "address" } ], "internalType": "struct XcertDeployGateway.XcertData", "name": "xcertData", "type": "tuple" }, { "components": [ { "internalType": "address", "name": "token", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "internalType": "struct XcertDeployGateway.TransferData", "name": "transferData", "type": "tuple" }, { "internalType": "uint256", "name": "seed", "type": "uint256" }, { "internalType": "uint256", "name": "expiration", "type": "uint256" } ], "internalType": "struct XcertDeployGateway.DeployData", "name": "_deployData", "type": "tuple" } ], "name": "getDeployDataClaim", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_target", "type": "address" }, { "internalType": "uint256", "name": "_abilities", "type": "uint256" } ], "name": "grantAbilities", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_target", "type": "address" }, { "internalType": "uint256", "name": "_abilities", "type": "uint256" } ], "name": "isAble", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_signer", "type": "address" }, { "internalType": "bytes32", "name": "_claim", "type": "bytes32" }, { "components": [ { "internalType": "bytes32", "name": "r", "type": "bytes32" }, { "internalType": "bytes32", "name": "s", "type": "bytes32" }, { "internalType": "uint8", "name": "v", "type": "uint8" }, { "internalType": "enum XcertDeployGateway.SignatureKind", "name": "kind", "type": "uint8" } ], "internalType": "struct XcertDeployGateway.SignatureData", "name": "_signature", "type": "tuple" } ], "name": "isValidSignature", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "nftSafeTransferProxy", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "address", "name": "maker", "type": "address" }, { "internalType": "address", "name": "taker", "type": "address" }, { "components": [ { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "symbol", "type": "string" }, { "internalType": "string", "name": "uriPrefix", "type": "string" }, { "internalType": "string", "name": "uriPostfix", "type": "string" }, { "internalType": "bytes32", "name": "schemaId", "type": "bytes32" }, { "internalType": "bytes4[]", "name": "capabilities", "type": "bytes4[]" }, { "internalType": "address", "name": "owner", "type": "address" } ], "internalType": "struct XcertDeployGateway.XcertData", "name": "xcertData", "type": "tuple" }, { "components": [ { "internalType": "address", "name": "token", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "internalType": "struct XcertDeployGateway.TransferData", "name": "transferData", "type": "tuple" }, { "internalType": "uint256", "name": "seed", "type": "uint256" }, { "internalType": "uint256", "name": "expiration", "type": "uint256" } ], "internalType": "struct XcertDeployGateway.DeployData", "name": "_data", "type": "tuple" }, { "components": [ { "internalType": "bytes32", "name": "r", "type": "bytes32" }, { "internalType": "bytes32", "name": "s", "type": "bytes32" }, { "internalType": "uint8", "name": "v", "type": "uint8" }, { "internalType": "enum XcertDeployGateway.SignatureKind", "name": "kind", "type": "uint8" } ], "internalType": "struct XcertDeployGateway.SignatureData", "name": "_signature", "type": "tuple" } ], "name": "perform", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "address", "name": "maker", "type": "address" }, { "internalType": "address", "name": "taker", "type": "address" }, { "components": [ { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "symbol", "type": "string" }, { "internalType": "string", "name": "uriPrefix", "type": "string" }, { "internalType": "string", "name": "uriPostfix", "type": "string" }, { "internalType": "bytes32", "name": "schemaId", "type": "bytes32" }, { "internalType": "bytes4[]", "name": "capabilities", "type": "bytes4[]" }, { "internalType": "address", "name": "owner", "type": "address" } ], "internalType": "struct XcertDeployGateway.XcertData", "name": "xcertData", "type": "tuple" }, { "components": [ { "internalType": "address", "name": "token", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "internalType": "struct XcertDeployGateway.TransferData", "name": "transferData", "type": "tuple" }, { "internalType": "uint256", "name": "seed", "type": "uint256" }, { "internalType": "uint256", "name": "expiration", "type": "uint256" } ], "internalType": "struct XcertDeployGateway.DeployData", "name": "_data", "type": "tuple" }, { "components": [ { "internalType": "bytes32", "name": "r", "type": "bytes32" }, { "internalType": "bytes32", "name": "s", "type": "bytes32" }, { "internalType": "uint8", "name": "v", "type": "uint8" }, { "internalType": "enum XcertDeployGateway.SignatureKind", "name": "kind", "type": "uint8" } ], "internalType": "struct XcertDeployGateway.SignatureData", "name": "_signature", "type": "tuple" } ], "name": "performAnyTaker", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_target", "type": "address" }, { "internalType": "uint256", "name": "_abilities", "type": "uint256" } ], "name": "revokeAbilities", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_target", "type": "address" }, { "internalType": "uint256", "name": "_abilities", "type": "uint256" } ], "name": "setAbilities", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_xcertDeployProxy", "type": "address" } ], "name": "setDeployProxy", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "tokenTransferProxy", "outputs": [ { "internalType": "contract Proxy", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "xcertBurnProxy", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "xcertCreateProxy", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "xcertDeployProxy", "outputs": [ { "internalType": "contract XcertDeployProxy", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "xcertUpdateProxy", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" } ], "evm": { "bytecode": { "object": "60806040523480156200001157600080fd5b5060405162001a3338038062001a338339810160408190526200003491620000e6565b336000908152602081905260409020600f9055600180546001600160a01b03199081166001600160a01b03998a16179091556002805482169789169790971790965560038054871695881695909517909455600480548616938716939093179092556005805485169186169190911790556006805484169185169190911790556007805490921692169190911790556200017a565b80516001600160a01b0381168114620000e157600080fd5b919050565b600080600080600080600060e0888a03121562000101578283fd5b6200010c88620000c9565b96506200011c60208901620000c9565b95506200012c60408901620000c9565b94506200013c60608901620000c9565b93506200014c60808901620000c9565b92506200015c60a08901620000c9565b91506200016c60c08901620000c9565b905092959891949750929550565b6118a9806200018a6000396000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c80639ebbc600116100ad578063c9f600f711610071578063c9f600f714610249578063e14d89441461025c578063e24a0d8714610264578063ef48e40c1461026c578063f394b6df1461027f5761012c565b80639ebbc60014610200578063a9d6e2f414610213578063b2a9e2761461021b578063ba00a3301461022e578063c02d00c1146102415761012c565b806345a32c86116100f457806345a32c86146101aa57806352af3ebd146101bd5780637204ddcd146101dd57806381c66f62146101e55780638fa76d8d146101ed5761012c565b80630ab319e8146101315780630eefdbad1461014657806315ec3b8b1461016457806330d6f0fa1461017757806341f343cd14610197575b600080fd5b61014461013f3660046113f5565b610292565b005b61014e610360565b60405161015b919061169c565b60405180910390f35b6101446101723660046113f5565b61036f565b61018a610185366004611438565b610424565b60405161015b91906116fe565b6101446101a536600461137f565b610500565b61018a6101b836600461137f565b6105c4565b6101d06101cb366004611420565b6105d6565b60405161015b91906116f3565b61014e6105eb565b61014e6105fa565b6101d06101fb3660046113b7565b610609565b61014461020e366004611438565b6107a7565b61014e6108be565b610144610229366004611473565b6108cd565b6101d061023c3660046113f5565b610ae7565b61014e610b4c565b6101d0610257366004611420565b610b5b565b61014e610b70565b61014e610b7f565b61014461027a366004611473565b610b8e565b61014461028d3660046113f5565b610d3f565b60408051808201909152600681526518189b98181960d11b60208201526001906102c0565b60405180910390fd5b503360009081526020818152604091829020548251808401909352600683526530313730303160d01b91830191909152821682146103115760405162461bcd60e51b81526004016102b79190611725565b506001600160a01b038316600081815260208190526040808220805486179081905590519092917fd1d59d2d212a435434e7a4a4676427610dfe2b6268b01e541d280d65bf3d6b9091a3505050565b6002546001600160a01b031681565b60408051808201825260068082526518189b98181960d11b6020928301523360009081528083528390205483518085019094529083526530313730303160d01b9183019190915260019190821682146103db5760405162461bcd60e51b81526004016102b79190611725565b506001600160a01b038316600081815260208190526040808220859055518492917fd1d59d2d212a435434e7a4a4676427610dfe2b6268b01e541d280d65bf3d6b9091a3505050565b6040808201518051602080830151838501516060850151608086015160a087015160c0909701519751600098899861045f9897909201611592565b60408051601f1981840301815282825280516020918201206060870151805181840151919094015191955060009461049b949391929101611569565b6040516020818303038152906040528051906020012090503084600001518560200151848488608001518960a001516040516020016104e0979695949392919061151e565b60405160208183030381529060405280519060200120925050505b919050565b60408051808201825260068082526518189b98181960d11b6020928301523360009081528083528390205483518085019094529083526530313730303160d01b91830191909152601091908216821461056c5760405162461bcd60e51b81526004016102b79190611725565b50600180546001600160a01b0319166001600160a01b0384161790556040517f427ee0ec515416f6ef107d53338080aa8cdf1763bb545dfd1585d1d5a6f6872f906105b890849061169c565b60405180910390a15050565b60006020819052908152604090205481565b60086020526000908152604090205460ff1681565b6007546001600160a01b031681565b6006546001600160a01b031681565b6000808260600151600281111561063057634e487b7160e01b600052602160045260246000fd5b14156106d257600183604051602001610649919061163a565b604051602081830303815290604052805190602001208360400151846000015185602001516040516000815260200160405260405161068b9493929190611707565b6020604051602081039080840390855afa1580156106ad573d6000803e3d6000fd5b505050602060405103516001600160a01b0316846001600160a01b03161490506107a0565b6001826060015160028111156106f857634e487b7160e01b600052602160045260246000fd5b141561071157600183604051602001610649919061166b565b60028260600151600281111561073757634e487b7160e01b600052602160045260246000fd5b141561076c576001838360400151846000015185602001516040516000815260200160405260405161068b9493929190611707565b604080518082018252600681526530303930303160d01b6020820152905162461bcd60e51b81526102b79190600401611725565b9392505050565b805160408051808201909152600681526530303930303760d01b6020820152906001600160a01b031633146107ef5760405162461bcd60e51b81526004016102b79190611725565b5060006107fb82610424565b600081815260096020908152604091829020548251808401909352600683526518181c98181b60d11b918301919091529192509060ff16156108505760405162461bcd60e51b81526004016102b79190611725565b50600081815260086020908152604091829020805460ff19166001179055830151835191516001600160a01b0391821692909116907f421b43caf093b5e58d1ea89ca0d80151eda923342cf3cfddf5eb6b30d4947ba0906108b29085906116fe565b60405180910390a35050565b6005546001600160a01b031681565b336001600160a01b031682602001516001600160a01b0316146040518060400160405280600681526020016518181c98181960d11b815250906109235760405162461bcd60e51b81526004016102b79190611725565b50428260a0015110156040518060400160405280600681526020016530303930303360d01b815250906109695760405162461bcd60e51b81526004016102b79190611725565b50600061097583610424565b905061098683600001518284610609565b604051806040016040528060068152602001650c0c0e4c0c0d60d21b815250906109c35760405162461bcd60e51b81526004016102b79190611725565b50600081815260086020908152604091829020548251808401909352600683526530303930303560d01b9183019190915260ff1615610a155760405162461bcd60e51b81526004016102b79190611725565b50600081815260096020908152604091829020548251808401909352600683526518181c98181b60d11b9183019190915260ff1615610a675760405162461bcd60e51b81526004016102b79190611725565b506000818152600960205260408120805460ff19166001179055610a8a84610dfb565b905083602001516001600160a01b031684600001516001600160a01b03167f492318801c2cec532d47019a0b69f83b8d5b499a022b7adb6100a766050644f28385604051610ad99291906116da565b60405180910390a350505050565b60008082116040518060400160405280600681526020016518189b98181960d11b81525090610b295760405162461bcd60e51b81526004016102b79190611725565b50506001600160a01b039190911660009081526020819052604090205481161490565b6004546001600160a01b031681565b60096020526000908152604090205460ff1681565b6001546001600160a01b031681565b6003546001600160a01b031681565b428260a0015110156040518060400160405280600681526020016530303930303360d01b81525090610bd35760405162461bcd60e51b81526004016102b79190611725565b506000610bdf83610424565b9050610bf083600001518284610609565b604051806040016040528060068152602001650c0c0e4c0c0d60d21b81525090610c2d5760405162461bcd60e51b81526004016102b79190611725565b50600081815260086020908152604091829020548251808401909352600683526530303930303560d01b9183019190915260ff1615610c7f5760405162461bcd60e51b81526004016102b79190611725565b50600081815260096020908152604091829020548251808401909352600683526518181c98181b60d11b9183019190915260ff1615610cd15760405162461bcd60e51b81526004016102b79190611725565b506000818152600960205260408120805460ff19166001179055610cf484610f74565b9050336001600160a01b031684600001516001600160a01b03167f492318801c2cec532d47019a0b69f83b8d5b499a022b7adb6100a766050644f28385604051610ad99291906116da565b60408051808201825260068082526518189b98181960d11b6020928301523360009081528083528390205483518085019094529083526530313730303160d01b918301919091526001919082168214610dab5760405162461bcd60e51b81526004016102b79190611725565b506001600160a01b03831660008181526020819052604080822080548619169081905590519092917fd1d59d2d212a435434e7a4a4676427610dfe2b6268b01e541d280d65bf3d6b9091a3505050565b600254606082015180518351602083015160409384015193516311cd770360e11b81526000956001600160a01b03169463239aee0694610e4494909390929091906004016116b0565b600060405180830381600087803b158015610e5e57600080fd5b505af1158015610e72573d6000803e3d6000fd5b50506001546040808601805180516020808301518386015160608086015160808088015160a0988901518b5160c08082018e529b51909b01516001600160a01b039081168c526003548116988c01989098526004805489168c8e01526005548916958c01959095526006548816928b01929092526007548716988a019890985298516301181d8560e01b8152949099169a506301181d859950610f1c989497929691959301611738565b602060405180830381600087803b158015610f3657600080fd5b505af1158015610f4a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f6e919061139b565b92915050565b6060810151602001516000906001600160a01b0316610f9a576060820151336020909101525b600254606083015180518451602083015160409384015193516311cd770360e11b81526001600160a01b039095169463239aee0694610e44949392916004016116b0565b80356104fb8161185b565b600082601f830112610ff9578081fd5b8135602067ffffffffffffffff82111561101557611015611845565b8082026110238282016117ef565b83815282810190868401838801850189101561103d578687fd5b8693505b858410156110745780356001600160e01b031981168114611060578788fd5b835260019390930192918401918401611041565b50979650505050505050565b600082601f830112611090578081fd5b813567ffffffffffffffff8111156110aa576110aa611845565b6110bd601f8201601f19166020016117ef565b8181528460208386010111156110d1578283fd5b816020850160208301379081016020019190915292915050565b600061010082840312156110fd578081fd5b60405160c0810167ffffffffffffffff828210818311171561112157611121611845565b8160405282935061113185610fde565b835261113f60208601610fde565b6020840152604085013591508082111561115857600080fd5b5061116585828601611285565b604083015250611178846060850161121a565b606082015260c0830135608082015260e083013560a08201525092915050565b6000608082840312156111a9578081fd5b6040516080810181811067ffffffffffffffff821117156111cc576111cc611845565b80604052508091508235815260208301356020820152604083013560ff811681146111f657600080fd5b604082015260608301356003811061120d57600080fd5b6060919091015292915050565b60006060828403121561122b578081fd5b6040516060810181811067ffffffffffffffff8211171561124e5761124e611845565b604052905080823561125f8161185b565b8152602083013561126f8161185b565b6020820152604092830135920191909152919050565b600060e08284031215611296578081fd5b6112a060e06117ef565b9050813567ffffffffffffffff808211156112ba57600080fd5b6112c685838601611080565b835260208401359150808211156112dc57600080fd5b6112e885838601611080565b6020840152604084013591508082111561130157600080fd5b61130d85838601611080565b6040840152606084013591508082111561132657600080fd5b61133285838601611080565b60608401526080840135608084015260a084013591508082111561135557600080fd5b5061136284828501610fe9565b60a08301525061137460c08301610fde565b60c082015292915050565b600060208284031215611390578081fd5b81356107a08161185b565b6000602082840312156113ac578081fd5b81516107a08161185b565b600080600060c084860312156113cb578182fd5b83356113d68161185b565b9250602084013591506113ec8560408601611198565b90509250925092565b60008060408385031215611407578182fd5b82356114128161185b565b946020939093013593505050565b600060208284031215611431578081fd5b5035919050565b600060208284031215611449578081fd5b813567ffffffffffffffff81111561145f578182fd5b61146b848285016110eb565b949350505050565b60008060a08385031215611485578182fd5b823567ffffffffffffffff81111561149b578283fd5b6114a7858286016110eb565b9250506114b78460208501611198565b90509250929050565b8060005b60068110156114ec5781516001600160a01b03168452602093840193909101906001016114c4565b50505050565b6000815180845261150a816020860160208601611819565b601f01601f19169290920160200192915050565b6001600160601b0319606098891b8116825296881b871660148201529490961b9094166028840152603c830191909152605c820152607c810191909152609c81019190915260bc0190565b6001600160601b0319606094851b811682529290931b9091166014830152602882015260480190565b6000885160206115a58285838e01611819565b8951918401916115b88184848e01611819565b89519201916115ca8184848d01611819565b88519201916115dc8184848c01611819565b9190910186815285519082019190868201845b828110156116155781516001600160e01b031916855293830193908301906001016115ef565b5050505060609390931b6001600160601b031916835250506014019695505050505050565b7f19457468657265756d205369676e6564204d6573736167653a0a3332000000008152601c810191909152603c0190565b7f19457468657265756d205369676e6564204d6573736167653a0a2000000000008152601b810191909152603b0190565b6001600160a01b0391909116815260200190565b6001600160a01b039485168152928416602084015292166040820152606081019190915260800190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b90815260200190565b93845260ff9290921660208401526040830152606082015260800190565b6000602082526107a060208301846114f2565b600061018080835261174c8184018b6114f2565b9050602083820381850152611761828b6114f2565b91508382036040850152611775828a6114f2565b9150838203606085015261178982896114f2565b6080850188905284810360a08601528651808252828801935090820190845b818110156117ce5784516001600160e01b031916835293830193918301916001016117a8565b50508093505050506117e360c08301846114c0565b98975050505050505050565b60405181810167ffffffffffffffff8111828210171561181157611811611845565b604052919050565b60005b8381101561183457818101518382015260200161181c565b838111156114ec5750506000910152565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461187057600080fd5b5056fea2646970667358221220a9d77112d57f0becde8e95a7a2efab57623794dff8731d048f6ec3cf3d40900964736f6c63430008000033" }, "methodIdentifiers": { "abilitableManageProxy()": "a9d6e2f4", "addressToAbility(address)": "45a32c86", "cancel((address,address,(string,string,string,string,bytes32,bytes4[],address),(address,address,uint256),uint256,uint256))": "9ebbc600", "deployCancelled(bytes32)": "52af3ebd", "deployPerformed(bytes32)": "c9f600f7", "getDeployDataClaim((address,address,(string,string,string,string,bytes32,bytes4[],address),(address,address,uint256),uint256,uint256))": "30d6f0fa", "grantAbilities(address,uint256)": "0ab319e8", "isAble(address,uint256)": "ba00a330", "isValidSignature(address,bytes32,(bytes32,bytes32,uint8,uint8))": "8fa76d8d", "nftSafeTransferProxy()": "81c66f62", "perform((address,address,(string,string,string,string,bytes32,bytes4[],address),(address,address,uint256),uint256,uint256),(bytes32,bytes32,uint8,uint8))": "b2a9e276", "performAnyTaker((address,address,(string,string,string,string,bytes32,bytes4[],address),(address,address,uint256),uint256,uint256),(bytes32,bytes32,uint8,uint8))": "ef48e40c", "revokeAbilities(address,uint256)": "f394b6df", "setAbilities(address,uint256)": "15ec3b8b", "setDeployProxy(address)": "41f343cd", "tokenTransferProxy()": "0eefdbad", "xcertBurnProxy()": "7204ddcd", "xcertCreateProxy()": "e24a0d87", "xcertDeployProxy()": "e14d8944", "xcertUpdateProxy()": "c02d00c1" } }, "metadata": { "compiler": { "version": "0.8.0+commit.c7dfd78e" }, "language": "Solidity", "output": { "abi": [ { "inputs": [ { "internalType": "address", "name": "_xcertDeployProxy", "type": "address" }, { "internalType": "address", "name": "_tokenTransferProxy", "type": "address" }, { "internalType": "address", "name": "_xcertCreateProxy", "type": "address" }, { "internalType": "address", "name": "_xcertUpdateProxy", "type": "address" }, { "internalType": "address", "name": "_abilitableManageProxy", "type": "address" }, { "internalType": "address", "name": "_nftSafeTransferProxy", "type": "address" }, { "internalType": "address", "name": "_xcertBurnProxy", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "_maker", "type": "address" }, { "indexed": true, "internalType": "address", "name": "_taker", "type": "address" }, { "indexed": false, "internalType": "bytes32", "name": "_claim", "type": "bytes32" } ], "name": "Cancel", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "_maker", "type": "address" }, { "indexed": true, "internalType": "address", "name": "_taker", "type": "address" }, { "indexed": false, "internalType": "address", "name": "_createdContract", "type": "address" }, { "indexed": false, "internalType": "bytes32", "name": "_claim", "type": "bytes32" } ], "name": "Perform", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "_proxy", "type": "address" } ], "name": "ProxyChange", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "_target", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "_abilities", "type": "uint256" } ], "name": "SetAbilities", "type": "event" }, { "inputs": [], "name": "abilitableManageProxy", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "addressToAbility", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "address", "name": "maker", "type": "address" }, { "internalType": "address", "name": "taker", "type": "address" }, { "components": [ { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "symbol", "type": "string" }, { "internalType": "string", "name": "uriPrefix", "type": "string" }, { "internalType": "string", "name": "uriPostfix", "type": "string" }, { "internalType": "bytes32", "name": "schemaId", "type": "bytes32" }, { "internalType": "bytes4[]", "name": "capabilities", "type": "bytes4[]" }, { "internalType": "address", "name": "owner", "type": "address" } ], "internalType": "struct XcertDeployGateway.XcertData", "name": "xcertData", "type": "tuple" }, { "components": [ { "internalType": "address", "name": "token", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "internalType": "struct XcertDeployGateway.TransferData", "name": "transferData", "type": "tuple" }, { "internalType": "uint256", "name": "seed", "type": "uint256" }, { "internalType": "uint256", "name": "expiration", "type": "uint256" } ], "internalType": "struct XcertDeployGateway.DeployData", "name": "_data", "type": "tuple" } ], "name": "cancel", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "name": "deployCancelled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "name": "deployPerformed", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "address", "name": "maker", "type": "address" }, { "internalType": "address", "name": "taker", "type": "address" }, { "components": [ { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "symbol", "type": "string" }, { "internalType": "string", "name": "uriPrefix", "type": "string" }, { "internalType": "string", "name": "uriPostfix", "type": "string" }, { "internalType": "bytes32", "name": "schemaId", "type": "bytes32" }, { "internalType": "bytes4[]", "name": "capabilities", "type": "bytes4[]" }, { "internalType": "address", "name": "owner", "type": "address" } ], "internalType": "struct XcertDeployGateway.XcertData", "name": "xcertData", "type": "tuple" }, { "components": [ { "internalType": "address", "name": "token", "type": "address" }, { "internalType": "address", "name": "to",