UNPKG

@uniswap/universal-router

Version:

Smart contracts for Universal Router

338 lines (337 loc) 19.5 kB
{ "_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": {} }