@airdao/astra-universal-router
Version:
Smart contracts for Universal Router
348 lines (347 loc) • 24.4 kB
JSON
{
"_format": "hh-sol-artifact-1",
"contractName": "MintableERC20",
"sourceName": "contracts/test/MintableERC20.sol",
"abi": [
{
"inputs": [
{
"internalType": "string",
"name": "name",
"type": "string"
},
{
"internalType": "string",
"name": "symbol",
"type": "string"
},
{
"internalType": "uint256",
"name": "amountToMint",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "Approval",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "from",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "to",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "Transfer",
"type": "event"
},
{
"inputs": [],
"name": "DOMAIN_SEPARATOR",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
},
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "allowance",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "approve",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "balanceOf",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "decimals",
"outputs": [
{
"internalType": "uint8",
"name": "",
"type": "uint8"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "mint",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "name",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "nonces",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
},
{
"internalType": "uint8",
"name": "v",
"type": "uint8"
},
{
"internalType": "bytes32",
"name": "r",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "s",
"type": "bytes32"
}
],
"name": "permit",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "symbol",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "totalSupply",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "transfer",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "transferFrom",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
}
],
"bytecode": "0x60e060408181523462000461576200138f803803809162000021828662000466565b8439820191606081840312620004615780516001600160401b039390848111620004615781620000539184016200048a565b936020918284015182811162000461578591620000729186016200048a565b930151928551958287116200044b576000968062000091895462000501565b92601f93848111620003fa575b50869084831160011462000392578a9262000386575b50508160011b916000199060031b1c19161787555b81519083821162000372578190600193620000e5855462000501565b8281116200031d575b5086918311600114620002b9578992620002ad575b5050600019600383901b1c191690821b1781555b60126080524660a05284518654918188620001328562000501565b92838352878301958882821691826000146200028d5750506001146200024d575b50620001629250038262000466565b51902090845190838201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452868301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608301524660808301523060a083015260a0825260c08201908282109082111762000239579285969260039287956200020d985251902060c0523383525220620002028282546200053e565b90556002546200053e565b60025551610e2c9081620005638239608051816107a9015260a05181610c47015260c05181610c6e0152f35b634e487b7160e01b87526041600452602487fd5b8791508a8052818b20908b915b858310620002745750506200016293508201013862000153565b805483880185015286945089939092019181016200025a565b60ff191688526200016295151560051b8501019250389150620001539050565b01519050388062000103565b848a52868a208594509190601f1984168b5b89828210620003065750508411620002ec575b505050811b01815562000117565b015160001960f88460031b161c19169055388080620002de565b8385015186558897909501949384019301620002cb565b90919250848a52868a208380860160051c82019289871062000368575b91869588929594930160051c01915b82811062000359575050620000ee565b8c815586955087910162000349565b925081926200033a565b634e487b7160e01b88526041600452602488fd5b015190503880620000b4565b8a8052878b209250601f1984168b5b89828210620003e3575050908460019594939210620003c9575b505050811b018755620000c9565b015160001960f88460031b161c19169055388080620003bb565b6001859682939686015181550195019301620003a1565b909150898052868a208480850160051c82019289861062000441575b9085949392910160051c01905b8181106200043257506200009e565b8b815584935060010162000423565b9250819262000416565b634e487b7160e01b600052604160045260246000fd5b600080fd5b601f909101601f19168101906001600160401b038211908210176200044b57604052565b919080601f8401121562000461578251906001600160401b0382116200044b5760405191602091620004c6601f8301601f191684018562000466565b818452828287010111620004615760005b818110620004ed57508260009394955001015290565b8581018301518482018401528201620004d7565b90600182811c9216801562000533575b60208310146200051d57565b634e487b7160e01b600052602260045260246000fd5b91607f169162000511565b919082018092116200054c57565b634e487b7160e01b600052601160045260246000fdfe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde03146109c157508063095ea7b31461092757806318160ddd146108ea57806323b872dd146107cd578063313ce567146107715780633644e5151461072f57806340c10f19146106b457806370a08231146106525780637ecebe00146105f057806395d89b41146104d5578063a9059cbb14610428578063d505accf146101285763dd62ed3e146100b257600080fd5b3461012457817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101245760209282916100ed610bae565b6100f5610bd6565b9173ffffffffffffffffffffffffffffffffffffffff8092168452865283832091168252845220549051908152f35b8280fd5b509190346104245760e07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261042457610162610bae565b9061016b610bd6565b91604435606435926084359260ff8416809403610420574285106103c357610191610c42565b9573ffffffffffffffffffffffffffffffffffffffff8092169586895260209560058752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff948482108683111761039657818852845190206101008501927f19010000000000000000000000000000000000000000000000000000000000008452610102860152610122850152604281526101608401948186109086111761036a57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa15610360578651169687151580610357575b156102fc5786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b8360649251917f08c379a0000000000000000000000000000000000000000000000000000000008352820152600e60248201527f494e56414c49445f5349474e45520000000000000000000000000000000000006044820152fd5b508488146102b9565b81513d88823e3d90fd5b60248c60418f7f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b5060248c60418f7f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b60648860208451917f08c379a0000000000000000000000000000000000000000000000000000000008352820152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152fd5b8680fd5b5080fd5b50503461042457807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261042457602091610463610bae565b8273ffffffffffffffffffffffffffffffffffffffff6024359233855260038752828520610492858254610c35565b90551692838152600386522081815401905582519081527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef843392a35160018152f35b50503461042457817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104245780519082600180549161051783610a85565b808652928281169081156105aa575060011461054e575b5050506105408261054a940383610ad8565b5191829182610b48565b0390f35b94508085527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b8286106105925750505061054082602061054a958201019461052e565b80546020878701810191909152909501948101610575565b61054a9750869350602092506105409491507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001682840152151560051b8201019461052e565b5050346104245760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610424578060209273ffffffffffffffffffffffffffffffffffffffff610642610bae565b1681526005845220549051908152f35b5050346104245760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610424578060209273ffffffffffffffffffffffffffffffffffffffff6106a4610bae565b1681526003845220549051908152f35b50503461042457807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261042457610729906106f0610bae565b9073ffffffffffffffffffffffffffffffffffffffff602435921684526003602052832061071f828254610bf9565b9055600254610bf9565b60025580f35b50503461042457817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104245760209061076a610c42565b9051908152f35b50503461042457817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610424576020905160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b5091346108e75760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126108e757610806610bae565b7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61082f610bd6565b946044358573ffffffffffffffffffffffffffffffffffffffff80951694858752602098848a958652838920338a52865283892054857fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036108c4575b505050868852600385528288206108a5858254610c35565b9055169586815260038452208181540190558551908152a35160018152f35b6108cd91610c35565b90888a528652838920338a5286528389205538808561088d565b80fd5b50503461042457817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610424576020906002549051908152f35b503461012457817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261012457602092610961610bae565b9183602435928392338252875273ffffffffffffffffffffffffffffffffffffffff8282209516948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b8490843461012457827ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610124578280546109fe81610a85565b808552916001918083169081156105aa5750600114610a29575050506105408261054a940383610ad8565b80809650527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b828610610a6d5750505061054082602061054a958201019461052e565b80546020878701810191909152909501948101610a50565b90600182811c92168015610ace575b6020831014610a9f57565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b91607f1691610a94565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610b1957604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60208082528251818301819052939260005b858110610b9a575050507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8460006040809697860101520116010190565b818101830151848201604001528201610b5a565b6004359073ffffffffffffffffffffffffffffffffffffffff82168203610bd157565b600080fd5b6024359073ffffffffffffffffffffffffffffffffffffffff82168203610bd157565b91908201809211610c0657565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b91908203918211610c0657565b6000467f000000000000000000000000000000000000000000000000000000000000000003610c9057507f000000000000000000000000000000000000000000000000000000000000000090565b60405181548291610ca082610a85565b8082528160209485820194600190878282169182600014610de3575050600114610d8a575b50610cd292500382610ad8565b51902091604051918201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f845260408301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608301524660808301523060a083015260a0825260c082019082821067ffffffffffffffff831117610d5d575060405251902090565b807f4e487b7100000000000000000000000000000000000000000000000000000000602492526041600452fd5b87805286915087907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b858310610dcb575050610cd2935082010138610cc5565b80548388018501528694508893909201918101610db4565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168852610cd295151560051b8501019250389150610cc5905056fea164736f6c6343000811000a",
"deployedBytecode": "0x6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde03146109c157508063095ea7b31461092757806318160ddd146108ea57806323b872dd146107cd578063313ce567146107715780633644e5151461072f57806340c10f19146106b457806370a08231146106525780637ecebe00146105f057806395d89b41146104d5578063a9059cbb14610428578063d505accf146101285763dd62ed3e146100b257600080fd5b3461012457817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101245760209282916100ed610bae565b6100f5610bd6565b9173ffffffffffffffffffffffffffffffffffffffff8092168452865283832091168252845220549051908152f35b8280fd5b509190346104245760e07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261042457610162610bae565b9061016b610bd6565b91604435606435926084359260ff8416809403610420574285106103c357610191610c42565b9573ffffffffffffffffffffffffffffffffffffffff8092169586895260209560058752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff948482108683111761039657818852845190206101008501927f19010000000000000000000000000000000000000000000000000000000000008452610102860152610122850152604281526101608401948186109086111761036a57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa15610360578651169687151580610357575b156102fc5786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b8360649251917f08c379a0000000000000000000000000000000000000000000000000000000008352820152600e60248201527f494e56414c49445f5349474e45520000000000000000000000000000000000006044820152fd5b508488146102b9565b81513d88823e3d90fd5b60248c60418f7f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b5060248c60418f7f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b60648860208451917f08c379a0000000000000000000000000000000000000000000000000000000008352820152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152fd5b8680fd5b5080fd5b50503461042457807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261042457602091610463610bae565b8273ffffffffffffffffffffffffffffffffffffffff6024359233855260038752828520610492858254610c35565b90551692838152600386522081815401905582519081527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef843392a35160018152f35b50503461042457817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104245780519082600180549161051783610a85565b808652928281169081156105aa575060011461054e575b5050506105408261054a940383610ad8565b5191829182610b48565b0390f35b94508085527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b8286106105925750505061054082602061054a958201019461052e565b80546020878701810191909152909501948101610575565b61054a9750869350602092506105409491507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001682840152151560051b8201019461052e565b5050346104245760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610424578060209273ffffffffffffffffffffffffffffffffffffffff610642610bae565b1681526005845220549051908152f35b5050346104245760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610424578060209273ffffffffffffffffffffffffffffffffffffffff6106a4610bae565b1681526003845220549051908152f35b50503461042457807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261042457610729906106f0610bae565b9073ffffffffffffffffffffffffffffffffffffffff602435921684526003602052832061071f828254610bf9565b9055600254610bf9565b60025580f35b50503461042457817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104245760209061076a610c42565b9051908152f35b50503461042457817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610424576020905160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b5091346108e75760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126108e757610806610bae565b7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61082f610bd6565b946044358573ffffffffffffffffffffffffffffffffffffffff80951694858752602098848a958652838920338a52865283892054857fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036108c4575b505050868852600385528288206108a5858254610c35565b9055169586815260038452208181540190558551908152a35160018152f35b6108cd91610c35565b90888a528652838920338a5286528389205538808561088d565b80fd5b50503461042457817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610424576020906002549051908152f35b503461012457817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261012457602092610961610bae565b9183602435928392338252875273ffffffffffffffffffffffffffffffffffffffff8282209516948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b8490843461012457827ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610124578280546109fe81610a85565b808552916001918083169081156105aa5750600114610a29575050506105408261054a940383610ad8565b80809650527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b828610610a6d5750505061054082602061054a958201019461052e565b80546020878701810191909152909501948101610a50565b90600182811c92168015610ace575b6020831014610a9f57565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b91607f1691610a94565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610b1957604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60208082528251818301819052939260005b858110610b9a575050507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8460006040809697860101520116010190565b818101830151848201604001528201610b5a565b6004359073ffffffffffffffffffffffffffffffffffffffff82168203610bd157565b600080fd5b6024359073ffffffffffffffffffffffffffffffffffffffff82168203610bd157565b91908201809211610c0657565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b91908203918211610c0657565b6000467f000000000000000000000000000000000000000000000000000000000000000003610c9057507f000000000000000000000000000000000000000000000000000000000000000090565b60405181548291610ca082610a85565b8082528160209485820194600190878282169182600014610de3575050600114610d8a575b50610cd292500382610ad8565b51902091604051918201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f845260408301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608301524660808301523060a083015260a0825260c082019082821067ffffffffffffffff831117610d5d575060405251902090565b807f4e487b7100000000000000000000000000000000000000000000000000000000602492526041600452fd5b87805286915087907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b858310610dcb575050610cd2935082010138610cc5565b80548388018501528694508893909201918101610db4565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168852610cd295151560051b8501019250389150610cc5905056fea164736f6c6343000811000a",
"linkReferences": {},
"deployedLinkReferences": {}
}