@uniswap/universal-router
Version:
Smart contracts for Universal Router
338 lines (337 loc) • 19.5 kB
JSON
{
"_format": "hh-sol-artifact-1",
"contractName": "MintableERC20",
"sourceName": "contracts/test/MintableERC20.sol",
"abi": [
{
"inputs": [
{
"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": "0x60e0806040523461041857602081610eba803803809161001f828561041c565b83398101031261041857516040519061003960408361041c565b60048252631d195cdd60e21b60208301526040519061005960408361041c565b6004825263151154d560e21b602083015282516001600160401b038111610349576100845f5461043f565b601f81116103c9575b506020601f821160011461036857819293945f9261035d575b50508160011b915f199060031b1c1916175f555b81516001600160401b038111610349576100d560015461043f565b601f81116102e6575b50602092601f821160011461028557928192935f9261027a575b50508160011b915f199060031b1c1916176001555b60126080524660a052604051905f915f54906101288261043f565b80825260208201926001811690811561025f575060011461021c575b50610154816101ef95038261041c565b51902060405160208101917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260408201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260a081526101c860c08261041c565b51902060c052335f52600360205260405f206101e5828254610477565b9055600254610477565b600255604051610a019081610499823960805181610534015260a05181610823015260c051816108490152f35b5f8080529094505f80516020610e9a8339815191525b858210610249575081016020019350610154610144565b6001816020925483858701015201910190610232565b60ff1916845250151560051b81016020019350610154610144565b015190505f806100f8565b601f1982169360015f52805f20915f5b8681106102ce57508360019596106102b6575b505050811b0160015561010d565b01515f1960f88460031b161c191690555f80806102a8565b91926020600181928685015181550194019201610295565b60015f527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6601f830160051c8101916020841061033f575b601f0160051c01905b81811061033457506100de565b5f8155600101610327565b909150819061031e565b634e487b7160e01b5f52604160045260245ffd5b015190505f806100a6565b601f198216905f8052805f20915f5b8181106103b157509583600195969710610399575b505050811b015f556100ba565b01515f1960f88460031b161c191690555f808061038c565b9192602060018192868b015181550194019201610377565b5f80525f80516020610e9a833981519152601f830160051c8101916020841061040e575b601f0160051c01905b818110610403575061008d565b5f81556001016103f6565b90915081906103ed565b5f80fd5b601f909101601f19168101906001600160401b0382119082101761034957604052565b90600182811c9216801561046d575b602083101461045957565b634e487b7160e01b5f52602260045260245ffd5b91607f169161044e565b9190820180921161048457565b634e487b7160e01b5f52601160045260245ffdfe60806040526004361015610011575f80fd5b5f3560e01c806306fdde03146106ab578063095ea7b31461064557806318160ddd1461062857806323b872dd14610558578063313ce5671461051b5780633644e515146104f957806340c10f19146104ac57806370a08231146104745780637ecebe001461043c57806395d89b4114610362578063a9059cbb146102ed578063d505accf146100fc5763dd62ed3e146100a8575f80fd5b346100f85760403660031901126100f8576100c16107d3565b6100c96107e9565b6001600160a01b039182165f908152600460209081526040808320949093168252928352819020549051908152f35b5f80fd5b346100f85760e03660031901126100f8576101156107d3565b61011d6107e9565b6044356064359260843560ff81168091036100f8574285106102ae5760805f91602093610148610820565b9060018060a01b03169687855260058652604085209889549960018b01905560405190878201927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c984528a604084015260018060a01b03169a8b6060840152898784015260a083015260c082015260c081526101c560e082610772565b519020604051908682019261190160f01b845260228301526042820152604281526101f1606282610772565b519020906040519182528482015260a435604082015260c435606082015282805260015afa156102a3575f516001600160a01b03168015158061029a575b15610264575f805160206109d5833981519152916020915f526004825260405f20855f5282528060405f2055604051908152a3005b60405162461bcd60e51b815260206004820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152606490fd5b5082811461022f565b6040513d5f823e3d90fd5b60405162461bcd60e51b815260206004820152601760248201527614115493525517d11150511312539157d1561412549151604a1b6044820152606490fd5b346100f85760403660031901126100f8576103066107d3565b60243590335f52600360205260405f206103218382546107ff565b905560018060a01b031690815f52600360205260405f208181540190556040519081525f805160206109b583398151915260203392a3602060405160018152f35b346100f8575f3660031901126100f8576040515f6001546103828161073a565b808452906001811690811561041857506001146103ba575b6103b6836103aa81850382610772565b604051918291826107a9565b0390f35b60015f9081527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6939250905b8082106103fe575090915081016020016103aa61039a565b9192600181602092548385880101520191019092916103e6565b60ff191660208086019190915291151560051b840190910191506103aa905061039a565b346100f85760203660031901126100f8576001600160a01b0361045d6107d3565b165f526005602052602060405f2054604051908152f35b346100f85760203660031901126100f8576001600160a01b036104956107d3565b165f526003602052602060405f2054604051908152f35b346100f85760403660031901126100f8576104f46104c86107d3565b6024359060018060a01b03165f52600360205260405f206104ea828254610987565b9055600254610987565b600255005b346100f8575f3660031901126100f8576020610513610820565b604051908152f35b346100f8575f3660031901126100f857602060405160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346100f85760603660031901126100f8576105716107d3565b6105796107e9565b6001600160a01b039091165f818152600460209081526040808320338452825290912054604435935f805160206109b583398151915292918560018201610603575b5050835f526003825260405f206105d38682546107ff565b90556001600160a01b03165f818152600383526040908190208054870190555194855293a3602060405160018152f35b61060c916107ff565b5f858152600484526040808220338352855290205585856105bb565b346100f8575f3660031901126100f8576020600254604051908152f35b346100f85760403660031901126100f85761065e6107d3565b335f8181526004602090815260408083206001600160a01b03909516808452948252918290206024359081905591519182525f805160206109d583398151915291a3602060405160018152f35b346100f8575f3660031901126100f8576040515f80546106ca8161073a565b808452906001811690811561041857506001146106f1576103b6836103aa81850382610772565b5f8080525f80516020610995833981519152939250905b808210610720575090915081016020016103aa61039a565b919260018160209254838588010152019101909291610708565b90600182811c92168015610768575b602083101461075457565b634e487b7160e01b5f52602260045260245ffd5b91607f1691610749565b601f909101601f19168101906001600160401b0382119082101761079557604052565b634e487b7160e01b5f52604160045260245ffd5b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b03821682036100f857565b602435906001600160a01b03821682036100f857565b9190820391821161080c57565b634e487b7160e01b5f52601160045260245ffd5b467f00000000000000000000000000000000000000000000000000000000000000000361086b577f000000000000000000000000000000000000000000000000000000000000000090565b6040515f905f54918161087d8461073a565b9182825260208201946001811690815f1461096b5750600114610921575b6108a792500382610772565b51902060405160208101917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260408201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260a0815261091b60c082610772565b51902090565b505f80805290915f805160206109958339815191525b81831061094f5750509060206108a79282010161089b565b6020919350806001915483858801015201910190918392610937565b60ff19168652506108a792151560051b8201602001905061089b565b9190820180921161080c5756fe290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925a164736f6c634300081a000a290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563",
"deployedBytecode": "0x60806040526004361015610011575f80fd5b5f3560e01c806306fdde03146106ab578063095ea7b31461064557806318160ddd1461062857806323b872dd14610558578063313ce5671461051b5780633644e515146104f957806340c10f19146104ac57806370a08231146104745780637ecebe001461043c57806395d89b4114610362578063a9059cbb146102ed578063d505accf146100fc5763dd62ed3e146100a8575f80fd5b346100f85760403660031901126100f8576100c16107d3565b6100c96107e9565b6001600160a01b039182165f908152600460209081526040808320949093168252928352819020549051908152f35b5f80fd5b346100f85760e03660031901126100f8576101156107d3565b61011d6107e9565b6044356064359260843560ff81168091036100f8574285106102ae5760805f91602093610148610820565b9060018060a01b03169687855260058652604085209889549960018b01905560405190878201927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c984528a604084015260018060a01b03169a8b6060840152898784015260a083015260c082015260c081526101c560e082610772565b519020604051908682019261190160f01b845260228301526042820152604281526101f1606282610772565b519020906040519182528482015260a435604082015260c435606082015282805260015afa156102a3575f516001600160a01b03168015158061029a575b15610264575f805160206109d5833981519152916020915f526004825260405f20855f5282528060405f2055604051908152a3005b60405162461bcd60e51b815260206004820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152606490fd5b5082811461022f565b6040513d5f823e3d90fd5b60405162461bcd60e51b815260206004820152601760248201527614115493525517d11150511312539157d1561412549151604a1b6044820152606490fd5b346100f85760403660031901126100f8576103066107d3565b60243590335f52600360205260405f206103218382546107ff565b905560018060a01b031690815f52600360205260405f208181540190556040519081525f805160206109b583398151915260203392a3602060405160018152f35b346100f8575f3660031901126100f8576040515f6001546103828161073a565b808452906001811690811561041857506001146103ba575b6103b6836103aa81850382610772565b604051918291826107a9565b0390f35b60015f9081527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6939250905b8082106103fe575090915081016020016103aa61039a565b9192600181602092548385880101520191019092916103e6565b60ff191660208086019190915291151560051b840190910191506103aa905061039a565b346100f85760203660031901126100f8576001600160a01b0361045d6107d3565b165f526005602052602060405f2054604051908152f35b346100f85760203660031901126100f8576001600160a01b036104956107d3565b165f526003602052602060405f2054604051908152f35b346100f85760403660031901126100f8576104f46104c86107d3565b6024359060018060a01b03165f52600360205260405f206104ea828254610987565b9055600254610987565b600255005b346100f8575f3660031901126100f8576020610513610820565b604051908152f35b346100f8575f3660031901126100f857602060405160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346100f85760603660031901126100f8576105716107d3565b6105796107e9565b6001600160a01b039091165f818152600460209081526040808320338452825290912054604435935f805160206109b583398151915292918560018201610603575b5050835f526003825260405f206105d38682546107ff565b90556001600160a01b03165f818152600383526040908190208054870190555194855293a3602060405160018152f35b61060c916107ff565b5f858152600484526040808220338352855290205585856105bb565b346100f8575f3660031901126100f8576020600254604051908152f35b346100f85760403660031901126100f85761065e6107d3565b335f8181526004602090815260408083206001600160a01b03909516808452948252918290206024359081905591519182525f805160206109d583398151915291a3602060405160018152f35b346100f8575f3660031901126100f8576040515f80546106ca8161073a565b808452906001811690811561041857506001146106f1576103b6836103aa81850382610772565b5f8080525f80516020610995833981519152939250905b808210610720575090915081016020016103aa61039a565b919260018160209254838588010152019101909291610708565b90600182811c92168015610768575b602083101461075457565b634e487b7160e01b5f52602260045260245ffd5b91607f1691610749565b601f909101601f19168101906001600160401b0382119082101761079557604052565b634e487b7160e01b5f52604160045260245ffd5b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b03821682036100f857565b602435906001600160a01b03821682036100f857565b9190820391821161080c57565b634e487b7160e01b5f52601160045260245ffd5b467f00000000000000000000000000000000000000000000000000000000000000000361086b577f000000000000000000000000000000000000000000000000000000000000000090565b6040515f905f54918161087d8461073a565b9182825260208201946001811690815f1461096b5750600114610921575b6108a792500382610772565b51902060405160208101917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260408201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260a0815261091b60c082610772565b51902090565b505f80805290915f805160206109958339815191525b81831061094f5750509060206108a79282010161089b565b6020919350806001915483858801015201910190918392610937565b60ff19168652506108a792151560051b8201602001905061089b565b9190820180921161080c5756fe290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925a164736f6c634300081a000a",
"linkReferences": {},
"deployedLinkReferences": {}
}