diff --git a/contracts/bindings/omnigaspump.go b/contracts/bindings/omnigaspump.go index a236b35cd..f32498a8d 100644 --- a/contracts/bindings/omnigaspump.go +++ b/contracts/bindings/omnigaspump.go @@ -42,7 +42,7 @@ type OmniGasPumpInitParams struct { // OmniGasPumpMetaData contains all meta data concerning the OmniGasPump contract. var OmniGasPumpMetaData = &bind.MetaData{ ABI: "[{\"type\":\"constructor\",\"inputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"SETTLE_GAS\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"TOLL_DENOM\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"defaultConfLevel\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"dryFillUp\",\"inputs\":[{\"name\":\"amtETH\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"fillUp\",\"inputs\":[{\"name\":\"recipient\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"gasStation\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"p\",\"type\":\"tuple\",\"internalType\":\"structOmniGasPump.InitParams\",\"components\":[{\"name\":\"gasStation\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"oracle\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"portal\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"owner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"maxSwap\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"toll\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"maxSwap\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"omni\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIOmniPortal\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"oracle\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIConversionRateOracle\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"owed\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"owner\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"pause\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"paused\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"quote\",\"inputs\":[{\"name\":\"amtOMNI\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"renounceOwnership\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setGasStation\",\"inputs\":[{\"name\":\"station\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setMaxSwap\",\"inputs\":[{\"name\":\"max\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setOracle\",\"inputs\":[{\"name\":\"oracle_\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setToll\",\"inputs\":[{\"name\":\"pct\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"toll\",\"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\":\"unpause\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"withdraw\",\"inputs\":[{\"name\":\"to\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"xfee\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"event\",\"name\":\"DefaultConfLevelSet\",\"inputs\":[{\"name\":\"conf\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"FilledUp\",\"inputs\":[{\"name\":\"recipient\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"owed\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"amtETH\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"fee\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"toll\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"amtOMNI\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"GasStationSet\",\"inputs\":[{\"name\":\"station\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Initialized\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"MaxSwapSet\",\"inputs\":[{\"name\":\"max\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OmniPortalSet\",\"inputs\":[{\"name\":\"omni\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OracleSet\",\"inputs\":[{\"name\":\"oracle\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"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\":\"event\",\"name\":\"Paused\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"TollSet\",\"inputs\":[{\"name\":\"pct\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Unpaused\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"EnforcedPause\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ExpectedPause\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidInitialization\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NotInitializing\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OwnableInvalidOwner\",\"inputs\":[{\"name\":\"owner\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"OwnableUnauthorizedAccount\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}]}]", - Bin: "0x608060405234801561001057600080fd5b5061001961001e565b6100d0565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161561006e5760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146100cd5780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b6117ef806100df6000396000f3fe6080604052600436106101665760003560e01c80637adbf973116100d1578063a67265b11161008a578063dbb602fd11610064578063dbb602fd14610440578063df18e04714610460578063ed1bd76c1461048d578063f2fde38b146104ad57600080fd5b8063a67265b1146103da578063c4918b4e146103fa578063ca48b20b1461041057600080fd5b80637adbf973146103135780637dc0d1d0146103335780638456cb59146103535780638aec67fe146103685780638da5cb5b1461037d578063a3dace5d146103ba57600080fd5b80634b260981116101235780634b2609811461023657806351cff8d91461024c57806355e0af6b1461026c5780635c975abb1461029b578063715018a6146102cb57806374eeb847146102e057600080fd5b806308a957a91461016b5780630e6e91d81461018d578063285aaa20146101ad57806339acf9f1146101d65780633f4ba83a1461020e5780634ae809ee14610223575b600080fd5b34801561017757600080fd5b5061018b610186366004611590565b6104cd565b005b34801561019957600080fd5b5061018b6101a83660046115b9565b6104e1565b3480156101b957600080fd5b506101c360355481565b6040519081526020015b60405180910390f35b3480156101e257600080fd5b506000546101f6906001600160a01b031681565b6040516001600160a01b0390911681526020016101cd565b34801561021a57600080fd5b5061018b6104f2565b6101c3610231366004611590565b610504565b34801561024257600080fd5b506101c36103e881565b34801561025857600080fd5b5061018b610267366004611590565b61071c565b34801561027857600080fd5b5061028c6102873660046115b9565b6107cb565b6040516101cd93929190611618565b3480156102a757600080fd5b5060008051602061179a8339815191525460ff1660405190151581526020016101cd565b3480156102d757600080fd5b5061018b6108ad565b3480156102ec57600080fd5b5060005461030190600160a01b900460ff1681565b60405160ff90911681526020016101cd565b34801561031f57600080fd5b5061018b61032e366004611590565b6108bf565b34801561033f57600080fd5b506032546101f6906001600160a01b031681565b34801561035f57600080fd5b5061018b6108d0565b34801561037457600080fd5b506101c36108e0565b34801561038957600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b03166101f6565b3480156103c657600080fd5b5061018b6103d53660046115b9565b61094e565b3480156103e657600080fd5b5061018b6103f5366004611642565b61095f565b34801561040657600080fd5b506101c360345481565b34801561041c57600080fd5b50610427620222e081565b60405167ffffffffffffffff90911681526020016101cd565b34801561044c57600080fd5b506033546101f6906001600160a01b031681565b34801561046c57600080fd5b506101c361047b366004611590565b60366020526000908152604090205481565b34801561049957600080fd5b506101c36104a83660046115b9565b610adf565b3480156104b957600080fd5b5061018b6104c8366004611590565b610b38565b6104d5610b73565b6104de81610bce565b50565b6104e9610b73565b6104de81610c79565b6104fa610b73565b610502610cf6565b565b600061050e610d50565b60006105186108e0565b90508034101561056f5760405162461bcd60e51b815260206004820152601d60248201527f4f6d6e6947617350756d703a20696e73756666696369656e742066656500000060448201526064015b60405180910390fd5b600061057b8234611670565b90506034548111156105c75760405162461bcd60e51b815260206004820152601560248201527409edadcd28ec2e6a0eadae07440deeccae440dac2f605b1b6044820152606401610566565b60006103e8603554836105da9190611683565b6105e4919061169a565b90506105f08183611670565b915060006105fd83610d81565b6001600160a01b03871660009081526036602052604081208054929350839290919061062a9084906116bc565b909155506106a7905061063b610e97565b6033546001600160a01b038981166000818152603660205260409081902054905160248101929092526044820152600192919091169060640160408051601f198184030181529190526020810180516001600160e01b0316631decdcfb60e11b179052620222e0610f14565b506001600160a01b038616600081815260366020908152604091829020548251908152349181019190915290810186905260608101849052608081018390527f7737fe59897f758714c24688a6470bb05235f01af1f4293edd0c290e651dd8319060a00160405180910390a295945050505050565b610724610b73565b6000816001600160a01b03164760405160006040518083038185875af1925050503d8060008114610771576040519150601f19603f3d011682016040523d82523d6000602084013e610776565b606091505b50509050806107c75760405162461bcd60e51b815260206004820152601c60248201527f4f6d6e6947617350756d703a207769746864726177206661696c6564000000006044820152606401610566565b5050565b600080606060006107da6108e0565b90508085101561081957505060408051808201909152601081526f696e73756666696369656e742066656560801b6020820152600092508291506108a6565b6108238186611670565b945060345485111561085c5750506040805180820190915260088152670deeccae440dac2f60c31b6020820152600092508291506108a6565b6103e86035548661086d9190611683565b610877919061169a565b6108819086611670565b945061088c85610d81565b600160405180602001604052806000815250935093509350505b9193909250565b6108b5610b73565b610502600061105e565b6108c7610b73565b6104de816110cf565b6108d8610b73565b610502611173565b60006001600160a01b036000196109476108f8610e97565b6040516001600160a01b03851660248201526044810184905260640160408051601f198184030181529190526020810180516001600160e01b0316631decdcfb60e11b179052620222e06111bc565b9250505090565b610956610b73565b6104de8161123a565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff166000811580156109a55750825b905060008267ffffffffffffffff1660011480156109c25750303b155b9050811580156109d0575080155b156109ee5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610a1857845460ff60401b1916600160401b1785555b610a30610a2b6040880160208901611590565b6110cf565b610a45610a406020880188611590565b610bce565b610a528660800135610c79565b610a5f8660a0013561123a565b610a79610a726060880160408901611590565b60016112c0565b610a91610a8c6080880160608901611590565b6112da565b8315610ad757845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050565b600080610aeb836112eb565b90506035546103e8610afd9190611670565b610b096103e883611683565b610b13919061169a565b610b1d90826116bc565b9050610b276108e0565b610b3190826116bc565b9392505050565b610b40610b73565b6001600160a01b038116610b6a57604051631e4fbdf760e01b815260006004820152602401610566565b6104de8161105e565b33610ba57f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146105025760405163118cdaa760e01b8152336004820152602401610566565b6001600160a01b038116610c245760405162461bcd60e51b815260206004820152601960248201527f4f6d6e6947617350756d703a207a65726f2061646472657373000000000000006044820152606401610566565b603380546001600160a01b0319166001600160a01b0383169081179091556040519081527ffd263e3b7583e8397be8a61710d1105cf8c0f111bbac1014d0ec7dbcd1e422f1906020015b60405180910390a150565b60008111610cc15760405162461bcd60e51b815260206004820152601560248201527409edadcd28ec2e6a0eadae07440f4cae4de40dac2f605b1b6044820152606401610566565b60348190556040518181527f343ecf9262f8cafd2e9b0ffdab9f14bf18a17899eeef3e41133e84c354e5298390602001610c6e565b610cfe6113b7565b60008051602061179a833981519152805460ff191681557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b039091168152602001610c6e565b60008051602061179a8339815191525460ff16156105025760405163d93c066560e01b815260040160405180910390fd5b6032546000906001600160a01b0316638b7bfd70610d9d610e97565b6040516001600160e01b031960e084901b16815267ffffffffffffffff9091166004820152602401602060405180830381865afa158015610de2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e0691906116cf565b603260009054906101000a90046001600160a01b03166001600160a01b0316638f9d6ace6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e7d91906116cf565b610e879084611683565b610e91919061169a565b92915050565b60008060009054906101000a90046001600160a01b03166001600160a01b031663110ff5f16040518163ffffffff1660e01b8152600401602060405180830381865afa158015610eeb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f0f91906116e8565b905090565b60008054604051632376548f60e21b815282916001600160a01b031690638dd9523c90610f49908a9088908890600401611712565b602060405180830381865afa158015610f66573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f8a91906116cf565b90508047101580610f9b5750803410155b610fe75760405162461bcd60e51b815260206004820152601860248201527f584170703a20696e73756666696369656e742066756e647300000000000000006044820152606401610566565b60005460405163c21dda4f60e01b81526001600160a01b039091169063c21dda4f908390611021908b908b908b908b908b90600401611749565b6000604051808303818588803b15801561103a57600080fd5b505af115801561104e573d6000803e3d6000fd5b50939a9950505050505050505050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6001600160a01b0381166111255760405162461bcd60e51b815260206004820152601860248201527f4f6d6e6947617350756d703a207a65726f206f7261636c6500000000000000006044820152606401610566565b603280546001600160a01b0319166001600160a01b0383169081179091556040519081527f3f32684a32a11dabdbb8c0177de80aa3ae36a004d75210335b49e544e48cd0aa90602001610c6e565b61117b610d50565b60008051602061179a833981519152805460ff191660011781557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833610d38565b60008054604051632376548f60e21b81526001600160a01b0390911690638dd9523c906111f190879087908790600401611712565b602060405180830381865afa15801561120e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061123291906116cf565b949350505050565b6103e8811061128b5760405162461bcd60e51b815260206004820152601960248201527f4f6d6e6947617350756d703a2070637420746f6f2068696768000000000000006044820152606401610566565b60358190556040518181527f0b3d400288f60ce0f5632cd941b5748faa91ebea844cbe78c5180b7838a0933f90602001610c6e565b6112c86113e7565b6112d182611430565b6107c7816114c9565b6112e26113e7565b6104de8161156c565b603254604080516347ceb56760e11b815290516000926001600160a01b031691638f9d6ace9160048083019260209291908290030181865afa158015611335573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061135991906116cf565b6032546001600160a01b0316638b7bfd70611372610e97565b6040516001600160e01b031960e084901b16815267ffffffffffffffff9091166004820152602401602060405180830381865afa158015610e59573d6000803e3d6000fd5b60008051602061179a8339815191525460ff1661050257604051638dfc202b60e01b815260040160405180910390fd5b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff1661050257604051631afcd79f60e31b815260040160405180910390fd5b6001600160a01b03811661147b5760405162461bcd60e51b8152602060048201526012602482015271584170703a206e6f207a65726f206f6d6e6960701b6044820152606401610566565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f79162c8d053a07e70cdc1ccc536f0440b571f8508377d2bef51094fadab98f4790602001610c6e565b6114d281611574565b61151e5760405162461bcd60e51b815260206004820152601860248201527f584170703a20696e76616c696420636f6e66206c6576656c00000000000000006044820152606401610566565b6000805460ff60a01b1916600160a01b60ff8416908102919091179091556040519081527f8de08a798b4e50b4f351c1eaa91a11530043802be3ffac2df87db0c45a2e848390602001610c6e565b610b406113e7565b600060ff821660011480610e91575060ff821660041492915050565b6000602082840312156115a257600080fd5b81356001600160a01b0381168114610b3157600080fd5b6000602082840312156115cb57600080fd5b5035919050565b6000815180845260005b818110156115f8576020818501810151868301820152016115dc565b506000602082860101526020601f19601f83011685010191505092915050565b838152821515602082015260606040820152600061163960608301846115d2565b95945050505050565b600060c0828403121561165457600080fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610e9157610e9161165a565b8082028115828204841417610e9157610e9161165a565b6000826116b757634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115610e9157610e9161165a565b6000602082840312156116e157600080fd5b5051919050565b6000602082840312156116fa57600080fd5b815167ffffffffffffffff81168114610b3157600080fd5b600067ffffffffffffffff80861683526060602084015261173660608401866115d2565b9150808416604084015250949350505050565b600067ffffffffffffffff808816835260ff8716602084015260018060a01b038616604084015260a0606084015261178460a08401866115d2565b9150808416608084015250969550505050505056fecd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300a264697066735822122011e9f8aff9b25471a057f220474258ee3e66a7283c37765a4c09c1b5ccba34e664736f6c63430008180033", + Bin: "0x608060405234801561001057600080fd5b5061001961001e565b6100d0565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161561006e5760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146100cd5780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b6117e5806100df6000396000f3fe6080604052600436106101665760003560e01c80637adbf973116100d1578063a67265b11161008a578063dbb602fd11610064578063dbb602fd14610440578063df18e04714610460578063ed1bd76c1461048d578063f2fde38b146104ad57600080fd5b8063a67265b1146103da578063c4918b4e146103fa578063ca48b20b1461041057600080fd5b80637adbf973146103135780637dc0d1d0146103335780638456cb59146103535780638aec67fe146103685780638da5cb5b1461037d578063a3dace5d146103ba57600080fd5b80634b260981116101235780634b2609811461023657806351cff8d91461024c57806355e0af6b1461026c5780635c975abb1461029b578063715018a6146102cb57806374eeb847146102e057600080fd5b806308a957a91461016b5780630e6e91d81461018d578063285aaa20146101ad57806339acf9f1146101d65780633f4ba83a1461020e5780634ae809ee14610223575b600080fd5b34801561017757600080fd5b5061018b610186366004611586565b6104cd565b005b34801561019957600080fd5b5061018b6101a83660046115af565b6104e1565b3480156101b957600080fd5b506101c360355481565b6040519081526020015b60405180910390f35b3480156101e257600080fd5b506000546101f6906001600160a01b031681565b6040516001600160a01b0390911681526020016101cd565b34801561021a57600080fd5b5061018b6104f2565b6101c3610231366004611586565b610504565b34801561024257600080fd5b506101c36103e881565b34801561025857600080fd5b5061018b610267366004611586565b61071c565b34801561027857600080fd5b5061028c6102873660046115af565b6107cb565b6040516101cd9392919061160e565b3480156102a757600080fd5b506000805160206117908339815191525460ff1660405190151581526020016101cd565b3480156102d757600080fd5b5061018b6108ad565b3480156102ec57600080fd5b5060005461030190600160a01b900460ff1681565b60405160ff90911681526020016101cd565b34801561031f57600080fd5b5061018b61032e366004611586565b6108bf565b34801561033f57600080fd5b506032546101f6906001600160a01b031681565b34801561035f57600080fd5b5061018b6108d0565b34801561037457600080fd5b506101c36108e0565b34801561038957600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b03166101f6565b3480156103c657600080fd5b5061018b6103d53660046115af565b61094e565b3480156103e657600080fd5b5061018b6103f5366004611638565b61095f565b34801561040657600080fd5b506101c360345481565b34801561041c57600080fd5b50610427620222e081565b60405167ffffffffffffffff90911681526020016101cd565b34801561044c57600080fd5b506033546101f6906001600160a01b031681565b34801561046c57600080fd5b506101c361047b366004611586565b60366020526000908152604090205481565b34801561049957600080fd5b506101c36104a83660046115af565b610adf565b3480156104b957600080fd5b5061018b6104c8366004611586565b610b2e565b6104d5610b69565b6104de81610bc4565b50565b6104e9610b69565b6104de81610c6f565b6104fa610b69565b610502610cec565b565b600061050e610d46565b60006105186108e0565b90508034101561056f5760405162461bcd60e51b815260206004820152601d60248201527f4f6d6e6947617350756d703a20696e73756666696369656e742066656500000060448201526064015b60405180910390fd5b600061057b8234611666565b90506034548111156105c75760405162461bcd60e51b815260206004820152601560248201527409edadcd28ec2e6a0eadae07440deeccae440dac2f605b1b6044820152606401610566565b60006103e8603554836105da9190611679565b6105e49190611690565b90506105f08183611666565b915060006105fd83610d77565b6001600160a01b03871660009081526036602052604081208054929350839290919061062a9084906116b2565b909155506106a7905061063b610e8d565b6033546001600160a01b038981166000818152603660205260409081902054905160248101929092526044820152600192919091169060640160408051601f198184030181529190526020810180516001600160e01b0316631decdcfb60e11b179052620222e0610f0a565b506001600160a01b038616600081815260366020908152604091829020548251908152349181019190915290810186905260608101849052608081018390527f7737fe59897f758714c24688a6470bb05235f01af1f4293edd0c290e651dd8319060a00160405180910390a295945050505050565b610724610b69565b6000816001600160a01b03164760405160006040518083038185875af1925050503d8060008114610771576040519150601f19603f3d011682016040523d82523d6000602084013e610776565b606091505b50509050806107c75760405162461bcd60e51b815260206004820152601c60248201527f4f6d6e6947617350756d703a207769746864726177206661696c6564000000006044820152606401610566565b5050565b600080606060006107da6108e0565b90508085101561081957505060408051808201909152601081526f696e73756666696369656e742066656560801b6020820152600092508291506108a6565b6108238186611666565b945060345485111561085c5750506040805180820190915260088152670deeccae440dac2f60c31b6020820152600092508291506108a6565b6103e86035548661086d9190611679565b6108779190611690565b6108819086611666565b945061088c85610d77565b600160405180602001604052806000815250935093509350505b9193909250565b6108b5610b69565b6105026000611054565b6108c7610b69565b6104de816110c5565b6108d8610b69565b610502611169565b60006001600160a01b036000196109476108f8610e8d565b6040516001600160a01b03851660248201526044810184905260640160408051601f198184030181529190526020810180516001600160e01b0316631decdcfb60e11b179052620222e06111b2565b9250505090565b610956610b69565b6104de81611230565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff166000811580156109a55750825b905060008267ffffffffffffffff1660011480156109c25750303b155b9050811580156109d0575080155b156109ee5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610a1857845460ff60401b1916600160401b1785555b610a30610a2b6040880160208901611586565b6110c5565b610a45610a406020880188611586565b610bc4565b610a528660800135610c6f565b610a5f8660a00135611230565b610a79610a726060880160408901611586565b60016112b6565b610a91610a8c6080880160608901611586565b6112d0565b8315610ad757845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050565b600080610aeb836112e1565b90506035546103e8610afd9190611666565b610b096103e883611679565b610b139190611690565b9050610b1d6108e0565b610b2790826116b2565b9392505050565b610b36610b69565b6001600160a01b038116610b6057604051631e4fbdf760e01b815260006004820152602401610566565b6104de81611054565b33610b9b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146105025760405163118cdaa760e01b8152336004820152602401610566565b6001600160a01b038116610c1a5760405162461bcd60e51b815260206004820152601960248201527f4f6d6e6947617350756d703a207a65726f2061646472657373000000000000006044820152606401610566565b603380546001600160a01b0319166001600160a01b0383169081179091556040519081527ffd263e3b7583e8397be8a61710d1105cf8c0f111bbac1014d0ec7dbcd1e422f1906020015b60405180910390a150565b60008111610cb75760405162461bcd60e51b815260206004820152601560248201527409edadcd28ec2e6a0eadae07440f4cae4de40dac2f605b1b6044820152606401610566565b60348190556040518181527f343ecf9262f8cafd2e9b0ffdab9f14bf18a17899eeef3e41133e84c354e5298390602001610c64565b610cf46113ad565b600080516020611790833981519152805460ff191681557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b039091168152602001610c64565b6000805160206117908339815191525460ff16156105025760405163d93c066560e01b815260040160405180910390fd5b6032546000906001600160a01b0316638b7bfd70610d93610e8d565b6040516001600160e01b031960e084901b16815267ffffffffffffffff9091166004820152602401602060405180830381865afa158015610dd8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dfc91906116c5565b603260009054906101000a90046001600160a01b03166001600160a01b0316638f9d6ace6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e4f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e7391906116c5565b610e7d9084611679565b610e879190611690565b92915050565b60008060009054906101000a90046001600160a01b03166001600160a01b031663110ff5f16040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ee1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f0591906116de565b905090565b60008054604051632376548f60e21b815282916001600160a01b031690638dd9523c90610f3f908a9088908890600401611708565b602060405180830381865afa158015610f5c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f8091906116c5565b90508047101580610f915750803410155b610fdd5760405162461bcd60e51b815260206004820152601860248201527f584170703a20696e73756666696369656e742066756e647300000000000000006044820152606401610566565b60005460405163c21dda4f60e01b81526001600160a01b039091169063c21dda4f908390611017908b908b908b908b908b9060040161173f565b6000604051808303818588803b15801561103057600080fd5b505af1158015611044573d6000803e3d6000fd5b50939a9950505050505050505050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6001600160a01b03811661111b5760405162461bcd60e51b815260206004820152601860248201527f4f6d6e6947617350756d703a207a65726f206f7261636c6500000000000000006044820152606401610566565b603280546001600160a01b0319166001600160a01b0383169081179091556040519081527f3f32684a32a11dabdbb8c0177de80aa3ae36a004d75210335b49e544e48cd0aa90602001610c64565b611171610d46565b600080516020611790833981519152805460ff191660011781557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833610d2e565b60008054604051632376548f60e21b81526001600160a01b0390911690638dd9523c906111e790879087908790600401611708565b602060405180830381865afa158015611204573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061122891906116c5565b949350505050565b6103e881106112815760405162461bcd60e51b815260206004820152601960248201527f4f6d6e6947617350756d703a2070637420746f6f2068696768000000000000006044820152606401610566565b60358190556040518181527f0b3d400288f60ce0f5632cd941b5748faa91ebea844cbe78c5180b7838a0933f90602001610c64565b6112be6113dd565b6112c782611426565b6107c7816114bf565b6112d86113dd565b6104de81611562565b603254604080516347ceb56760e11b815290516000926001600160a01b031691638f9d6ace9160048083019260209291908290030181865afa15801561132b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061134f91906116c5565b6032546001600160a01b0316638b7bfd70611368610e8d565b6040516001600160e01b031960e084901b16815267ffffffffffffffff9091166004820152602401602060405180830381865afa158015610e4f573d6000803e3d6000fd5b6000805160206117908339815191525460ff1661050257604051638dfc202b60e01b815260040160405180910390fd5b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff1661050257604051631afcd79f60e31b815260040160405180910390fd5b6001600160a01b0381166114715760405162461bcd60e51b8152602060048201526012602482015271584170703a206e6f207a65726f206f6d6e6960701b6044820152606401610566565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f79162c8d053a07e70cdc1ccc536f0440b571f8508377d2bef51094fadab98f4790602001610c64565b6114c88161156a565b6115145760405162461bcd60e51b815260206004820152601860248201527f584170703a20696e76616c696420636f6e66206c6576656c00000000000000006044820152606401610566565b6000805460ff60a01b1916600160a01b60ff8416908102919091179091556040519081527f8de08a798b4e50b4f351c1eaa91a11530043802be3ffac2df87db0c45a2e848390602001610c64565b610b366113dd565b600060ff821660011480610e87575060ff821660041492915050565b60006020828403121561159857600080fd5b81356001600160a01b0381168114610b2757600080fd5b6000602082840312156115c157600080fd5b5035919050565b6000815180845260005b818110156115ee576020818501810151868301820152016115d2565b506000602082860101526020601f19601f83011685010191505092915050565b838152821515602082015260606040820152600061162f60608301846115c8565b95945050505050565b600060c0828403121561164a57600080fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610e8757610e87611650565b8082028115828204841417610e8757610e87611650565b6000826116ad57634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115610e8757610e87611650565b6000602082840312156116d757600080fd5b5051919050565b6000602082840312156116f057600080fd5b815167ffffffffffffffff81168114610b2757600080fd5b600067ffffffffffffffff80861683526060602084015261172c60608401866115c8565b9150808416604084015250949350505050565b600067ffffffffffffffff808816835260ff8716602084015260018060a01b038616604084015260a0606084015261177a60a08401866115c8565b9150808416608084015250969550505050505056fecd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300a2646970667358221220db3afee95b5f02747709ab40a8dbb5711d7dd984d281ab53aae879edb30aba9b64736f6c63430008180033", } // OmniGasPumpABI is the input ABI used to generate the binding from. diff --git a/contracts/core/.gas-snapshot b/contracts/core/.gas-snapshot index 7e6170a6a..b60a540f4 100644 --- a/contracts/core/.gas-snapshot +++ b/contracts/core/.gas-snapshot @@ -24,12 +24,13 @@ OmniBridgeNative_Test:test_pauseAll() (gas: 42776) OmniBridgeNative_Test:test_pauseBridging() (gas: 36477) OmniBridgeNative_Test:test_pauseWithdraws() (gas: 52062) OmniBridgeNative_Test:test_withdraw() (gas: 262456) +OmniGasPump_Test:testFuzz_quote(uint32) (runs: 258, μ: 63808, ~: 63857) OmniGasPump_Test:test_fillUp() (gas: 230967) -OmniGasPump_Test:test_pause() (gas: 62653) -OmniGasPump_Test:test_setMaxSwap() (gas: 34771) +OmniGasPump_Test:test_pause() (gas: 62701) +OmniGasPump_Test:test_setMaxSwap() (gas: 34749) OmniGasPump_Test:test_setOmniGasStation() (gas: 36697) -OmniGasPump_Test:test_setOracle() (gas: 35014) -OmniGasPump_Test:test_setToll() (gas: 34880) +OmniGasPump_Test:test_setOracle() (gas: 34992) +OmniGasPump_Test:test_setToll() (gas: 32168) OmniGasStation_Test:test_pause() (gas: 65220) OmniGasStation_Test:test_setPump() (gas: 83966) OmniGasStation_Test:test_settleUp() (gas: 365260) diff --git a/contracts/core/src/token/OmniGasPump.sol b/contracts/core/src/token/OmniGasPump.sol index fc8543144..3b8e8e502 100644 --- a/contracts/core/src/token/OmniGasPump.sol +++ b/contracts/core/src/token/OmniGasPump.sol @@ -1,6 +1,8 @@ // SPDX-License-Identifier: GPL-3.0-only pragma solidity 0.8.24; +// solhint-disable no-console + import { OwnableUpgradeable } from "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol"; import { PausableUpgradeable } from "@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.sol"; import { XAppUpgradeable } from "src/pkg/XAppUpgradeable.sol"; @@ -132,7 +134,7 @@ contract OmniGasPump is XAppUpgradeable, OwnableUpgradeable, PausableUpgradeable // take xcall fee uint256 f = xfee(); if (amtETH < f) return (0, false, "insufficient fee"); - amtETH = amtETH - f; + amtETH -= f; // check max if (amtETH > maxSwap) return (0, false, "over max"); @@ -161,7 +163,7 @@ contract OmniGasPump is XAppUpgradeable, OwnableUpgradeable, PausableUpgradeable uint256 amtETH = _toEth(amtOMNI); // "undo" toll - amtETH += (amtETH * TOLL_DENOM / (TOLL_DENOM - toll)); + amtETH = (amtETH * TOLL_DENOM / (TOLL_DENOM - toll)); // "undo" xcall fee return amtETH + xfee(); diff --git a/contracts/core/test/token/OmniGasPump.t.sol b/contracts/core/test/token/OmniGasPump.t.sol index 386858c9c..3ab5256f0 100644 --- a/contracts/core/test/token/OmniGasPump.t.sol +++ b/contracts/core/test/token/OmniGasPump.t.sol @@ -24,7 +24,7 @@ contract OmniGasPump_Test is Test { address gasStation; address feeOracleMngr; uint256 maxSwap = 2 ether; - uint256 toll = 50; // 5% + uint256 toll = 100; // 10% function setUp() public { portal = new MockPortal(); @@ -254,4 +254,22 @@ contract OmniGasPump_Test is Test { vm.expectRevert("OmniGasPump: insufficient fee"); // reverts, but not becasue its paused pump.fillUp(recipient); } + + /// @notice Test that GasPump.quote is accurate + function testFuzz_quote(uint32 _targetOMNI) public view { + uint256 targetOMNI = bound(_targetOMNI, 0.1 ether, 10 ether); + uint256 neededETH = pump.quote(targetOMNI); + + (uint256 dryRunOMNI, bool wouldSucceed, string memory reason) = pump.dryFillUp(neededETH); + + assertTrue(wouldSucceed, reason); + + // assert quoted and actual within 10 wei of each other + // allows for rounding errors in different between taking / undoing toll + _assertWithinEpsilon(dryRunOMNI, targetOMNI, 10); + } + + function _assertWithinEpsilon(uint256 a, uint256 b, uint256 epsilon) internal pure { + assertTrue(a >= b - epsilon && a <= b + epsilon); + } } diff --git a/e2e/app/gaspump.go b/e2e/app/gaspump.go index 181953b9b..03bcfecc8 100644 --- a/e2e/app/gaspump.go +++ b/e2e/app/gaspump.go @@ -15,6 +15,7 @@ import ( "github.com/omni-network/omni/lib/netconf" "github.com/omni-network/omni/lib/txmgr" + "github.com/ethereum/go-ethereum/accounts/abi/bind" "github.com/ethereum/go-ethereum/common" ethtypes "github.com/ethereum/go-ethereum/core/types" "github.com/ethereum/go-ethereum/params" @@ -157,23 +158,23 @@ func maybeTxHash(receipt *ethtypes.Receipt) string { } type GasPumpTest struct { - Recipient common.Address - AmountETH *big.Int + Recipient common.Address + TargetOMNI *big.Int } var ( GasPumpTests = []GasPumpTest{ { - Recipient: common.HexToAddress("0x0000000000000000000000000000000000001111"), - AmountETH: big.NewInt(5000000000000000), // 0.005 ETH + Recipient: common.HexToAddress("0x0000000000000000000000000000000000001111"), + TargetOMNI: big.NewInt(5000000000000000), // 0.005 OMNI }, { - Recipient: common.HexToAddress("0x0000000000000000000000000000000000002222"), - AmountETH: big.NewInt(10000000000000000), // 0.01 ETH + Recipient: common.HexToAddress("0x0000000000000000000000000000000000002222"), + TargetOMNI: big.NewInt(10000000000000000), // 0.01 OMNI }, { - Recipient: common.HexToAddress("0x0000000000000000000000000000000000003333"), - AmountETH: big.NewInt(15000000000000000), // 0.015 ETH + Recipient: common.HexToAddress("0x0000000000000000000000000000000000003333"), + TargetOMNI: big.NewInt(15000000000000000), // 0.015 OMNI }, } ) @@ -217,13 +218,31 @@ func testGasPumps(ctx context.Context, def Definition) error { } for _, test := range GasPumpTests { - txOpts.Value = test.AmountETH + neededETH, err := gasPump.Quote(&bind.CallOpts{Context: ctx}, test.TargetOMNI) + if err != nil { + return errors.Wrap(err, "quote", "chain", chain.Name) + } + + actualOMNI, wouldSucceed, revertReason, err := gasPump.DryFillUp(&bind.CallOpts{Context: ctx}, neededETH) + if err != nil { + return errors.Wrap(err, "dry fill up", "chain", chain.Name, "needed_eth", neededETH) + } + + if !wouldSucceed { + return errors.New("dry fill up failed", "chain", chain.Name, "revert_reason", revertReason) + } + + if actualOMNI.Cmp(test.TargetOMNI) != 0 { + return errors.New("inaccurate quote", "chain", chain.Name, "actual_omni", actualOMNI, "provided_eth", neededETH, "target_omni", test.TargetOMNI) + } + + txOpts.Value = neededETH tx, err := gasPump.FillUp(txOpts, test.Recipient) if err != nil { - return errors.Wrap(err, "pump", "chain", chain.Name) + return errors.Wrap(err, "pump", "chain", chain.Name, "recipient", test.Recipient.Hex(), "target_omni", test.TargetOMNI, "needed_eth", neededETH) } - log.Info(ctx, "Pumped gas", "chain", chain.Name, "tx", tx.Hash(), "recipient", test.Recipient.Hex(), "amount", test.AmountETH) + log.Info(ctx, "Pumped gas", "chain", chain.Name, "tx", tx.Hash(), "recipient", test.Recipient.Hex(), "target_omni", test.TargetOMNI, "needed_eth", neededETH) } } diff --git a/e2e/test/gaspump_test.go b/e2e/test/gaspump_test.go index 6e1621f41..026b8e903 100644 --- a/e2e/test/gaspump_test.go +++ b/e2e/test/gaspump_test.go @@ -2,6 +2,7 @@ package e2e_test import ( "context" + "math/big" "testing" "github.com/omni-network/omni/e2e/app" @@ -9,6 +10,8 @@ import ( "github.com/omni-network/omni/lib/netconf" "github.com/omni-network/omni/lib/xchain" + "github.com/ethereum/go-ethereum/common" + "github.com/stretchr/testify/require" ) @@ -28,14 +31,30 @@ func TestGasPumps(t *testing.T) { omniClient, err := ethclient.Dial(omniEVM.Name, omniRPC) require.NoError(t, err) + // Sum targetOMNI for each chain / test case pair + // Each test case is run on per chain, except for OmniEVM + + totalTargetOMNI := make(map[common.Address]*big.Int) + for _, chain := range network.EVMChains() { + // skip OmniEVM + if chain.ID == omniEVM.ID { + continue + } + + for _, test := range app.GasPumpTests { + current, ok := totalTargetOMNI[test.Recipient] + if !ok { + current = big.NewInt(0) + } + + totalTargetOMNI[test.Recipient] = new(big.Int).Add(current, test.TargetOMNI) + } + } + for _, test := range app.GasPumpTests { balance, err := omniClient.BalanceAt(ctx, test.Recipient, nil) require.NoError(t, err) - - // Just test that balance > 0 for now - // TODO: assert that amount is equal to sum of AmountETH spent converted to OMNI - // Should account for the xcall fee, gas pump toll, and fee oracle conversion rates - require.Positive(t, balance.Uint64(), "recipient: %s", test.Recipient) + require.Equalf(t, totalTargetOMNI[test.Recipient], balance, "recipient: %s", test.Recipient.Hex()) } }) } diff --git a/lib/contracts/gaspump/deploy.go b/lib/contracts/gaspump/deploy.go index 89e26e093..a974025e9 100644 --- a/lib/contracts/gaspump/deploy.go +++ b/lib/contracts/gaspump/deploy.go @@ -125,7 +125,7 @@ func Deploy(ctx context.Context, network netconf.ID, backend *ethbackend.Backend GasStation: contracts.GasStation(network), Oracle: oracle, MaxSwap: big.NewInt(20000000000000000), // 0.02 ETH - Toll: big.NewInt(10), // 10 / 1000 = 0.1% (1000 = GasPump.TOLL_DENOM), + Toll: big.NewInt(100), // 100 / 1000 = 0.1 = 10% (1000 = GasPump.TOLL_DENOM), ExpectedAddr: contracts.GasPump(network), }