From fee480193e2a562e92ef0d12dd0726e02bf74d08 Mon Sep 17 00:00:00 2001 From: Steven Allen Date: Mon, 13 Mar 2023 21:59:16 -0700 Subject: [PATCH 1/3] feat: apply gateway lookback limit to eth API lookback This change: 1. Introduces new "limited" API endpoints for EthGetTransactionByHash and EthGetTransactionReceipt that accept lookback-limits. 2. Implements the gateway version of these API endpoints by calling the limited variants with the default message search lookback limit. fixes #10412 --- api/api_full.go | 2 + api/mocks/mock_full.go | 30 +++++++ api/proxy_gen.go | 26 ++++++ build/openrpc/full.json.gz | Bin 33618 -> 33805 bytes build/openrpc/gateway.json.gz | Bin 9079 -> 9078 bytes build/openrpc/miner.json.gz | Bin 15864 -> 15865 bytes build/openrpc/worker.json.gz | Bin 5225 -> 5223 bytes documentation/en/api-v1-unstable-methods.md | 89 ++++++++++++++++++++ gateway/node.go | 4 +- gateway/proxy_eth.go | 4 +- node/impl/full/dummy.go | 9 ++ node/impl/full/eth.go | 13 ++- 12 files changed, 171 insertions(+), 6 deletions(-) diff --git a/api/api_full.go b/api/api_full.go index 37e197ab3a1..6ce061865ef 100644 --- a/api/api_full.go +++ b/api/api_full.go @@ -797,10 +797,12 @@ type FullNode interface { EthGetBlockByHash(ctx context.Context, blkHash ethtypes.EthHash, fullTxInfo bool) (ethtypes.EthBlock, error) //perm:read EthGetBlockByNumber(ctx context.Context, blkNum string, fullTxInfo bool) (ethtypes.EthBlock, error) //perm:read EthGetTransactionByHash(ctx context.Context, txHash *ethtypes.EthHash) (*ethtypes.EthTx, error) //perm:read + EthGetTransactionByHashLimited(ctx context.Context, txHash *ethtypes.EthHash, limit abi.ChainEpoch) (*ethtypes.EthTx, error) //perm:read EthGetTransactionHashByCid(ctx context.Context, cid cid.Cid) (*ethtypes.EthHash, error) //perm:read EthGetMessageCidByTransactionHash(ctx context.Context, txHash *ethtypes.EthHash) (*cid.Cid, error) //perm:read EthGetTransactionCount(ctx context.Context, sender ethtypes.EthAddress, blkOpt string) (ethtypes.EthUint64, error) //perm:read EthGetTransactionReceipt(ctx context.Context, txHash ethtypes.EthHash) (*EthTxReceipt, error) //perm:read + EthGetTransactionReceiptLimited(ctx context.Context, txHash ethtypes.EthHash, limit abi.ChainEpoch) (*EthTxReceipt, error) //perm:read EthGetTransactionByBlockHashAndIndex(ctx context.Context, blkHash ethtypes.EthHash, txIndex ethtypes.EthUint64) (ethtypes.EthTx, error) //perm:read EthGetTransactionByBlockNumberAndIndex(ctx context.Context, blkNum ethtypes.EthUint64, txIndex ethtypes.EthUint64) (ethtypes.EthTx, error) //perm:read diff --git a/api/mocks/mock_full.go b/api/mocks/mock_full.go index fc7ff558834..83efbffdb27 100644 --- a/api/mocks/mock_full.go +++ b/api/mocks/mock_full.go @@ -1296,6 +1296,21 @@ func (mr *MockFullNodeMockRecorder) EthGetTransactionByHash(arg0, arg1 interface return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "EthGetTransactionByHash", reflect.TypeOf((*MockFullNode)(nil).EthGetTransactionByHash), arg0, arg1) } +// EthGetTransactionByHashLimited mocks base method. +func (m *MockFullNode) EthGetTransactionByHashLimited(arg0 context.Context, arg1 *ethtypes.EthHash, arg2 abi.ChainEpoch) (*ethtypes.EthTx, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "EthGetTransactionByHashLimited", arg0, arg1, arg2) + ret0, _ := ret[0].(*ethtypes.EthTx) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// EthGetTransactionByHashLimited indicates an expected call of EthGetTransactionByHashLimited. +func (mr *MockFullNodeMockRecorder) EthGetTransactionByHashLimited(arg0, arg1, arg2 interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "EthGetTransactionByHashLimited", reflect.TypeOf((*MockFullNode)(nil).EthGetTransactionByHashLimited), arg0, arg1, arg2) +} + // EthGetTransactionCount mocks base method. func (m *MockFullNode) EthGetTransactionCount(arg0 context.Context, arg1 ethtypes.EthAddress, arg2 string) (ethtypes.EthUint64, error) { m.ctrl.T.Helper() @@ -1341,6 +1356,21 @@ func (mr *MockFullNodeMockRecorder) EthGetTransactionReceipt(arg0, arg1 interfac return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "EthGetTransactionReceipt", reflect.TypeOf((*MockFullNode)(nil).EthGetTransactionReceipt), arg0, arg1) } +// EthGetTransactionReceiptLimited mocks base method. +func (m *MockFullNode) EthGetTransactionReceiptLimited(arg0 context.Context, arg1 ethtypes.EthHash, arg2 abi.ChainEpoch) (*api.EthTxReceipt, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "EthGetTransactionReceiptLimited", arg0, arg1, arg2) + ret0, _ := ret[0].(*api.EthTxReceipt) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// EthGetTransactionReceiptLimited indicates an expected call of EthGetTransactionReceiptLimited. +func (mr *MockFullNodeMockRecorder) EthGetTransactionReceiptLimited(arg0, arg1, arg2 interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "EthGetTransactionReceiptLimited", reflect.TypeOf((*MockFullNode)(nil).EthGetTransactionReceiptLimited), arg0, arg1, arg2) +} + // EthMaxPriorityFeePerGas mocks base method. func (m *MockFullNode) EthMaxPriorityFeePerGas(arg0 context.Context) (ethtypes.EthBigInt, error) { m.ctrl.T.Helper() diff --git a/api/proxy_gen.go b/api/proxy_gen.go index 24b11df3f16..dbae138a929 100644 --- a/api/proxy_gen.go +++ b/api/proxy_gen.go @@ -290,12 +290,16 @@ type FullNodeMethods struct { EthGetTransactionByHash func(p0 context.Context, p1 *ethtypes.EthHash) (*ethtypes.EthTx, error) `perm:"read"` + EthGetTransactionByHashLimited func(p0 context.Context, p1 *ethtypes.EthHash, p2 abi.ChainEpoch) (*ethtypes.EthTx, error) `perm:"read"` + EthGetTransactionCount func(p0 context.Context, p1 ethtypes.EthAddress, p2 string) (ethtypes.EthUint64, error) `perm:"read"` EthGetTransactionHashByCid func(p0 context.Context, p1 cid.Cid) (*ethtypes.EthHash, error) `perm:"read"` EthGetTransactionReceipt func(p0 context.Context, p1 ethtypes.EthHash) (*EthTxReceipt, error) `perm:"read"` + EthGetTransactionReceiptLimited func(p0 context.Context, p1 ethtypes.EthHash, p2 abi.ChainEpoch) (*EthTxReceipt, error) `perm:"read"` + EthMaxPriorityFeePerGas func(p0 context.Context) (ethtypes.EthBigInt, error) `perm:"read"` EthNewBlockFilter func(p0 context.Context) (ethtypes.EthFilterID, error) `perm:"write"` @@ -2274,6 +2278,17 @@ func (s *FullNodeStub) EthGetTransactionByHash(p0 context.Context, p1 *ethtypes. return nil, ErrNotSupported } +func (s *FullNodeStruct) EthGetTransactionByHashLimited(p0 context.Context, p1 *ethtypes.EthHash, p2 abi.ChainEpoch) (*ethtypes.EthTx, error) { + if s.Internal.EthGetTransactionByHashLimited == nil { + return nil, ErrNotSupported + } + return s.Internal.EthGetTransactionByHashLimited(p0, p1, p2) +} + +func (s *FullNodeStub) EthGetTransactionByHashLimited(p0 context.Context, p1 *ethtypes.EthHash, p2 abi.ChainEpoch) (*ethtypes.EthTx, error) { + return nil, ErrNotSupported +} + func (s *FullNodeStruct) EthGetTransactionCount(p0 context.Context, p1 ethtypes.EthAddress, p2 string) (ethtypes.EthUint64, error) { if s.Internal.EthGetTransactionCount == nil { return *new(ethtypes.EthUint64), ErrNotSupported @@ -2307,6 +2322,17 @@ func (s *FullNodeStub) EthGetTransactionReceipt(p0 context.Context, p1 ethtypes. return nil, ErrNotSupported } +func (s *FullNodeStruct) EthGetTransactionReceiptLimited(p0 context.Context, p1 ethtypes.EthHash, p2 abi.ChainEpoch) (*EthTxReceipt, error) { + if s.Internal.EthGetTransactionReceiptLimited == nil { + return nil, ErrNotSupported + } + return s.Internal.EthGetTransactionReceiptLimited(p0, p1, p2) +} + +func (s *FullNodeStub) EthGetTransactionReceiptLimited(p0 context.Context, p1 ethtypes.EthHash, p2 abi.ChainEpoch) (*EthTxReceipt, error) { + return nil, ErrNotSupported +} + func (s *FullNodeStruct) EthMaxPriorityFeePerGas(p0 context.Context) (ethtypes.EthBigInt, error) { if s.Internal.EthMaxPriorityFeePerGas == nil { return *new(ethtypes.EthBigInt), ErrNotSupported diff --git a/build/openrpc/full.json.gz b/build/openrpc/full.json.gz index aec3cf7b3efcab1a5f8c0a3478f095ee4bdf20af..d15fd5b6deee8f0610a4432f583e1c10407d87a5 100644 GIT binary patch delta 33464 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 diff --git a/build/openrpc/gateway.json.gz b/build/openrpc/gateway.json.gz index 575f79a1a7cd242d8649fef67c3dc5c3aa978551..06583cf0624ca65bb3fc9d67ddd6a3cd34bc7e71 100644 GIT binary patch delta 6151 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 ZgTDIk@Z;hC4Fv!I|Nomr(i%eJ0RVR^#V!B< delta 6153 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 bmmhRT>chj2hyNE000960jJJ`@LgN7dHjUxP diff --git a/build/openrpc/miner.json.gz b/build/openrpc/miner.json.gz index 5ea8edb34ddbc254334f6f50535476feee74f1ff..1a4946ee049ec852b606f727107f93a941c79635 100644 GIT binary patch delta 12496 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 ajGr7CkB?s-|6c$A0RR88!|37a5(5C*Y%U}K delta 12494 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 diff --git a/build/openrpc/worker.json.gz b/build/openrpc/worker.json.gz index ab8a27e92c9bf117a0b679f62a3025213f390801..0e0734c8db511306cf9dbc9137cf74f26f2028df 100644 GIT binary patch delta 2881 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 delta 2911 zcmV-l3!wDpDCsD$3m%%xV(6(0N$zO#I`Me-nf9y zO)?P^l(GH00r=*06Y^iI6aROzW&r+=qvdS8;I zeS=+B;p~;$+fT_P-US6+Z1f`wXw}XKZhb<0xkR#T_VTA2E2AmNJ)9aH!{oMpb)&E zpH*FBBp|14tSy2Fw8U7Si3kW>5V-K#aA7zo#)WV!ssTcfxp^cA@;40u+tvu*-y(w) zzF+u$;rlE3{?Ra#5(Vvl^zo<|(f`84v>z|*D_RlCcLfwhOkbiIW-=m^rS$!*kK^p! zN2U!7xE&4LL?U`FY>x)2ayEySg~%+}Cd7o5+xPRb(k>w}?FB)e7o!6^!7hEHE<+4< zc}g*YWEGXTL97FlJBzHLjS_^M!D(!>YSc(Xc0`RD3@2BVMt0hN_UL@M54aej_+HeW zN~fcZkKMwF?7v3lS>XHYKv`MZiFkUWt9P;#?iBjv6TP4`ZPDlf6vjsKYZ|2{T@3G zYs*b8xxM3LtZ{j&WGrWM(Y8HF3uI!yZzh;Pcl9eVY?GNY^PL_V=n;=n6g9i;k7|Lt z&o=vwJI7Z>gh$GFFA*k~%noD1n-ZRj3TIN_n>&XU+Km)DUyAu|gfF1JsiLbg-bhD1 zYcQRlyMpctx+~~z7TtZl)G_6@GmJ8wqLdkOal^_sax@xOgUYp(52;GCwg+SP2%Y@W3U8*$ERqYJ zHWD{-Jw%Rxh1Vm+)0Mi9#dib4f5Egj9*rg)G}V-jZVpjrq9LO*h68mt)hDnIN0Kc4 zh45@ngPR?`+6J`zic;50oI!Hsue$}>%zjeaJ^bFIO|eB@jbNw5k0ILYtQ}F1w8hAl|8O*|a?aVNtwE~ZGM8b5p#0lyH9)<Zpne3WZUS} z@I>E~xVWkmTWI8BtNr-@I?QaK=bG6Ax(qh8gNx77Gnc)#mMnpH-e_R6dxlN_vdP`w z`sQ!W>0^dKO-&=S+y1Qge@KdH<;$8@hC01}7MXdyVZ5v}Yyy{6?;%2&tMiaG?F4Bi zj5rx#8PGIc7MyxK0)uq?Ax-{&UWy5Iz=Vilc&1_f(PCt@2tm{umuw_A?-*^WTX7%|9vzkGe zSrY|mZi(#+()`8=fFR8;U}OYoZtKYO3(zMEyvyycr0=wkZ-1nuuJICo!TtsNf645B zG{|QEm&iiUL)U(Ae?KxgnSUZTFYAx)wq8Oq;|-chRNoYVPq$J8PqoZk+d$Y;+FUkj z;P>g&LzIn_s>{+9{)vLWtMBe_N-WduL4D7EiSZ#;64DGyHJ z1c#7t{`q|XkJ;$R3dsgV9`FlAVO3}2-6n4N1pH3t$mI&Le<%XLXgf<!!s;@}xGS{>yb=Y=NT%;z!FxK$s`jWuJme_C`F!2qnD~XjBv2P}biXbZW z5S4z;!Cx`Rtui~`Wv)I!-(h~WIr>h9XJIB{rrtt>Z38RG(dd^*O#}uC418@EILJ8@ zui9aFho6Gi)bV%w&b|AJ?@{6`KN){amK1Cc#3NzIcjS~iW(6kp;KX8eixckN$O(7j zVa^G6SBU;fd~M*in@z?%!Z@*QtKg%9T>*!Fcn}k%;Nyc`g$wB3dw|Z-#wwr(Q1I?# zV;x=an@s_oL-r5$fQKl>WOhpya0Mv5M*xB;dITOaY+`zV+JL!tID-_i9~6Ij_kgLp zxwLBh)PePCDWhT<8et8aV_C(w1f^|elyeTw)qF`!`;i-I!fcsPlW!(ru7izaS9`X3 z{Ndu+47tDy6CR8XZ%$vvIbTkPUp;*^P5s+OEHSr+1Pa+?)JvCdZ+;?lh_d=8q>@99xvA62e`#Z0f&0VNKv(_lkktPTEo?o z6cSEw_oDL$8b$g?lbyS>xGkw4W2~_6PLtKL?9noR%5M znM=YDv?%oMJ-?dZ+QVF1jFfk%1;#~do`R)+npu*Lg;%E={%+%mDk#|@8a~L0l3-&J zECE+g@E~Jt`W+Nkhk9=X6WaYIw0oGd|G60x-U|S?`3j~QsexxSdTG$7bJ^Nwgsau&J66rgjvR1^(?;I_Gg*Shz#B70U+n7+*HWMfxMOE;!<`n29N1u2Yw zP1_iZ;@#-ZH)SY>AX1H`o%j zj%K6}jd*omYorfg5Z3~TyR<~Gst8tpt&MPwb7F`>TjnI2VXo|n+SWbfQ@t=r0nH0j zaIw3cRE_NPA#m4QBIZI=HmV`0@k2aCln0+u^@h@VeYgJq0000A|Nq2T JA4RP$0Ra9Ftt9{e diff --git a/documentation/en/api-v1-unstable-methods.md b/documentation/en/api-v1-unstable-methods.md index aedfbfce014..8d95c7e0cd2 100644 --- a/documentation/en/api-v1-unstable-methods.md +++ b/documentation/en/api-v1-unstable-methods.md @@ -91,9 +91,11 @@ * [EthGetTransactionByBlockHashAndIndex](#EthGetTransactionByBlockHashAndIndex) * [EthGetTransactionByBlockNumberAndIndex](#EthGetTransactionByBlockNumberAndIndex) * [EthGetTransactionByHash](#EthGetTransactionByHash) + * [EthGetTransactionByHashLimited](#EthGetTransactionByHashLimited) * [EthGetTransactionCount](#EthGetTransactionCount) * [EthGetTransactionHashByCid](#EthGetTransactionHashByCid) * [EthGetTransactionReceipt](#EthGetTransactionReceipt) + * [EthGetTransactionReceiptLimited](#EthGetTransactionReceiptLimited) * [EthMaxPriorityFeePerGas](#EthMaxPriorityFeePerGas) * [EthNewBlockFilter](#EthNewBlockFilter) * [EthNewFilter](#EthNewFilter) @@ -2810,6 +2812,45 @@ Response: } ``` +### EthGetTransactionByHashLimited + + +Perms: read + +Inputs: +```json +[ + "0x37690cfec6c1bf4c3b9288c7a5d783e98731e90b0a4c177c2a374c7a9427355e", + 10101 +] +``` + +Response: +```json +{ + "chainId": "0x5", + "nonce": "0x5", + "hash": "0x37690cfec6c1bf4c3b9288c7a5d783e98731e90b0a4c177c2a374c7a9427355e", + "blockHash": "0x37690cfec6c1bf4c3b9288c7a5d783e98731e90b0a4c177c2a374c7a9427355e", + "blockNumber": "0x5", + "transactionIndex": "0x5", + "from": "0x5cbeecf99d3fdb3f25e309cc264f240bb0664031", + "to": "0x5cbeecf99d3fdb3f25e309cc264f240bb0664031", + "value": "0x0", + "type": "0x5", + "input": "0x07", + "gas": "0x5", + "maxFeePerGas": "0x0", + "maxPriorityFeePerGas": "0x0", + "accessList": [ + "0x37690cfec6c1bf4c3b9288c7a5d783e98731e90b0a4c177c2a374c7a9427355e" + ], + "v": "0x0", + "r": "0x0", + "s": "0x0" +} +``` + ### EthGetTransactionCount @@ -2888,6 +2929,54 @@ Response: } ``` +### EthGetTransactionReceiptLimited + + +Perms: read + +Inputs: +```json +[ + "0x37690cfec6c1bf4c3b9288c7a5d783e98731e90b0a4c177c2a374c7a9427355e", + 10101 +] +``` + +Response: +```json +{ + "transactionHash": "0x37690cfec6c1bf4c3b9288c7a5d783e98731e90b0a4c177c2a374c7a9427355e", + "transactionIndex": "0x5", + "blockHash": "0x37690cfec6c1bf4c3b9288c7a5d783e98731e90b0a4c177c2a374c7a9427355e", + "blockNumber": "0x5", + "from": "0x5cbeecf99d3fdb3f25e309cc264f240bb0664031", + "to": "0x5cbeecf99d3fdb3f25e309cc264f240bb0664031", + "root": "0x37690cfec6c1bf4c3b9288c7a5d783e98731e90b0a4c177c2a374c7a9427355e", + "status": "0x5", + "contractAddress": "0x5cbeecf99d3fdb3f25e309cc264f240bb0664031", + "cumulativeGasUsed": "0x5", + "gasUsed": "0x5", + "effectiveGasPrice": "0x0", + "logsBloom": "0x07", + "logs": [ + { + "address": "0x5cbeecf99d3fdb3f25e309cc264f240bb0664031", + "data": "0x07", + "topics": [ + "0x37690cfec6c1bf4c3b9288c7a5d783e98731e90b0a4c177c2a374c7a9427355e" + ], + "removed": true, + "logIndex": "0x5", + "transactionIndex": "0x5", + "transactionHash": "0x37690cfec6c1bf4c3b9288c7a5d783e98731e90b0a4c177c2a374c7a9427355e", + "blockHash": "0x37690cfec6c1bf4c3b9288c7a5d783e98731e90b0a4c177c2a374c7a9427355e", + "blockNumber": "0x5" + } + ], + "type": "0x5" +} +``` + ### EthMaxPriorityFeePerGas diff --git a/gateway/node.go b/gateway/node.go index 494aa2dc87e..b263a75bdc6 100644 --- a/gateway/node.go +++ b/gateway/node.go @@ -101,11 +101,11 @@ type TargetAPI interface { EthGetBlockTransactionCountByHash(ctx context.Context, blkHash ethtypes.EthHash) (ethtypes.EthUint64, error) EthGetBlockByHash(ctx context.Context, blkHash ethtypes.EthHash, fullTxInfo bool) (ethtypes.EthBlock, error) EthGetBlockByNumber(ctx context.Context, blkNum string, fullTxInfo bool) (ethtypes.EthBlock, error) - EthGetTransactionByHash(ctx context.Context, txHash *ethtypes.EthHash) (*ethtypes.EthTx, error) + EthGetTransactionByHashLimited(ctx context.Context, txHash *ethtypes.EthHash, limit abi.ChainEpoch) (*ethtypes.EthTx, error) EthGetTransactionHashByCid(ctx context.Context, cid cid.Cid) (*ethtypes.EthHash, error) EthGetMessageCidByTransactionHash(ctx context.Context, txHash *ethtypes.EthHash) (*cid.Cid, error) EthGetTransactionCount(ctx context.Context, sender ethtypes.EthAddress, blkOpt string) (ethtypes.EthUint64, error) - EthGetTransactionReceipt(ctx context.Context, txHash ethtypes.EthHash) (*api.EthTxReceipt, error) + EthGetTransactionReceiptLimited(ctx context.Context, txHash ethtypes.EthHash, limit abi.ChainEpoch) (*api.EthTxReceipt, error) EthGetTransactionByBlockHashAndIndex(ctx context.Context, blkHash ethtypes.EthHash, txIndex ethtypes.EthUint64) (ethtypes.EthTx, error) EthGetTransactionByBlockNumberAndIndex(ctx context.Context, blkNum ethtypes.EthUint64, txIndex ethtypes.EthUint64) (ethtypes.EthTx, error) EthGetCode(ctx context.Context, address ethtypes.EthAddress, blkOpt string) (ethtypes.EthBytes, error) diff --git a/gateway/proxy_eth.go b/gateway/proxy_eth.go index e6f266d550f..7e1659f0873 100644 --- a/gateway/proxy_eth.go +++ b/gateway/proxy_eth.go @@ -149,7 +149,7 @@ func (gw *Node) EthGetTransactionByHash(ctx context.Context, txHash *ethtypes.Et return nil, err } - return gw.target.EthGetTransactionByHash(ctx, txHash) + return gw.target.EthGetTransactionByHashLimited(ctx, txHash, gw.stateWaitLookbackLimit) } func (gw *Node) EthGetTransactionHashByCid(ctx context.Context, cid cid.Cid) (*ethtypes.EthHash, error) { @@ -185,7 +185,7 @@ func (gw *Node) EthGetTransactionReceipt(ctx context.Context, txHash ethtypes.Et return nil, err } - return gw.target.EthGetTransactionReceipt(ctx, txHash) + return gw.target.EthGetTransactionReceiptLimited(ctx, txHash, gw.stateWaitLookbackLimit) } func (gw *Node) EthGetCode(ctx context.Context, address ethtypes.EthAddress, blkOpt string) (ethtypes.EthBytes, error) { diff --git a/node/impl/full/dummy.go b/node/impl/full/dummy.go index d86b02d4b8b..a4a125d6f9c 100644 --- a/node/impl/full/dummy.go +++ b/node/impl/full/dummy.go @@ -8,6 +8,7 @@ import ( "github.com/filecoin-project/go-address" "github.com/filecoin-project/go-jsonrpc" + "github.com/filecoin-project/go-state-types/abi" "github.com/filecoin-project/lotus/api" "github.com/filecoin-project/lotus/chain/types/ethtypes" @@ -57,6 +58,10 @@ func (e *EthModuleDummy) EthGetTransactionByHash(ctx context.Context, txHash *et return nil, ErrModuleDisabled } +func (e *EthModuleDummy) EthGetTransactionByHashLimited(ctx context.Context, txHash *ethtypes.EthHash, limit abi.ChainEpoch) (*ethtypes.EthTx, error) { + return nil, ErrModuleDisabled +} + func (e *EthModuleDummy) EthGetTransactionCount(ctx context.Context, sender ethtypes.EthAddress, blkOpt string) (ethtypes.EthUint64, error) { return 0, ErrModuleDisabled } @@ -65,6 +70,10 @@ func (e *EthModuleDummy) EthGetTransactionReceipt(ctx context.Context, txHash et return nil, ErrModuleDisabled } +func (e *EthModuleDummy) EthGetTransactionReceiptLimited(ctx context.Context, txHash ethtypes.EthHash, limit abi.ChainEpoch) (*api.EthTxReceipt, error) { + return nil, ErrModuleDisabled +} + func (e *EthModuleDummy) EthGetTransactionByBlockHashAndIndex(ctx context.Context, blkHash ethtypes.EthHash, txIndex ethtypes.EthUint64) (ethtypes.EthTx, error) { return ethtypes.EthTx{}, ErrModuleDisabled } diff --git a/node/impl/full/eth.go b/node/impl/full/eth.go index 64592a4c6cd..266ad9ce908 100644 --- a/node/impl/full/eth.go +++ b/node/impl/full/eth.go @@ -54,10 +54,12 @@ type EthModuleAPI interface { EthGetBlockByHash(ctx context.Context, blkHash ethtypes.EthHash, fullTxInfo bool) (ethtypes.EthBlock, error) EthGetBlockByNumber(ctx context.Context, blkNum string, fullTxInfo bool) (ethtypes.EthBlock, error) EthGetTransactionByHash(ctx context.Context, txHash *ethtypes.EthHash) (*ethtypes.EthTx, error) + EthGetTransactionByHashLimited(ctx context.Context, txHash *ethtypes.EthHash, limit abi.ChainEpoch) (*ethtypes.EthTx, error) EthGetMessageCidByTransactionHash(ctx context.Context, txHash *ethtypes.EthHash) (*cid.Cid, error) EthGetTransactionHashByCid(ctx context.Context, cid cid.Cid) (*ethtypes.EthHash, error) EthGetTransactionCount(ctx context.Context, sender ethtypes.EthAddress, blkOpt string) (ethtypes.EthUint64, error) EthGetTransactionReceipt(ctx context.Context, txHash ethtypes.EthHash) (*api.EthTxReceipt, error) + EthGetTransactionReceiptLimited(ctx context.Context, txHash ethtypes.EthHash, limit abi.ChainEpoch) (*api.EthTxReceipt, error) EthGetCode(ctx context.Context, address ethtypes.EthAddress, blkOpt string) (ethtypes.EthBytes, error) EthGetStorageAt(ctx context.Context, address ethtypes.EthAddress, position ethtypes.EthBytes, blkParam string) (ethtypes.EthBytes, error) EthGetBalance(ctx context.Context, address ethtypes.EthAddress, blkParam string) (ethtypes.EthBigInt, error) @@ -89,8 +91,6 @@ type EthEventAPI interface { var ( _ EthModuleAPI = *new(api.FullNode) _ EthEventAPI = *new(api.FullNode) - - _ EthModuleAPI = *new(api.Gateway) ) // EthModule provides the default implementation of the standard Ethereum JSON-RPC API. @@ -278,6 +278,11 @@ func (a *EthModule) EthGetBlockByNumber(ctx context.Context, blkParam string, fu } func (a *EthModule) EthGetTransactionByHash(ctx context.Context, txHash *ethtypes.EthHash) (*ethtypes.EthTx, error) { + return a.EthGetTransactionByHashLimited(ctx, txHash, api.LookbackNoLimit) + +} + +func (a *EthModule) EthGetTransactionByHashLimited(ctx context.Context, txHash *ethtypes.EthHash, limit abi.ChainEpoch) (*ethtypes.EthTx, error) { // Ethereum's behavior is to return null when the txHash is invalid, so we use nil to check if txHash is valid if txHash == nil { return nil, nil @@ -409,6 +414,10 @@ func (a *EthModule) EthGetTransactionCount(ctx context.Context, sender ethtypes. } func (a *EthModule) EthGetTransactionReceipt(ctx context.Context, txHash ethtypes.EthHash) (*api.EthTxReceipt, error) { + return a.EthGetTransactionReceiptLimited(ctx, txHash, api.LookbackNoLimit) +} + +func (a *EthModule) EthGetTransactionReceiptLimited(ctx context.Context, txHash ethtypes.EthHash, limit abi.ChainEpoch) (*api.EthTxReceipt, error) { c, err := a.EthTxHashManager.TransactionHashLookup.GetCidFromHash(txHash) if err != nil { log.Debug("could not find transaction hash %s in lookup table", txHash.String()) From 3776ee3b6232fd55fc794fa51fc9ffcda7aa7d7d Mon Sep 17 00:00:00 2001 From: Steven Allen Date: Tue, 14 Mar 2023 08:33:04 -0700 Subject: [PATCH 2/3] fix: actually apply limit --- node/impl/full/eth.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/node/impl/full/eth.go b/node/impl/full/eth.go index 266ad9ce908..4f3727b1191 100644 --- a/node/impl/full/eth.go +++ b/node/impl/full/eth.go @@ -299,7 +299,7 @@ func (a *EthModule) EthGetTransactionByHashLimited(ctx context.Context, txHash * } // first, try to get the cid from mined transactions - msgLookup, err := a.StateAPI.StateSearchMsg(ctx, types.EmptyTSK, c, api.LookbackNoLimit, true) + msgLookup, err := a.StateAPI.StateSearchMsg(ctx, types.EmptyTSK, c, limit, true) if err == nil && msgLookup != nil { tx, err := newEthTxFromMessageLookup(ctx, msgLookup, -1, a.Chain, a.StateAPI) if err == nil { @@ -428,7 +428,7 @@ func (a *EthModule) EthGetTransactionReceiptLimited(ctx context.Context, txHash c = txHash.ToCid() } - msgLookup, err := a.StateAPI.StateSearchMsg(ctx, types.EmptyTSK, c, api.LookbackNoLimit, true) + msgLookup, err := a.StateAPI.StateSearchMsg(ctx, types.EmptyTSK, c, limit, true) if err != nil || msgLookup == nil { return nil, nil } From 17274e72da3491156233ef0b2c1dea65387595d5 Mon Sep 17 00:00:00 2001 From: Steven Allen Date: Tue, 14 Mar 2023 08:45:56 -0700 Subject: [PATCH 3/3] feat: expose limited apis on the gateway --- api/api_gateway.go | 2 ++ api/proxy_gen.go | 26 ++++++++++++++++++++++++++ build/openrpc/full.json.gz | Bin 33805 -> 33808 bytes build/openrpc/gateway.json.gz | Bin 9078 -> 9288 bytes build/openrpc/miner.json.gz | Bin 15865 -> 15860 bytes build/openrpc/worker.json.gz | Bin 5223 -> 5226 bytes gateway/proxy_eth.go | 24 ++++++++++++++++++++++-- node/impl/full/eth.go | 2 ++ 8 files changed, 52 insertions(+), 2 deletions(-) diff --git a/api/api_gateway.go b/api/api_gateway.go index cac28d2a0d6..4389fc34b87 100644 --- a/api/api_gateway.go +++ b/api/api_gateway.go @@ -85,10 +85,12 @@ type Gateway interface { EthGetBlockByHash(ctx context.Context, blkHash ethtypes.EthHash, fullTxInfo bool) (ethtypes.EthBlock, error) EthGetBlockByNumber(ctx context.Context, blkNum string, fullTxInfo bool) (ethtypes.EthBlock, error) EthGetTransactionByHash(ctx context.Context, txHash *ethtypes.EthHash) (*ethtypes.EthTx, error) + EthGetTransactionByHashLimited(ctx context.Context, txHash *ethtypes.EthHash, limit abi.ChainEpoch) (*ethtypes.EthTx, error) EthGetTransactionHashByCid(ctx context.Context, cid cid.Cid) (*ethtypes.EthHash, error) EthGetMessageCidByTransactionHash(ctx context.Context, txHash *ethtypes.EthHash) (*cid.Cid, error) EthGetTransactionCount(ctx context.Context, sender ethtypes.EthAddress, blkOpt string) (ethtypes.EthUint64, error) EthGetTransactionReceipt(ctx context.Context, txHash ethtypes.EthHash) (*EthTxReceipt, error) + EthGetTransactionReceiptLimited(ctx context.Context, txHash ethtypes.EthHash, limit abi.ChainEpoch) (*EthTxReceipt, error) EthGetCode(ctx context.Context, address ethtypes.EthAddress, blkOpt string) (ethtypes.EthBytes, error) EthGetStorageAt(ctx context.Context, address ethtypes.EthAddress, position ethtypes.EthBytes, blkParam string) (ethtypes.EthBytes, error) EthGetBalance(ctx context.Context, address ethtypes.EthAddress, blkParam string) (ethtypes.EthBigInt, error) diff --git a/api/proxy_gen.go b/api/proxy_gen.go index dbae138a929..843471381d0 100644 --- a/api/proxy_gen.go +++ b/api/proxy_gen.go @@ -698,12 +698,16 @@ type GatewayMethods struct { EthGetTransactionByHash func(p0 context.Context, p1 *ethtypes.EthHash) (*ethtypes.EthTx, error) `` + EthGetTransactionByHashLimited func(p0 context.Context, p1 *ethtypes.EthHash, p2 abi.ChainEpoch) (*ethtypes.EthTx, error) `` + EthGetTransactionCount func(p0 context.Context, p1 ethtypes.EthAddress, p2 string) (ethtypes.EthUint64, error) `` EthGetTransactionHashByCid func(p0 context.Context, p1 cid.Cid) (*ethtypes.EthHash, error) `` EthGetTransactionReceipt func(p0 context.Context, p1 ethtypes.EthHash) (*EthTxReceipt, error) `` + EthGetTransactionReceiptLimited func(p0 context.Context, p1 ethtypes.EthHash, p2 abi.ChainEpoch) (*EthTxReceipt, error) `` + EthMaxPriorityFeePerGas func(p0 context.Context) (ethtypes.EthBigInt, error) `` EthNewBlockFilter func(p0 context.Context) (ethtypes.EthFilterID, error) `` @@ -4456,6 +4460,17 @@ func (s *GatewayStub) EthGetTransactionByHash(p0 context.Context, p1 *ethtypes.E return nil, ErrNotSupported } +func (s *GatewayStruct) EthGetTransactionByHashLimited(p0 context.Context, p1 *ethtypes.EthHash, p2 abi.ChainEpoch) (*ethtypes.EthTx, error) { + if s.Internal.EthGetTransactionByHashLimited == nil { + return nil, ErrNotSupported + } + return s.Internal.EthGetTransactionByHashLimited(p0, p1, p2) +} + +func (s *GatewayStub) EthGetTransactionByHashLimited(p0 context.Context, p1 *ethtypes.EthHash, p2 abi.ChainEpoch) (*ethtypes.EthTx, error) { + return nil, ErrNotSupported +} + func (s *GatewayStruct) EthGetTransactionCount(p0 context.Context, p1 ethtypes.EthAddress, p2 string) (ethtypes.EthUint64, error) { if s.Internal.EthGetTransactionCount == nil { return *new(ethtypes.EthUint64), ErrNotSupported @@ -4489,6 +4504,17 @@ func (s *GatewayStub) EthGetTransactionReceipt(p0 context.Context, p1 ethtypes.E return nil, ErrNotSupported } +func (s *GatewayStruct) EthGetTransactionReceiptLimited(p0 context.Context, p1 ethtypes.EthHash, p2 abi.ChainEpoch) (*EthTxReceipt, error) { + if s.Internal.EthGetTransactionReceiptLimited == nil { + return nil, ErrNotSupported + } + return s.Internal.EthGetTransactionReceiptLimited(p0, p1, p2) +} + +func (s *GatewayStub) EthGetTransactionReceiptLimited(p0 context.Context, p1 ethtypes.EthHash, p2 abi.ChainEpoch) (*EthTxReceipt, error) { + return nil, ErrNotSupported +} + func (s *GatewayStruct) EthMaxPriorityFeePerGas(p0 context.Context) (ethtypes.EthBigInt, error) { if s.Internal.EthMaxPriorityFeePerGas == nil { return *new(ethtypes.EthBigInt), ErrNotSupported diff --git a/build/openrpc/full.json.gz b/build/openrpc/full.json.gz index d15fd5b6deee8f0610a4432f583e1c10407d87a5..79f32fe149fc6432b9b8028d9838927d4134de8e 100644 GIT binary patch delta 28530 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 ksz058kBoB#j- delta 28618 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 UU;p|40RRC1|LGGrNfgQk08)Xyr~m)} diff --git a/build/openrpc/gateway.json.gz b/build/openrpc/gateway.json.gz index 06583cf0624ca65bb3fc9d67ddd6a3cd34bc7e71..a04b9b814ed21102108bd800089bbde7275bd04e 100644 GIT binary patch literal 9288 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 literal 9078 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%0Arbba{vGU diff --git a/build/openrpc/miner.json.gz b/build/openrpc/miner.json.gz index 1a4946ee049ec852b606f727107f93a941c79635..58475e05dbdaa3f2045561c96b2928df2d9c9756 100644 GIT binary patch delta 12113 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 H>JkG0q0eNK delta 12117 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 Lvcu@%>JkG0?KpZ4 diff --git a/build/openrpc/worker.json.gz b/build/openrpc/worker.json.gz index 0e0734c8db511306cf9dbc9137cf74f26f2028df..6c3616074c8c084ee49ca617f22da08f31316efb 100644 GIT binary patch delta 3856 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 S*8d*>0RR7skdo`IE&%|7)NX44 delta 3853 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 P00960{}HDHtu6ro3_)}M diff --git a/gateway/proxy_eth.go b/gateway/proxy_eth.go index 7e1659f0873..3342875c3f1 100644 --- a/gateway/proxy_eth.go +++ b/gateway/proxy_eth.go @@ -145,11 +145,21 @@ func (gw *Node) EthGetBlockByNumber(ctx context.Context, blkNum string, fullTxIn } func (gw *Node) EthGetTransactionByHash(ctx context.Context, txHash *ethtypes.EthHash) (*ethtypes.EthTx, error) { + return gw.target.EthGetTransactionByHashLimited(ctx, txHash, api.LookbackNoLimit) +} + +func (gw *Node) EthGetTransactionByHashLimited(ctx context.Context, txHash *ethtypes.EthHash, limit abi.ChainEpoch) (*ethtypes.EthTx, error) { if err := gw.limit(ctx, stateRateLimitTokens); err != nil { return nil, err } + if limit == api.LookbackNoLimit { + limit = gw.stateWaitLookbackLimit + } + if gw.stateWaitLookbackLimit != api.LookbackNoLimit && limit > gw.stateWaitLookbackLimit { + limit = gw.stateWaitLookbackLimit + } - return gw.target.EthGetTransactionByHashLimited(ctx, txHash, gw.stateWaitLookbackLimit) + return gw.target.EthGetTransactionByHashLimited(ctx, txHash, limit) } func (gw *Node) EthGetTransactionHashByCid(ctx context.Context, cid cid.Cid) (*ethtypes.EthHash, error) { @@ -181,11 +191,21 @@ func (gw *Node) EthGetTransactionCount(ctx context.Context, sender ethtypes.EthA } func (gw *Node) EthGetTransactionReceipt(ctx context.Context, txHash ethtypes.EthHash) (*api.EthTxReceipt, error) { + return gw.EthGetTransactionReceiptLimited(ctx, txHash, api.LookbackNoLimit) +} + +func (gw *Node) EthGetTransactionReceiptLimited(ctx context.Context, txHash ethtypes.EthHash, limit abi.ChainEpoch) (*api.EthTxReceipt, error) { if err := gw.limit(ctx, stateRateLimitTokens); err != nil { return nil, err } + if limit == api.LookbackNoLimit { + limit = gw.stateWaitLookbackLimit + } + if gw.stateWaitLookbackLimit != api.LookbackNoLimit && limit > gw.stateWaitLookbackLimit { + limit = gw.stateWaitLookbackLimit + } - return gw.target.EthGetTransactionReceiptLimited(ctx, txHash, gw.stateWaitLookbackLimit) + return gw.target.EthGetTransactionReceiptLimited(ctx, txHash, limit) } func (gw *Node) EthGetCode(ctx context.Context, address ethtypes.EthAddress, blkOpt string) (ethtypes.EthBytes, error) { diff --git a/node/impl/full/eth.go b/node/impl/full/eth.go index 4f3727b1191..4470db1c849 100644 --- a/node/impl/full/eth.go +++ b/node/impl/full/eth.go @@ -91,6 +91,8 @@ type EthEventAPI interface { var ( _ EthModuleAPI = *new(api.FullNode) _ EthEventAPI = *new(api.FullNode) + + _ EthModuleAPI = *new(api.Gateway) ) // EthModule provides the default implementation of the standard Ethereum JSON-RPC API.