UNPKG

@q-dev/gdk-sdk

Version:

Typescript Library to interact with GDK Contracts

648 lines (647 loc) 29.9 kB
{ "_format": "hh-sol-artifact-1", "contractName": "FactoryPaymaster", "sourceName": "contracts/GSN/FactoryPaymaster.sol", "abi": [ { "inputs": [ { "internalType": "address", "name": "forwarder_", "type": "address" }, { "internalType": "address", "name": "relayHub_", "type": "address" }, { "internalType": "address[]", "name": "approvedContracts", "type": "address[]" } ], "stateMutability": "payable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "components": [ { "internalType": "uint256", "name": "timestamp", "type": "uint256" } ], "indexed": false, "internalType": "struct ContextInfo", "name": "", "type": "tuple" } ], "name": "PostRelayed", "type": "event" }, { "anonymous": false, "inputs": [ { "components": [ { "internalType": "uint256", "name": "timestamp", "type": "uint256" } ], "indexed": false, "internalType": "struct ContextInfo", "name": "", "type": "tuple" } ], "name": "PreRelayed", "type": "event" }, { "inputs": [], "name": "CALLDATA_SIZE_LIMIT", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "FORWARDER_HUB_OVERHEAD", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "PAYMASTER_ACCEPTANCE_BUDGET", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "POST_RELAYED_CALL_GAS_LIMIT", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "PRE_RELAYED_CALL_GAS_LIMIT", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "components": [ { "components": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "uint256", "name": "gas", "type": "uint256" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" }, { "internalType": "uint256", "name": "validUntil", "type": "uint256" } ], "internalType": "struct IForwarder.ForwardRequest", "name": "request", "type": "tuple" }, { "components": [ { "internalType": "uint256", "name": "gasPrice", "type": "uint256" }, { "internalType": "uint256", "name": "pctRelayFee", "type": "uint256" }, { "internalType": "uint256", "name": "baseRelayFee", "type": "uint256" }, { "internalType": "address", "name": "relayWorker", "type": "address" }, { "internalType": "address", "name": "paymaster", "type": "address" }, { "internalType": "address", "name": "forwarder", "type": "address" }, { "internalType": "bytes", "name": "paymasterData", "type": "bytes" }, { "internalType": "uint256", "name": "clientId", "type": "uint256" } ], "internalType": "struct GsnTypes.RelayData", "name": "relayData", "type": "tuple" } ], "internalType": "struct GsnTypes.RelayRequest", "name": "relayRequest", "type": "tuple" } ], "name": "_verifyForwarder", "outputs": [], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getGasAndDataLimits", "outputs": [ { "components": [ { "internalType": "uint256", "name": "acceptanceBudget", "type": "uint256" }, { "internalType": "uint256", "name": "preRelayedCallGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "postRelayedCallGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "calldataSizeLimit", "type": "uint256" } ], "internalType": "struct IPaymaster.GasAndDataLimits", "name": "limits", "type": "tuple" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getHubAddr", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getRelayHubDeposit", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "isApprovedContract", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes", "name": "context_", "type": "bytes" }, { "internalType": "bool", "name": "", "type": "bool" }, { "internalType": "uint256", "name": "", "type": "uint256" }, { "components": [ { "internalType": "uint256", "name": "gasPrice", "type": "uint256" }, { "internalType": "uint256", "name": "pctRelayFee", "type": "uint256" }, { "internalType": "uint256", "name": "baseRelayFee", "type": "uint256" }, { "internalType": "address", "name": "relayWorker", "type": "address" }, { "internalType": "address", "name": "paymaster", "type": "address" }, { "internalType": "address", "name": "forwarder", "type": "address" }, { "internalType": "bytes", "name": "paymasterData", "type": "bytes" }, { "internalType": "uint256", "name": "clientId", "type": "uint256" } ], "internalType": "struct GsnTypes.RelayData", "name": "", "type": "tuple" } ], "name": "postRelayedCall", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "components": [ { "components": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "uint256", "name": "gas", "type": "uint256" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" }, { "internalType": "uint256", "name": "validUntil", "type": "uint256" } ], "internalType": "struct IForwarder.ForwardRequest", "name": "request", "type": "tuple" }, { "components": [ { "internalType": "uint256", "name": "gasPrice", "type": "uint256" }, { "internalType": "uint256", "name": "pctRelayFee", "type": "uint256" }, { "internalType": "uint256", "name": "baseRelayFee", "type": "uint256" }, { "internalType": "address", "name": "relayWorker", "type": "address" }, { "internalType": "address", "name": "paymaster", "type": "address" }, { "internalType": "address", "name": "forwarder", "type": "address" }, { "internalType": "bytes", "name": "paymasterData", "type": "bytes" }, { "internalType": "uint256", "name": "clientId", "type": "uint256" } ], "internalType": "struct GsnTypes.RelayData", "name": "relayData", "type": "tuple" } ], "internalType": "struct GsnTypes.RelayRequest", "name": "relayRequest_", "type": "tuple" }, { "internalType": "bytes", "name": "", "type": "bytes" }, { "internalType": "bytes", "name": "", "type": "bytes" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "preRelayedCall", "outputs": [ { "internalType": "bytes", "name": "context", "type": "bytes" }, { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "contract IRelayHub", "name": "hub", "type": "address" } ], "name": "setRelayHub", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "forwarder", "type": "address" } ], "name": "setTrustedForwarder", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "trustedForwarder", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "versionPaymaster", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "address payable", "name": "target", "type": "address" } ], "name": "withdrawRelayHubDepositTo", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ], "bytecode": "0x6040608060405262000ef4803803806200001981620001b1565b92833981019160608284031262000196576200003582620001d7565b60209262000045848201620001d7565b93604082015160018060401b03928382116200019657019580601f88011215620001965786519283116200019b576005968360051b9083806200008a818501620001b1565b809781520192820101928311620001965783809101915b8383106200017b57505060008054336001600160a01b0319808316821784556001600160a01b039b93988c965093945092859290919083167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08a80a362000107620001ec565b168160025416176002556200011b620001ec565b60019889981690600154161760015584965b62000143575b604051610cae9081620002468239f35b8351871015620001755786811b84018301518216855260038352858520805460ff19168917905595870195876200012d565b62000133565b81906200018884620001d7565b8152019101908390620000a1565b600080fd5b634e487b7160e01b600052604160045260246000fd5b6040519190601f01601f191682016001600160401b038111838210176200019b57604052565b51906001600160a01b03821682036200019657565b6000546001600160a01b031633036200020157565b606460405162461bcd60e51b815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fdfe60806040818152600491823610156100c0575b50361561001e57600080fd5b6001546001600160a01b031691821561007e57823b1561007957600090602483518095819363aa67c91960e01b8352309083015234905af190811561006f575061006457005b61006d9061099b565b005b513d6000823e3d90fd5b600080fd5b6020606492519162461bcd60e51b8352820152601960248201527f72656c6179206875622061646472657373206e6f7420736574000000000000006044820152fd5b600090813560e01c908162be5dd414610773575080632afe31c1146106da5780632d14c4b7146106595780635c5e3db11461063c5780636eedadca146105fd578063715018a6146105a057806374e861d61461057757806376fa01c3146104d15780637bb052641461048d5780637da0a877146104645780638da5cb5b1461043c578063921276ea146103f3578063a5dcd07b146103b1578063b039a88f14610336578063b90b41cf14610319578063bbdaa3c9146102fb578063da742228146102b7578063df463a6614610299578063f2fde38b146101c55763f9c002f7036100125790346101c157816003193601126101c15760209051620186a08152f35b5080fd5b50919034610295576020366003190112610295576001600160a01b03823581811693919290849003610291576101f9610c49565b831561023f575050600054826001600160601b0360a01b821617600055167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a380f35b906020608492519162461bcd60e51b8352820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152fd5b8480fd5b8280fd5b5090346101c157816003193601126101c15760209051620249f08152f35b5082346101c15760203660031901126101c157356001600160a01b038116908190036101c1576102e5610c49565b6001600160601b0360a01b600254161760025580f35b5090346101c157816003193601126101c157602090516201adb08152f35b5090346101c157816003193601126101c1576020905161c3508152f35b5090346101c157816003193601126101c15760809160608251610358816109af565b828152826020820152828482015201528051610373816109af565b620249f0918282526020820191620186a083526060828201916201adb083520192612904845282519485525160208501525190830152516060820152f35b5091903461029557600319906020368301126103ef5782359167ffffffffffffffff8311610291578236030112610295576103ec9101610a1e565b80f35b8380fd5b5090346101c157816003193601126101c157805161043891610414826109cb565b60058252640322e322e360dc1b602083015251918291602083526020830190610900565b0390f35b5090346101c157816003193601126101c157905490516001600160a01b039091168152602090f35b5090346101c157816003193601126101c15760025490516001600160a01b039091168152602090f35b5082346101c15760203660031901126101c157356001600160a01b038116908190036101c1576104bb610c49565b6001600160601b0360a01b600154161760015580f35b5091903461029557600319916080368401126103ef57803567ffffffffffffffff9182821161057357610506913691016108d2565b91909360243580151503610573576064359182116105735761010091360301126103ef578260209181010312610295577f347ac6d5b6b4913e5c9685433798a80ff99e7aed7f16d4977fd2522540264a5f9181602092519161056783610969565b3580925251908152a180f35b8580fd5b5090346101c157816003193601126101c15760015490516001600160a01b039091168152602090f35b50346105fa57806003193601126105fa576105b9610c49565b600080546001600160a01b0319811682556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b80fd5b50913461029557602036600319011261029557356001600160a01b0381169081900361029557818360ff92602095526003855220541690519015158152f35b5090346101c157816003193601126101c157602090516129048152f35b50919034610295578060031936011261029557826024356001600160a01b03818116918290036102955761068b610c49565b6001541693843b15610295576044908385519687948593627b8a6760e11b855280359085015260248401525af19081156106d157506106c8575080f35b6103ec9061099b565b513d84823e3d90fd5b5091903461029557826003193601126102955760015481516370a0823160e01b81523093810193909352602090839060249082906001600160a01b03165afa918215610769578392610731575b6020838351908152f35b9091506020813d602011610761575b8161074d602093836109e7565b810103126102955760209250519038610727565b3d9150610740565b81513d85823e3d90fd5b83858492346103ef57600319906080368301126102915782359167ffffffffffffffff908184116108ce5785908486019436030112610573576024358181116108ce576107c390369086016108d2565b5050604435908111610573576107dc90369085016108d2565b5060209390506001600160a01b036107fe856107f88680610940565b01610955565b1686526003845260ff85872054161561088257505061081c90610a1e565b81519261082884610969565b4284527f48d8895789166937e41d97d9121a92a5c7281f84a91d069bc3f600f075b01f72828451428152a18251935182850152818452610867846109cb565b61087a8351948486958652850190610900565b918301520390f35b62461bcd60e51b825281018390526024808201527f5b5147444b2d3032333030305d2d4e6f7420617070726f76656420636f6e747260448201526330b1ba1760e11b6064820152608490fd5b8680fd5b9181601f840112156100795782359167ffffffffffffffff8311610079576020838186019501011161007957565b919082519283825260005b84811061092c575050826000602080949584010152601f8019910116010190565b60208183018101518483018201520161090b565b90359060de1981360301821215610079570190565b356001600160a01b03811681036100795790565b6020810190811067ffffffffffffffff82111761098557604052565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff811161098557604052565b6080810190811067ffffffffffffffff82111761098557604052565b6040810190811067ffffffffffffffff82111761098557604052565b90601f8019910116810190811067ffffffffffffffff82111761098557604052565b90359060fe1981360301821215610079570190565b600254602091906001600160a01b039083830190821682610a4460a06107f88588610a09565b1603610c045760a06107f8610a6792610a61876107f88880610940565b95610a09565b916040918251908582019063572b6c0560e01b82526024951685830152848252606082019167ffffffffffffffff9281811084821117610bef5785526000938492839251915afa3d15610be6573d918211610bd357835191610ad2601f8201601f19168801846109e7565b82523d838784013e5b15610b905784815103610b4f5784818051810103126101c157840151908115918215036105fa5750610b0c57505050565b5162461bcd60e51b81526004810192909252601f908201527f696e76616c696420666f7277617264657220666f7220726563697069656e74006044820152606490fd5b6064848685519162461bcd60e51b83528160048401528201527f697354727573746564466f727761726465723a2062616420726573706f6e73656044820152fd5b825162461bcd60e51b815260048101869052601c818601527f697354727573746564466f727761726465723a207265766572746564000000006044820152606490fd5b634e487b7160e01b835260416004528483fd5b60609150610adb565b86634e487b7160e01b60005260416004526000fd5b60405162461bcd60e51b815260048101859052601860248201527f466f72776172646572206973206e6f74207472757374656400000000000000006044820152606490fd5b6000546001600160a01b03163303610c5d57565b606460405162461bcd60e51b815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fdfea164736f6c6343000818000a", "deployedBytecode": "0x60806040818152600491823610156100c0575b50361561001e57600080fd5b6001546001600160a01b031691821561007e57823b1561007957600090602483518095819363aa67c91960e01b8352309083015234905af190811561006f575061006457005b61006d9061099b565b005b513d6000823e3d90fd5b600080fd5b6020606492519162461bcd60e51b8352820152601960248201527f72656c6179206875622061646472657373206e6f7420736574000000000000006044820152fd5b600090813560e01c908162be5dd414610773575080632afe31c1146106da5780632d14c4b7146106595780635c5e3db11461063c5780636eedadca146105fd578063715018a6146105a057806374e861d61461057757806376fa01c3146104d15780637bb052641461048d5780637da0a877146104645780638da5cb5b1461043c578063921276ea146103f3578063a5dcd07b146103b1578063b039a88f14610336578063b90b41cf14610319578063bbdaa3c9146102fb578063da742228146102b7578063df463a6614610299578063f2fde38b146101c55763f9c002f7036100125790346101c157816003193601126101c15760209051620186a08152f35b5080fd5b50919034610295576020366003190112610295576001600160a01b03823581811693919290849003610291576101f9610c49565b831561023f575050600054826001600160601b0360a01b821617600055167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a380f35b906020608492519162461bcd60e51b8352820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152fd5b8480fd5b8280fd5b5090346101c157816003193601126101c15760209051620249f08152f35b5082346101c15760203660031901126101c157356001600160a01b038116908190036101c1576102e5610c49565b6001600160601b0360a01b600254161760025580f35b5090346101c157816003193601126101c157602090516201adb08152f35b5090346101c157816003193601126101c1576020905161c3508152f35b5090346101c157816003193601126101c15760809160608251610358816109af565b828152826020820152828482015201528051610373816109af565b620249f0918282526020820191620186a083526060828201916201adb083520192612904845282519485525160208501525190830152516060820152f35b5091903461029557600319906020368301126103ef5782359167ffffffffffffffff8311610291578236030112610295576103ec9101610a1e565b80f35b8380fd5b5090346101c157816003193601126101c157805161043891610414826109cb565b60058252640322e322e360dc1b602083015251918291602083526020830190610900565b0390f35b5090346101c157816003193601126101c157905490516001600160a01b039091168152602090f35b5090346101c157816003193601126101c15760025490516001600160a01b039091168152602090f35b5082346101c15760203660031901126101c157356001600160a01b038116908190036101c1576104bb610c49565b6001600160601b0360a01b600154161760015580f35b5091903461029557600319916080368401126103ef57803567ffffffffffffffff9182821161057357610506913691016108d2565b91909360243580151503610573576064359182116105735761010091360301126103ef578260209181010312610295577f347ac6d5b6b4913e5c9685433798a80ff99e7aed7f16d4977fd2522540264a5f9181602092519161056783610969565b3580925251908152a180f35b8580fd5b5090346101c157816003193601126101c15760015490516001600160a01b039091168152602090f35b50346105fa57806003193601126105fa576105b9610c49565b600080546001600160a01b0319811682556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b80fd5b50913461029557602036600319011261029557356001600160a01b0381169081900361029557818360ff92602095526003855220541690519015158152f35b5090346101c157816003193601126101c157602090516129048152f35b50919034610295578060031936011261029557826024356001600160a01b03818116918290036102955761068b610c49565b6001541693843b15610295576044908385519687948593627b8a6760e11b855280359085015260248401525af19081156106d157506106c8575080f35b6103ec9061099b565b513d84823e3d90fd5b5091903461029557826003193601126102955760015481516370a0823160e01b81523093810193909352602090839060249082906001600160a01b03165afa918215610769578392610731575b6020838351908152f35b9091506020813d602011610761575b8161074d602093836109e7565b810103126102955760209250519038610727565b3d9150610740565b81513d85823e3d90fd5b83858492346103ef57600319906080368301126102915782359167ffffffffffffffff908184116108ce5785908486019436030112610573576024358181116108ce576107c390369086016108d2565b5050604435908111610573576107dc90369085016108d2565b5060209390506001600160a01b036107fe856107f88680610940565b01610955565b1686526003845260ff85872054161561088257505061081c90610a1e565b81519261082884610969565b4284527f48d8895789166937e41d97d9121a92a5c7281f84a91d069bc3f600f075b01f72828451428152a18251935182850152818452610867846109cb565b61087a8351948486958652850190610900565b918301520390f35b62461bcd60e51b825281018390526024808201527f5b5147444b2d3032333030305d2d4e6f7420617070726f76656420636f6e747260448201526330b1ba1760e11b6064820152608490fd5b8680fd5b9181601f840112156100795782359167ffffffffffffffff8311610079576020838186019501011161007957565b919082519283825260005b84811061092c575050826000602080949584010152601f8019910116010190565b60208183018101518483018201520161090b565b90359060de1981360301821215610079570190565b356001600160a01b03811681036100795790565b6020810190811067ffffffffffffffff82111761098557604052565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff811161098557604052565b6080810190811067ffffffffffffffff82111761098557604052565b6040810190811067ffffffffffffffff82111761098557604052565b90601f8019910116810190811067ffffffffffffffff82111761098557604052565b90359060fe1981360301821215610079570190565b600254602091906001600160a01b039083830190821682610a4460a06107f88588610a09565b1603610c045760a06107f8610a6792610a61876107f88880610940565b95610a09565b916040918251908582019063572b6c0560e01b82526024951685830152848252606082019167ffffffffffffffff9281811084821117610bef5785526000938492839251915afa3d15610be6573d918211610bd357835191610ad2601f8201601f19168801846109e7565b82523d838784013e5b15610b905784815103610b4f5784818051810103126101c157840151908115918215036105fa5750610b0c57505050565b5162461bcd60e51b81526004810192909252601f908201527f696e76616c696420666f7277617264657220666f7220726563697069656e74006044820152606490fd5b6064848685519162461bcd60e51b83528160048401528201527f697354727573746564466f727761726465723a2062616420726573706f6e73656044820152fd5b825162461bcd60e51b815260048101869052601c818601527f697354727573746564466f727761726465723a207265766572746564000000006044820152606490fd5b634e487b7160e01b835260416004528483fd5b60609150610adb565b86634e487b7160e01b60005260416004526000fd5b60405162461bcd60e51b815260048101859052601860248201527f466f72776172646572206973206e6f74207472757374656400000000000000006044820152606490fd5b6000546001600160a01b03163303610c5d57565b606460405162461bcd60e51b815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fdfea164736f6c6343000818000a", "linkReferences": {}, "deployedLinkReferences": {} }