@settlemint/solidity-token-erc20-crowdsale
Version:
Smart contract set to build an ERC20 token sale in SettleMint
1 lines • 40.6 kB
JSON
{"abi":[{"type":"constructor","inputs":[{"name":"beneficiaryAddress","type":"address","internalType":"address"},{"name":"startTimestamp","type":"uint64","internalType":"uint64"},{"name":"durationSeconds","type":"uint64","internalType":"uint64"}],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"duration","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"end","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"releasable","inputs":[{"name":"token","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"releasable","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"release","inputs":[{"name":"token","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"release","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"released","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"released","inputs":[{"name":"token","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"start","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"vestedAmount","inputs":[{"name":"timestamp","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"vestedAmount","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"timestamp","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"event","name":"ERC20Released","inputs":[{"name":"token","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"EtherReleased","inputs":[{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"InsufficientBalance","inputs":[{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x60c03461010c57601f610b6138819003918201601f19168301916001600160401b038311848410176101105780849260609460405283398101031261010c5780516001600160a01b038116919082900361010c5761006b604061006460208401610124565b9201610124565b9082156100f9575f80546001600160a01b031981168517825560405194916001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a360805260a052610a289081610139823960805181818161020b015281816108b201526108e7015260a05181818161068501528181610887015261094e0152f35b631e4fbdf760e01b5f525f60045260245ffd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160401b038216820361010c5756fe6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c80630a17b06b146106a95780630fb5a6b414610665578063191655871461052d578063715018a6146104b1578063810ec23b1461047757806386d1a69f146102e65780638da5cb5b146102b457806396132521146102975780639852595c14610252578063a3f8eace1461022f578063be9a6555146101eb578063efbe1c1c146101d1578063f2fde38b146101035763fbccedae0361000e57346100ff575f6003193601126100ff5760206100f76100ee476100e967ffffffffffffffff42169160015490610704565b6108d7565b6001549061082b565b604051908152f35b5f80fd5b346100ff5760206003193601126100ff5773ffffffffffffffffffffffffffffffffffffffff6101316106e1565b6101396109a6565b1680156101a55773ffffffffffffffffffffffffffffffffffffffff5f54827fffffffffffffffffffffffff00000000000000000000000000000000000000008216175f55167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3005b7f1e4fbdf7000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b346100ff575f6003193601126100ff5760206100f7610879565b346100ff575f6003193601126100ff57602060405167ffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346100ff5760206003193601126100ff5760206100f761024d6106e1565b610838565b346100ff5760206003193601126100ff5773ffffffffffffffffffffffffffffffffffffffff6102806106e1565b165f526002602052602060405f2054604051908152f35b346100ff575f6003193601126100ff576020600154604051908152f35b346100ff575f6003193601126100ff57602073ffffffffffffffffffffffffffffffffffffffff5f5416604051908152f35b346100ff575f6003193601126100ff57610312476100e967ffffffffffffffff42169160015490610704565b610329610322600154809361082b565b8092610704565b6001557fda9d4e5f101b8b9b1c5b76d0c5a9f7923571acfc02376aa076b75a8c080c956b6020604051838152a173ffffffffffffffffffffffffffffffffffffffff5f5416814710610447575f80809381935af13d1561043f573d9067ffffffffffffffff821161041257604051916103ca60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116018461073e565b82523d5f602084013e5b156103db57005b8051156103ea57805190602001fd5b7fd6bda275000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6060906103d4565b50477fcf479181000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b346100ff5760406003193601126100ff576104906106e1565b6024359067ffffffffffffffff821682036100ff576020916100f79161077f565b346100ff575f6003193601126100ff576104c96109a6565b5f73ffffffffffffffffffffffffffffffffffffffff81547fffffffffffffffffffffffff000000000000000000000000000000000000000081168355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b346100ff5760206003193601126100ff576105466106e1565b60205f73ffffffffffffffffffffffffffffffffffffffff61056784610838565b9316928382526002835260408220610580828254610704565b9055837fc0e523490dd523c33b1878c9eb14ff46991e3f5b2cd33710918618f2a39cba1b84604051848152a273ffffffffffffffffffffffffffffffffffffffff8254169060405190848201927fa9059cbb000000000000000000000000000000000000000000000000000000008452602483015260448201526044815261060960648261073e565b519082855af11561065a575f513d6106515750803b155b61062657005b7f5274afe7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b60011415610620565b6040513d5f823e3d90fd5b346100ff575f6003193601126100ff57602060405167ffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346100ff5760206003193601126100ff5760043567ffffffffffffffff811681036100ff576100f76020916100e94760015490610704565b6004359073ffffffffffffffffffffffffffffffffffffffff821682036100ff57565b9190820180921161071157565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761041257604052565b73ffffffffffffffffffffffffffffffffffffffff16906040517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152602081602481865afa90811561065a575f916107f7575b506100e9906107f4935f52600260205260405f205490610704565b90565b90506020813d602011610823575b816108126020938361073e565b810103126100ff57516107f46107d9565b3d9150610805565b9190820391821161071157565b6107f49073ffffffffffffffffffffffffffffffffffffffff61086567ffffffffffffffff42168361077f565b91165f52600260205260405f20549061082b565b6107f467ffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001667ffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016610704565b9067ffffffffffffffff908116907f00000000000000000000000000000000000000000000000000000000000000001680821015610916575050505f90565b61091e610879565b821061092957505090565b6109329161082b565b908181029181830414901517156107115767ffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016908115610979570490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b73ffffffffffffffffffffffffffffffffffffffff5f541633036109c657565b7f118cdaa7000000000000000000000000000000000000000000000000000000005f523360045260245ffdfea2646970667358221220e3954b6e5c63dfdd437460288ff6a016d575e0b43229be925648cc448b061aa364736f6c634300081b0033","sourceMap":"169:254:3:-:0;;;;;;;;;;;;;-1:-1:-1;;169:254:3;;;;-1:-1:-1;;;;;169:254:3;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;169:254:3;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;1273:26:31;;;1269:95;;-1:-1:-1;169:254:3;;-1:-1:-1;;;;;;169:254:3;;;;;;;;;;-1:-1:-1;;;;;169:254:3;;;;3052:40:31;;-1:-1:-1;3052:40:31;2644:23:32;;2677:27;;169:254:3;;;;;;2644:23:32;169:254:3;;;;;;;;;;;;;;;2677:27:32;169:254:3;;;;;;;;;;;;;;;;1269:95:31;1322:31;;;-1:-1:-1;1322:31:31;-1:-1:-1;1322:31:31;169:254:3;;-1:-1:-1;1322:31:31;169:254:3;-1:-1:-1;169:254:3;;;;;;-1:-1:-1;169:254:3;;;;;-1:-1:-1;169:254:3;;;;-1:-1:-1;;;;;169:254:3;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c80630a17b06b146106a95780630fb5a6b414610665578063191655871461052d578063715018a6146104b1578063810ec23b1461047757806386d1a69f146102e65780638da5cb5b146102b457806396132521146102975780639852595c14610252578063a3f8eace1461022f578063be9a6555146101eb578063efbe1c1c146101d1578063f2fde38b146101035763fbccedae0361000e57346100ff575f6003193601126100ff5760206100f76100ee476100e967ffffffffffffffff42169160015490610704565b6108d7565b6001549061082b565b604051908152f35b5f80fd5b346100ff5760206003193601126100ff5773ffffffffffffffffffffffffffffffffffffffff6101316106e1565b6101396109a6565b1680156101a55773ffffffffffffffffffffffffffffffffffffffff5f54827fffffffffffffffffffffffff00000000000000000000000000000000000000008216175f55167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3005b7f1e4fbdf7000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b346100ff575f6003193601126100ff5760206100f7610879565b346100ff575f6003193601126100ff57602060405167ffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346100ff5760206003193601126100ff5760206100f761024d6106e1565b610838565b346100ff5760206003193601126100ff5773ffffffffffffffffffffffffffffffffffffffff6102806106e1565b165f526002602052602060405f2054604051908152f35b346100ff575f6003193601126100ff576020600154604051908152f35b346100ff575f6003193601126100ff57602073ffffffffffffffffffffffffffffffffffffffff5f5416604051908152f35b346100ff575f6003193601126100ff57610312476100e967ffffffffffffffff42169160015490610704565b610329610322600154809361082b565b8092610704565b6001557fda9d4e5f101b8b9b1c5b76d0c5a9f7923571acfc02376aa076b75a8c080c956b6020604051838152a173ffffffffffffffffffffffffffffffffffffffff5f5416814710610447575f80809381935af13d1561043f573d9067ffffffffffffffff821161041257604051916103ca60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116018461073e565b82523d5f602084013e5b156103db57005b8051156103ea57805190602001fd5b7fd6bda275000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6060906103d4565b50477fcf479181000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b346100ff5760406003193601126100ff576104906106e1565b6024359067ffffffffffffffff821682036100ff576020916100f79161077f565b346100ff575f6003193601126100ff576104c96109a6565b5f73ffffffffffffffffffffffffffffffffffffffff81547fffffffffffffffffffffffff000000000000000000000000000000000000000081168355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b346100ff5760206003193601126100ff576105466106e1565b60205f73ffffffffffffffffffffffffffffffffffffffff61056784610838565b9316928382526002835260408220610580828254610704565b9055837fc0e523490dd523c33b1878c9eb14ff46991e3f5b2cd33710918618f2a39cba1b84604051848152a273ffffffffffffffffffffffffffffffffffffffff8254169060405190848201927fa9059cbb000000000000000000000000000000000000000000000000000000008452602483015260448201526044815261060960648261073e565b519082855af11561065a575f513d6106515750803b155b61062657005b7f5274afe7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b60011415610620565b6040513d5f823e3d90fd5b346100ff575f6003193601126100ff57602060405167ffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346100ff5760206003193601126100ff5760043567ffffffffffffffff811681036100ff576100f76020916100e94760015490610704565b6004359073ffffffffffffffffffffffffffffffffffffffff821682036100ff57565b9190820180921161071157565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761041257604052565b73ffffffffffffffffffffffffffffffffffffffff16906040517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152602081602481865afa90811561065a575f916107f7575b506100e9906107f4935f52600260205260405f205490610704565b90565b90506020813d602011610823575b816108126020938361073e565b810103126100ff57516107f46107d9565b3d9150610805565b9190820391821161071157565b6107f49073ffffffffffffffffffffffffffffffffffffffff61086567ffffffffffffffff42168361077f565b91165f52600260205260405f20549061082b565b6107f467ffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001667ffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016610704565b9067ffffffffffffffff908116907f00000000000000000000000000000000000000000000000000000000000000001680821015610916575050505f90565b61091e610879565b821061092957505090565b6109329161082b565b908181029181830414901517156107115767ffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016908115610979570490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b73ffffffffffffffffffffffffffffffffffffffff5f541633036109c657565b7f118cdaa7000000000000000000000000000000000000000000000000000000005f523360045260245ffdfea2646970667358221220e3954b6e5c63dfdd437460288ff6a016d575e0b43229be925648cc448b061aa364736f6c634300081b0033","sourceMap":"169:254:3:-:0;;;;;;;;;-1:-1:-1;169:254:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;169:254:3;;;;;;3787:50:32;5092:63;5109:21;:34;169:254:3;3807:15:32;169:254:3;;3436:9:32;169:254:3;5109:34:32;;:::i;:::-;5092:63;:::i;:::-;3436:9;169:254:3;3787:50:32;;:::i;:::-;169:254:3;;;;;;;;;;;;;;;-1:-1:-1;;169:254:3;;;;;;;;:::i;:::-;1500:62:31;;:::i;:::-;169:254:3;2627:22:31;;2623:91;;169:254:3;;;;;;;;;;;3052:40:31;169:254:3;3052:40:31;;169:254:3;2623:91:31;2672:31;169:254:3;2672:31:31;169:254:3;;;;;2672:31:31;169:254:3;;;;;-1:-1:-1;;169:254:3;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;169:254:3;;;;;;;;;2964:6:32;169:254:3;;;;;;;;;-1:-1:-1;;169:254:3;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;-1:-1:-1;;169:254:3;;;;;;;;:::i;:::-;;;;3607:14:32;169:254:3;;;;;;;;;;;;;;;;;;-1:-1:-1;;169:254:3;;;;;;3436:9:32;169:254:3;;;;;;;;;;;;-1:-1:-1;;169:254:3;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;169:254:3;;;;;5092:63:32;5109:21;:34;169:254:3;3807:15:32;169:254:3;;3436:9:32;169:254:3;5109:34:32;;:::i;5092:63::-;4372:19;3787:50;3436:9;169:254:3;3787:50:32;;;:::i;:::-;4372:19;;;:::i;:::-;3436:9;169:254:3;4406:21:32;169:254:3;;;;;;4406:21:32;169:254:3;;;;1375:21:41;;:30;1371:125;;169:254:3;1548:33:41;;;;;;;169:254:3;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1595:8:41;1591:58;;169:254:3;1591:58:41;169:254:3;;5690:21:41;:17;;5815:158;;;169:254:3;5815:158:41;;5686:354;6010:19;169:254:3;6010:19:41;169:254:3;;6010:19:41;169:254:3;;;;;;;;;;;;;;;1371:125:41;1455:21;;1428:57;169:254:3;1428:57:41;169:254:3;;;;;;1428:57:41;169:254:3;;;;;-1:-1:-1;;169:254:3;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;169:254:3;;;;;1500:62:31;;:::i;:::-;169:254:3;;;;;;;;;;3052:40:31;;;;169:254:3;;;;;;-1:-1:-1;;169:254:3;;;;;;;:::i;:::-;;;;4685:17:32;;;:::i;:::-;169:254:3;;;;;;4712:14:32;169:254:3;;;;;4712:31:32;169:254:3;;;4712:31:32;:::i;:::-;169:254:3;;;4758:28:32;169:254:3;;;;;;4758:28:32;169:254:3;;;;;;;1328:43:40;;;;;169:254:3;1328:43:40;;;;;169:254:3;;;;;;1328:43:40;;;;;;:::i;:::-;8507:421;;;;;;;;;169:254:3;8507:421:40;;8942:15;;8960:26;;;:31;8942:68;8938:146;;169:254:3;8938:146:40;9033:40;169:254:3;9033:40:40;169:254:3;;1328:43:40;169:254:3;9033:40:40;8942:68;9009:1;8994:16;;8942:68;;8507:421;169:254:3;8507:421:40;;169:254:3;8507:421:40;;;;;169:254:3;;;;;-1:-1:-1;;169:254:3;;;;;;;;;3119:9:32;169:254:3;;;;;;;;;-1:-1:-1;;169:254:3;;;;;;;;;;;;;;5092:63:32;169:254:3;;5109:34:32;:21;3436:9;169:254:3;5109:34:32;;:::i;169:254:3:-;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5303:202:32:-;169:254:3;;;;;;5430:38:32;;5462:4;5430:38;;;169:254:3;;5430:38:32;;;;;;;;;;;-1:-1:-1;5430:38:32;;;5303:202;169:254:3;5430:56:32;169:254:3;5413:85:32;169:254:3;-1:-1:-1;169:254:3;3607:14:32;169:254:3;;;-1:-1:-1;169:254:3;;5430:56:32;;:::i;5413:85::-;5303:202;:::o;5430:38::-;;;169:254:3;5430:38:32;;169:254:3;5430:38:32;;;;;;169:254:3;5430:38:32;;;:::i;:::-;;;169:254:3;;;;;5413:85:32;5430:38;;;;;-1:-1:-1;5430:38:32;;169:254:3;;;;;;;;;;:::o;3992:159:32:-;4082:62;3992:159;169:254:3;4082:44:32;169:254:3;4109:15:32;169:254:3;4082:44:32;;:::i;:::-;169:254:3;;-1:-1:-1;169:254:3;3607:14:32;169:254:3;;;-1:-1:-1;169:254:3;;4082:62:32;;:::i;3199:97::-;3269:20;169:254:3;3119:9:32;169:254:3;;2964:6:32;169:254:3;3269:20:32;:::i;5700:352::-;;169:254:3;;;;;2964:6:32;169:254:3;5823:19:32;;;;;;5858:8;;;169:254:3;5858:8:32;:::o;5819:227::-;5900:5;;:::i;:::-;5887:18;;5900:5;;5921:22;;;:::o;5883:163::-;6001:19;;;:::i;:::-;169:254:3;;;;;;;;;;;;;;;;3119:9:32;169:254:3;;;;;;;5974:61:32;:::o;169:254:3:-;;;;;;;;;;1796:162:31;169:254:3;1710:6:31;169:254:3;;735:10:42;1855:23:31;1851:101;;1796:162::o;1851:101::-;1901:40;1710:6;1901:40;735:10:42;1901:40:31;169:254:3;;1710:6:31;1901:40","linkReferences":{},"immutableReferences":{"41114":[{"start":523,"length":32},{"start":2226,"length":32},{"start":2279,"length":32}],"41116":[{"start":1669,"length":32},{"start":2183,"length":32},{"start":2382,"length":32}]}},"methodIdentifiers":{"duration()":"0fb5a6b4","end()":"efbe1c1c","owner()":"8da5cb5b","releasable()":"fbccedae","releasable(address)":"a3f8eace","release()":"86d1a69f","release(address)":"19165587","released()":"96132521","released(address)":"9852595c","renounceOwnership()":"715018a6","start()":"be9a6555","transferOwnership(address)":"f2fde38b","vestedAmount(address,uint64)":"810ec23b","vestedAmount(uint64)":"0a17b06b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"beneficiaryAddress\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"startTimestamp\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"durationSeconds\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"ERC20Released\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"EtherReleased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"duration\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"end\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"releasable\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"releasable\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"release\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"release\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"released\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"released\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"start\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"timestamp\",\"type\":\"uint64\"}],\"name\":\"vestedAmount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"timestamp\",\"type\":\"uint64\"}],\"name\":\"vestedAmount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"errors\":{\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InsufficientBalance(uint256,uint256)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC-20 token failed.\"}]},\"kind\":\"dev\",\"methods\":{\"duration()\":{\"details\":\"Getter for the vesting duration.\"},\"end()\":{\"details\":\"Getter for the end timestamp.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"releasable()\":{\"details\":\"Getter for the amount of releasable eth.\"},\"releasable(address)\":{\"details\":\"Getter for the amount of releasable `token` tokens. `token` should be the address of an {IERC20} contract.\"},\"release()\":{\"details\":\"Release the native token (ether) that have already vested. Emits a {EtherReleased} event.\"},\"release(address)\":{\"details\":\"Release the tokens that have already vested. Emits a {ERC20Released} event.\"},\"released()\":{\"details\":\"Amount of eth already released\"},\"released(address)\":{\"details\":\"Amount of token already released\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"start()\":{\"details\":\"Getter for the start timestamp.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"vestedAmount(address,uint64)\":{\"details\":\"Calculates the amount of tokens that has already vested. Default implementation is a linear vesting curve.\"},\"vestedAmount(uint64)\":{\"details\":\"Calculates the amount of ether that has already vested. Default implementation is a linear vesting curve.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/ExampleVestingWallet.sol\":\"ExampleVestingWallet\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"],\"viaIR\":true},\"sources\":{\"contracts/ExampleVestingWallet.sol\":{\"keccak256\":\"0x6b96415c1d2604a2f069ed3a4cd0815dac54533cd7381acca325e00a52135b44\",\"license\":\"FSL-1.1-MIT\",\"urls\":[\"bzz-raw://e11c3e49737a42e30995c54f08c68ea7d0f14ff2c60abd97b19dbd8ac5a62417\",\"dweb:/ipfs/QmTUvemY6TNoQ2eNDpMVqDsuFin15qqRpFM4keY1xJ8maL\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/finance/VestingWallet.sol\":{\"keccak256\":\"0x79de2c47546e7d9e9785dff775e1cadda15fa877ff956f5b33b7a572e4d43e5c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1c431f66acb879d3dba4f4e32a21efcad38b49983cfc0a31d49bfa95a738c9f6\",\"dweb:/ipfs/QmQodRbcvFSLc7Cu6XXmGk75CZbsLmL1aZTtjeiDXVagtq\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b\",\"dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x982c5cb790ab941d1e04f807120a71709d4c313ba0bfc16006447ffbd27fbbd5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8150ceb4ac947e8a442b2a9c017e01e880b2be2dd958f1fa9bc405f4c5a86508\",\"dweb:/ipfs/QmbcBmFX66AY6Kbhnd5gx7zpkgqnUafo43XnmayAM7zVdB\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xaaa1d17c1129b127a4a401db2fbd72960e2671474be3d08cae71ccdc42f7624c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cb2f27cd3952aa667e198fba0d9b7bcec52fbb12c16f013c25fe6fb52b29cc0e\",\"dweb:/ipfs/QmeuohBFoeyDPZA9JNCTEDz3VBfBD4EABWuWXVhHAuEpKR\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"node_modules/@openzeppelin/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"beneficiaryAddress","type":"address"},{"internalType":"uint64","name":"startTimestamp","type":"uint64"},{"internalType":"uint64","name":"durationSeconds","type":"uint64"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"InsufficientBalance"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[{"internalType":"address","name":"token","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"ERC20Released","anonymous":false},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"EtherReleased","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"duration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"end","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"stateMutability":"view","type":"function","name":"releasable","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"releasable","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"release"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"release"},{"inputs":[],"stateMutability":"view","type":"function","name":"released","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"stateMutability":"view","type":"function","name":"released","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[],"stateMutability":"view","type":"function","name":"start","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"uint64","name":"timestamp","type":"uint64"}],"stateMutability":"view","type":"function","name":"vestedAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint64","name":"timestamp","type":"uint64"}],"stateMutability":"view","type":"function","name":"vestedAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"duration()":{"details":"Getter for the vesting duration."},"end()":{"details":"Getter for the end timestamp."},"owner()":{"details":"Returns the address of the current owner."},"releasable()":{"details":"Getter for the amount of releasable eth."},"releasable(address)":{"details":"Getter for the amount of releasable `token` tokens. `token` should be the address of an {IERC20} contract."},"release()":{"details":"Release the native token (ether) that have already vested. Emits a {EtherReleased} event."},"release(address)":{"details":"Release the tokens that have already vested. Emits a {ERC20Released} event."},"released()":{"details":"Amount of eth already released"},"released(address)":{"details":"Amount of token already released"},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"start()":{"details":"Getter for the start timestamp."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"vestedAmount(address,uint64)":{"details":"Calculates the amount of tokens that has already vested. Default implementation is a linear vesting curve."},"vestedAmount(uint64)":{"details":"Calculates the amount of ether that has already vested. Default implementation is a linear vesting curve."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":10000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/ExampleVestingWallet.sol":"ExampleVestingWallet"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"contracts/ExampleVestingWallet.sol":{"keccak256":"0x6b96415c1d2604a2f069ed3a4cd0815dac54533cd7381acca325e00a52135b44","urls":["bzz-raw://e11c3e49737a42e30995c54f08c68ea7d0f14ff2c60abd97b19dbd8ac5a62417","dweb:/ipfs/QmTUvemY6TNoQ2eNDpMVqDsuFin15qqRpFM4keY1xJ8maL"],"license":"FSL-1.1-MIT"},"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/finance/VestingWallet.sol":{"keccak256":"0x79de2c47546e7d9e9785dff775e1cadda15fa877ff956f5b33b7a572e4d43e5c","urls":["bzz-raw://1c431f66acb879d3dba4f4e32a21efcad38b49983cfc0a31d49bfa95a738c9f6","dweb:/ipfs/QmQodRbcvFSLc7Cu6XXmGk75CZbsLmL1aZTtjeiDXVagtq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7","urls":["bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b","dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x982c5cb790ab941d1e04f807120a71709d4c313ba0bfc16006447ffbd27fbbd5","urls":["bzz-raw://8150ceb4ac947e8a442b2a9c017e01e880b2be2dd958f1fa9bc405f4c5a86508","dweb:/ipfs/QmbcBmFX66AY6Kbhnd5gx7zpkgqnUafo43XnmayAM7zVdB"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0xaaa1d17c1129b127a4a401db2fbd72960e2671474be3d08cae71ccdc42f7624c","urls":["bzz-raw://cb2f27cd3952aa667e198fba0d9b7bcec52fbb12c16f013c25fe6fb52b29cc0e","dweb:/ipfs/QmeuohBFoeyDPZA9JNCTEDz3VBfBD4EABWuWXVhHAuEpKR"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"}},"version":1},"id":3}