diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..e29198d --- /dev/null +++ b/.env.example @@ -0,0 +1 @@ +MUMBAI_RPC_URL= diff --git a/broadcast/DeployTestERC1155A.s.sol/80001/deploy-latest.json b/broadcast/DeployTestERC1155A.s.sol/80001/deploy-latest.json new file mode 100644 index 0000000..e5175d6 --- /dev/null +++ b/broadcast/DeployTestERC1155A.s.sol/80001/deploy-latest.json @@ -0,0 +1,142 @@ +{ + "transactions": [ + { + "hash": "0x515943c0e5212a0b34a7e5ee8395d643b641977d9c5b6cb7c026998681df6373", + "transactionType": "CREATE", + "contractName": "MockERC1155A", + "contractAddress": "0x93FeD5c7ccAACB0fB9051958d4CE8129e4A04206", + "function": null, + "arguments": [ + "\"Example\"", + "\"EXM\"" + ], + "transaction": { + "type": "0x02", + "from": "0x48ab8adf869ba9902ad483fb1ca2efdab6eabe92", + "gas": "0x41ba86", + "value": "0x0", + "data": "0x60806040523480156200001157600080fd5b5060405162003d1d38038062003d1d833981016040819052620000349162000126565b8181600562000044838262000221565b50600662000053828262000221565b5050505050620002ed565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200008657600080fd5b81516001600160401b0380821115620000a357620000a36200005e565b604051601f8301601f19908116603f01168101908282118183101715620000ce57620000ce6200005e565b8160405283815260209250866020858801011115620000ec57600080fd5b600091505b83821015620001105785820183015181830184015290820190620000f1565b6000602085830101528094505050505092915050565b600080604083850312156200013a57600080fd5b82516001600160401b03808211156200015257600080fd5b620001608683870162000074565b935060208501519150808211156200017757600080fd5b50620001868582860162000074565b9150509250929050565b600181811c90821680620001a557607f821691505b602082108103620001c657634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200021c576000816000526020600020601f850160051c81016020861015620001f75750805b601f850160051c820191505b81811015620002185782815560010162000203565b5050505b505050565b81516001600160401b038111156200023d576200023d6200005e565b62000255816200024e845462000190565b84620001cc565b602080601f8311600181146200028d5760008415620002745750858301515b600019600386901b1c1916600185901b17855562000218565b600085815260208120601f198616915b82811015620002be578886015182559484019460019091019084016200029d565b5085821015620002dd5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b613a2080620002fd6000396000f3fe608060405260043610620001fe5760003560e01c8063731133e91162000117578063cdde3d6b11620000a1578063f242432a116200006c578063f242432a14620006ab578063f5298aca14620006d0578063f6eb127a14620006f5578063ff61011a146200071a57600080fd5b8063cdde3d6b14620005e6578063e673070f146200060b578063e985e9c51462000647578063ec737321146200068657600080fd5b8063a49f951611620000e2578063a49f95161462000546578063b48ab8b6146200056b578063bd85b0391462000590578063cd4622eb14620005c157600080fd5b8063731133e914620004bf5780639473655c14620004e457806395d89b411462000509578063a22cb465146200052157600080fd5b80634e1273f41162000199578063598af9e71162000164578063598af9e7146200042b5780635fa8d764146200045057806367bc406514620004755780637081ce5e146200049a57600080fd5b80634e1273f414620003655780634f558e7914620003995780635029d0c814620003cc578063540ed9c014620003f157600080fd5b806306fdde0311620001da57806306fdde0314620002db578063093e316414620003025780630e89341c14620003195780632eb2c2d6146200033e57600080fd5b8062fdd58e146200020357806301ffc9a714620002525780630282acfc1462000288575b600080fd5b3480156200021057600080fd5b506200023f6200022236600462002325565b600260209081526000928352604080842090915290825290205481565b6040519081526020015b60405180910390f35b3480156200025f57600080fd5b5062000277620002713660046200236c565b6200073f565b604051901515815260200162000249565b3480156200029557600080fd5b50620002c2620002a736600462002393565b6004602052600090815260409020546001600160a01b031681565b6040516001600160a01b03909116815260200162000249565b348015620002e857600080fd5b50620002f362000793565b60405162000249919062002401565b620002c26200031336600462002393565b62000829565b3480156200032657600080fd5b50620002f36200033836600462002393565b620008ce565b3480156200034b57600080fd5b50620003636200035d36600462002572565b62000932565b005b3480156200037257600080fd5b506200038a6200038436600462002629565b62000b27565b60405162000249919062002734565b348015620003a657600080fd5b5062000277620003b836600462002393565b600090815260208190526040902054151590565b348015620003d957600080fd5b5062000363620003eb36600462002749565b62000c41565b348015620003fe57600080fd5b50620002c26200041036600462002393565b6000908152600460205260409020546001600160a01b031690565b3480156200043857600080fd5b506200023f6200044a366004620027d8565b62000e1b565b3480156200045d57600080fd5b50620003636200046f36600462002819565b62000e4d565b3480156200048257600080fd5b50620002776200049436600462002819565b62000ed5565b348015620004a757600080fd5b5062000363620004b936600462002895565b62000f9b565b348015620004cc57600080fd5b5062000363620004de366004620028d5565b620010d1565b348015620004f157600080fd5b50620003636200050336600462002895565b620010e6565b3480156200051657600080fd5b50620002f362001231565b3480156200052e57600080fd5b5062000363620005403660046200293b565b62001240565b3480156200055357600080fd5b5062000363620005653660046200297b565b620012d4565b3480156200057857600080fd5b50620003636200058a366004620029ff565b620012e9565b3480156200059d57600080fd5b506200023f620005af36600462002393565b60009081526020819052604090205490565b348015620005ce57600080fd5b5062000277620005e036600462002819565b62001364565b348015620005f357600080fd5b5062000277620006053660046200297b565b620013ea565b3480156200061857600080fd5b50620002776200062a36600462002393565b6000908152600460205260409020546001600160a01b0316151590565b3480156200065457600080fd5b50620002776200066636600462002aad565b600360209081526000928352604080842090915290825290205460ff1681565b3480156200069357600080fd5b5062000363620006a536600462002749565b62001404565b348015620006b857600080fd5b5062000363620006ca36600462002ae5565b620015c7565b348015620006dd57600080fd5b5062000363620006ef3660046200297b565b620016ef565b3480156200070257600080fd5b50620003636200071436600462002b51565b620016fd565b3480156200072757600080fd5b5062000277620007393660046200297b565b6200176e565b60006001600160e01b031982166301ffc9a760e01b14806200077157506001600160e01b03198216636cdb3d1360e11b145b806200078d57506001600160e01b031982166303a24d0760e21b145b92915050565b60058054620007a29062002bda565b80601f0160208091040260200160405190810160405280929190818152602001828054620007d09062002bda565b8015620008215780601f10620007f55761010080835404028352916020019162000821565b820191906000526020600020905b8154815290600101906020018083116200080357829003601f168201915b505050505081565b60008181526020819052604081205481036200085857604051631b5bd2df60e31b815260040160405180910390fd5b6000828152600460205260409020546001600160a01b0316156200088f576040516347d4e9ad60e11b815260040160405180910390fd5b60006200089c836200178f565b60009384526004602052604090932080546001600160a01b0319166001600160a01b0390941693841790555090919050565b6060620008fe60408051808201909152601081526f68747470733a2f2f7572692e636f6d2f60801b602082015290565b620009098362001801565b6040516020016200091c92919062002c16565b6040516020818303038152906040529050919050565b6001600160a01b03851615806200095057506001600160a01b038416155b156200096f5760405163538ba4f960e01b815260040160405180910390fd5b825182518114620009935760405163899ef10d60e01b815260040160405180910390fd5b336001600160a01b0387168114801590620009d457506001600160a01b0380881660009081526003602090815260408083209385168352929052205460ff16155b1562000a585760008060005b8481101562000a4f57878181518110620009fe57620009fe62002c49565b6020026020010151925086818151811062000a1d5762000a1d62002c49565b6020026020010151915062000a378a85858560006200189a565b5062000a468a8a8585620018f5565b600101620009e0565b50505062000ab5565b60005b8281101562000ab35762000aaa888888848151811062000a7f5762000a7f62002c49565b602002602001015188858151811062000a9c5762000a9c62002c49565b6020026020010151620018f5565b60010162000a5b565b505b856001600160a01b0316876001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb888860405162000b0692919062002c5f565b60405180910390a462000b1e8188888888886200196f565b50505050505050565b6060815183511462000b4c5760405163899ef10d60e01b815260040160405180910390fd5b82516001600160401b0381111562000b685762000b6862002416565b60405190808252806020026020018201604052801562000b92578160200160208202803683370190505b50905060005b835181101562000c3a576002600085838151811062000bbb5762000bbb62002c49565b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020600084838151811062000bfa5762000bfa62002c49565b602002602001015181526020019081526020016000205482828151811062000c265762000c2662002c49565b602090810291909101015260010162000b98565b5092915050565b6001600160a01b038416158062000c5f57506001600160a01b038116155b1562000c7e5760405163538ba4f960e01b815260040160405180910390fd5b82518251811462000ca25760405163899ef10d60e01b815260040160405180910390fd5b60008060005b865181101562000da45786818151811062000cc75762000cc762002c49565b6020026020010151925085818151811062000ce65762000ce662002c49565b602090810291909101810151600085815260049092526040909120549092506001600160a01b03168062000d2d576040516369f28dc960e11b815260040160405180910390fd5b604051633dae446f60e21b81526001600160a01b038a811660048301523360248301526044820185905282169063f6b911bc90606401600060405180830381600087803b15801562000d7e57600080fd5b505af115801562000d93573d6000803e3d6000fd5b505050505080600101905062000ca8565b5062000dc3843388886040518060200160405280600081525062001ad3565b836001600160a01b0316876001600160a01b03167f2ec4237e89b1c7ccb8710672dc83af16f1949c33f3b313eeaab1a626e6aa4427888860405162000e0a92919062002c5f565b60405180910390a350505050505050565b6001600160a01b0392831660009081526001602090815260408083209490951682529283528381209181529152205490565b81518151811462000e715760405163899ef10d60e01b815260040160405180910390fd5b60005b8181101562000ece5762000ec5338686848151811062000e985762000e9862002c49565b602002602001015186858151811062000eb55762000eb562002c49565b6020026020010151600162001c35565b60010162000e74565b5050505050565b8151815160009190811462000efd5760405163899ef10d60e01b815260040160405180910390fd5b60005b8181101562000f8f5762000f86338787848151811062000f245762000f2462002c49565b602002602001015187858151811062000f415762000f4162002c49565b602002602001015162000f72338c8c898151811062000f645762000f6462002c49565b602002602001015162000e1b565b62000f7e919062002ca7565b600162001c35565b60010162000f00565b50600195945050505050565b6001600160a01b038416158062000fb957506001600160a01b038116155b1562000fd85760405163538ba4f960e01b815260040160405180910390fd5b62000fe68433858562001d0b565b6000838152600460205260409020546001600160a01b0316806200101d576040516369f28dc960e11b815260040160405180910390fd5b6040516340c10f1960e01b81526001600160a01b038381166004830152602482018590528216906340c10f1990604401600060405180830381600087803b1580156200106857600080fd5b505af11580156200107d573d6000803e3d6000fd5b505060408051878152602081018790526001600160a01b038087169450891692507f4420f38d0f4ce916c1d0da8d37675c007978eaaa4a8c2cc4231fd52a7a57b61491015b60405180910390a35050505050565b620010e0843385858562001df2565b50505050565b6001600160a01b03841615806200110457506001600160a01b038116155b15620011235760405163538ba4f960e01b815260040160405180910390fd5b6000838152600460205260409020546001600160a01b0316806200115a576040516369f28dc960e11b815260040160405180910390fd5b604051633dae446f60e21b81526001600160a01b0386811660048301523360248301526044820185905282169063f6b911bc90606401600060405180830381600087803b158015620011ab57600080fd5b505af1158015620011c0573d6000803e3d6000fd5b50505050620011e2823386866040518060200160405280600081525062001df2565b816001600160a01b0316856001600160a01b03167f9195fdebb74042f1bd7abc0ded779a6e10ae01e0ad5f5546cb7e421d65a566668686604051620010c2929190918252602082015260400190565b60068054620007a29062002bda565b6001600160a01b038216620012685760405163538ba4f960e01b815260040160405180910390fd5b3360008181526003602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b620012e433848484600162001c35565b505050565b6200135c863387878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808b0282810182019093528a82529093508a92508991829185019084908082843760009201919091525088925062001ad3915050565b505050505050565b815181516000919081146200138c5760405163899ef10d60e01b815260040160405180910390fd5b60005b8181101562000f8f57620013e03387878481518110620013b357620013b362002c49565b6020026020010151878581518110620013d057620013d062002c49565b602002602001015160016200189a565b506001016200138f565b6000620013fc3385858560016200189a565b949350505050565b6001600160a01b03841615806200142257506001600160a01b038116155b15620014415760405163538ba4f960e01b815260040160405180910390fd5b825182518114620014655760405163899ef10d60e01b815260040160405180910390fd5b620014738533868662001eae565b60005b818110156200157f576000600460008784815181106200149a576200149a62002c49565b6020908102919091018101518252810191909152604001600020546001600160a01b0316905080620014df576040516369f28dc960e11b815260040160405180910390fd5b806001600160a01b03166340c10f198587858151811062001504576200150462002c49565b60200260200101516040518363ffffffff1660e01b81526004016200153e9291906001600160a01b03929092168252602082015260400190565b600060405180830381600087803b1580156200155957600080fd5b505af11580156200156e573d6000803e3d6000fd5b505050505080600101905062001476565b50816001600160a01b0316856001600160a01b03167f1c57454fefbe0a2a0aa1926734e74f4cb5137003ccf5e6edfde51c79163fbf378686604051620010c292919062002c5f565b6001600160a01b0385161580620015e557506001600160a01b038416155b15620016045760405163538ba4f960e01b815260040160405180910390fd5b336001600160a01b03861681148015906200164557506001600160a01b0380871660009081526003602090815260408083209385168352929052205460ff16155b1562001670576200165b8682868660006200189a565b506200166a86868686620018f5565b6200167e565b6200167e86868686620018f5565b846001600160a01b0316866001600160a01b0316826001600160a01b03167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628787604051620016d7929190918252602082015260400190565b60405180910390a46200135c81878787878762002127565b620012e48333848462001d0b565b62000ece853386868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808a0282810182019093528982529093508992508891829185019084908082843760009201919091525062001eae92505050565b6000620017853385858562000f72338a8a62000e1b565b5060019392505050565b60006012604051620017a190620022fa565b6060808252600490820152636e616d6560e01b608082015260a060208201819052600690820152651cde5b589bdb60d21b60c082015260ff909116604082015260e001604051809103906000f08015801562000c3a573d6000803e3d6000fd5b6060600062001810836200221b565b60010190506000816001600160401b0381111562001832576200183262002416565b6040519080825280601f01601f1916602001820160405280156200185d576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a85049450846200186757509392505050565b600080620018aa87878762000e1b565b905083811015620018ce57604051630422f8c360e31b815260040160405180910390fd5b620018e8878787620018e1888662002cbd565b8762001c35565b5060019695505050505050565b6001600160a01b0384166000908152600260209081526040808320858452909152812080548392906200192a90849062002cbd565b90915550506001600160a01b0383166000908152600260209081526040808320858452909152812080548392906200196490849062002ca7565b909155505050505050565b6001600160a01b0384163b1562001aab5760405163bc197c8160e01b81526001600160a01b0385169063bc197c8190620019b6908990899088908890889060040162002cd3565b6020604051808303816000875af1925050508015620019f4575060408051601f3d908101601f19168201909252620019f19181019062002d37565b60015b62001a6d573d80801562001a25576040519150601f19603f3d011682016040523d82523d6000602084013e62001a2a565b606091505b50805160000362001a5e57604051632bfa23e760e11b81526001600160a01b03861660048201526024015b60405180910390fd5b805181602001fd5b506200135c565b6001600160e01b0319811663bc197c8160e01b1462001a6657604051632bfa23e760e11b81526001600160a01b038616600482015260240162001a55565b6001600160a01b0384166200135c57604051635edce13360e01b815260040160405180910390fd5b82518251811462001af75760405163899ef10d60e01b815260040160405180910390fd5b60008060005b8381101562001bbf5786818151811062001b1b5762001b1b62002c49565b6020026020010151925085818151811062001b3a5762001b3a62002c49565b6020026020010151915081600260008b6001600160a01b03166001600160a01b031681526020019081526020016000206000858152602001908152602001600020600082825462001b8c919062002ca7565b90915550506000838152602081905260408120805484929062001bb190849062002ca7565b909155505060010162001afd565b50876001600160a01b031660006001600160a01b0316886001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb898960405162001c1292919062002c5f565b60405180910390a462001c2b8760008a8989896200196f565b5050505050505050565b6001600160a01b03851662001c5d5760405163538ba4f960e01b815260040160405180910390fd5b6001600160a01b03841662001c855760405163538ba4f960e01b815260040160405180910390fd5b6001600160a01b0380861660009081526001602090815260408083209388168352928152828220868352905220829055801562000ece57836001600160a01b0316856001600160a01b03167f875251d6c7be5b10ddb14ed4f59395338f15552062d4ad7723265838e316f9a88585604051620010c2929190918252602082015260400190565b836001600160a01b0316836001600160a01b03161415801562001d5457506001600160a01b0380851660009081526003602090815260408083209387168352929052205460ff16155b1562001d6c5762001d6a8484848460006200189a565b505b62001d7b8460008484620018f5565b6000828152602081905260408120805483929062001d9b90849062002cbd565b909155505060408051838152602081018390526000916001600160a01b0387811692908716917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a450505050565b6001600160a01b03851660009081526002602090815260408083208684529091528120805484929062001e2790849062002ca7565b90915550506000838152602081905260408120805484929062001e4c90849062002ca7565b909155505060408051848152602081018490526001600160a01b0380881692600092918816917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a462000ece8460008786868662002127565b81518151811462001ed25760405163899ef10d60e01b815260040160405180910390fd5b600080866001600160a01b0316866001600160a01b03161415801562001f1e57506001600160a01b038088166000908152600360209081526040808320938a168352929052205460ff16155b1562001fff5760005b8381101562001ff85785818151811062001f455762001f4562002c49565b6020026020010151925084818151811062001f645762001f6462002c49565b6020026020010151915062001f7e8888858560006200189a565b5062001f8e8860008585620018f5565b84818151811062001fa35762001fa362002c49565b602002602001015160008088848151811062001fc35762001fc362002c49565b60200260200101518152602001908152602001600020600082825462001fea919062002cbd565b909155505060010162001f27565b50620020c4565b60005b83811015620020c25785818151811062002020576200202062002c49565b602002602001015192508481815181106200203f576200203f62002c49565b60200260200101519150620020588860008585620018f5565b8481815181106200206d576200206d62002c49565b60200260200101516000808884815181106200208d576200208d62002c49565b602002602001015181526020019081526020016000206000828254620020b4919062002cbd565b909155505060010162002002565b505b60006001600160a01b0316876001600160a01b0316876001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb88886040516200211692919062002c5f565b60405180910390a450505050505050565b6001600160a01b0384163b1562001aab5760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e61906200216e908990899088908890889060040162002d57565b6020604051808303816000875af1925050508015620021ac575060408051601f3d908101601f19168201909252620021a99181019062002d37565b60015b620021dd573d80801562001a25576040519150601f19603f3d011682016040523d82523d6000602084013e62001a2a565b6001600160e01b0319811663f23a6e6160e01b1462001a6657604051632bfa23e760e11b81526001600160a01b038616600482015260240162001a55565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106200225b5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef8100000000831062002288576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310620022a757662386f26fc10000830492506010015b6305f5e1008310620022c0576305f5e100830492506008015b6127108310620022d557612710830492506004015b60648310620022e8576064830492506002015b600a83106200078d5760010192915050565b610c4c8062002d9f83390190565b80356001600160a01b03811681146200232057600080fd5b919050565b600080604083850312156200233957600080fd5b620023448362002308565b946020939093013593505050565b6001600160e01b0319811681146200236957600080fd5b50565b6000602082840312156200237f57600080fd5b81356200238c8162002352565b9392505050565b600060208284031215620023a657600080fd5b5035919050565b60005b83811015620023ca578181015183820152602001620023b0565b50506000910152565b60008151808452620023ed816020860160208601620023ad565b601f01601f19169290920160200192915050565b6020815260006200238c6020830184620023d3565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171562002457576200245762002416565b604052919050565b60006001600160401b038211156200247b576200247b62002416565b5060051b60200190565b600082601f8301126200249757600080fd5b81356020620024b0620024aa836200245f565b6200242c565b8083825260208201915060208460051b870101935086841115620024d357600080fd5b602086015b84811015620024f15780358352918301918301620024d8565b509695505050505050565b600082601f8301126200250e57600080fd5b81356001600160401b038111156200252a576200252a62002416565b6200253f601f8201601f19166020016200242c565b8181528460208386010111156200255557600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600060a086880312156200258b57600080fd5b620025968662002308565b9450620025a66020870162002308565b935060408601356001600160401b0380821115620025c357600080fd5b620025d189838a0162002485565b94506060880135915080821115620025e857600080fd5b620025f689838a0162002485565b935060808801359150808211156200260d57600080fd5b506200261c88828901620024fc565b9150509295509295909350565b600080604083850312156200263d57600080fd5b82356001600160401b03808211156200265557600080fd5b818501915085601f8301126200266a57600080fd5b813560206200267d620024aa836200245f565b82815260059290921b840181019181810190898411156200269d57600080fd5b948201945b83861015620026c657620026b68662002308565b82529482019490820190620026a2565b96505086013592505080821115620026dd57600080fd5b50620026ec8582860162002485565b9150509250929050565b60008151808452602080850194506020840160005b8381101562002729578151875295820195908201906001016200270b565b509495945050505050565b6020815260006200238c6020830184620026f6565b600080600080608085870312156200276057600080fd5b6200276b8562002308565b935060208501356001600160401b03808211156200278857600080fd5b620027968883890162002485565b94506040870135915080821115620027ad57600080fd5b50620027bc8782880162002485565b925050620027cd6060860162002308565b905092959194509250565b600080600060608486031215620027ee57600080fd5b620027f98462002308565b9250620028096020850162002308565b9150604084013590509250925092565b6000806000606084860312156200282f57600080fd5b6200283a8462002308565b925060208401356001600160401b03808211156200285757600080fd5b620028658783880162002485565b935060408601359150808211156200287c57600080fd5b506200288b8682870162002485565b9150509250925092565b60008060008060808587031215620028ac57600080fd5b620028b78562002308565b93506020850135925060408501359150620027cd6060860162002308565b60008060008060808587031215620028ec57600080fd5b620028f78562002308565b9350602085013592506040850135915060608501356001600160401b038111156200292157600080fd5b6200292f87828801620024fc565b91505092959194509250565b600080604083850312156200294f57600080fd5b6200295a8362002308565b9150602083013580151581146200297057600080fd5b809150509250929050565b6000806000606084860312156200299157600080fd5b6200299c8462002308565b95602085013595506040909401359392505050565b60008083601f840112620029c457600080fd5b5081356001600160401b03811115620029dc57600080fd5b6020830191508360208260051b8501011115620029f857600080fd5b9250929050565b6000806000806000806080878903121562002a1957600080fd5b62002a248762002308565b955060208701356001600160401b038082111562002a4157600080fd5b62002a4f8a838b01620029b1565b9097509550604089013591508082111562002a6957600080fd5b62002a778a838b01620029b1565b9095509350606089013591508082111562002a9157600080fd5b5062002aa089828a01620024fc565b9150509295509295509295565b6000806040838503121562002ac157600080fd5b62002acc8362002308565b915062002adc6020840162002308565b90509250929050565b600080600080600060a0868803121562002afe57600080fd5b62002b098662002308565b945062002b196020870162002308565b9350604086013592506060860135915060808601356001600160401b0381111562002b4357600080fd5b6200261c88828901620024fc565b60008060008060006060868803121562002b6a57600080fd5b62002b758662002308565b945060208601356001600160401b038082111562002b9257600080fd5b62002ba089838a01620029b1565b9096509450604088013591508082111562002bba57600080fd5b5062002bc988828901620029b1565b969995985093965092949392505050565b600181811c9082168062002bef57607f821691505b60208210810362002c1057634e487b7160e01b600052602260045260246000fd5b50919050565b6000835162002c2a818460208801620023ad565b83519083019062002c40818360208801620023ad565b01949350505050565b634e487b7160e01b600052603260045260246000fd5b60408152600062002c746040830185620026f6565b828103602084015262002c888185620026f6565b95945050505050565b634e487b7160e01b600052601160045260246000fd5b808201808211156200078d576200078d62002c91565b818103818111156200078d576200078d62002c91565b6001600160a01b0386811682528516602082015260a06040820181905260009062002d0190830186620026f6565b828103606084015262002d158186620026f6565b9050828103608084015262002d2b8185620023d3565b98975050505050505050565b60006020828403121562002d4a57600080fd5b81516200238c8162002352565b6001600160a01b03868116825285166020820152604081018490526060810183905260a06080820181905260009062002d9390830184620023d3565b97965050505050505056fe60c06040523480156200001157600080fd5b5060405162000c4c38038062000c4c833981016040819052620000349162000131565b8282600362000044838262000247565b50600462000053828262000247565b5050336080525060ff1660a05250620003139050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200009157600080fd5b81516001600160401b0380821115620000ae57620000ae62000069565b604051601f8301601f19908116603f01168101908282118183101715620000d957620000d962000069565b8160405283815260209250866020858801011115620000f757600080fd5b600091505b838210156200011b5785820183015181830184015290820190620000fc565b6000602085830101528094505050505092915050565b6000806000606084860312156200014757600080fd5b83516001600160401b03808211156200015f57600080fd5b6200016d878388016200007f565b945060208601519150808211156200018457600080fd5b5062000193868287016200007f565b925050604084015160ff81168114620001ab57600080fd5b809150509250925092565b600181811c90821680620001cb57607f821691505b602082108103620001ec57634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111562000242576000816000526020600020601f850160051c810160208610156200021d5750805b601f850160051c820191505b818110156200023e5782815560010162000229565b5050505b505050565b81516001600160401b0381111562000263576200026362000069565b6200027b81620002748454620001b6565b84620001f2565b602080601f831160018114620002b357600084156200029a5750858301515b600019600386901b1c1916600185901b1785556200023e565b600085815260208120601f198616915b82811015620002e457888601518255948401946001909101908401620002c3565b5085821015620003035787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60805160a0516109056200034760003960006101260152600081816101930152818161030f015261038301526109056000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c806370a082311161007157806370a0823114610165578063906d34db1461018e57806395d89b41146101cd578063a9059cbb146101d5578063dd62ed3e146101e8578063f6b911bc1461022157600080fd5b806306fdde03146100b9578063095ea7b3146100d757806318160ddd146100fa57806323b872dd1461010c578063313ce5671461011f57806340c10f1914610150575b600080fd5b6100c1610234565b6040516100ce919061074e565b60405180910390f35b6100ea6100e53660046107b9565b6102c6565b60405190151581526020016100ce565b6002545b6040519081526020016100ce565b6100ea61011a3660046107e3565b6102e0565b60405160ff7f00000000000000000000000000000000000000000000000000000000000000001681526020016100ce565b61016361015e3660046107b9565b610304565b005b6100fe61017336600461081f565b6001600160a01b031660009081526020819052604090205490565b6101b57f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100ce565b6100c161035b565b6100ea6101e33660046107b9565b61036a565b6100fe6101f6366004610841565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b61016361022f3660046107e3565b610378565b60606003805461024390610874565b80601f016020809104026020016040519081016040528092919081815260200182805461026f90610874565b80156102bc5780601f10610291576101008083540402835291602001916102bc565b820191906000526020600020905b81548152906001019060200180831161029f57829003601f168201915b5050505050905090565b6000336102d48185856103f4565b60019150505b92915050565b6000336102ee858285610401565b6102f9858585610484565b506001949350505050565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461034d57604051630f3e00e560e41b815260040160405180910390fd5b61035782826104e3565b5050565b60606004805461024390610874565b6000336102d4818585610484565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146103c157604051630f3e00e560e41b815260040160405180910390fd5b816001600160a01b0316836001600160a01b0316146103e5576103e5838383610401565b6103ef8382610519565b505050565b6103ef838383600161054f565b6001600160a01b03838116600090815260016020908152604080832093861683529290522054600019811461047e578181101561046f57604051637dc7a0d960e11b81526001600160a01b038416600482015260248101829052604481018390526064015b60405180910390fd5b61047e8484848403600061054f565b50505050565b6001600160a01b0383166104ae57604051634b637e8f60e11b815260006004820152602401610466565b6001600160a01b0382166104d85760405163ec442f0560e01b815260006004820152602401610466565b6103ef838383610624565b6001600160a01b03821661050d5760405163ec442f0560e01b815260006004820152602401610466565b61035760008383610624565b6001600160a01b03821661054357604051634b637e8f60e11b815260006004820152602401610466565b61035782600083610624565b6001600160a01b0384166105795760405163e602df0560e01b815260006004820152602401610466565b6001600160a01b0383166105a357604051634a1406b160e11b815260006004820152602401610466565b6001600160a01b038085166000908152600160209081526040808320938716835292905220829055801561047e57826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161061691815260200190565b60405180910390a350505050565b6001600160a01b03831661064f57806002600082825461064491906108ae565b909155506106c19050565b6001600160a01b038316600090815260208190526040902054818110156106a25760405163391434e360e21b81526001600160a01b03851660048201526024810182905260448101839052606401610466565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b0382166106dd576002805482900390556106fc565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161074191815260200190565b60405180910390a3505050565b60006020808352835180602085015260005b8181101561077c57858101830151858201604001528201610760565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b03811681146107b457600080fd5b919050565b600080604083850312156107cc57600080fd5b6107d58361079d565b946020939093013593505050565b6000806000606084860312156107f857600080fd5b6108018461079d565b925061080f6020850161079d565b9150604084013590509250925092565b60006020828403121561083157600080fd5b61083a8261079d565b9392505050565b6000806040838503121561085457600080fd5b61085d8361079d565b915061086b6020840161079d565b90509250929050565b600181811c9082168061088857607f821691505b6020821081036108a857634e487b7160e01b600052602260045260246000fd5b50919050565b808201808211156102da57634e487b7160e01b600052601160045260246000fdfea26469706673582212209b21325f2d774ff30745c3f53f978679de88a14d36a6b29b79ac32e8192a67ae64736f6c63430008170033a26469706673582212203fb30975f810bc62bd932e2ac8d7fd8fa48841a9073985ec088b443ea595b53664736f6c634300081700330000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000074578616d706c6500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000345584d0000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xa2aa189fbc7d09ff477a2e64ce3744a40ec1ae80e3b51124582490cd84d44309", + "transactionType": "CALL", + "contractName": "MockERC1155A", + "contractAddress": "0x93FeD5c7ccAACB0fB9051958d4CE8129e4A04206", + "function": "mint(address,uint256,uint256,bytes)", + "arguments": [ + "0x48aB8AdF869Ba9902Ad483FB1Ca2eFDAb6eabe92", + "1", + "100", + "0x" + ], + "transaction": { + "type": "0x02", + "from": "0x48ab8adf869ba9902ad483fb1ca2efdab6eabe92", + "to": "0x93fed5c7ccaacb0fb9051958d4ce8129e4a04206", + "gas": "0x17aee", + "value": "0x0", + "data": "0x731133e900000000000000000000000048ab8adf869ba9902ad483fb1ca2efdab6eabe920000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000006400000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x1", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "transactionHash": "0x515943c0e5212a0b34a7e5ee8395d643b641977d9c5b6cb7c026998681df6373", + "transactionIndex": "0x0", + "blockHash": "0x7cd7b8fa234ba93847ee6ae1f444ef7f4ffd55b6fdff87baa275fa1e70628fb9", + "blockNumber": "0x2afc03c", + "from": "0x48aB8AdF869Ba9902Ad483FB1Ca2eFDAb6eabe92", + "to": null, + "cumulativeGasUsed": "0x329359", + "gasUsed": "0x329359", + "contractAddress": "0x93FeD5c7ccAACB0fB9051958d4CE8129e4A04206", + "logs": [ + { + "address": "0x0000000000000000000000000000000000001010", + "topics": [ + "0x4dfe1bbbcf077ddc3e01291eea2d5c70c2b422b415d95645b9adcfd678cb1d63", + "0x0000000000000000000000000000000000000000000000000000000000001010", + "0x00000000000000000000000048ab8adf869ba9902ad483fb1ca2efdab6eabe92", + "0x000000000000000000000000c26880a0af2ea0c7e8130e6ec47af756465452e8" + ], + "data": "0x0000000000000000000000000000000000000000000000000161442dbc2acc0000000000000000000000000000000000000000000000000006f05b59d3b20000000000000000000000000000000000000000000000002350d178b8b95f40cc24000000000000000000000000000000000000000000000000058f172c17873400000000000000000000000000000000000000000000002350d2d9fce71b6b9824", + "blockHash": "0x7cd7b8fa234ba93847ee6ae1f444ef7f4ffd55b6fdff87baa275fa1e70628fb9", + "blockNumber": "0x2afc03c", + "transactionHash": "0x515943c0e5212a0b34a7e5ee8395d643b641977d9c5b6cb7c026998681df6373", + "transactionIndex": "0x0", + "logIndex": "0x0", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00000000000000020000000000100000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000800100000000000000000100000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000800000000000000000000000000200000000000000020000000000000000001000000000000000000000000004000000000000000000001000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000100000", + "type": "0x2", + "effectiveGasPrice": "0x6fc23ac11" + }, + { + "transactionHash": "0xa2aa189fbc7d09ff477a2e64ce3744a40ec1ae80e3b51124582490cd84d44309", + "transactionIndex": "0x0", + "blockHash": "0xf6aa5bb9a6a958d91546def8050aad17c284d02170a1e29442ea886fa3e4fd8a", + "blockNumber": "0x2afc03f", + "from": "0x48aB8AdF869Ba9902Ad483FB1Ca2eFDAb6eabe92", + "to": "0x93FeD5c7ccAACB0fB9051958d4CE8129e4A04206", + "cumulativeGasUsed": "0x11257", + "gasUsed": "0x11257", + "contractAddress": null, + "logs": [ + { + "address": "0x93FeD5c7ccAACB0fB9051958d4CE8129e4A04206", + "topics": [ + "0xc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62", + "0x00000000000000000000000048ab8adf869ba9902ad483fb1ca2efdab6eabe92", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x00000000000000000000000048ab8adf869ba9902ad483fb1ca2efdab6eabe92" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000064", + "blockHash": "0xf6aa5bb9a6a958d91546def8050aad17c284d02170a1e29442ea886fa3e4fd8a", + "blockNumber": "0x2afc03f", + "transactionHash": "0xa2aa189fbc7d09ff477a2e64ce3744a40ec1ae80e3b51124582490cd84d44309", + "transactionIndex": "0x0", + "logIndex": "0x0", + "removed": false + }, + { + "address": "0x0000000000000000000000000000000000001010", + "topics": [ + "0x4dfe1bbbcf077ddc3e01291eea2d5c70c2b422b415d95645b9adcfd678cb1d63", + "0x0000000000000000000000000000000000000000000000000000000000001010", + "0x00000000000000000000000048ab8adf869ba9902ad483fb1ca2efdab6eabe92", + "0x000000000000000000000000c26880a0af2ea0c7e8130e6ec47af756465452e8" + ], + "data": "0x00000000000000000000000000000000000000000000000000077c3dde377400000000000000000000000000000000000000000000000000058f172c142b6b17000000000000000000000000000000000000000000002350d30073e43599716d00000000000000000000000000000000000000000000000005879aee35f3f717000000000000000000000000000000000000000000002350d307f02213d0e56d", + "blockHash": "0xf6aa5bb9a6a958d91546def8050aad17c284d02170a1e29442ea886fa3e4fd8a", + "blockNumber": "0x2afc03f", + "transactionHash": "0xa2aa189fbc7d09ff477a2e64ce3744a40ec1ae80e3b51124582490cd84d44309", + "transactionIndex": "0x0", + "logIndex": "0x1", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00000000000000020000000000100000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000002000000000000000000000000000000000800100000000000000000100000000000000000000020000000000000000080800000000000000000080000000000000000000000000000000000000000000000000000800000000000000000000000000200000000000000020000000000000000001000000000000000000400000004000000000000000000001000000000000000000000008000000100000000020000000000000000000000000000000000000000000000000000000080000100000", + "type": "0x2", + "effectiveGasPrice": "0x6fc23ac11" + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1706004511, + "chain": 80001, + "multi": false, + "commit": "1d81e58" +} \ No newline at end of file diff --git a/broadcast/DeployTestERC1155A.s.sol/80001/run-1706004511.json b/broadcast/DeployTestERC1155A.s.sol/80001/run-1706004511.json new file mode 100644 index 0000000..e5175d6 --- /dev/null +++ b/broadcast/DeployTestERC1155A.s.sol/80001/run-1706004511.json @@ -0,0 +1,142 @@ +{ + "transactions": [ + { + "hash": "0x515943c0e5212a0b34a7e5ee8395d643b641977d9c5b6cb7c026998681df6373", + "transactionType": "CREATE", + "contractName": "MockERC1155A", + "contractAddress": "0x93FeD5c7ccAACB0fB9051958d4CE8129e4A04206", + "function": null, + "arguments": [ + "\"Example\"", + "\"EXM\"" + ], + "transaction": { + "type": "0x02", + "from": "0x48ab8adf869ba9902ad483fb1ca2efdab6eabe92", + "gas": "0x41ba86", + "value": "0x0", + "data": "0x60806040523480156200001157600080fd5b5060405162003d1d38038062003d1d833981016040819052620000349162000126565b8181600562000044838262000221565b50600662000053828262000221565b5050505050620002ed565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200008657600080fd5b81516001600160401b0380821115620000a357620000a36200005e565b604051601f8301601f19908116603f01168101908282118183101715620000ce57620000ce6200005e565b8160405283815260209250866020858801011115620000ec57600080fd5b600091505b83821015620001105785820183015181830184015290820190620000f1565b6000602085830101528094505050505092915050565b600080604083850312156200013a57600080fd5b82516001600160401b03808211156200015257600080fd5b620001608683870162000074565b935060208501519150808211156200017757600080fd5b50620001868582860162000074565b9150509250929050565b600181811c90821680620001a557607f821691505b602082108103620001c657634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200021c576000816000526020600020601f850160051c81016020861015620001f75750805b601f850160051c820191505b81811015620002185782815560010162000203565b5050505b505050565b81516001600160401b038111156200023d576200023d6200005e565b62000255816200024e845462000190565b84620001cc565b602080601f8311600181146200028d5760008415620002745750858301515b600019600386901b1c1916600185901b17855562000218565b600085815260208120601f198616915b82811015620002be578886015182559484019460019091019084016200029d565b5085821015620002dd5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b613a2080620002fd6000396000f3fe608060405260043610620001fe5760003560e01c8063731133e91162000117578063cdde3d6b11620000a1578063f242432a116200006c578063f242432a14620006ab578063f5298aca14620006d0578063f6eb127a14620006f5578063ff61011a146200071a57600080fd5b8063cdde3d6b14620005e6578063e673070f146200060b578063e985e9c51462000647578063ec737321146200068657600080fd5b8063a49f951611620000e2578063a49f95161462000546578063b48ab8b6146200056b578063bd85b0391462000590578063cd4622eb14620005c157600080fd5b8063731133e914620004bf5780639473655c14620004e457806395d89b411462000509578063a22cb465146200052157600080fd5b80634e1273f41162000199578063598af9e71162000164578063598af9e7146200042b5780635fa8d764146200045057806367bc406514620004755780637081ce5e146200049a57600080fd5b80634e1273f414620003655780634f558e7914620003995780635029d0c814620003cc578063540ed9c014620003f157600080fd5b806306fdde0311620001da57806306fdde0314620002db578063093e316414620003025780630e89341c14620003195780632eb2c2d6146200033e57600080fd5b8062fdd58e146200020357806301ffc9a714620002525780630282acfc1462000288575b600080fd5b3480156200021057600080fd5b506200023f6200022236600462002325565b600260209081526000928352604080842090915290825290205481565b6040519081526020015b60405180910390f35b3480156200025f57600080fd5b5062000277620002713660046200236c565b6200073f565b604051901515815260200162000249565b3480156200029557600080fd5b50620002c2620002a736600462002393565b6004602052600090815260409020546001600160a01b031681565b6040516001600160a01b03909116815260200162000249565b348015620002e857600080fd5b50620002f362000793565b60405162000249919062002401565b620002c26200031336600462002393565b62000829565b3480156200032657600080fd5b50620002f36200033836600462002393565b620008ce565b3480156200034b57600080fd5b50620003636200035d36600462002572565b62000932565b005b3480156200037257600080fd5b506200038a6200038436600462002629565b62000b27565b60405162000249919062002734565b348015620003a657600080fd5b5062000277620003b836600462002393565b600090815260208190526040902054151590565b348015620003d957600080fd5b5062000363620003eb36600462002749565b62000c41565b348015620003fe57600080fd5b50620002c26200041036600462002393565b6000908152600460205260409020546001600160a01b031690565b3480156200043857600080fd5b506200023f6200044a366004620027d8565b62000e1b565b3480156200045d57600080fd5b50620003636200046f36600462002819565b62000e4d565b3480156200048257600080fd5b50620002776200049436600462002819565b62000ed5565b348015620004a757600080fd5b5062000363620004b936600462002895565b62000f9b565b348015620004cc57600080fd5b5062000363620004de366004620028d5565b620010d1565b348015620004f157600080fd5b50620003636200050336600462002895565b620010e6565b3480156200051657600080fd5b50620002f362001231565b3480156200052e57600080fd5b5062000363620005403660046200293b565b62001240565b3480156200055357600080fd5b5062000363620005653660046200297b565b620012d4565b3480156200057857600080fd5b50620003636200058a366004620029ff565b620012e9565b3480156200059d57600080fd5b506200023f620005af36600462002393565b60009081526020819052604090205490565b348015620005ce57600080fd5b5062000277620005e036600462002819565b62001364565b348015620005f357600080fd5b5062000277620006053660046200297b565b620013ea565b3480156200061857600080fd5b50620002776200062a36600462002393565b6000908152600460205260409020546001600160a01b0316151590565b3480156200065457600080fd5b50620002776200066636600462002aad565b600360209081526000928352604080842090915290825290205460ff1681565b3480156200069357600080fd5b5062000363620006a536600462002749565b62001404565b348015620006b857600080fd5b5062000363620006ca36600462002ae5565b620015c7565b348015620006dd57600080fd5b5062000363620006ef3660046200297b565b620016ef565b3480156200070257600080fd5b50620003636200071436600462002b51565b620016fd565b3480156200072757600080fd5b5062000277620007393660046200297b565b6200176e565b60006001600160e01b031982166301ffc9a760e01b14806200077157506001600160e01b03198216636cdb3d1360e11b145b806200078d57506001600160e01b031982166303a24d0760e21b145b92915050565b60058054620007a29062002bda565b80601f0160208091040260200160405190810160405280929190818152602001828054620007d09062002bda565b8015620008215780601f10620007f55761010080835404028352916020019162000821565b820191906000526020600020905b8154815290600101906020018083116200080357829003601f168201915b505050505081565b60008181526020819052604081205481036200085857604051631b5bd2df60e31b815260040160405180910390fd5b6000828152600460205260409020546001600160a01b0316156200088f576040516347d4e9ad60e11b815260040160405180910390fd5b60006200089c836200178f565b60009384526004602052604090932080546001600160a01b0319166001600160a01b0390941693841790555090919050565b6060620008fe60408051808201909152601081526f68747470733a2f2f7572692e636f6d2f60801b602082015290565b620009098362001801565b6040516020016200091c92919062002c16565b6040516020818303038152906040529050919050565b6001600160a01b03851615806200095057506001600160a01b038416155b156200096f5760405163538ba4f960e01b815260040160405180910390fd5b825182518114620009935760405163899ef10d60e01b815260040160405180910390fd5b336001600160a01b0387168114801590620009d457506001600160a01b0380881660009081526003602090815260408083209385168352929052205460ff16155b1562000a585760008060005b8481101562000a4f57878181518110620009fe57620009fe62002c49565b6020026020010151925086818151811062000a1d5762000a1d62002c49565b6020026020010151915062000a378a85858560006200189a565b5062000a468a8a8585620018f5565b600101620009e0565b50505062000ab5565b60005b8281101562000ab35762000aaa888888848151811062000a7f5762000a7f62002c49565b602002602001015188858151811062000a9c5762000a9c62002c49565b6020026020010151620018f5565b60010162000a5b565b505b856001600160a01b0316876001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb888860405162000b0692919062002c5f565b60405180910390a462000b1e8188888888886200196f565b50505050505050565b6060815183511462000b4c5760405163899ef10d60e01b815260040160405180910390fd5b82516001600160401b0381111562000b685762000b6862002416565b60405190808252806020026020018201604052801562000b92578160200160208202803683370190505b50905060005b835181101562000c3a576002600085838151811062000bbb5762000bbb62002c49565b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020600084838151811062000bfa5762000bfa62002c49565b602002602001015181526020019081526020016000205482828151811062000c265762000c2662002c49565b602090810291909101015260010162000b98565b5092915050565b6001600160a01b038416158062000c5f57506001600160a01b038116155b1562000c7e5760405163538ba4f960e01b815260040160405180910390fd5b82518251811462000ca25760405163899ef10d60e01b815260040160405180910390fd5b60008060005b865181101562000da45786818151811062000cc75762000cc762002c49565b6020026020010151925085818151811062000ce65762000ce662002c49565b602090810291909101810151600085815260049092526040909120549092506001600160a01b03168062000d2d576040516369f28dc960e11b815260040160405180910390fd5b604051633dae446f60e21b81526001600160a01b038a811660048301523360248301526044820185905282169063f6b911bc90606401600060405180830381600087803b15801562000d7e57600080fd5b505af115801562000d93573d6000803e3d6000fd5b505050505080600101905062000ca8565b5062000dc3843388886040518060200160405280600081525062001ad3565b836001600160a01b0316876001600160a01b03167f2ec4237e89b1c7ccb8710672dc83af16f1949c33f3b313eeaab1a626e6aa4427888860405162000e0a92919062002c5f565b60405180910390a350505050505050565b6001600160a01b0392831660009081526001602090815260408083209490951682529283528381209181529152205490565b81518151811462000e715760405163899ef10d60e01b815260040160405180910390fd5b60005b8181101562000ece5762000ec5338686848151811062000e985762000e9862002c49565b602002602001015186858151811062000eb55762000eb562002c49565b6020026020010151600162001c35565b60010162000e74565b5050505050565b8151815160009190811462000efd5760405163899ef10d60e01b815260040160405180910390fd5b60005b8181101562000f8f5762000f86338787848151811062000f245762000f2462002c49565b602002602001015187858151811062000f415762000f4162002c49565b602002602001015162000f72338c8c898151811062000f645762000f6462002c49565b602002602001015162000e1b565b62000f7e919062002ca7565b600162001c35565b60010162000f00565b50600195945050505050565b6001600160a01b038416158062000fb957506001600160a01b038116155b1562000fd85760405163538ba4f960e01b815260040160405180910390fd5b62000fe68433858562001d0b565b6000838152600460205260409020546001600160a01b0316806200101d576040516369f28dc960e11b815260040160405180910390fd5b6040516340c10f1960e01b81526001600160a01b038381166004830152602482018590528216906340c10f1990604401600060405180830381600087803b1580156200106857600080fd5b505af11580156200107d573d6000803e3d6000fd5b505060408051878152602081018790526001600160a01b038087169450891692507f4420f38d0f4ce916c1d0da8d37675c007978eaaa4a8c2cc4231fd52a7a57b61491015b60405180910390a35050505050565b620010e0843385858562001df2565b50505050565b6001600160a01b03841615806200110457506001600160a01b038116155b15620011235760405163538ba4f960e01b815260040160405180910390fd5b6000838152600460205260409020546001600160a01b0316806200115a576040516369f28dc960e11b815260040160405180910390fd5b604051633dae446f60e21b81526001600160a01b0386811660048301523360248301526044820185905282169063f6b911bc90606401600060405180830381600087803b158015620011ab57600080fd5b505af1158015620011c0573d6000803e3d6000fd5b50505050620011e2823386866040518060200160405280600081525062001df2565b816001600160a01b0316856001600160a01b03167f9195fdebb74042f1bd7abc0ded779a6e10ae01e0ad5f5546cb7e421d65a566668686604051620010c2929190918252602082015260400190565b60068054620007a29062002bda565b6001600160a01b038216620012685760405163538ba4f960e01b815260040160405180910390fd5b3360008181526003602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b620012e433848484600162001c35565b505050565b6200135c863387878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808b0282810182019093528a82529093508a92508991829185019084908082843760009201919091525088925062001ad3915050565b505050505050565b815181516000919081146200138c5760405163899ef10d60e01b815260040160405180910390fd5b60005b8181101562000f8f57620013e03387878481518110620013b357620013b362002c49565b6020026020010151878581518110620013d057620013d062002c49565b602002602001015160016200189a565b506001016200138f565b6000620013fc3385858560016200189a565b949350505050565b6001600160a01b03841615806200142257506001600160a01b038116155b15620014415760405163538ba4f960e01b815260040160405180910390fd5b825182518114620014655760405163899ef10d60e01b815260040160405180910390fd5b620014738533868662001eae565b60005b818110156200157f576000600460008784815181106200149a576200149a62002c49565b6020908102919091018101518252810191909152604001600020546001600160a01b0316905080620014df576040516369f28dc960e11b815260040160405180910390fd5b806001600160a01b03166340c10f198587858151811062001504576200150462002c49565b60200260200101516040518363ffffffff1660e01b81526004016200153e9291906001600160a01b03929092168252602082015260400190565b600060405180830381600087803b1580156200155957600080fd5b505af11580156200156e573d6000803e3d6000fd5b505050505080600101905062001476565b50816001600160a01b0316856001600160a01b03167f1c57454fefbe0a2a0aa1926734e74f4cb5137003ccf5e6edfde51c79163fbf378686604051620010c292919062002c5f565b6001600160a01b0385161580620015e557506001600160a01b038416155b15620016045760405163538ba4f960e01b815260040160405180910390fd5b336001600160a01b03861681148015906200164557506001600160a01b0380871660009081526003602090815260408083209385168352929052205460ff16155b1562001670576200165b8682868660006200189a565b506200166a86868686620018f5565b6200167e565b6200167e86868686620018f5565b846001600160a01b0316866001600160a01b0316826001600160a01b03167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628787604051620016d7929190918252602082015260400190565b60405180910390a46200135c81878787878762002127565b620012e48333848462001d0b565b62000ece853386868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808a0282810182019093528982529093508992508891829185019084908082843760009201919091525062001eae92505050565b6000620017853385858562000f72338a8a62000e1b565b5060019392505050565b60006012604051620017a190620022fa565b6060808252600490820152636e616d6560e01b608082015260a060208201819052600690820152651cde5b589bdb60d21b60c082015260ff909116604082015260e001604051809103906000f08015801562000c3a573d6000803e3d6000fd5b6060600062001810836200221b565b60010190506000816001600160401b0381111562001832576200183262002416565b6040519080825280601f01601f1916602001820160405280156200185d576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a85049450846200186757509392505050565b600080620018aa87878762000e1b565b905083811015620018ce57604051630422f8c360e31b815260040160405180910390fd5b620018e8878787620018e1888662002cbd565b8762001c35565b5060019695505050505050565b6001600160a01b0384166000908152600260209081526040808320858452909152812080548392906200192a90849062002cbd565b90915550506001600160a01b0383166000908152600260209081526040808320858452909152812080548392906200196490849062002ca7565b909155505050505050565b6001600160a01b0384163b1562001aab5760405163bc197c8160e01b81526001600160a01b0385169063bc197c8190620019b6908990899088908890889060040162002cd3565b6020604051808303816000875af1925050508015620019f4575060408051601f3d908101601f19168201909252620019f19181019062002d37565b60015b62001a6d573d80801562001a25576040519150601f19603f3d011682016040523d82523d6000602084013e62001a2a565b606091505b50805160000362001a5e57604051632bfa23e760e11b81526001600160a01b03861660048201526024015b60405180910390fd5b805181602001fd5b506200135c565b6001600160e01b0319811663bc197c8160e01b1462001a6657604051632bfa23e760e11b81526001600160a01b038616600482015260240162001a55565b6001600160a01b0384166200135c57604051635edce13360e01b815260040160405180910390fd5b82518251811462001af75760405163899ef10d60e01b815260040160405180910390fd5b60008060005b8381101562001bbf5786818151811062001b1b5762001b1b62002c49565b6020026020010151925085818151811062001b3a5762001b3a62002c49565b6020026020010151915081600260008b6001600160a01b03166001600160a01b031681526020019081526020016000206000858152602001908152602001600020600082825462001b8c919062002ca7565b90915550506000838152602081905260408120805484929062001bb190849062002ca7565b909155505060010162001afd565b50876001600160a01b031660006001600160a01b0316886001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb898960405162001c1292919062002c5f565b60405180910390a462001c2b8760008a8989896200196f565b5050505050505050565b6001600160a01b03851662001c5d5760405163538ba4f960e01b815260040160405180910390fd5b6001600160a01b03841662001c855760405163538ba4f960e01b815260040160405180910390fd5b6001600160a01b0380861660009081526001602090815260408083209388168352928152828220868352905220829055801562000ece57836001600160a01b0316856001600160a01b03167f875251d6c7be5b10ddb14ed4f59395338f15552062d4ad7723265838e316f9a88585604051620010c2929190918252602082015260400190565b836001600160a01b0316836001600160a01b03161415801562001d5457506001600160a01b0380851660009081526003602090815260408083209387168352929052205460ff16155b1562001d6c5762001d6a8484848460006200189a565b505b62001d7b8460008484620018f5565b6000828152602081905260408120805483929062001d9b90849062002cbd565b909155505060408051838152602081018390526000916001600160a01b0387811692908716917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a450505050565b6001600160a01b03851660009081526002602090815260408083208684529091528120805484929062001e2790849062002ca7565b90915550506000838152602081905260408120805484929062001e4c90849062002ca7565b909155505060408051848152602081018490526001600160a01b0380881692600092918816917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a462000ece8460008786868662002127565b81518151811462001ed25760405163899ef10d60e01b815260040160405180910390fd5b600080866001600160a01b0316866001600160a01b03161415801562001f1e57506001600160a01b038088166000908152600360209081526040808320938a168352929052205460ff16155b1562001fff5760005b8381101562001ff85785818151811062001f455762001f4562002c49565b6020026020010151925084818151811062001f645762001f6462002c49565b6020026020010151915062001f7e8888858560006200189a565b5062001f8e8860008585620018f5565b84818151811062001fa35762001fa362002c49565b602002602001015160008088848151811062001fc35762001fc362002c49565b60200260200101518152602001908152602001600020600082825462001fea919062002cbd565b909155505060010162001f27565b50620020c4565b60005b83811015620020c25785818151811062002020576200202062002c49565b602002602001015192508481815181106200203f576200203f62002c49565b60200260200101519150620020588860008585620018f5565b8481815181106200206d576200206d62002c49565b60200260200101516000808884815181106200208d576200208d62002c49565b602002602001015181526020019081526020016000206000828254620020b4919062002cbd565b909155505060010162002002565b505b60006001600160a01b0316876001600160a01b0316876001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb88886040516200211692919062002c5f565b60405180910390a450505050505050565b6001600160a01b0384163b1562001aab5760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e61906200216e908990899088908890889060040162002d57565b6020604051808303816000875af1925050508015620021ac575060408051601f3d908101601f19168201909252620021a99181019062002d37565b60015b620021dd573d80801562001a25576040519150601f19603f3d011682016040523d82523d6000602084013e62001a2a565b6001600160e01b0319811663f23a6e6160e01b1462001a6657604051632bfa23e760e11b81526001600160a01b038616600482015260240162001a55565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106200225b5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef8100000000831062002288576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310620022a757662386f26fc10000830492506010015b6305f5e1008310620022c0576305f5e100830492506008015b6127108310620022d557612710830492506004015b60648310620022e8576064830492506002015b600a83106200078d5760010192915050565b610c4c8062002d9f83390190565b80356001600160a01b03811681146200232057600080fd5b919050565b600080604083850312156200233957600080fd5b620023448362002308565b946020939093013593505050565b6001600160e01b0319811681146200236957600080fd5b50565b6000602082840312156200237f57600080fd5b81356200238c8162002352565b9392505050565b600060208284031215620023a657600080fd5b5035919050565b60005b83811015620023ca578181015183820152602001620023b0565b50506000910152565b60008151808452620023ed816020860160208601620023ad565b601f01601f19169290920160200192915050565b6020815260006200238c6020830184620023d3565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171562002457576200245762002416565b604052919050565b60006001600160401b038211156200247b576200247b62002416565b5060051b60200190565b600082601f8301126200249757600080fd5b81356020620024b0620024aa836200245f565b6200242c565b8083825260208201915060208460051b870101935086841115620024d357600080fd5b602086015b84811015620024f15780358352918301918301620024d8565b509695505050505050565b600082601f8301126200250e57600080fd5b81356001600160401b038111156200252a576200252a62002416565b6200253f601f8201601f19166020016200242c565b8181528460208386010111156200255557600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600060a086880312156200258b57600080fd5b620025968662002308565b9450620025a66020870162002308565b935060408601356001600160401b0380821115620025c357600080fd5b620025d189838a0162002485565b94506060880135915080821115620025e857600080fd5b620025f689838a0162002485565b935060808801359150808211156200260d57600080fd5b506200261c88828901620024fc565b9150509295509295909350565b600080604083850312156200263d57600080fd5b82356001600160401b03808211156200265557600080fd5b818501915085601f8301126200266a57600080fd5b813560206200267d620024aa836200245f565b82815260059290921b840181019181810190898411156200269d57600080fd5b948201945b83861015620026c657620026b68662002308565b82529482019490820190620026a2565b96505086013592505080821115620026dd57600080fd5b50620026ec8582860162002485565b9150509250929050565b60008151808452602080850194506020840160005b8381101562002729578151875295820195908201906001016200270b565b509495945050505050565b6020815260006200238c6020830184620026f6565b600080600080608085870312156200276057600080fd5b6200276b8562002308565b935060208501356001600160401b03808211156200278857600080fd5b620027968883890162002485565b94506040870135915080821115620027ad57600080fd5b50620027bc8782880162002485565b925050620027cd6060860162002308565b905092959194509250565b600080600060608486031215620027ee57600080fd5b620027f98462002308565b9250620028096020850162002308565b9150604084013590509250925092565b6000806000606084860312156200282f57600080fd5b6200283a8462002308565b925060208401356001600160401b03808211156200285757600080fd5b620028658783880162002485565b935060408601359150808211156200287c57600080fd5b506200288b8682870162002485565b9150509250925092565b60008060008060808587031215620028ac57600080fd5b620028b78562002308565b93506020850135925060408501359150620027cd6060860162002308565b60008060008060808587031215620028ec57600080fd5b620028f78562002308565b9350602085013592506040850135915060608501356001600160401b038111156200292157600080fd5b6200292f87828801620024fc565b91505092959194509250565b600080604083850312156200294f57600080fd5b6200295a8362002308565b9150602083013580151581146200297057600080fd5b809150509250929050565b6000806000606084860312156200299157600080fd5b6200299c8462002308565b95602085013595506040909401359392505050565b60008083601f840112620029c457600080fd5b5081356001600160401b03811115620029dc57600080fd5b6020830191508360208260051b8501011115620029f857600080fd5b9250929050565b6000806000806000806080878903121562002a1957600080fd5b62002a248762002308565b955060208701356001600160401b038082111562002a4157600080fd5b62002a4f8a838b01620029b1565b9097509550604089013591508082111562002a6957600080fd5b62002a778a838b01620029b1565b9095509350606089013591508082111562002a9157600080fd5b5062002aa089828a01620024fc565b9150509295509295509295565b6000806040838503121562002ac157600080fd5b62002acc8362002308565b915062002adc6020840162002308565b90509250929050565b600080600080600060a0868803121562002afe57600080fd5b62002b098662002308565b945062002b196020870162002308565b9350604086013592506060860135915060808601356001600160401b0381111562002b4357600080fd5b6200261c88828901620024fc565b60008060008060006060868803121562002b6a57600080fd5b62002b758662002308565b945060208601356001600160401b038082111562002b9257600080fd5b62002ba089838a01620029b1565b9096509450604088013591508082111562002bba57600080fd5b5062002bc988828901620029b1565b969995985093965092949392505050565b600181811c9082168062002bef57607f821691505b60208210810362002c1057634e487b7160e01b600052602260045260246000fd5b50919050565b6000835162002c2a818460208801620023ad565b83519083019062002c40818360208801620023ad565b01949350505050565b634e487b7160e01b600052603260045260246000fd5b60408152600062002c746040830185620026f6565b828103602084015262002c888185620026f6565b95945050505050565b634e487b7160e01b600052601160045260246000fd5b808201808211156200078d576200078d62002c91565b818103818111156200078d576200078d62002c91565b6001600160a01b0386811682528516602082015260a06040820181905260009062002d0190830186620026f6565b828103606084015262002d158186620026f6565b9050828103608084015262002d2b8185620023d3565b98975050505050505050565b60006020828403121562002d4a57600080fd5b81516200238c8162002352565b6001600160a01b03868116825285166020820152604081018490526060810183905260a06080820181905260009062002d9390830184620023d3565b97965050505050505056fe60c06040523480156200001157600080fd5b5060405162000c4c38038062000c4c833981016040819052620000349162000131565b8282600362000044838262000247565b50600462000053828262000247565b5050336080525060ff1660a05250620003139050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200009157600080fd5b81516001600160401b0380821115620000ae57620000ae62000069565b604051601f8301601f19908116603f01168101908282118183101715620000d957620000d962000069565b8160405283815260209250866020858801011115620000f757600080fd5b600091505b838210156200011b5785820183015181830184015290820190620000fc565b6000602085830101528094505050505092915050565b6000806000606084860312156200014757600080fd5b83516001600160401b03808211156200015f57600080fd5b6200016d878388016200007f565b945060208601519150808211156200018457600080fd5b5062000193868287016200007f565b925050604084015160ff81168114620001ab57600080fd5b809150509250925092565b600181811c90821680620001cb57607f821691505b602082108103620001ec57634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111562000242576000816000526020600020601f850160051c810160208610156200021d5750805b601f850160051c820191505b818110156200023e5782815560010162000229565b5050505b505050565b81516001600160401b0381111562000263576200026362000069565b6200027b81620002748454620001b6565b84620001f2565b602080601f831160018114620002b357600084156200029a5750858301515b600019600386901b1c1916600185901b1785556200023e565b600085815260208120601f198616915b82811015620002e457888601518255948401946001909101908401620002c3565b5085821015620003035787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60805160a0516109056200034760003960006101260152600081816101930152818161030f015261038301526109056000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c806370a082311161007157806370a0823114610165578063906d34db1461018e57806395d89b41146101cd578063a9059cbb146101d5578063dd62ed3e146101e8578063f6b911bc1461022157600080fd5b806306fdde03146100b9578063095ea7b3146100d757806318160ddd146100fa57806323b872dd1461010c578063313ce5671461011f57806340c10f1914610150575b600080fd5b6100c1610234565b6040516100ce919061074e565b60405180910390f35b6100ea6100e53660046107b9565b6102c6565b60405190151581526020016100ce565b6002545b6040519081526020016100ce565b6100ea61011a3660046107e3565b6102e0565b60405160ff7f00000000000000000000000000000000000000000000000000000000000000001681526020016100ce565b61016361015e3660046107b9565b610304565b005b6100fe61017336600461081f565b6001600160a01b031660009081526020819052604090205490565b6101b57f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100ce565b6100c161035b565b6100ea6101e33660046107b9565b61036a565b6100fe6101f6366004610841565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b61016361022f3660046107e3565b610378565b60606003805461024390610874565b80601f016020809104026020016040519081016040528092919081815260200182805461026f90610874565b80156102bc5780601f10610291576101008083540402835291602001916102bc565b820191906000526020600020905b81548152906001019060200180831161029f57829003601f168201915b5050505050905090565b6000336102d48185856103f4565b60019150505b92915050565b6000336102ee858285610401565b6102f9858585610484565b506001949350505050565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461034d57604051630f3e00e560e41b815260040160405180910390fd5b61035782826104e3565b5050565b60606004805461024390610874565b6000336102d4818585610484565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146103c157604051630f3e00e560e41b815260040160405180910390fd5b816001600160a01b0316836001600160a01b0316146103e5576103e5838383610401565b6103ef8382610519565b505050565b6103ef838383600161054f565b6001600160a01b03838116600090815260016020908152604080832093861683529290522054600019811461047e578181101561046f57604051637dc7a0d960e11b81526001600160a01b038416600482015260248101829052604481018390526064015b60405180910390fd5b61047e8484848403600061054f565b50505050565b6001600160a01b0383166104ae57604051634b637e8f60e11b815260006004820152602401610466565b6001600160a01b0382166104d85760405163ec442f0560e01b815260006004820152602401610466565b6103ef838383610624565b6001600160a01b03821661050d5760405163ec442f0560e01b815260006004820152602401610466565b61035760008383610624565b6001600160a01b03821661054357604051634b637e8f60e11b815260006004820152602401610466565b61035782600083610624565b6001600160a01b0384166105795760405163e602df0560e01b815260006004820152602401610466565b6001600160a01b0383166105a357604051634a1406b160e11b815260006004820152602401610466565b6001600160a01b038085166000908152600160209081526040808320938716835292905220829055801561047e57826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161061691815260200190565b60405180910390a350505050565b6001600160a01b03831661064f57806002600082825461064491906108ae565b909155506106c19050565b6001600160a01b038316600090815260208190526040902054818110156106a25760405163391434e360e21b81526001600160a01b03851660048201526024810182905260448101839052606401610466565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b0382166106dd576002805482900390556106fc565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161074191815260200190565b60405180910390a3505050565b60006020808352835180602085015260005b8181101561077c57858101830151858201604001528201610760565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b03811681146107b457600080fd5b919050565b600080604083850312156107cc57600080fd5b6107d58361079d565b946020939093013593505050565b6000806000606084860312156107f857600080fd5b6108018461079d565b925061080f6020850161079d565b9150604084013590509250925092565b60006020828403121561083157600080fd5b61083a8261079d565b9392505050565b6000806040838503121561085457600080fd5b61085d8361079d565b915061086b6020840161079d565b90509250929050565b600181811c9082168061088857607f821691505b6020821081036108a857634e487b7160e01b600052602260045260246000fd5b50919050565b808201808211156102da57634e487b7160e01b600052601160045260246000fdfea26469706673582212209b21325f2d774ff30745c3f53f978679de88a14d36a6b29b79ac32e8192a67ae64736f6c63430008170033a26469706673582212203fb30975f810bc62bd932e2ac8d7fd8fa48841a9073985ec088b443ea595b53664736f6c634300081700330000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000074578616d706c6500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000345584d0000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xa2aa189fbc7d09ff477a2e64ce3744a40ec1ae80e3b51124582490cd84d44309", + "transactionType": "CALL", + "contractName": "MockERC1155A", + "contractAddress": "0x93FeD5c7ccAACB0fB9051958d4CE8129e4A04206", + "function": "mint(address,uint256,uint256,bytes)", + "arguments": [ + "0x48aB8AdF869Ba9902Ad483FB1Ca2eFDAb6eabe92", + "1", + "100", + "0x" + ], + "transaction": { + "type": "0x02", + "from": "0x48ab8adf869ba9902ad483fb1ca2efdab6eabe92", + "to": "0x93fed5c7ccaacb0fb9051958d4ce8129e4a04206", + "gas": "0x17aee", + "value": "0x0", + "data": "0x731133e900000000000000000000000048ab8adf869ba9902ad483fb1ca2efdab6eabe920000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000006400000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x1", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "transactionHash": "0x515943c0e5212a0b34a7e5ee8395d643b641977d9c5b6cb7c026998681df6373", + "transactionIndex": "0x0", + "blockHash": "0x7cd7b8fa234ba93847ee6ae1f444ef7f4ffd55b6fdff87baa275fa1e70628fb9", + "blockNumber": "0x2afc03c", + "from": "0x48aB8AdF869Ba9902Ad483FB1Ca2eFDAb6eabe92", + "to": null, + "cumulativeGasUsed": "0x329359", + "gasUsed": "0x329359", + "contractAddress": "0x93FeD5c7ccAACB0fB9051958d4CE8129e4A04206", + "logs": [ + { + "address": "0x0000000000000000000000000000000000001010", + "topics": [ + "0x4dfe1bbbcf077ddc3e01291eea2d5c70c2b422b415d95645b9adcfd678cb1d63", + "0x0000000000000000000000000000000000000000000000000000000000001010", + "0x00000000000000000000000048ab8adf869ba9902ad483fb1ca2efdab6eabe92", + "0x000000000000000000000000c26880a0af2ea0c7e8130e6ec47af756465452e8" + ], + "data": "0x0000000000000000000000000000000000000000000000000161442dbc2acc0000000000000000000000000000000000000000000000000006f05b59d3b20000000000000000000000000000000000000000000000002350d178b8b95f40cc24000000000000000000000000000000000000000000000000058f172c17873400000000000000000000000000000000000000000000002350d2d9fce71b6b9824", + "blockHash": "0x7cd7b8fa234ba93847ee6ae1f444ef7f4ffd55b6fdff87baa275fa1e70628fb9", + "blockNumber": "0x2afc03c", + "transactionHash": "0x515943c0e5212a0b34a7e5ee8395d643b641977d9c5b6cb7c026998681df6373", + "transactionIndex": "0x0", + "logIndex": "0x0", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00000000000000020000000000100000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000800100000000000000000100000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000800000000000000000000000000200000000000000020000000000000000001000000000000000000000000004000000000000000000001000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000100000", + "type": "0x2", + "effectiveGasPrice": "0x6fc23ac11" + }, + { + "transactionHash": "0xa2aa189fbc7d09ff477a2e64ce3744a40ec1ae80e3b51124582490cd84d44309", + "transactionIndex": "0x0", + "blockHash": "0xf6aa5bb9a6a958d91546def8050aad17c284d02170a1e29442ea886fa3e4fd8a", + "blockNumber": "0x2afc03f", + "from": "0x48aB8AdF869Ba9902Ad483FB1Ca2eFDAb6eabe92", + "to": "0x93FeD5c7ccAACB0fB9051958d4CE8129e4A04206", + "cumulativeGasUsed": "0x11257", + "gasUsed": "0x11257", + "contractAddress": null, + "logs": [ + { + "address": "0x93FeD5c7ccAACB0fB9051958d4CE8129e4A04206", + "topics": [ + "0xc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62", + "0x00000000000000000000000048ab8adf869ba9902ad483fb1ca2efdab6eabe92", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x00000000000000000000000048ab8adf869ba9902ad483fb1ca2efdab6eabe92" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000064", + "blockHash": "0xf6aa5bb9a6a958d91546def8050aad17c284d02170a1e29442ea886fa3e4fd8a", + "blockNumber": "0x2afc03f", + "transactionHash": "0xa2aa189fbc7d09ff477a2e64ce3744a40ec1ae80e3b51124582490cd84d44309", + "transactionIndex": "0x0", + "logIndex": "0x0", + "removed": false + }, + { + "address": "0x0000000000000000000000000000000000001010", + "topics": [ + "0x4dfe1bbbcf077ddc3e01291eea2d5c70c2b422b415d95645b9adcfd678cb1d63", + "0x0000000000000000000000000000000000000000000000000000000000001010", + "0x00000000000000000000000048ab8adf869ba9902ad483fb1ca2efdab6eabe92", + "0x000000000000000000000000c26880a0af2ea0c7e8130e6ec47af756465452e8" + ], + "data": "0x00000000000000000000000000000000000000000000000000077c3dde377400000000000000000000000000000000000000000000000000058f172c142b6b17000000000000000000000000000000000000000000002350d30073e43599716d00000000000000000000000000000000000000000000000005879aee35f3f717000000000000000000000000000000000000000000002350d307f02213d0e56d", + "blockHash": "0xf6aa5bb9a6a958d91546def8050aad17c284d02170a1e29442ea886fa3e4fd8a", + "blockNumber": "0x2afc03f", + "transactionHash": "0xa2aa189fbc7d09ff477a2e64ce3744a40ec1ae80e3b51124582490cd84d44309", + "transactionIndex": "0x0", + "logIndex": "0x1", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00000000000000020000000000100000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000002000000000000000000000000000000000800100000000000000000100000000000000000000020000000000000000080800000000000000000080000000000000000000000000000000000000000000000000000800000000000000000000000000200000000000000020000000000000000001000000000000000000400000004000000000000000000001000000000000000000000008000000100000000020000000000000000000000000000000000000000000000000000000080000100000", + "type": "0x2", + "effectiveGasPrice": "0x6fc23ac11" + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1706004511, + "chain": 80001, + "multi": false, + "commit": "1d81e58" +} \ No newline at end of file diff --git a/script/DeployTestERC1155A.s.sol b/script/DeployTestERC1155A.s.sol new file mode 100644 index 0000000..29cc413 --- /dev/null +++ b/script/DeployTestERC1155A.s.sol @@ -0,0 +1,21 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.23; + +import { Script } from "forge-std/Script.sol"; + +import "forge-std/console.sol"; + +import "src/test/mocks/MockERC1155A.sol"; + +contract DeployTestERC1155A is Script { + address public deployedContract; + + function deploy() external { + vm.startBroadcast(); + MockERC1155A erc1155a = new MockERC1155A("Example", "EXM"); + erc1155a.mint(0x48aB8AdF869Ba9902Ad483FB1Ca2eFDAb6eabe92, 1, 100, "" ""); + deployedContract = address(erc1155a); + vm.stopBroadcast(); + console.log("Deployed contract at: %s", deployedContract); + } +} diff --git a/script/deploy.sh b/script/deploy.sh new file mode 100644 index 0000000..c02a1a8 --- /dev/null +++ b/script/deploy.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +# Read the RPC URL +source .env + +forge script script/DeployTestERC1155A.s.sol:DeployTestERC1155A --sig "deploy()" --rpc-url $MUMBAI_RPC_URL --broadcast --slow --account defaultKey --sender 0x48aB8AdF869Ba9902Ad483FB1Ca2eFDAb6eabe92 diff --git a/src/ERC1155A.sol b/src/ERC1155A.sol index 9fa3805..340f4e8 100644 --- a/src/ERC1155A.sol +++ b/src/ERC1155A.sol @@ -39,6 +39,23 @@ abstract contract ERC1155A is IERC1155A, IERC1155Errors { /// @dev mapping of token ids to aErc20 token addresses mapping(uint256 id => address aErc20Token) public aErc20TokenId; + /// @dev ERC1155A name + string public name; + /// @dev ERC1155A symbol + string public symbol; + + ////////////////////////////////////////////////////////////// + // CONSTRUCTOR // + ////////////////////////////////////////////////////////////// + + /// @dev Initializes ERC1155A + /// @param name_ ERC1155A name + /// @param symbol_ ERC1155A symbol + constructor(string memory name_, string memory symbol_) { + name = name_; + symbol = symbol_; + } + ////////////////////////////////////////////////////////////// // EXTERNAL VIEW FUNCTIONS // ////////////////////////////////////////////////////////////// diff --git a/src/interfaces/IERC1155A.sol b/src/interfaces/IERC1155A.sol index 38ae40a..a37ca90 100644 --- a/src/interfaces/IERC1155A.sol +++ b/src/interfaces/IERC1155A.sol @@ -7,7 +7,6 @@ import { IERC1155 } from "openzeppelin-contracts/contracts/token/ERC1155/IERC115 /// @author Zeropoint Labs /// @dev Single/range based id approve capability with conversion to ERC20s interface IERC1155A is IERC1155 { - ////////////////////////////////////////////////////////////// // EVENTS // ////////////////////////////////////////////////////////////// @@ -57,12 +56,12 @@ interface IERC1155A is IERC1155 { ////////////////////////////////////////////////////////////// /// @notice Public getter for existing single id total supply - /// @param id id of the ERC1155 + /// @param id id of the ERC1155 function totalSupply(uint256 id) external view returns (uint256); /// @notice Public getter to know if a token id exists /// @dev determines based on total supply for the id - /// @param id id of the ERC1155 + /// @param id id of the ERC1155 function exists(uint256 id) external view returns (bool); /// @notice Public getter for existing single id approval @@ -72,7 +71,7 @@ interface IERC1155A is IERC1155 { function allowance(address owner, address spender, uint256 id) external returns (uint256); /// @notice handy helper to check if a AERC20 is registered - /// @param id id of the ERC1155 + /// @param id id of the ERC1155 function aERC20Exists(uint256 id) external view returns (bool); /// @notice Public getter for the address of the aErc20 token for a given ERC1155 id @@ -81,9 +80,15 @@ interface IERC1155A is IERC1155 { function getERC20TokenAddress(uint256 id) external view returns (address aERC20); /// @notice Compute return string from baseURI set for this contract and unique vaultId - /// @param id id of the ERC1155 + /// @param id id of the ERC1155 function uri(uint256 id) external view returns (string memory); + /// @notice ERC1155A name + function name() external view returns (string memory); + + /// @notice ERC1155A symbol + function symbol() external view returns (string memory); + ////////////////////////////////////////////////////////////// // EXTERNAL WRITE FUNCTIONS // ////////////////////////////////////////////////////////////// @@ -106,21 +111,21 @@ interface IERC1155A is IERC1155 { /// @dev Re-adapted from ERC20 /// @param spender address of the contract to approve /// @param id id of the ERC1155A to approve - /// @param addedValue amount of the allowance to increase by + /// @param addedValue amount of the allowance to increase by function increaseAllowance(address spender, uint256 id, uint256 addedValue) external returns (bool); /// @notice Public function for decreasing single id approval amount /// @dev Re-adapted from ERC20 /// @param spender address of the contract to approve /// @param id id of the ERC1155A to approve - /// @param subtractedValue amount of the allowance to decrease by + /// @param subtractedValue amount of the allowance to decrease by function decreaseAllowance(address spender, uint256 id, uint256 subtractedValue) external returns (bool); /// @notice Public function for increasing multiple id approval amount at once /// @dev extension of single id increase allowance /// @param spender address of the contract to approve /// @param ids ids of the ERC1155A to approve - /// @param addedValues amounts of the allowance to increase by + /// @param addedValues amounts of the allowance to increase by function increaseAllowanceForMany( address spender, uint256[] memory ids, @@ -133,7 +138,7 @@ interface IERC1155A is IERC1155 { /// @dev extension of single id decrease allowance /// @param spender address of the contract to approve /// @param ids ids of the ERC1155A to approve - /// @param subtractedValues amounts of the allowance to decrease by + /// @param subtractedValues amounts of the allowance to decrease by function decreaseAllowanceForMany( address spender, uint256[] memory ids, @@ -150,7 +155,7 @@ interface IERC1155A is IERC1155 { /// @param receiver address of the user to receive the aERC20 token function transmuteToERC20(address owner, uint256 id, uint256 amount, address receiver) external; - /// @notice Turn aERC20 into an ERC1155A id + /// @notice Turn aERC20 into an ERC1155A id /// @dev allows owner to send ERC20 as an ERC1155A id to receiver /// @param owner address of the user on whose behalf this transmutation is happening /// @param id id of the ERC20s to transmute to erc1155 @@ -164,7 +169,13 @@ interface IERC1155A is IERC1155 { /// @param ids ids of the ERC1155A to transmute /// @param amounts amounts of the ERC1155A to transmute /// @param receiver address of the user to receive the aERC20 tokens - function transmuteBatchToERC20(address owner, uint256[] memory ids, uint256[] memory amounts, address receiver) external; + function transmuteBatchToERC20( + address owner, + uint256[] memory ids, + uint256[] memory amounts, + address receiver + ) + external; /// @notice Turn aERC20s into ERC1155A ids /// @dev allows owner to send aERC20s as ERC1155A ids to receiver @@ -172,7 +183,13 @@ interface IERC1155A is IERC1155 { /// @param ids ids of the ERC20 to transmute /// @param amounts amounts of the ERC20 to transmute /// @param receiver address of the user to receive the ERC1155 token ids - function transmuteBatchToERC1155A(address owner, uint256[] memory ids, uint256[] memory amounts, address receiver) external; + function transmuteBatchToERC1155A( + address owner, + uint256[] memory ids, + uint256[] memory amounts, + address receiver + ) + external; /// @notice payable to allow any implementing cross-chain protocol to be paid for fees for broadcasting /// @dev should emit any required events inside _registerAERC20 internal function diff --git a/src/test/ERC1155.t.sol b/src/test/ERC1155.t.sol index 26b0e71..f8ae471 100644 --- a/src/test/ERC1155.t.sol +++ b/src/test/ERC1155.t.sol @@ -11,7 +11,6 @@ import { MockERC1155A } from "./mocks/MockERC1155A.sol"; * original by @author - solmate * forked by @author - ZeroPointLabs */ - contract ERC1155Recipient is ERC1155TokenReceiver { address public operator; address public from; @@ -148,7 +147,12 @@ contract ERC1155Test is DSTestPlus, ERC1155TokenReceiver { mapping(address => mapping(uint256 => uint256)) public userTransferOrBurnAmounts; function setUp() public { - token = new MockERC1155A(); + token = new MockERC1155A("example", "exm"); + } + + function test_name_symbol() public { + assertEq(token.name(), "example"); + assertEq(token.symbol(), "exm"); } function testMintToEOA() public { diff --git a/src/test/ERC1155_A.t.sol b/src/test/ERC1155_A.t.sol index fa0a3c6..42639b8 100644 --- a/src/test/ERC1155_A.t.sol +++ b/src/test/ERC1155_A.t.sol @@ -18,7 +18,7 @@ contract ERC1155ATest is Test { address public bob = address(0x0997); function setUp() public { - MockedERC1155A = new MockERC1155A(); + MockedERC1155A = new MockERC1155A("example", "EXM"); MockedERC1155A.mint(alice, 1, THOUSAND_E18, ""); MockedERC1155A.mint(alice, 2, THOUSAND_E18, ""); } diff --git a/src/test/mocks/MockERC1155A.sol b/src/test/mocks/MockERC1155A.sol index e72f149..9b5a39a 100644 --- a/src/test/mocks/MockERC1155A.sol +++ b/src/test/mocks/MockERC1155A.sol @@ -7,6 +7,8 @@ import { Strings } from "openzeppelin-contracts/contracts/utils/Strings.sol"; /// @notice For test purpouses we open mint()/burn() functions of ERC1155A contract MockERC1155A is ERC1155A { + constructor(string memory name_, string memory symbol_) ERC1155A(name_, symbol_) { } + /// @dev See ../ERC1155A.sol function uri(uint256 id) public pure override returns (string memory) { return string(abi.encodePacked(_baseURI(), Strings.toString(id)));