diff --git a/Makefile b/Makefile index 3211c3ea7..091352c61 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,6 @@ ################## update dependencies #################### -ETHEREUM_SUBMODULE_COMMIT_OR_TAG := efdd4dbee28b2fb4005267a7793d607111d9490b -ETHEREUM_TARGET_VERSION := v1.10.14-0.20260629084315-efdd4dbee28b +ETHEREUM_SUBMODULE_COMMIT_OR_TAG := 0eda19148ddd2c6d8cf252a242def9f940445a24 +ETHEREUM_TARGET_VERSION := v1.10.14-0.20260702033856-0eda19148ddd TENDERMINT_TARGET_VERSION := v0.3.8-0.20260625105428-a5de063445a3 diff --git a/bindings/go.mod b/bindings/go.mod index 0ff8684e7..52829f5e4 100644 --- a/bindings/go.mod +++ b/bindings/go.mod @@ -4,7 +4,7 @@ go 1.24.0 replace github.com/tendermint/tendermint => github.com/morph-l2/tendermint v0.3.8-0.20260625105428-a5de063445a3 -require github.com/morph-l2/go-ethereum v1.10.14-0.20260629084315-efdd4dbee28b +require github.com/morph-l2/go-ethereum v1.10.14-0.20260702033856-0eda19148ddd require ( github.com/VictoriaMetrics/fastcache v1.12.2 // indirect @@ -30,7 +30,6 @@ require ( github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/prometheus/tsdb v0.10.0 // indirect github.com/rjeczalik/notify v0.9.3 // indirect - github.com/scroll-tech/zktrie v0.8.4 // indirect github.com/shirou/gopsutil v3.21.11+incompatible // indirect github.com/status-im/keycard-go v0.3.2 // indirect github.com/supranational/blst v0.3.16-0.20250831170142-f48500c1fdbe // indirect diff --git a/bindings/go.sum b/bindings/go.sum index 622aa2ead..ddb166acb 100644 --- a/bindings/go.sum +++ b/bindings/go.sum @@ -109,8 +109,8 @@ github.com/mmcloughlin/addchain v0.4.0/go.mod h1:A86O+tHqZLMNO4w6ZZ4FlVQEadcoqky github.com/mmcloughlin/profile v0.1.1/go.mod h1:IhHD7q1ooxgwTgjxQYkACGA77oFTDdFVejUS1/tS/qU= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/morph-l2/go-ethereum v1.10.14-0.20260629084315-efdd4dbee28b h1:z/ivkqYXZQ07ztg38AxybRLPLyujHF0E/+z3gjHV7eM= -github.com/morph-l2/go-ethereum v1.10.14-0.20260629084315-efdd4dbee28b/go.mod h1:nkVzHjQWCOjvukQW8ittlwX+Xz9gmVHrP7mUi7zoHTs= +github.com/morph-l2/go-ethereum v1.10.14-0.20260702033856-0eda19148ddd h1:p81r2Jx+iLt3sRNICEFt7K9SN68ardffrWhB15ggeAw= +github.com/morph-l2/go-ethereum v1.10.14-0.20260702033856-0eda19148ddd/go.mod h1:nkVzHjQWCOjvukQW8ittlwX+Xz9gmVHrP7mUi7zoHTs= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= @@ -145,8 +145,6 @@ github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ= github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= github.com/rjeczalik/notify v0.9.3 h1:6rJAzHTGKXGj76sbRgDiDcYj/HniypXmSJo1SWakZeY= github.com/rjeczalik/notify v0.9.3/go.mod h1:gF3zSOrafR9DQEWSE8TjfI9NkooDxbyT4UgRGKZA0lc= -github.com/scroll-tech/zktrie v0.8.4 h1:UagmnZ4Z3ITCk+aUq9NQZJNAwnWl4gSxsLb2Nl7IgRE= -github.com/scroll-tech/zktrie v0.8.4/go.mod h1:XvNo7vAk8yxNyTjBDj5WIiFzYW4bx/gJ78+NK6Zn6Uk= github.com/shirou/gopsutil v3.21.11+incompatible h1:+1+c1VGhc88SSonWP6foOcLhvnKlUeu/erjjvaPEYiI= github.com/shirou/gopsutil v3.21.11+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= diff --git a/common/go.mod b/common/go.mod index e0cf37d6a..e64e6afb8 100644 --- a/common/go.mod +++ b/common/go.mod @@ -6,7 +6,7 @@ replace github.com/tendermint/tendermint => github.com/morph-l2/tendermint v0.3. require ( github.com/holiman/uint256 v1.2.4 - github.com/morph-l2/go-ethereum v1.10.14-0.20260629084315-efdd4dbee28b + github.com/morph-l2/go-ethereum v1.10.14-0.20260702033856-0eda19148ddd github.com/stretchr/testify v1.10.0 github.com/syndtr/goleveldb v1.0.1-0.20220614013038-64ee5596c38a ) @@ -54,7 +54,6 @@ require ( github.com/rivo/uniseg v0.4.7 // indirect github.com/rjeczalik/notify v0.9.3 // indirect github.com/rs/cors v1.11.0 // indirect - github.com/scroll-tech/zktrie v0.8.4 // indirect github.com/shirou/gopsutil v3.21.11+incompatible // indirect github.com/status-im/keycard-go v0.3.2 // indirect github.com/supranational/blst v0.3.16-0.20250831170142-f48500c1fdbe // indirect diff --git a/common/go.sum b/common/go.sum index 85aae0655..8508860fd 100644 --- a/common/go.sum +++ b/common/go.sum @@ -148,8 +148,8 @@ github.com/mmcloughlin/addchain v0.4.0/go.mod h1:A86O+tHqZLMNO4w6ZZ4FlVQEadcoqky github.com/mmcloughlin/profile v0.1.1/go.mod h1:IhHD7q1ooxgwTgjxQYkACGA77oFTDdFVejUS1/tS/qU= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/morph-l2/go-ethereum v1.10.14-0.20260629084315-efdd4dbee28b h1:z/ivkqYXZQ07ztg38AxybRLPLyujHF0E/+z3gjHV7eM= -github.com/morph-l2/go-ethereum v1.10.14-0.20260629084315-efdd4dbee28b/go.mod h1:nkVzHjQWCOjvukQW8ittlwX+Xz9gmVHrP7mUi7zoHTs= +github.com/morph-l2/go-ethereum v1.10.14-0.20260702033856-0eda19148ddd h1:p81r2Jx+iLt3sRNICEFt7K9SN68ardffrWhB15ggeAw= +github.com/morph-l2/go-ethereum v1.10.14-0.20260702033856-0eda19148ddd/go.mod h1:nkVzHjQWCOjvukQW8ittlwX+Xz9gmVHrP7mUi7zoHTs= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE= @@ -194,8 +194,6 @@ github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= github.com/rs/cors v1.11.0 h1:0B9GE/r9Bc2UxRMMtymBkHTenPkHDv0CW4Y98GBY+po= github.com/rs/cors v1.11.0/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU= -github.com/scroll-tech/zktrie v0.8.4 h1:UagmnZ4Z3ITCk+aUq9NQZJNAwnWl4gSxsLb2Nl7IgRE= -github.com/scroll-tech/zktrie v0.8.4/go.mod h1:XvNo7vAk8yxNyTjBDj5WIiFzYW4bx/gJ78+NK6Zn6Uk= github.com/shirou/gopsutil v3.21.11+incompatible h1:+1+c1VGhc88SSonWP6foOcLhvnKlUeu/erjjvaPEYiI= github.com/shirou/gopsutil v3.21.11+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= diff --git a/contracts/go.mod b/contracts/go.mod index 2bead946a..b1ac80b26 100644 --- a/contracts/go.mod +++ b/contracts/go.mod @@ -6,7 +6,7 @@ replace github.com/tendermint/tendermint => github.com/morph-l2/tendermint v0.3. require ( github.com/iden3/go-iden3-crypto v0.0.16 - github.com/morph-l2/go-ethereum v1.10.14-0.20260629084315-efdd4dbee28b + github.com/morph-l2/go-ethereum v1.10.14-0.20260702033856-0eda19148ddd github.com/stretchr/testify v1.10.0 ) @@ -52,7 +52,6 @@ require ( github.com/rivo/uniseg v0.4.7 // indirect github.com/rjeczalik/notify v0.9.3 // indirect github.com/rs/cors v1.11.0 // indirect - github.com/scroll-tech/zktrie v0.8.4 // indirect github.com/shirou/gopsutil v3.21.11+incompatible // indirect github.com/status-im/keycard-go v0.3.2 // indirect github.com/supranational/blst v0.3.16-0.20250831170142-f48500c1fdbe // indirect diff --git a/contracts/go.sum b/contracts/go.sum index 87f864e1b..de75c446c 100644 --- a/contracts/go.sum +++ b/contracts/go.sum @@ -136,8 +136,8 @@ github.com/mmcloughlin/addchain v0.4.0/go.mod h1:A86O+tHqZLMNO4w6ZZ4FlVQEadcoqky github.com/mmcloughlin/profile v0.1.1/go.mod h1:IhHD7q1ooxgwTgjxQYkACGA77oFTDdFVejUS1/tS/qU= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/morph-l2/go-ethereum v1.10.14-0.20260629084315-efdd4dbee28b h1:z/ivkqYXZQ07ztg38AxybRLPLyujHF0E/+z3gjHV7eM= -github.com/morph-l2/go-ethereum v1.10.14-0.20260629084315-efdd4dbee28b/go.mod h1:nkVzHjQWCOjvukQW8ittlwX+Xz9gmVHrP7mUi7zoHTs= +github.com/morph-l2/go-ethereum v1.10.14-0.20260702033856-0eda19148ddd h1:p81r2Jx+iLt3sRNICEFt7K9SN68ardffrWhB15ggeAw= +github.com/morph-l2/go-ethereum v1.10.14-0.20260702033856-0eda19148ddd/go.mod h1:nkVzHjQWCOjvukQW8ittlwX+Xz9gmVHrP7mUi7zoHTs= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE= @@ -180,8 +180,6 @@ github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= github.com/rs/cors v1.11.0 h1:0B9GE/r9Bc2UxRMMtymBkHTenPkHDv0CW4Y98GBY+po= github.com/rs/cors v1.11.0/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU= -github.com/scroll-tech/zktrie v0.8.4 h1:UagmnZ4Z3ITCk+aUq9NQZJNAwnWl4gSxsLb2Nl7IgRE= -github.com/scroll-tech/zktrie v0.8.4/go.mod h1:XvNo7vAk8yxNyTjBDj5WIiFzYW4bx/gJ78+NK6Zn6Uk= github.com/shirou/gopsutil v3.21.11+incompatible h1:+1+c1VGhc88SSonWP6foOcLhvnKlUeu/erjjvaPEYiI= github.com/shirou/gopsutil v3.21.11+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= diff --git a/go.work.sum b/go.work.sum index df98b0a23..acba38e6c 100644 --- a/go.work.sum +++ b/go.work.sum @@ -991,8 +991,6 @@ github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7P github.com/morph-l2/go-ethereum v0.0.0-20260529141627-eb5fbf8f9748 h1:xxYv3ZbhCsdtgwC81wU3eRm0xNrc2oTx7PGYLPY92xU= github.com/morph-l2/go-ethereum v0.0.0-20260529141627-eb5fbf8f9748/go.mod h1:nkVzHjQWCOjvukQW8ittlwX+Xz9gmVHrP7mUi7zoHTs= github.com/morph-l2/go-ethereum v1.10.14-0.20251125061742-69718a9dcab9/go.mod h1:tiFPeidxjoCmLj18ne9H3KQdIGTCvRC30qlef06Fd9M= -github.com/morph-l2/go-ethereum v1.10.14-0.20260629084315-efdd4dbee28b h1:z/ivkqYXZQ07ztg38AxybRLPLyujHF0E/+z3gjHV7eM= -github.com/morph-l2/go-ethereum v1.10.14-0.20260629084315-efdd4dbee28b/go.mod h1:nkVzHjQWCOjvukQW8ittlwX+Xz9gmVHrP7mUi7zoHTs= github.com/morph-l2/tendermint v0.0.0-20260529095305-b1b3a3a1d806 h1:gJmofzJ0PnCCObETUH02AsSVS1YY4tLpUWYFhEggCmk= github.com/morph-l2/tendermint v0.0.0-20260529095305-b1b3a3a1d806/go.mod h1:qpiwqfcCB89dBYfqVJOc/HjGxDp3OdDlthgttJJYyRs= github.com/morph-l2/tendermint v0.3.8-0.20260617072029-29056623cdb0 h1:LcRbLo0pQXev4z/6i65mVr/9XoFE9Zf7+tcqKItpE+M= @@ -1136,6 +1134,8 @@ github.com/satori/go.uuid v1.2.0 h1:0uYX9dsZ2yD7q2RtLRtPSdGDWzjeM3TbMJP9utgA0ww= github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0= github.com/schollz/progressbar/v3 v3.19.0 h1:Ea18xuIRQXLAUidVDox3AbwfUhD0/1IvohyTutOIFoc= github.com/schollz/progressbar/v3 v3.19.0/go.mod h1:IsO3lpbaGuzh8zIMzgY3+J8l4C8GjO0Y9S69eFvNsec= +github.com/scroll-tech/zktrie v0.8.4 h1:UagmnZ4Z3ITCk+aUq9NQZJNAwnWl4gSxsLb2Nl7IgRE= +github.com/scroll-tech/zktrie v0.8.4/go.mod h1:XvNo7vAk8yxNyTjBDj5WIiFzYW4bx/gJ78+NK6Zn6Uk= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529 h1:nn5Wsu0esKSJiIVhscUtVbo7ada43DJhG55ua/hjS5I= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= github.com/securego/gosec/v2 v2.13.1 h1:7mU32qn2dyC81MH9L2kefnQyRMUarfDER3iQyMHcjYM= diff --git a/node/go.mod b/node/go.mod index 62fa0c371..3fc7efb0c 100644 --- a/node/go.mod +++ b/node/go.mod @@ -14,7 +14,7 @@ require ( github.com/hashicorp/raft-boltdb/v2 v2.3.1 github.com/klauspost/compress v1.17.9 github.com/mdlayher/vsock v1.2.1 - github.com/morph-l2/go-ethereum v1.10.14-0.20260629084315-efdd4dbee28b + github.com/morph-l2/go-ethereum v1.10.14-0.20260702033856-0eda19148ddd github.com/pkg/errors v0.9.1 github.com/prometheus/client_golang v1.17.0 github.com/spf13/viper v1.13.0 @@ -108,7 +108,6 @@ require ( github.com/rs/cors v1.11.0 // indirect github.com/russross/blackfriday/v2 v2.1.0 // indirect github.com/sasha-s/go-deadlock v0.3.1 // indirect - github.com/scroll-tech/zktrie v0.8.4 // indirect github.com/shirou/gopsutil v3.21.11+incompatible // indirect github.com/spf13/afero v1.10.0 // indirect github.com/spf13/cast v1.5.0 // indirect diff --git a/node/go.sum b/node/go.sum index bb7dc681a..61a687e60 100644 --- a/node/go.sum +++ b/node/go.sum @@ -414,8 +414,8 @@ github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/morph-l2/go-ethereum v1.10.14-0.20260629084315-efdd4dbee28b h1:z/ivkqYXZQ07ztg38AxybRLPLyujHF0E/+z3gjHV7eM= -github.com/morph-l2/go-ethereum v1.10.14-0.20260629084315-efdd4dbee28b/go.mod h1:nkVzHjQWCOjvukQW8ittlwX+Xz9gmVHrP7mUi7zoHTs= +github.com/morph-l2/go-ethereum v1.10.14-0.20260702033856-0eda19148ddd h1:p81r2Jx+iLt3sRNICEFt7K9SN68ardffrWhB15ggeAw= +github.com/morph-l2/go-ethereum v1.10.14-0.20260702033856-0eda19148ddd/go.mod h1:nkVzHjQWCOjvukQW8ittlwX+Xz9gmVHrP7mUi7zoHTs= github.com/morph-l2/tendermint v0.3.8-0.20260625105428-a5de063445a3 h1:ZpUi8rHb4KOcW8Eua5VSQksWBI+8F25mxdtzjJl4h/M= github.com/morph-l2/tendermint v0.3.8-0.20260625105428-a5de063445a3/go.mod h1:qpiwqfcCB89dBYfqVJOc/HjGxDp3OdDlthgttJJYyRs= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= @@ -510,8 +510,6 @@ github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/sasha-s/go-deadlock v0.3.1 h1:sqv7fDNShgjcaxkO0JNcOAlr8B9+cV5Ey/OB71efZx0= github.com/sasha-s/go-deadlock v0.3.1/go.mod h1:F73l+cr82YSh10GxyRI6qZiCgK64VaZjwesgfQ1/iLM= -github.com/scroll-tech/zktrie v0.8.4 h1:UagmnZ4Z3ITCk+aUq9NQZJNAwnWl4gSxsLb2Nl7IgRE= -github.com/scroll-tech/zktrie v0.8.4/go.mod h1:XvNo7vAk8yxNyTjBDj5WIiFzYW4bx/gJ78+NK6Zn6Uk= github.com/shirou/gopsutil v3.21.11+incompatible h1:+1+c1VGhc88SSonWP6foOcLhvnKlUeu/erjjvaPEYiI= github.com/shirou/gopsutil v3.21.11+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= diff --git a/node/l1sequencer/enclave_creds.go b/node/l1sequencer/enclave_creds.go new file mode 100644 index 000000000..f36ce824d --- /dev/null +++ b/node/l1sequencer/enclave_creds.go @@ -0,0 +1,197 @@ +package l1sequencer + +import ( + "encoding/binary" + "encoding/xml" + "fmt" + "io" + "net" + "net/http" + "net/url" + "os" + "strings" + "time" +) + +// awsCreds are the temporary AWS credentials the node injects into the +// enclave over vsock (op=ProvideCredentials). The enclave reads no IMDS, +// so the host resolves credentials and pushes them in. +type awsCreds struct { + accessKeyID string + secretAccessKey string + sessionToken string + expiryUnixSecs uint64 +} + +// injectCredentials resolves credentials from the pod's IRSA environment +// and pushes them into the enclave on a one-shot connection, so the +// signer can run its deferred one-time key load (SM Get + KMS Decrypt). +// +// No IRSA env (local/dev) → skip; the following probe() then surfaces the +// enclave's own error if it actually needed credentials. Idempotent +// enclave-side: re-injecting after the key is loaded is a no-op Ack, so +// this runs safely on every node (re)start. +func (s *EnclaveSigner) injectCredentials() error { + creds, available, err := irsaCreds() + if err != nil { + return fmt.Errorf("resolve IRSA credentials: %w", err) + } + if !available { + s.logger.Info("no IRSA env; skipping enclave credential injection") + return nil + } + conn, err := s.dial() + if err != nil { + return err + } + defer func() { _ = conn.Close() }() + if err := conn.SetDeadline(time.Now().Add(credLoadTimeout)); err != nil { + return fmt.Errorf("set deadline: %w", err) + } + if err := writeProvideCredentials(conn, creds); err != nil { + return fmt.Errorf("provide credentials: %w", err) + } + s.logger.Info("enclave credentials injected via IRSA", "role", os.Getenv("AWS_ROLE_ARN")) + return nil +} + +// irsaCreds resolves temporary credentials from the EKS IRSA environment +// (AWS_ROLE_ARN + AWS_WEB_IDENTITY_TOKEN_FILE, injected by the Pod +// Identity Webhook). The token file is a projected OIDC JWT — not AWS +// credentials — so it is exchanged for a role session via STS +// AssumeRoleWithWebIdentity, the one STS call that needs no SigV4 +// signing. Done with the stdlib to avoid pulling in aws-sdk-go, mirroring +// the ops-cli reference client. +// +// available=false (nil error) when the IRSA env is absent. +func irsaCreds() (creds awsCreds, available bool, err error) { + roleARN := os.Getenv("AWS_ROLE_ARN") + tokenFile := os.Getenv("AWS_WEB_IDENTITY_TOKEN_FILE") + if roleARN == "" || tokenFile == "" { + return awsCreds{}, false, nil + } + jwt, err := os.ReadFile(tokenFile) //nolint:gosec // G304: trusted IRSA token path (env-injected) + if err != nil { + return awsCreds{}, true, fmt.Errorf("read web identity token %s: %w", tokenFile, err) + } + session := os.Getenv("AWS_ROLE_SESSION_NAME") + if session == "" { + session = "morph-enclave-signer" + } + region := os.Getenv("AWS_REGION") + if region == "" { + region = os.Getenv("AWS_DEFAULT_REGION") + } + creds, err = assumeRoleWithWebIdentity(region, roleARN, session, strings.TrimSpace(string(jwt))) + return creds, true, err +} + +// assumeRoleWithWebIdentity exchanges an OIDC JWT for temporary AWS +// credentials via the (unsigned) STS AssumeRoleWithWebIdentity action. +// Regional endpoint by default (matches EKS AWS_STS_REGIONAL_ENDPOINTS); +// AWS_ENDPOINT_URL_STS overrides. +func assumeRoleWithWebIdentity(region, roleARN, session, jwt string) (awsCreds, error) { + endpoint := "https://sts.amazonaws.com/" + if region != "" { + endpoint = fmt.Sprintf("https://sts.%s.amazonaws.com/", region) + } + if v := os.Getenv("AWS_ENDPOINT_URL_STS"); v != "" { + endpoint = v + } + form := url.Values{ + "Action": {"AssumeRoleWithWebIdentity"}, + "Version": {"2011-06-15"}, + "RoleArn": {roleARN}, + "RoleSessionName": {session}, + "WebIdentityToken": {jwt}, + } + client := &http.Client{Timeout: 10 * time.Second} + resp, err := client.PostForm(endpoint, form) + if err != nil { + return awsCreds{}, fmt.Errorf("STS request: %w", err) + } + defer func() { _ = resp.Body.Close() }() + raw, _ := io.ReadAll(io.LimitReader(resp.Body, 1<<20)) + if resp.StatusCode != http.StatusOK { + return awsCreds{}, fmt.Errorf("STS %d: %s", resp.StatusCode, strings.TrimSpace(string(raw))) + } + + var parsed struct { + Result struct { + Credentials struct { + AccessKeyID string `xml:"AccessKeyId"` + SecretAccessKey string `xml:"SecretAccessKey"` + SessionToken string `xml:"SessionToken"` + Expiration string `xml:"Expiration"` + } `xml:"Credentials"` + } `xml:"AssumeRoleWithWebIdentityResult"` + } + if err := xml.Unmarshal(raw, &parsed); err != nil { + return awsCreds{}, fmt.Errorf("parse STS response: %w", err) + } + c := parsed.Result.Credentials + // AssumeRoleWithWebIdentity always returns a session token for temporary + // credentials; a missing one means an unusable/ambiguous credential. + if c.AccessKeyID == "" || c.SecretAccessKey == "" || c.SessionToken == "" { + return awsCreds{}, fmt.Errorf("STS response missing temporary credential fields") + } + out := awsCreds{accessKeyID: c.AccessKeyID, secretAccessKey: c.SecretAccessKey, sessionToken: c.SessionToken} + if c.Expiration != "" { + t, perr := time.Parse(time.RFC3339, c.Expiration) + if perr != nil { + return awsCreds{}, fmt.Errorf("STS bad Expiration %q: %w", c.Expiration, perr) + } + out.expiryUnixSecs = uint64(t.Unix()) + } + return out, nil +} + +// ProvideCredentials field caps — must match crates/protocol in the +// morph-enclave-signer repo. Bounding each field keeps the u16 length +// prefix from overflowing (STS credential fields are opaque and, per AWS, +// carry no documented max size). +const ( + maxAccessKeyIDLen = 128 + maxSecretAccessKeyLen = 256 + maxSessionTokenLen = 8192 +) + +// writeProvideCredentials sends op=ProvideCredentials on an established +// conn and reads the Ack. Field layout mirrors crates/protocol (and +// ops-cli's client.go): +// +// [op=0x04][akid_lp][sak_lp][token_lp][expiry:u64] +// +// where each _lp is [len:u16][bytes]; all integers are big-endian. +func writeProvideCredentials(conn net.Conn, c awsCreds) error { + if len(c.accessKeyID) > maxAccessKeyIDLen { + return fmt.Errorf("access key id len %d exceeds max %d", len(c.accessKeyID), maxAccessKeyIDLen) + } + if len(c.secretAccessKey) > maxSecretAccessKeyLen { + return fmt.Errorf("secret access key len %d exceeds max %d", len(c.secretAccessKey), maxSecretAccessKeyLen) + } + if len(c.sessionToken) > maxSessionTokenLen { + return fmt.Errorf("session token len %d exceeds max %d", len(c.sessionToken), maxSessionTokenLen) + } + buf := []byte{opProvideCredentials} + buf = appendLPString(buf, c.accessKeyID) + buf = appendLPString(buf, c.secretAccessKey) + buf = appendLPString(buf, c.sessionToken) + var exp [8]byte + binary.BigEndian.PutUint64(exp[:], c.expiryUnixSecs) + buf = append(buf, exp[:]...) + if _, err := conn.Write(buf); err != nil { + return fmt.Errorf("write ProvideCredentials: %w", err) + } + return readOkStatus(conn) +} + +// appendLPString appends a [len:u16][bytes] field (big-endian length). +// Callers bound each field below the u16 max (see writeProvideCredentials), +// so the length conversion cannot overflow. +func appendLPString(buf []byte, s string) []byte { + var l [2]byte + binary.BigEndian.PutUint16(l[:], uint16(len(s))) + buf = append(buf, l[:]...) + return append(buf, s...) +} diff --git a/node/l1sequencer/enclave_signer.go b/node/l1sequencer/enclave_signer.go index 53d575440..be84be6de 100644 --- a/node/l1sequencer/enclave_signer.go +++ b/node/l1sequencer/enclave_signer.go @@ -2,6 +2,7 @@ package l1sequencer import ( "encoding/binary" + "errors" "fmt" "io" "net" @@ -20,12 +21,20 @@ import ( // the morph-enclave-signer repo. Big-endian throughout. // // Init (op=0x01) is the key-creation flow handled by ops-cli on a -// throwaway EC2; the morph node never sends it. +// throwaway EC2; the morph node never sends it. ProvideCredentials +// (op=0x04) is sent once at startup to inject IRSA credentials so the +// AWS-backed signer can load its key (see injectCredentials). const ( - opSign byte = 0x02 - opGetPubkey byte = 0x03 + opSign byte = 0x02 + opGetPubkey byte = 0x03 + opProvideCredentials byte = 0x04 statusOk byte = 0x00 + // statusKeyNotInitialized (Status::KeyNotInitialized in crates/protocol) + // means the enclave has no key loaded — its in-memory keystore is empty, + // e.g. because the enclave restarted and lost the key. Sign recovers by + // re-injecting credentials (idempotent enclave-side) and retrying. + statusKeyNotInitialized byte = 0x02 hashLen = 32 sigLen = 65 @@ -43,6 +52,11 @@ const ( // Applied via SetDeadline at the start of probe/signOnce, cleared // on exit so the persistent conn can be reused for the next call. requestTimeout = 1 * time.Second + // credLoadTimeout bounds the one-shot ProvideCredentials round-trip. + // Unlike a normal RPC, the enclave's Ack returns only after its + // one-time SM Get + KMS Decrypt + key load, so this is far larger + // than requestTimeout. + credLoadTimeout = 5 * time.Second ) // EnclaveSigner implements Signer by talking to a Nitro Enclave signer @@ -82,6 +96,14 @@ func NewEnclaveSigner(addr string, logger tmlog.Logger) (*EnclaveSigner, error) port: port, logger: logger.With("module", "signer", "kind", "enclave", "addr", addr), } + // Inject AWS credentials (resolved from the pod's IRSA env) before the + // probe: an AWS-backed signer loads its key lazily on ProvideCredentials + // and would otherwise reject GetPubkey/Sign. No-op when no IRSA env is + // present (local/dev); idempotent enclave-side, so safe on every restart. + if err := s.injectCredentials(); err != nil { + s.logger.Error("enclave credential injection failed; node cannot start", "err", err) + return nil, fmt.Errorf("enclave signer credentials %s: %w", addr, err) + } if err := s.probe(); err != nil { s.logger.Error("enclave signer init failed; node cannot start", "err", err) return nil, fmt.Errorf("enclave signer probe %s: %w", addr, err) @@ -91,16 +113,18 @@ func NewEnclaveSigner(addr string, logger tmlog.Logger) (*EnclaveSigner, error) _ = s.Close() return nil, fmt.Errorf("enclave signer self-test: %w", err) } - s.logger.Info("enclave signer ready", "address", s.address.Hex()) return s, nil } // Sign signs a 32-byte prehash. Returns the 65-byte [r||s||v] signature. // // Up to 3 attempts: each tries the cached conn (or dials fresh if -// none), and on any wire error drops the conn and retries. After 3 -// failures returns an error wrapping the last cause; the caller is -// expected to treat that as fatal (block production can't proceed +// none), and on any wire error drops the conn and retries. If the +// enclave reports KeyNotInitialized (it restarted and lost its +// in-memory key), the credentials are re-injected between attempts so +// the signer reloads the key without waiting for a full node restart. +// After 3 failures returns an error wrapping the last cause; the caller +// is expected to treat that as fatal (block production can't proceed // without a signer, so tendermint will halt consensus). func (s *EnclaveSigner) Sign(data []byte) ([]byte, error) { if len(data) != hashLen { @@ -131,6 +155,15 @@ func (s *EnclaveSigner) Sign(data []byte) ([]byte, error) { "attempt", attempt, "max", maxAttempts, "err", err) _ = s.conn.Close() s.conn = nil + // KeyNotInitialized means the enclave lost its key (it restarted): + // its keystore is empty until credentials are pushed again. Re-inject + // (a no-op Ack enclave-side once loaded) so the next attempt can sign, + // instead of failing every Sign until the whole node is restarted. + if isKeyNotInitialized(err) { + if ierr := s.injectCredentials(); ierr != nil { + s.logger.Error("re-inject credentials after key-not-loaded failed", "err", ierr) + } + } } s.logger.Error("sign exhausted all retries", "attempts", maxAttempts, "err", lastErr) return nil, fmt.Errorf("enclave sign failed after %d attempts: %w", maxAttempts, lastErr) @@ -312,5 +345,25 @@ func readOkStatus(conn net.Conn) error { if _, err := io.ReadFull(conn, msg); err != nil { return fmt.Errorf("enclave signer status=0x%02X (read msg: %w)", statusBuf[0], err) } - return fmt.Errorf("enclave signer error: status=0x%02X msg=%q", statusBuf[0], string(msg)) + return &enclaveError{status: statusBuf[0], msg: string(msg)} +} + +// enclaveError is a well-formed non-OK status frame from the enclave +// (status byte + message). It is returned by readOkStatus so callers can +// branch on the status code — notably statusKeyNotInitialized, which Sign +// recovers from by re-injecting credentials. +type enclaveError struct { + status byte + msg string +} + +func (e *enclaveError) Error() string { + return fmt.Sprintf("enclave signer error: status=0x%02X msg=%q", e.status, e.msg) +} + +// isKeyNotInitialized reports whether err is an enclave status frame with +// KeyNotInitialized (0x02) anywhere in its chain. +func isKeyNotInitialized(err error) bool { + var e *enclaveError + return errors.As(err, &e) && e.status == statusKeyNotInitialized } diff --git a/ops/l2-genesis/go.mod b/ops/l2-genesis/go.mod index be791cc23..50aa134eb 100644 --- a/ops/l2-genesis/go.mod +++ b/ops/l2-genesis/go.mod @@ -6,7 +6,7 @@ replace github.com/tendermint/tendermint => github.com/morph-l2/tendermint v0.3. require ( github.com/holiman/uint256 v1.2.4 - github.com/morph-l2/go-ethereum v1.10.14-0.20260629084315-efdd4dbee28b + github.com/morph-l2/go-ethereum v1.10.14-0.20260702033856-0eda19148ddd github.com/stretchr/testify v1.10.0 github.com/urfave/cli v1.22.17 ) @@ -55,7 +55,6 @@ require ( github.com/rjeczalik/notify v0.9.3 // indirect github.com/rs/cors v1.11.0 // indirect github.com/russross/blackfriday/v2 v2.1.0 // indirect - github.com/scroll-tech/zktrie v0.8.4 // indirect github.com/shirou/gopsutil v3.21.11+incompatible // indirect github.com/status-im/keycard-go v0.3.2 // indirect github.com/supranational/blst v0.3.16-0.20250831170142-f48500c1fdbe // indirect diff --git a/ops/l2-genesis/go.sum b/ops/l2-genesis/go.sum index 5e412bd8b..738b8591e 100644 --- a/ops/l2-genesis/go.sum +++ b/ops/l2-genesis/go.sum @@ -139,8 +139,8 @@ github.com/mmcloughlin/addchain v0.4.0/go.mod h1:A86O+tHqZLMNO4w6ZZ4FlVQEadcoqky github.com/mmcloughlin/profile v0.1.1/go.mod h1:IhHD7q1ooxgwTgjxQYkACGA77oFTDdFVejUS1/tS/qU= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/morph-l2/go-ethereum v1.10.14-0.20260629084315-efdd4dbee28b h1:z/ivkqYXZQ07ztg38AxybRLPLyujHF0E/+z3gjHV7eM= -github.com/morph-l2/go-ethereum v1.10.14-0.20260629084315-efdd4dbee28b/go.mod h1:nkVzHjQWCOjvukQW8ittlwX+Xz9gmVHrP7mUi7zoHTs= +github.com/morph-l2/go-ethereum v1.10.14-0.20260702033856-0eda19148ddd h1:p81r2Jx+iLt3sRNICEFt7K9SN68ardffrWhB15ggeAw= +github.com/morph-l2/go-ethereum v1.10.14-0.20260702033856-0eda19148ddd/go.mod h1:nkVzHjQWCOjvukQW8ittlwX+Xz9gmVHrP7mUi7zoHTs= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE= @@ -185,8 +185,6 @@ github.com/rs/cors v1.11.0 h1:0B9GE/r9Bc2UxRMMtymBkHTenPkHDv0CW4Y98GBY+po= github.com/rs/cors v1.11.0/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU= github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/scroll-tech/zktrie v0.8.4 h1:UagmnZ4Z3ITCk+aUq9NQZJNAwnWl4gSxsLb2Nl7IgRE= -github.com/scroll-tech/zktrie v0.8.4/go.mod h1:XvNo7vAk8yxNyTjBDj5WIiFzYW4bx/gJ78+NK6Zn6Uk= github.com/shirou/gopsutil v3.21.11+incompatible h1:+1+c1VGhc88SSonWP6foOcLhvnKlUeu/erjjvaPEYiI= github.com/shirou/gopsutil v3.21.11+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= diff --git a/ops/tools/go.mod b/ops/tools/go.mod index 9e6367cc4..da2ad8a7f 100644 --- a/ops/tools/go.mod +++ b/ops/tools/go.mod @@ -5,7 +5,7 @@ go 1.24.0 replace github.com/tendermint/tendermint => github.com/morph-l2/tendermint v0.3.8-0.20260625105428-a5de063445a3 require ( - github.com/morph-l2/go-ethereum v1.10.14-0.20260629084315-efdd4dbee28b + github.com/morph-l2/go-ethereum v1.10.14-0.20260702033856-0eda19148ddd github.com/tendermint/tendermint v0.35.9 ) @@ -65,7 +65,6 @@ require ( github.com/rjeczalik/notify v0.9.3 // indirect github.com/rs/cors v1.11.0 // indirect github.com/sasha-s/go-deadlock v0.3.1 // indirect - github.com/scroll-tech/zktrie v0.8.4 // indirect github.com/shirou/gopsutil v3.21.11+incompatible // indirect github.com/status-im/keycard-go v0.3.2 // indirect github.com/supranational/blst v0.3.16-0.20250831170142-f48500c1fdbe // indirect diff --git a/ops/tools/go.sum b/ops/tools/go.sum index 8b3d34881..bcf1cc7f4 100644 --- a/ops/tools/go.sum +++ b/ops/tools/go.sum @@ -161,8 +161,8 @@ github.com/mmcloughlin/addchain v0.4.0/go.mod h1:A86O+tHqZLMNO4w6ZZ4FlVQEadcoqky github.com/mmcloughlin/profile v0.1.1/go.mod h1:IhHD7q1ooxgwTgjxQYkACGA77oFTDdFVejUS1/tS/qU= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/morph-l2/go-ethereum v1.10.14-0.20260629084315-efdd4dbee28b h1:z/ivkqYXZQ07ztg38AxybRLPLyujHF0E/+z3gjHV7eM= -github.com/morph-l2/go-ethereum v1.10.14-0.20260629084315-efdd4dbee28b/go.mod h1:nkVzHjQWCOjvukQW8ittlwX+Xz9gmVHrP7mUi7zoHTs= +github.com/morph-l2/go-ethereum v1.10.14-0.20260702033856-0eda19148ddd h1:p81r2Jx+iLt3sRNICEFt7K9SN68ardffrWhB15ggeAw= +github.com/morph-l2/go-ethereum v1.10.14-0.20260702033856-0eda19148ddd/go.mod h1:nkVzHjQWCOjvukQW8ittlwX+Xz9gmVHrP7mUi7zoHTs= github.com/morph-l2/tendermint v0.3.8-0.20260625105428-a5de063445a3 h1:ZpUi8rHb4KOcW8Eua5VSQksWBI+8F25mxdtzjJl4h/M= github.com/morph-l2/tendermint v0.3.8-0.20260625105428-a5de063445a3/go.mod h1:qpiwqfcCB89dBYfqVJOc/HjGxDp3OdDlthgttJJYyRs= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= @@ -218,8 +218,6 @@ github.com/rs/cors v1.11.0 h1:0B9GE/r9Bc2UxRMMtymBkHTenPkHDv0CW4Y98GBY+po= github.com/rs/cors v1.11.0/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU= github.com/sasha-s/go-deadlock v0.3.1 h1:sqv7fDNShgjcaxkO0JNcOAlr8B9+cV5Ey/OB71efZx0= github.com/sasha-s/go-deadlock v0.3.1/go.mod h1:F73l+cr82YSh10GxyRI6qZiCgK64VaZjwesgfQ1/iLM= -github.com/scroll-tech/zktrie v0.8.4 h1:UagmnZ4Z3ITCk+aUq9NQZJNAwnWl4gSxsLb2Nl7IgRE= -github.com/scroll-tech/zktrie v0.8.4/go.mod h1:XvNo7vAk8yxNyTjBDj5WIiFzYW4bx/gJ78+NK6Zn6Uk= github.com/shirou/gopsutil v3.21.11+incompatible h1:+1+c1VGhc88SSonWP6foOcLhvnKlUeu/erjjvaPEYiI= github.com/shirou/gopsutil v3.21.11+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= diff --git a/token-price-oracle/go.mod b/token-price-oracle/go.mod index 158c7cce8..69e399302 100644 --- a/token-price-oracle/go.mod +++ b/token-price-oracle/go.mod @@ -8,7 +8,7 @@ replace ( ) require ( - github.com/morph-l2/go-ethereum v1.10.14-0.20260629084315-efdd4dbee28b + github.com/morph-l2/go-ethereum v1.10.14-0.20260702033856-0eda19148ddd github.com/morph-l2/remote-signer-client/go v0.0.0-20260312080033-d078d86ddbe9 github.com/prometheus/client_golang v1.17.0 github.com/sirupsen/logrus v1.9.3 @@ -67,7 +67,6 @@ require ( github.com/rjeczalik/notify v0.9.3 // indirect github.com/rs/cors v1.11.0 // indirect github.com/russross/blackfriday/v2 v2.1.0 // indirect - github.com/scroll-tech/zktrie v0.8.4 // indirect github.com/shirou/gopsutil v3.21.11+incompatible // indirect github.com/status-im/keycard-go v0.3.2 // indirect github.com/supranational/blst v0.3.16-0.20250831170142-f48500c1fdbe // indirect diff --git a/token-price-oracle/go.sum b/token-price-oracle/go.sum index 1e1ffa028..110e6f67a 100644 --- a/token-price-oracle/go.sum +++ b/token-price-oracle/go.sum @@ -143,8 +143,8 @@ github.com/mmcloughlin/addchain v0.4.0/go.mod h1:A86O+tHqZLMNO4w6ZZ4FlVQEadcoqky github.com/mmcloughlin/profile v0.1.1/go.mod h1:IhHD7q1ooxgwTgjxQYkACGA77oFTDdFVejUS1/tS/qU= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/morph-l2/go-ethereum v1.10.14-0.20260629084315-efdd4dbee28b h1:z/ivkqYXZQ07ztg38AxybRLPLyujHF0E/+z3gjHV7eM= -github.com/morph-l2/go-ethereum v1.10.14-0.20260629084315-efdd4dbee28b/go.mod h1:nkVzHjQWCOjvukQW8ittlwX+Xz9gmVHrP7mUi7zoHTs= +github.com/morph-l2/go-ethereum v1.10.14-0.20260702033856-0eda19148ddd h1:p81r2Jx+iLt3sRNICEFt7K9SN68ardffrWhB15ggeAw= +github.com/morph-l2/go-ethereum v1.10.14-0.20260702033856-0eda19148ddd/go.mod h1:nkVzHjQWCOjvukQW8ittlwX+Xz9gmVHrP7mUi7zoHTs= github.com/morph-l2/remote-signer-client/go v0.0.0-20260312080033-d078d86ddbe9 h1:d2nKLUgiEJsQmpSWEiGbsC+sZXQCM4y/3EzyXkoMM60= github.com/morph-l2/remote-signer-client/go v0.0.0-20260312080033-d078d86ddbe9/go.mod h1:slD6GmYEwLHn4Yj/kO8/1QF3iaYlVVAXg2ZnGr8SW/8= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= @@ -197,8 +197,6 @@ github.com/rs/cors v1.11.0 h1:0B9GE/r9Bc2UxRMMtymBkHTenPkHDv0CW4Y98GBY+po= github.com/rs/cors v1.11.0/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU= github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/scroll-tech/zktrie v0.8.4 h1:UagmnZ4Z3ITCk+aUq9NQZJNAwnWl4gSxsLb2Nl7IgRE= -github.com/scroll-tech/zktrie v0.8.4/go.mod h1:XvNo7vAk8yxNyTjBDj5WIiFzYW4bx/gJ78+NK6Zn6Uk= github.com/shirou/gopsutil v3.21.11+incompatible h1:+1+c1VGhc88SSonWP6foOcLhvnKlUeu/erjjvaPEYiI= github.com/shirou/gopsutil v3.21.11+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= diff --git a/tx-submitter/go.mod b/tx-submitter/go.mod index d4e021839..2ab622de4 100644 --- a/tx-submitter/go.mod +++ b/tx-submitter/go.mod @@ -9,7 +9,7 @@ require ( github.com/crate-crypto/go-eth-kzg v1.4.0 github.com/holiman/uint256 v1.2.4 github.com/morph-l2/externalsign v0.3.1 - github.com/morph-l2/go-ethereum v1.10.14-0.20260629084315-efdd4dbee28b + github.com/morph-l2/go-ethereum v1.10.14-0.20260702033856-0eda19148ddd github.com/prometheus/client_golang v1.17.0 github.com/stretchr/testify v1.10.0 github.com/syndtr/goleveldb v1.0.1-0.20220614013038-64ee5596c38a @@ -66,7 +66,6 @@ require ( github.com/rjeczalik/notify v0.9.3 // indirect github.com/rs/cors v1.11.0 // indirect github.com/russross/blackfriday/v2 v2.1.0 // indirect - github.com/scroll-tech/zktrie v0.8.4 // indirect github.com/shirou/gopsutil v3.21.11+incompatible // indirect github.com/status-im/keycard-go v0.3.2 // indirect github.com/supranational/blst v0.3.16-0.20250831170142-f48500c1fdbe // indirect diff --git a/tx-submitter/go.sum b/tx-submitter/go.sum index cd9c9b0d5..8124eb137 100644 --- a/tx-submitter/go.sum +++ b/tx-submitter/go.sum @@ -161,8 +161,8 @@ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJ github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/morph-l2/externalsign v0.3.1 h1:UYFDZFB0L85A4rDvuwLNBiGEi0kSmg9AZ2v8Q5O4dQo= github.com/morph-l2/externalsign v0.3.1/go.mod h1:b6NJ4GUiiG/gcSJsp3p8ExsIs4ZdphlrVALASnVoGJE= -github.com/morph-l2/go-ethereum v1.10.14-0.20260629084315-efdd4dbee28b h1:z/ivkqYXZQ07ztg38AxybRLPLyujHF0E/+z3gjHV7eM= -github.com/morph-l2/go-ethereum v1.10.14-0.20260629084315-efdd4dbee28b/go.mod h1:nkVzHjQWCOjvukQW8ittlwX+Xz9gmVHrP7mUi7zoHTs= +github.com/morph-l2/go-ethereum v1.10.14-0.20260702033856-0eda19148ddd h1:p81r2Jx+iLt3sRNICEFt7K9SN68ardffrWhB15ggeAw= +github.com/morph-l2/go-ethereum v1.10.14-0.20260702033856-0eda19148ddd/go.mod h1:nkVzHjQWCOjvukQW8ittlwX+Xz9gmVHrP7mUi7zoHTs= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE= @@ -217,8 +217,6 @@ github.com/rs/cors v1.11.0 h1:0B9GE/r9Bc2UxRMMtymBkHTenPkHDv0CW4Y98GBY+po= github.com/rs/cors v1.11.0/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU= github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/scroll-tech/zktrie v0.8.4 h1:UagmnZ4Z3ITCk+aUq9NQZJNAwnWl4gSxsLb2Nl7IgRE= -github.com/scroll-tech/zktrie v0.8.4/go.mod h1:XvNo7vAk8yxNyTjBDj5WIiFzYW4bx/gJ78+NK6Zn6Uk= github.com/shirou/gopsutil v3.21.11+incompatible h1:+1+c1VGhc88SSonWP6foOcLhvnKlUeu/erjjvaPEYiI= github.com/shirou/gopsutil v3.21.11+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=