Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unsafe head fetching from Arcadia or fallback to legacy mempool production #5

Merged
merged 9 commits into from
Jan 21, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@
<a href="https://optimism.io"><img alt="Optimism" src="https://raw.githubusercontent.com/ethereum-optimism/brand-kit/main/assets/svg/OPTIMISM-R.svg" width=600></a>
<br />
<h3><a href="https://optimism.io">Optimism</a> is Ethereum, scaled.</h3>
<p>
This Optimism Stack is tailored to run in PBS in NodeKit's system, check section NodeKit PBS for more information
</p>
<br />
</div>

Expand All @@ -13,6 +16,7 @@

- [What is Optimism?](#what-is-optimism)
- [Documentation](#documentation)
- [NodeKit PBS](#NodeKit PBS)
- [Specification](#specification)
- [Community](#community)
- [Contributing](#contributing)
Expand All @@ -37,6 +41,10 @@ In this repository, you'll find numerous core components of the OP Stack, the de
- If you want to build on top of OP Mainnet, refer to the [Optimism Documentation](https://docs.optimism.io)
- If you want to build your own OP Stack based blockchain, refer to the [OP Stack Guide](https://docs.optimism.io/stack/getting-started), and make sure to understand this repository's [Development and Release Process](#development-and-release-process)

## NodeKit PBS

In NodeKit PBS, we have two types of builder, the super builder and the MEV builder, both types of builder will build blocks then submit to [Arcadia](https://github.com/AnomalyFi/Arcadia/tree/arcadia), then Arcadia will produce valid block for op-node to be fetched from. In Arcadia based version, for ease of integration, we have a [sidecar](https://github.com/AnomalyFi/sidecar) that manages rollup registration and exit on NodeKit system, when the rollup is registered, the sidecar will fetch blocks from Arcadia; when the rollup is exited or not join NodeKit system, it simply fallback to the legacy mode, which produces block based on its mempool. For detail of launching the NodeKit based Optimism rollup, goto [op-javelin-deployment](https://github.com/AnomalyFi/op-javelin-deployment/tree/arcadia)

## Specification

If you're interested in the technical details of how Optimism works, refer to the [Optimism Protocol Specification](https://github.com/ethereum-optimism/specs).
Expand Down
94 changes: 31 additions & 63 deletions bedrock-devnet/devnet/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,14 +15,6 @@
from multiprocessing import Process, Queue
import concurrent.futures
from collections import namedtuple
# from hdwallet import BIP44HDWallet
# from hdwallet.cryptocurrencies import EthereumMainnet
# from hdwallet.derivations import BIP44Derivation
# from hdwallet.utils import generate_mnemonic
# from typing import Optional


import devnet.log_setup

pjoin = os.path.join

Expand Down Expand Up @@ -51,15 +43,22 @@
parser.add_argument('--nodekit-l1-dir', help='directory of nodekit-l1', type=str, default='nodekit-l1')
parser.add_argument('--nodekit-contract', help='nodekit commitment contract address on l1', type=str, default='')
parser.add_argument('--seq-url', help='seq url', type=str, default='http://127.0.0.1:37029/ext/bc/56iQygPt5wrSCqZSLVwKyT7hAEdraXqDsYqWtWoAWaZSKDSDm')
parser.add_argument('--seq-signer', help='signing wallet of SEQ', type=str, default='323b1d8f4eed5f0da9da93071b034f2dce9d2d22692c172f3cb252a64ddfafd01b057de320297c29ad0c1f589ea216869cf1938d88c9fbd70d6748323dbf2fa7')
parser.add_argument('--builder-sk', help='bls secret key of l2-builder', type=str, default='0x2fc12ae741f29701f8e30f5de6350766c020cb80768a0ff01e6838ffd2431e11')
parser.add_argument('--l1-chain-id', help='chain id of l1', type=str, default='32382')
parser.add_argument('--l2-chain-id', help='chain id of l2', type=str, default='45200')
parser.add_argument('--deploy-contracts', help='deploy contracts for l2 and nodekit-zk', type=bool, action=argparse.BooleanOptionalAction)
parser.add_argument('--mnemonic-words', help='mnemonic words to deploy nodekit-zk contract', type=str, default='test test test test test test test test test test test junk')
parser.add_argument('--subnet', help='the static subnet opstack will be deployed on', type=str, default='172.20')
parser.add_argument('--proposer-hdpath', help='the hd path of proposer mnemonic will be used to post roots to l1', type=str, default="m/44'/60'/0'/0/1")
parser.add_argument('--batcher-hdpath', help='the hd path of batcher mnemonic will be used to post batches to l1', type=str, default="m/44'/60'/0'/0/2")
parser.add_argument('--baton-url', help='rpc url of baton', type=str, default='http://baton.url')
parser.add_argument('--arcadia-url', help='rpc url of arcadia', type=str, default='http://arcadia.url')
parser.add_argument('--block-time', help='block time of chain in seconds', type=str, default='2')
parser.add_argument('--builder-resubmit-interval', help='builder block production interval', type=str, default='200ms')
parser.add_argument('--builder-submission-offset', help='builder submission offset', type=str, default='500ms')
parser.add_argument('--builder-record-offset', help='builder record offset', type=str, default='1500ms')
parser.add_argument('--builder-rate-limit-duration', help='builder rate limit duration', type=str, default='100ms')
parser.add_argument('--sidecar-url', help='sidecar url', type=str, default='http://sidecar.url')
parser.add_argument('--sidecar-secret-key', help='sidecar bls signing key', type=str, default='0xblskey')


# Global environment variables
Expand Down Expand Up @@ -415,7 +414,6 @@ def devnet_deploy(paths, args):
nodekit = args.nodekit
l2 = args.l2
l2_chain_id = int(args.l2_chain_id)
baton_url: str = args.baton_url
# which will be prepended to names of docker volumnes and services so we can run several rollups
composer_project_name = f'op-devnet_{l2_chain_id}'
l2_provider_url = args.l2_provider_url
Expand All @@ -424,11 +422,19 @@ def devnet_deploy(paths, args):
l1_ws_url = args.l1_ws_url
seq_addr: str = args.seq_url
seq_chain_id = seq_addr.split('/')[-1]
seq_signer: str = args.seq_signer
builder_sk: str = args.builder_sk
subnet = args.subnet
mnemonic_words = args.mnemonic_words
batcher_hdpath = args.batcher_hdpath
proposer_hdpath = args.proposer_hdpath
arcadia_url: str = args.arcadia_url
block_time: str = args.block_time
builder_resubmit_interval: str = args.builder_resubmit_interval
builder_submission_offset: str = args.builder_submission_offset
builder_record_offset: str = args.builder_record_offset
builder_rate_limit_duration: str = args.builder_rate_limit_duration
sidecar_url: str = args.sidecar_url
sidecar_secret_key: str = args.sidecar_secret_key

conf = {
l2_provider_url,
Expand All @@ -441,53 +447,6 @@ def devnet_deploy(paths, args):

print(f'using config {conf}')

# TODO: to be removed since we don't need to launch l2 ourselves
# if os.path.exists(paths.genesis_l1_path) and os.path.isfile(paths.genesis_l1_path):
# log.info('L1 genesis already generated.')
# elif not args.deploy_l2:
# # Generate the L1 genesis, unless we are deploying an L2 onto an existing L1.
# log.info('Generating L1 genesis.')
# if os.path.exists(paths.allocs_path) == False:
# devnet_l1_genesis(paths, args.deploy_config)

# # It's odd that we want to regenerate the devnetL1.json file with
# # an updated timestamp different than the one used in the devnet_l1_genesis
# # function. But, without it, CI flakes on this test rather consistently.
# # If someone reads this comment and understands why this is being done, please
# # update this comment to explain.
# init_devnet_l1_deploy_config(paths, update_timestamp=True)
# outfile_l1 = pjoin(paths.devnet_dir, 'genesis-l1.json')
# run_command([
# 'go', 'run', 'cmd/main.go', 'genesis', 'l1',
# '--deploy-config', paths.devnet_config_path,
# '--l1-allocs', paths.allocs_path,
# '--l1-deployments', paths.addresses_json_path,
# '--outfile.l1', outfile_l1,
# ], cwd=paths.op_node_dir)

# if args.deploy_l2:
# # L1 and sequencer already exist, just create the deploy config and deploy the L1 contracts
# # for the new L2.
# init_devnet_l1_deploy_config(paths, update_timestamp=True)
# deploy_contracts(paths, args.deploy_config, args.deploy_l2)
# else:
# # Deploy L1 and sequencer network.
# log.info('Starting L1.')
# run_command(['docker', 'compose', '-f', compose_file, 'up', '-d', 'l1'], cwd=paths.ops_bedrock_dir, env={
# 'PWD': paths.ops_bedrock_dir,
# 'DEVNET_DIR': paths.devnet_dir
# })
# #wait_up(8545)
# wait_for_rpc_server('devnet.nodekit.xyz')

# log.info('Bringing up `artifact-server`')
# run_command(['docker', 'compose', 'up', '-d', 'artifact-server'], cwd=paths.ops_bedrock_dir, env={
# 'PWD': paths.ops_bedrock_dir,
# 'DEVNET_DIR': paths.devnet_dir
# })



# Re-build the L2 genesis unconditionally in NodeKit mode, since we require the timestamps to be recent.
# if not nodekit and os.path.exists(paths.genesis_l2_path) and os.path.isfile(paths.genesis_l2_path):
if os.path.exists(paths.genesis_l2_path) and os.path.isfile(paths.genesis_l2_path):
Expand Down Expand Up @@ -559,7 +518,10 @@ def devnet_deploy(paths, args):
'OP_BATCHER_SEQUENCER_HD_PATH': batcher_hdpath,
'OP_PROPOSER_MNEMONIC': mnemonic_words,
'OP_PROPOSER_L2_OUTPUT_HD_PATH': proposer_hdpath,
'COMPOSE_PROJECT_NAME': composer_project_name
'COMPOSE_PROJECT_NAME': composer_project_name,
'L2_CHAINID': hex(int(l2_chain_id)),
'SIDECAR_URL': sidecar_url,
'SIDECAR_SECRET_KEY': sidecar_secret_key,
})

enr = get_enr(composer_project_name, "op1-node", paths.ops_bedrock_dir)
Expand All @@ -571,13 +533,18 @@ def devnet_deploy(paths, args):
env={
"PWD": paths.ops_bedrock_dir,
'SUBNET': subnet,
'BATON_URL': baton_url,
"ENODE": enode,
'SEQ_ADDR': seq_addr,
'SEQ_CHAIN_ID': seq_chain_id,
'SEQ_SIGNER_HEX': seq_signer,
'BUILDER_SECRET_KEY': builder_sk,
'L2_CHAINID': f'{45200+inc}',
"COMPOSE_PROJECT_NAME": composer_project_name
"COMPOSE_PROJECT_NAME": composer_project_name,
'ARCADIA_URL': arcadia_url,
'BUILDER_RESUBMIT_INTERVAL': builder_resubmit_interval,
'BUILDER_SECONDS_IN_SLOT': block_time,
'BUILDER_SUBMISSION_OFFSET': builder_submission_offset,
'BUILDER_RECORD_OFFSET': builder_record_offset,
'BUILDER_RATE_LIMIT_DURATION': builder_rate_limit_duration,
})
# TODO: to be injected
l2builder_rpc_port = 15545 + inc
Expand All @@ -592,6 +559,7 @@ def devnet_deploy(paths, args):
["docker", "compose", "up", "-d", "op-node-builder"],
cwd=paths.ops_bedrock_dir,
env={
'DEVNET_DIR': paths.devnet_dir,
'L1WS': l1_ws_url,
'SUBNET': subnet,
"PWD": paths.ops_bedrock_dir,
Expand Down
15 changes: 8 additions & 7 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,8 @@ require (
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0
github.com/ethereum-optimism/go-ethereum-hdwallet v0.1.3
github.com/ethereum-optimism/superchain-registry/superchain v0.0.0-20240318114348-52d3dbd1605d
github.com/ethereum/go-ethereum v1.13.8
github.com/ethereum/go-ethereum v1.13.14
github.com/flashbots/go-boost-utils v1.8.1
github.com/fsnotify/fsnotify v1.7.0
github.com/go-chi/chi/v5 v5.0.12
github.com/go-chi/docgen v1.2.0
Expand Down Expand Up @@ -90,15 +91,15 @@ require (
github.com/dop251/goja v0.0.0-20230806174421-c933cf95e127 // indirect
github.com/elastic/gosigar v0.14.2 // indirect
github.com/ethereum/c-kzg-4844 v0.4.0 // indirect
github.com/fatih/color v1.13.0 // indirect
github.com/fatih/color v1.15.0 // indirect
github.com/felixge/fgprof v0.9.3 // indirect
github.com/fjl/memsize v0.0.1 // indirect
github.com/fjl/memsize v0.0.2 // indirect
github.com/flynn/noise v1.0.0 // indirect
github.com/francoispqt/gojay v1.2.13 // indirect
github.com/gballet/go-libpcsclite v0.0.0-20191108122812-4678299bea08 // indirect
github.com/gballet/go-verkle v0.1.1-0.20231031103413-a67434b50f46 // indirect
github.com/getsentry/sentry-go v0.18.0 // indirect
github.com/go-ole/go-ole v1.2.6 // indirect
github.com/go-ole/go-ole v1.3.0 // indirect
github.com/go-sourcemap/sourcemap v2.1.3+incompatible // indirect
github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 // indirect
github.com/godbus/dbus/v5 v5.1.0 // indirect
Expand All @@ -119,7 +120,7 @@ require (
github.com/hashicorp/go-msgpack/v2 v2.1.1 // indirect
github.com/hashicorp/golang-lru v0.5.0 // indirect
github.com/hashicorp/golang-lru/arc/v2 v2.0.5 // indirect
github.com/holiman/billy v0.0.0-20230718173358-1c7e68d277a7 // indirect
github.com/holiman/billy v0.0.0-20240216141850-2abb0c79d3c4 // indirect
github.com/holiman/bloomfilter/v2 v2.0.3 // indirect
github.com/huin/goupnp v1.3.0 // indirect
github.com/influxdata/influxdb-client-go/v2 v2.4.0 // indirect
Expand Down Expand Up @@ -188,7 +189,7 @@ require (
github.com/quic-go/webtransport-go v0.6.0 // indirect
github.com/raulk/go-watchdog v1.3.0 // indirect
github.com/rivo/uniseg v0.4.3 // indirect
github.com/rogpeppe/go-internal v1.10.0 // indirect
github.com/rogpeppe/go-internal v1.11.0 // indirect
github.com/rs/cors v1.9.0 // indirect
github.com/russross/blackfriday/v2 v2.1.0 // indirect
github.com/shirou/gopsutil v3.21.11+incompatible // indirect
Expand Down Expand Up @@ -222,7 +223,7 @@ require (
rsc.io/tmplfunc v0.0.3 // indirect
)

replace github.com/ethereum/go-ethereum v1.13.8 => github.com/anomalyfi/op-geth v0.7.0
replace github.com/ethereum/go-ethereum v1.13.14 => github.com/anomalyfi/op-geth v0.7.0

// replace github.com/ethereum-optimism/superchain-registry/superchain => ../superchain-registry/superchain

Expand Down
23 changes: 15 additions & 8 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -178,12 +178,15 @@ github.com/ethereum-optimism/superchain-registry/superchain v0.0.0-2024031811434
github.com/ethereum-optimism/superchain-registry/superchain v0.0.0-20240318114348-52d3dbd1605d/go.mod h1:7xh2awFQqsiZxFrHKTgEd+InVfDRrkKVUIuK8SAFHp0=
github.com/ethereum/c-kzg-4844 v0.4.0 h1:3MS1s4JtA868KpJxroZoepdV0ZKBp3u/O5HcZ7R3nlY=
github.com/ethereum/c-kzg-4844 v0.4.0/go.mod h1:VewdlzQmpT5QSrVhbBuGoCdFJkpaJlO1aQputP83wc0=
github.com/fatih/color v1.13.0 h1:8LOYc1KYPPmyKMuN8QV2DNRWNbLo6LZ0iLs8+mlH53w=
github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk=
github.com/fatih/color v1.15.0 h1:kOqh6YHBtK8aywxGerMG2Eq3H6Qgoqeo13Bk2Mv/nBs=
github.com/fatih/color v1.15.0/go.mod h1:0h5ZqXfHYED7Bhv2ZJamyIOUej9KtShiJESRwBDUSsw=
github.com/felixge/fgprof v0.9.3 h1:VvyZxILNuCiUCSXtPtYmmtGvb65nqXh2QFWc0Wpf2/g=
github.com/felixge/fgprof v0.9.3/go.mod h1:RdbpDgzqYVh/T9fPELJyV7EYJuHB55UTEULNun8eiPw=
github.com/fjl/memsize v0.0.1 h1:+zhkb+dhUgx0/e+M8sF0QqiouvMQUiKR+QYvdxIOKcQ=
github.com/fjl/memsize v0.0.1/go.mod h1:VvhXpOYNQvB+uIk2RvXzuaQtkQJzzIx6lSBe1xv7hi0=
github.com/fjl/memsize v0.0.2 h1:27txuSD9or+NZlnOWdKUxeBzTAUkWCVh+4Gf2dWFOzA=
github.com/fjl/memsize v0.0.2/go.mod h1:VvhXpOYNQvB+uIk2RvXzuaQtkQJzzIx6lSBe1xv7hi0=
github.com/flashbots/go-boost-utils v1.8.1 h1:AD+1+4oCbBjXLK8IqWHYznD95K6/MmqXhozv5fFOCkU=
github.com/flashbots/go-boost-utils v1.8.1/go.mod h1:jFi2H1el7jGPr2ShkWpYPfKsY9vwsFNmBPJRCO7IPg8=
github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc=
github.com/flynn/noise v1.0.0 h1:DlTHqmzmvcEiKj+4RYo/imoswx/4r6iBlCMfVtrMXpQ=
github.com/flynn/noise v1.0.0/go.mod h1:xbMo+0i6+IGbYdJhF31t2eR1BIU0CYc12+BNAKwUTag=
Expand Down Expand Up @@ -222,8 +225,9 @@ github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V
github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A=
github.com/go-logr/logr v1.3.0 h1:2y3SDp0ZXuc6/cjLSZ+Q3ir+QB9T/iG5yYRXqsagWSY=
github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY=
github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0=
github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE=
github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78=
github.com/go-openapi/jsonpointer v0.19.5/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg=
github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk=
github.com/go-sourcemap/sourcemap v2.1.3+incompatible h1:W1iEw64niKVGogNgBN3ePyLFfuisuzeidWPMPWmECqU=
Expand Down Expand Up @@ -338,8 +342,8 @@ github.com/hashicorp/raft v1.6.1 h1:v/jm5fcYHvVkL0akByAp+IDdDSzCNCGhdO6VdB56HIM=
github.com/hashicorp/raft v1.6.1/go.mod h1:N1sKh6Vn47mrWvEArQgILTyng8GoDRNYlgKyK7PMjs0=
github.com/hashicorp/raft-boltdb v0.0.0-20231211162105-6c830fa4535e h1:SK4y8oR4ZMHPvwVHryKI88kJPJda4UyWYvG5A6iEQxc=
github.com/hashicorp/raft-boltdb v0.0.0-20231211162105-6c830fa4535e/go.mod h1:EMz/UIuG93P0MBeHh6CbXQAEe8ckVJLZjhD17lBzK5Q=
github.com/holiman/billy v0.0.0-20230718173358-1c7e68d277a7 h1:3JQNjnMRil1yD0IfZKHF9GxxWKDJGj8I0IqOUol//sw=
github.com/holiman/billy v0.0.0-20230718173358-1c7e68d277a7/go.mod h1:5GuXa7vkL8u9FkFuWdVvfR5ix8hRB7DbOAaYULamFpc=
github.com/holiman/billy v0.0.0-20240216141850-2abb0c79d3c4 h1:X4egAf/gcS1zATw6wn4Ej8vjuVGxeHdan+bRb2ebyv4=
github.com/holiman/billy v0.0.0-20240216141850-2abb0c79d3c4/go.mod h1:5GuXa7vkL8u9FkFuWdVvfR5ix8hRB7DbOAaYULamFpc=
github.com/holiman/bloomfilter/v2 v2.0.3 h1:73e0e/V0tCydx14a0SCYS/EWCxgwLZ18CZcZKVu0fao=
github.com/holiman/bloomfilter/v2 v2.0.3/go.mod h1:zpoh+gs7qcpqrHr3dB55AMiJwo0iURXE7ZOP9L9hSkA=
github.com/holiman/uint256 v1.2.4 h1:jUc4Nk8fm9jZabQuqr2JzednajVmBpC+oiTiXZJEApU=
Expand Down Expand Up @@ -692,8 +696,8 @@ github.com/rivo/uniseg v0.4.3/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUc
github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc=
github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs=
github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ=
github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog=
github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M=
github.com/rogpeppe/go-internal v1.11.0/go.mod h1:ddIwULY96R17DhadqLgMfk9H9tvdUzkipdSkR5nkCZA=
github.com/rs/cors v1.9.0 h1:l9HGsTsHJcvW14Nk7J9KFz8bzeAWXn3CG6bgt7LsrAE=
github.com/rs/cors v1.9.0/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU=
github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ=
Expand Down Expand Up @@ -770,6 +774,8 @@ github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFA
github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI=
github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk=
github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY=
github.com/trailofbits/go-fuzz-utils v0.0.0-20210901195358-9657fcfd256c h1:4WU+p200eLYtBsx3M5CKXvkjVdf5SC3W9nMg37y0TFI=
github.com/trailofbits/go-fuzz-utils v0.0.0-20210901195358-9657fcfd256c/go.mod h1:f3jBhpWvuZmue0HZK52GzRHJOYHYSILs/c8+K2S/J+o=
github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM=
github.com/tyler-smith/go-bip39 v1.1.0 h1:5eUemwrMargf3BSLRRCalXT93Ns6pQJIjYQN2nyfOP8=
github.com/tyler-smith/go-bip39 v1.1.0/go.mod h1:gUYDtqQw1JS3ZJ8UWVcGTGqqr6YIN3CWg+kkNaLt55U=
Expand Down Expand Up @@ -955,6 +961,7 @@ golang.org/x/sys v0.0.0-20220503163025-988cb79eb6c6/go.mod h1:oPkhp1MJrh7nUepCBc
golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
Expand Down
Loading
Loading