Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
N
nebula
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
exchain
nebula
Commits
90ade85a
Commit
90ade85a
authored
Mar 11, 2023
by
clabby
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Remove unused dependencies from `contracts-bedrock`
parent
eeed99ed
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
67 additions
and
247 deletions
+67
-247
api.go
op-node/node/api.go
+1
-1
output_root.go
op-node/rollup/output_root.go
+1
-1
package.json
packages/contracts-bedrock/package.json
+0
-2
differential-testing.go
...rock/scripts/differential-testing/differential-testing.go
+41
-91
utils.go
...s/contracts-bedrock/scripts/differential-testing/utils.go
+22
-37
yarn.lock
yarn.lock
+2
-115
No files found.
op-node/node/api.go
View file @
90ade85a
...
...
@@ -114,7 +114,7 @@ func (n *nodeAPI) OutputAtBlock(ctx context.Context, number hexutil.Uint64) (*et
}
var
l2OutputRootVersion
eth
.
Bytes32
// it's zero for now
l2OutputRoot
:=
rollup
.
ComputeL2OutputRoot
(
l2OutputRootVersion
,
head
.
Hash
(),
head
.
Root
(),
proof
.
StorageHash
)
l2OutputRoot
:=
rollup
.
ComputeL2OutputRoot
(
l2OutputRootVersion
,
head
.
Root
(),
proof
.
StorageHash
,
head
.
Hash
()
)
return
&
eth
.
OutputResponse
{
Version
:
l2OutputRootVersion
,
...
...
op-node/rollup/output_root.go
View file @
90ade85a
...
...
@@ -8,7 +8,7 @@ import (
)
// ComputeL2OutputRoot computes the L2 output root
func
ComputeL2OutputRoot
(
l2OutputRootVersion
eth
.
Bytes32
,
block
Hash
common
.
Hash
,
blockRoot
common
.
Hash
,
storageRoot
common
.
Hash
)
eth
.
Bytes32
{
func
ComputeL2OutputRoot
(
l2OutputRootVersion
eth
.
Bytes32
,
block
Root
common
.
Hash
,
storageRoot
common
.
Hash
,
blockHash
common
.
Hash
)
eth
.
Bytes32
{
digest
:=
crypto
.
Keccak256Hash
(
l2OutputRootVersion
[
:
],
blockRoot
.
Bytes
(),
...
...
packages/contracts-bedrock/package.json
View file @
90ade85a
...
...
@@ -59,8 +59,6 @@
},
"devDependencies"
:
{
"@eth-optimism/hardhat-deploy-config"
:
"^0.2.5"
,
"@ethereumjs/trie"
:
"^5.0.0-beta.1"
,
"@ethereumjs/util"
:
"^8.0.0-beta.1"
,
"@ethersproject/abstract-provider"
:
"^5.7.0"
,
"@ethersproject/abstract-signer"
:
"^5.7.0"
,
"ethereumjs-wallet"
:
"^1.0.2"
,
...
...
packages/contracts-bedrock/scripts/differential-testing/differential-testing.go
View file @
90ade85a
...
...
@@ -6,6 +6,7 @@ import (
"math/big"
"os"
"github.com/ethereum-optimism/optimism/op-bindings/predeploys"
"github.com/ethereum-optimism/optimism/op-chain-ops/crossdomain"
"github.com/ethereum/go-ethereum/accounts/abi"
"github.com/ethereum/go-ethereum/common"
...
...
@@ -18,18 +19,14 @@ import (
// ABI types
var
(
// Plain dynamic bytesAbi type
bytesAbi
,
_
=
abi
.
NewType
(
"bytes"
,
"bytes"
,
[]
abi
.
ArgumentMarshaling
{
{
Name
:
"data"
,
Type
:
"bytes"
},
})
bytesArgs
=
abi
.
Arguments
{
{
Type
:
bytesAbi
},
// Plain dynamic dynBytes type
dynBytes
,
_
=
abi
.
NewType
(
"bytes"
,
""
,
nil
)
bytesArgs
=
abi
.
Arguments
{
{
Type
:
dynBytes
},
}
// Plain fixed bytes32 type
fixedBytes
,
_
=
abi
.
NewType
(
"bytes32"
,
"bytes32"
,
[]
abi
.
ArgumentMarshaling
{
{
Name
:
"data"
,
Type
:
"bytes32"
},
})
fixedBytes
,
_
=
abi
.
NewType
(
"bytes32"
,
""
,
nil
)
fixedBytesArgs
=
abi
.
Arguments
{
{
Type
:
fixedBytes
},
}
...
...
@@ -40,11 +37,11 @@ var (
{
Name
:
"version"
,
Type
:
"uint256"
},
})
decodedNonceArgs
=
abi
.
Arguments
{
{
Name
:
"
n
once"
,
Type
:
decodedNonce
},
{
Name
:
"
encodedN
once"
,
Type
:
decodedNonce
},
}
// WithdrawalHash slot tuple (bytes32, bytes32)
withdrawalSlot
,
_
=
abi
.
NewType
(
"tuple"
,
"
Array
SlotHash"
,
[]
abi
.
ArgumentMarshaling
{
withdrawalSlot
,
_
=
abi
.
NewType
(
"tuple"
,
"SlotHash"
,
[]
abi
.
ArgumentMarshaling
{
{
Name
:
"withdrawalHash"
,
Type
:
"bytes32"
},
{
Name
:
"zeroPadding"
,
Type
:
"bytes32"
},
})
...
...
@@ -52,34 +49,10 @@ var (
{
Name
:
"slotHash"
,
Type
:
withdrawalSlot
},
}
// Withdrawal transaction tuple (uint256, address, address, uint256, uint256, bytes)
withdrawalTransaction
,
_
=
abi
.
NewType
(
"tuple"
,
"WithdrawalTransaction"
,
[]
abi
.
ArgumentMarshaling
{
{
Name
:
"nonce"
,
Type
:
"uint256"
},
{
Name
:
"sender"
,
Type
:
"address"
},
{
Name
:
"target"
,
Type
:
"address"
},
{
Name
:
"value"
,
Type
:
"uint256"
},
{
Name
:
"gasLimit"
,
Type
:
"uint256"
},
{
Name
:
"data"
,
Type
:
"bytes"
},
})
withdrawalTransactionArgs
=
abi
.
Arguments
{
{
Name
:
"withdrawalTx"
,
Type
:
withdrawalTransaction
},
}
// Output root proof tuple (bytes32, bytes32, bytes32, bytes32)
outputRootProof
,
_
=
abi
.
NewType
(
"tuple"
,
"OutputRootProof"
,
[]
abi
.
ArgumentMarshaling
{
{
Name
:
"version"
,
Type
:
"bytes32"
},
{
Name
:
"stateRoot"
,
Type
:
"bytes32"
},
{
Name
:
"messagePasserStorageRoot"
,
Type
:
"bytes32"
},
{
Name
:
"latestBlockHash"
,
Type
:
"bytes32"
},
})
outputRootProofArgs
=
abi
.
Arguments
{
{
Name
:
"proof"
,
Type
:
outputRootProof
},
}
// Prove withdrawal inputs tuple (bytes32, bytes32, bytes32, bytes32, bytes[])
proveWithdrawalInputs
,
_
=
abi
.
NewType
(
"tuple"
,
"ProveWithdrawalInputs"
,
[]
abi
.
ArgumentMarshaling
{
{
Name
:
"worldRoot"
,
Type
:
"bytes32"
},
{
Name
:
"st
orag
eRoot"
,
Type
:
"bytes32"
},
{
Name
:
"st
at
eRoot"
,
Type
:
"bytes32"
},
{
Name
:
"outputRoot"
,
Type
:
"bytes32"
},
{
Name
:
"withdrawalHash"
,
Type
:
"bytes32"
},
{
Name
:
"proof"
,
Type
:
"bytes[]"
},
...
...
@@ -115,10 +88,9 @@ func main() {
version
,
}
packed
,
err
:=
decodedNonceArgs
.
Pack
(
&
packArgs
)
checkErr
(
err
,
fmt
.
Sprintf
(
"Error encoding output: %s"
,
err
)
)
checkErr
(
err
,
"Error encoding output"
)
fmt
.
Print
(
hexutil
.
Encode
(
packed
))
break
case
"encodeCrossDomainMessage"
:
// Parse input arguments
nonce
,
ok
:=
new
(
big
.
Int
)
.
SetString
(
args
[
1
],
10
)
...
...
@@ -133,14 +105,13 @@ func main() {
// Encode cross domain message
encoded
,
err
:=
encodeCrossDomainMessage
(
nonce
,
sender
,
target
,
value
,
gasLimit
,
data
)
checkErr
(
err
,
fmt
.
Sprintf
(
"Error encoding cross domain message: %s"
,
err
)
)
checkErr
(
err
,
"Error encoding cross domain message"
)
// Pack encoded cross domain message
packed
,
err
:=
bytesArgs
.
Pack
(
&
encoded
)
checkErr
(
err
,
fmt
.
Sprintf
(
"Error encoding output: %s"
,
err
)
)
checkErr
(
err
,
"Error encoding output"
)
fmt
.
Print
(
hexutil
.
Encode
(
packed
))
break
case
"hashCrossDomainMessage"
:
// Parse input arguments
nonce
,
ok
:=
new
(
big
.
Int
)
.
SetString
(
args
[
1
],
10
)
...
...
@@ -155,17 +126,16 @@ func main() {
// Encode cross domain message
encoded
,
err
:=
encodeCrossDomainMessage
(
nonce
,
sender
,
target
,
value
,
gasLimit
,
data
)
checkErr
(
err
,
fmt
.
Sprintf
(
"Error encoding cross domain message: %s"
,
err
)
)
checkErr
(
err
,
"Error encoding cross domain message"
)
// Hash encoded cross domain message
hash
:=
crypto
.
Keccak256Hash
(
encoded
)
// Pack hash
packed
,
err
:=
fixedBytesArgs
.
Pack
(
&
hash
)
checkErr
(
err
,
fmt
.
Sprintf
(
"Error encoding output: %s"
,
err
)
)
checkErr
(
err
,
"Error encoding output"
)
fmt
.
Print
(
hexutil
.
Encode
(
packed
))
break
case
"hashDepositTransaction"
:
// Parse input arguments
l1BlockHash
:=
common
.
HexToHash
(
args
[
1
])
...
...
@@ -186,17 +156,16 @@ func main() {
// RLP encode deposit transaction
encoded
,
err
:=
types
.
NewTx
(
&
depositTx
)
.
MarshalBinary
()
checkErr
(
err
,
fmt
.
Sprintf
(
"Error encoding deposit transaction: %s"
,
err
)
)
checkErr
(
err
,
"Error encoding deposit transaction"
)
// Hash encoded deposit transaction
hash
:=
crypto
.
Keccak256Hash
(
encoded
)
// Pack hash
packed
,
err
:=
fixedBytesArgs
.
Pack
(
&
hash
)
checkErr
(
err
,
fmt
.
Sprintf
(
"Error encoding output: %s"
,
err
)
)
checkErr
(
err
,
"Error encoding output"
)
fmt
.
Print
(
hexutil
.
Encode
(
packed
))
break
case
"encodeDepositTransaction"
:
// Parse input arguments
from
:=
common
.
HexToAddress
(
args
[
1
])
...
...
@@ -217,13 +186,12 @@ func main() {
// RLP encode deposit transaction
encoded
,
err
:=
types
.
NewTx
(
&
depositTx
)
.
MarshalBinary
()
checkErr
(
err
,
fmt
.
Sprintf
(
"Failed to RLP encode deposit transaction: %s"
,
err
)
)
checkErr
(
err
,
"Failed to RLP encode deposit transaction"
)
// Pack rlp encoded deposit transaction
packed
,
err
:=
bytesArgs
.
Pack
(
&
encoded
)
checkErr
(
err
,
fmt
.
Sprintf
(
"Error encoding output: %s"
,
err
)
)
checkErr
(
err
,
"Error encoding output"
)
fmt
.
Print
(
hexutil
.
Encode
(
packed
))
break
case
"hashWithdrawal"
:
// Parse input arguments
nonce
,
ok
:=
new
(
big
.
Int
)
.
SetString
(
args
[
1
],
10
)
...
...
@@ -238,14 +206,13 @@ func main() {
// Hash withdrawal
hash
,
err
:=
hashWithdrawal
(
nonce
,
sender
,
target
,
value
,
gasLimit
,
data
)
checkErr
(
err
,
fmt
.
Sprintf
(
"Error hashing withdrawal: %s"
,
err
)
)
checkErr
(
err
,
"Error hashing withdrawal"
)
// Pack hash
packed
,
err
:=
fixedBytesArgs
.
Pack
(
&
hash
)
checkErr
(
err
,
fmt
.
Sprintf
(
"Error encoding output: %s"
,
err
)
)
checkErr
(
err
,
"Error encoding output"
)
fmt
.
Print
(
hexutil
.
Encode
(
packed
))
break
case
"hashOutputRootProof"
:
// Parse input arguments
version
:=
common
.
HexToHash
(
args
[
1
])
...
...
@@ -254,14 +221,13 @@ func main() {
latestBlockHash
:=
common
.
HexToHash
(
args
[
4
])
// Hash the output root proof
hash
,
err
:=
hashOutputRootProof
(
version
,
stateRoot
,
messagePasserStorageRoot
,
latestBlockHash
)
hash
:=
hashOutputRootProof
(
version
,
stateRoot
,
messagePasserStorageRoot
,
latestBlockHash
)
// Pack hash
packed
,
err
:=
fixedBytesArgs
.
Pack
(
&
hash
)
checkErr
(
err
,
fmt
.
Sprintf
(
"Error encoding output: %s"
,
err
)
)
checkErr
(
err
,
"Error encoding output"
)
fmt
.
Print
(
hexutil
.
Encode
(
packed
))
break
case
"getProveWithdrawalTransactionInputs"
:
// Parse input arguments
nonce
,
ok
:=
new
(
big
.
Int
)
.
SetString
(
args
[
1
],
10
)
...
...
@@ -275,7 +241,7 @@ func main() {
data
:=
common
.
FromHex
(
args
[
6
])
wdHash
,
err
:=
hashWithdrawal
(
nonce
,
sender
,
target
,
value
,
gasLimit
,
data
)
checkErr
(
err
,
fmt
.
Sprintf
(
"Error hashing withdrawal: %s"
,
err
)
)
checkErr
(
err
,
"Error hashing withdrawal"
)
// Compute the storage slot the withdrawalHash will be stored in
slot
:=
struct
{
...
...
@@ -286,81 +252,65 @@ func main() {
ZeroPadding
:
common
.
Hash
{},
}
packed
,
err
:=
withdrawalSlotArgs
.
Pack
(
&
slot
)
checkErr
(
err
,
fmt
.
Sprintf
(
"Error packing withdrawal slot: %s"
,
err
)
)
checkErr
(
err
,
"Error packing withdrawal slot"
)
// Compute the storage slot the withdrawalHash will be stored in
hash
:=
crypto
.
Keccak256Hash
(
packed
)
// Create a secure trie for st
orag
e
st
orag
e
,
err
:=
trie
.
NewStateTrie
(
trie
.
TrieID
(
common
.
HexToHash
(
"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"
)
),
// Create a secure trie for st
at
e
st
at
e
,
err
:=
trie
.
NewStateTrie
(
trie
.
TrieID
(
types
.
EmptyRootHash
),
trie
.
NewDatabase
(
rawdb
.
NewMemoryDatabase
()),
)
checkErr
(
err
,
fmt
.
Sprintf
(
"Error creating secure trie: %s"
,
err
)
)
checkErr
(
err
,
"Error creating secure trie"
)
// Put a "true" bool in the storage slot
st
orag
e
.
Update
(
hash
.
Bytes
(),
[]
byte
{
0x01
})
st
at
e
.
Update
(
hash
.
Bytes
(),
[]
byte
{
0x01
})
// Create a secure trie for the world state
world
,
err
:=
trie
.
NewStateTrie
(
trie
.
TrieID
(
common
.
HexToHash
(
"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"
)
),
trie
.
TrieID
(
types
.
EmptyRootHash
),
trie
.
NewDatabase
(
rawdb
.
NewMemoryDatabase
()),
)
checkErr
(
err
,
fmt
.
Sprintf
(
"Error creating secure trie: %s"
,
err
)
)
checkErr
(
err
,
"Error creating secure trie"
)
// Put the storage root into the L2ToL1MessagePasser storage
address
:=
common
.
HexToAddress
(
"0x4200000000000000000000000000000000000016"
)
// Put the put the rlp encoded account in the world trie
account
:=
types
.
StateAccount
{
Nonce
:
0
,
Balance
:
big
.
NewInt
(
0
),
Root
:
st
orag
e
.
Hash
(),
Root
:
st
at
e
.
Hash
(),
}
writer
:=
new
(
bytes
.
Buffer
)
checkErr
(
account
.
EncodeRLP
(
writer
),
fmt
.
Sprintf
(
"Error encoding account: %s"
,
err
)
)
world
.
Update
(
address
.
Bytes
(),
writer
.
Bytes
())
checkErr
(
account
.
EncodeRLP
(
writer
),
"Error encoding account"
)
world
.
Update
(
predeploys
.
L2ToL1MessagePasserAddr
.
Bytes
(),
writer
.
Bytes
())
// Get the proof
var
proof
proofList
checkErr
(
st
orage
.
Prove
(
address
.
Bytes
(),
0
,
&
proof
),
fmt
.
Sprintf
(
"Error getting proof: %s"
,
err
)
)
checkErr
(
st
ate
.
Prove
(
predeploys
.
L2ToL1MessagePasserAddr
.
Bytes
(),
0
,
&
proof
),
"Error getting proof"
)
// Get the output root
outputRoot
,
err
:=
hashOutputRootProof
(
common
.
Hash
{},
world
.
Hash
(),
storag
e
.
Hash
(),
common
.
Hash
{})
outputRoot
:=
hashOutputRootProof
(
common
.
Hash
{},
world
.
Hash
(),
stat
e
.
Hash
(),
common
.
Hash
{})
// Pack the output
output
:=
struct
{
WorldRoot
common
.
Hash
St
orageRoot
common
.
Hash
St
ateRoot
common
.
Hash
OutputRoot
common
.
Hash
WithdrawalHash
common
.
Hash
Proof
[][]
byte
Proof
proofList
}{
WorldRoot
:
world
.
Hash
(),
St
orageRoot
:
storag
e
.
Hash
(),
St
ateRoot
:
stat
e
.
Hash
(),
OutputRoot
:
outputRoot
,
WithdrawalHash
:
wdHash
,
Proof
:
proof
,
}
packed
,
err
=
proveWithdrawalInputsArgs
.
Pack
(
&
output
)
checkErr
(
err
,
fmt
.
Sprintf
(
"Error encoding output: %s"
,
err
)
)
checkErr
(
err
,
"Error encoding output"
)
// Print the output
fmt
.
Print
(
hexutil
.
Encode
(
packed
[
32
:
]))
break
default
:
panic
(
fmt
.
Errorf
(
"Unknown command: %s"
,
args
[
0
]))
}
}
// Custom type to write the generated proof to
type
proofList
[][]
byte
func
(
n
*
proofList
)
Put
(
key
[]
byte
,
value
[]
byte
)
error
{
*
n
=
append
(
*
n
,
value
)
return
nil
}
func
(
n
*
proofList
)
Delete
(
key
[]
byte
)
error
{
panic
(
"not supported"
)
}
packages/contracts-bedrock/scripts/differential-testing/utils.go
View file @
90ade85a
...
...
@@ -5,17 +5,16 @@ import (
"fmt"
"math/big"
"github.com/ethereum-optimism/optimism/op-bindings/bindings"
"github.com/ethereum-optimism/optimism/op-chain-ops/crossdomain"
"github.com/ethereum-optimism/optimism/op-node/rollup"
"github.com/ethereum-optimism/optimism/op-node/rollup/derive"
"github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/core/types"
"github.com/ethereum/go-ethereum/crypto"
)
var
UnknownNonceVersion
=
errors
.
New
(
"Unknown nonce version"
)
var
ZeroPadding
=
[
32
]
byte
{}
// checkOk checks if ok is false, and panics if so.
// Shorthand to ease go's god awful error handling
func
checkOk
(
ok
bool
)
{
...
...
@@ -53,52 +52,26 @@ func encodeCrossDomainMessage(nonce *big.Int, sender common.Address, target comm
// hashWithdrawal hashes a withdrawal transaction.
func
hashWithdrawal
(
nonce
*
big
.
Int
,
sender
common
.
Address
,
target
common
.
Address
,
value
*
big
.
Int
,
gasLimit
*
big
.
Int
,
data
[]
byte
)
(
common
.
Hash
,
error
)
{
// Pack withdrawal
wdtx
:=
struct
{
Nonce
*
big
.
Int
Sender
common
.
Address
Target
common
.
Address
Value
*
big
.
Int
GasLimit
*
big
.
Int
Data
[]
byte
}{
wd
:=
crossdomain
.
Withdrawal
{
Nonce
:
nonce
,
Sender
:
sender
,
Target
:
target
,
Sender
:
&
sender
,
Target
:
&
target
,
Value
:
value
,
GasLimit
:
gasLimit
,
Data
:
data
,
}
packed
,
err
:=
withdrawalTransactionArgs
.
Pack
(
&
wdtx
)
if
err
!=
nil
{
return
common
.
Hash
{},
err
}
// Hash packed withdrawal (we ignore the pointer)
return
crypto
.
Keccak256Hash
(
packed
[
32
:
]),
nil
return
wd
.
Hash
()
}
// hashOutputRootProof hashes an output root proof.
func
hashOutputRootProof
(
version
common
.
Hash
,
stateRoot
common
.
Hash
,
messagePasserStorageRoot
common
.
Hash
,
latestBlockHash
common
.
Hash
)
(
common
.
Hash
,
error
)
{
// Pack proof
proof
:=
struct
{
Version
common
.
Hash
StateRoot
common
.
Hash
MessagePasserStorageRoot
common
.
Hash
LatestBlockHash
common
.
Hash
}{
func
hashOutputRootProof
(
version
common
.
Hash
,
stateRoot
common
.
Hash
,
messagePasserStorageRoot
common
.
Hash
,
latestBlockHash
common
.
Hash
)
common
.
Hash
{
proof
:=
bindings
.
TypesOutputRootProof
{
Version
:
version
,
StateRoot
:
stateRoot
,
MessagePasserStorageRoot
:
messagePasserStorageRoot
,
LatestBlockHash
:
latestBlockHash
,
}
packed
,
err
:=
outputRootProofArgs
.
Pack
(
&
proof
)
if
err
!=
nil
{
return
common
.
Hash
{},
err
LatestBlockhash
:
latestBlockHash
,
}
// Hash packed proof
return
crypto
.
Keccak256Hash
(
packed
),
nil
return
common
.
Hash
(
rollup
.
HashOutputRootProof
(
&
proof
))
}
// makeDepositTx creates a deposit transaction type.
...
...
@@ -139,3 +112,15 @@ func makeDepositTx(
return
depositTx
}
// Custom type to write the generated proof to
type
proofList
[][]
byte
func
(
n
*
proofList
)
Put
(
key
[]
byte
,
value
[]
byte
)
error
{
*
n
=
append
(
*
n
,
value
)
return
nil
}
func
(
n
*
proofList
)
Delete
(
key
[]
byte
)
error
{
panic
(
"not supported"
)
}
yarn.lock
View file @
90ade85a
...
...
@@ -1105,20 +1105,6 @@
ethereumjs-util "^7.1.1"
miller-rabin "^4.0.0"
"@ethereumjs/trie@^5.0.0-beta.1":
version "5.0.0-beta.1"
resolved "https://registry.yarnpkg.com/@ethereumjs/trie/-/trie-5.0.0-beta.1.tgz#79d1108222b45bc3576d62583364c96626ce4175"
integrity sha512-OjTzt9fK5aMzm84GRSe+C7bO2zorbEWRueLbxOMlS7lHCiXA7akIQ3mzz9VBSMjT7m01hZ1r3fZIOGHzQVCHtw==
dependencies:
"@ethereumjs/util" "8.0.0-beta.1"
abstract-level "^1.0.3"
ethereum-cryptography "^1.0.3"
level "^8.0.0"
memory-level "^1.0.0"
readable-stream "^3.6.0"
rlp "4.0.0-beta.1"
semaphore-async-await "^1.5.1"
"@ethereumjs/tx@^3.2.1":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@ethereumjs/tx/-/tx-3.3.0.tgz#14ed1b7fa0f28e1cd61e3ecbdab824205f6a4378"
...
...
@@ -1143,14 +1129,6 @@
"@ethereumjs/common" "^2.6.3"
ethereumjs-util "^7.1.4"
"@ethereumjs/util@8.0.0-beta.1", "@ethereumjs/util@^8.0.0-beta.1":
version "8.0.0-beta.1"
resolved "https://registry.yarnpkg.com/@ethereumjs/util/-/util-8.0.0-beta.1.tgz#369526faf6e9f1cadfd39c7741cc07cf33d128f8"
integrity sha512-yUg3TdJm25HiamAXbNuOagXQPmgdSrV3oEH0h+Adsxt6D7qHw8HyHLA8C+tNrLP2YwcjF1dGJ+F7WtOibzEp9g==
dependencies:
ethereum-cryptography "^1.0.3"
rlp "4.0.0-beta.1"
"@ethereumjs/vm@^5.9.0":
version "5.9.0"
resolved "https://registry.yarnpkg.com/@ethereumjs/vm/-/vm-5.9.0.tgz#54e485097c6dbb42554d541ef8d84d06b7ddf12f"
...
...
@@ -5534,19 +5512,6 @@ abort-controller@^3.0.0:
dependencies:
event-target-shim "^5.0.0"
abstract-level@^1.0.0, abstract-level@^1.0.2, abstract-level@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/abstract-level/-/abstract-level-1.0.3.tgz#78a67d3d84da55ee15201486ab44c09560070741"
integrity sha512-t6jv+xHy+VYwc4xqZMn2Pa9DjcdzvzZmQGRjTFc8spIbRGHgBrEKbPq+rYXc7CCo0lxgYvSgKVg9qZAhpVQSjA==
dependencies:
buffer "^6.0.3"
catering "^2.1.0"
is-buffer "^2.0.5"
level-supports "^4.0.0"
level-transcoder "^1.0.1"
module-error "^1.0.1"
queue-microtask "^1.2.3"
abstract-leveldown@3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/abstract-leveldown/-/abstract-leveldown-3.0.0.tgz#5cb89f958a44f526779d740d1440e743e0c30a57"
...
...
@@ -7086,16 +7051,6 @@ brorand@^1.0.1, brorand@^1.1.0:
resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f"
integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=
browser-level@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/browser-level/-/browser-level-1.0.1.tgz#36e8c3183d0fe1c405239792faaab5f315871011"
integrity sha512-XECYKJ+Dbzw0lbydyQuJzwNXtOpbMSq737qxJN11sIRTErOMShvDpbzTlgju7orJKvx4epULolZAuJGLzCmWRQ==
dependencies:
abstract-level "^1.0.2"
catering "^2.1.1"
module-error "^1.0.2"
run-parallel-limit "^1.1.0"
browser-stdout@1.3.1:
version "1.3.1"
resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60"
...
...
@@ -7528,11 +7483,6 @@ caseless@^0.12.0, caseless@~0.12.0:
resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=
catering@^2.1.0, catering@^2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/catering/-/catering-2.1.1.tgz#66acba06ed5ee28d5286133982a927de9a04b510"
integrity sha512-K7Qy8O9p76sL3/3m7/zLKbRkyOlSZAgzEaLhyj2mXS8PsCud2Eo4hAb8aLtZqHh0QGqLcb9dlJSu6lHRVENm1w==
cbor@^5.0.2:
version "5.2.0"
resolved "https://registry.yarnpkg.com/cbor/-/cbor-5.2.0.tgz#4cca67783ccd6de7b50ab4ed62636712f287a67c"
...
...
@@ -7803,17 +7753,6 @@ class-utils@^0.3.5:
isobject "^3.0.0"
static-extend "^0.1.1"
classic-level@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/classic-level/-/classic-level-1.2.0.tgz#2d52bdec8e7a27f534e67fdeb890abef3e643c27"
integrity sha512-qw5B31ANxSluWz9xBzklRWTUAJ1SXIdaVKTVS7HcTGKOAmExx65Wo5BUICW+YGORe2FOUaDghoI9ZDxj82QcFg==
dependencies:
abstract-level "^1.0.2"
catering "^2.1.0"
module-error "^1.0.1"
napi-macros "~2.0.0"
node-gyp-build "^4.3.0"
clean-regexp@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/clean-regexp/-/clean-regexp-1.0.0.tgz#8df7c7aae51fd36874e8f8d05b9180bc11a3fed7"
...
...
@@ -13089,7 +13028,7 @@ is-buffer@^1.1.5:
resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be"
integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==
is-buffer@^2.0.0, is-buffer@
^2.0.5, is-buffer@
~2.0.3:
is-buffer@^2.0.0, is-buffer@~2.0.3:
version "2.0.5"
resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191"
integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==
...
...
@@ -14256,11 +14195,6 @@ level-sublevel@6.6.4:
typewiselite "~1.0.0"
xtend "~4.0.0"
level-supports@^4.0.0:
version "4.0.1"
resolved "https://registry.yarnpkg.com/level-supports/-/level-supports-4.0.1.tgz#431546f9d81f10ff0fea0e74533a0e875c08c66a"
integrity sha512-PbXpve8rKeNcZ9C1mUicC9auIYFyGpkV9/i6g76tLgANwWhtG2v7I4xNBUlkn3lE2/dZF3Pi0ygYGtLc4RXXdA==
level-supports@~1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/level-supports/-/level-supports-1.0.1.tgz#2f530a596834c7301622521988e2c36bb77d122d"
...
...
@@ -14268,14 +14202,6 @@ level-supports@~1.0.0:
dependencies:
xtend "^4.0.2"
level-transcoder@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/level-transcoder/-/level-transcoder-1.0.1.tgz#f8cef5990c4f1283d4c86d949e73631b0bc8ba9c"
integrity sha512-t7bFwFtsQeD8cl8NIoQ2iwxA0CL/9IFw7/9gAjOonH0PWTTiRfY7Hq+Ejbsxh86tXobDQ6IOiddjNYIfOBs06w==
dependencies:
buffer "^6.0.3"
module-error "^1.0.1"
level-ws@0.0.0:
version "0.0.0"
resolved "https://registry.yarnpkg.com/level-ws/-/level-ws-0.0.0.tgz#372e512177924a00424b0b43aef2bb42496d228b"
...
...
@@ -14311,14 +14237,6 @@ level-ws@^2.0.0:
level-packager "^5.1.0"
leveldown "^5.4.0"
level@^8.0.0:
version "8.0.0"
resolved "https://registry.yarnpkg.com/level/-/level-8.0.0.tgz#41b4c515dabe28212a3e881b61c161ffead14394"
integrity sha512-ypf0jjAk2BWI33yzEaaotpq7fkOPALKAgDBxggO6Q9HGX2MRXn0wbP1Jn/tJv1gtL867+YOjOB49WaUF3UoJNQ==
dependencies:
browser-level "^1.0.1"
classic-level "^1.2.0"
leveldown@^5.4.0:
version "5.6.0"
resolved "https://registry.yarnpkg.com/leveldown/-/leveldown-5.6.0.tgz#16ba937bb2991c6094e13ac5a6898ee66d3eee98"
...
...
@@ -15176,15 +15094,6 @@ memdown@~3.0.0:
ltgt "~2.2.0"
safe-buffer "~5.1.1"
memory-level@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/memory-level/-/memory-level-1.0.0.tgz#7323c3fd368f9af2f71c3cd76ba403a17ac41692"
integrity sha512-UXzwewuWeHBz5krr7EvehKcmLFNoXxGcvuYhC41tRnkrTbJohtS7kVn9akmgirtRygg+f7Yjsfi8Uu5SGSQ4Og==
dependencies:
abstract-level "^1.0.0"
functional-red-black-tree "^1.0.1"
module-error "^1.0.1"
memorystream@^0.3.1:
version "0.3.1"
resolved "https://registry.yarnpkg.com/memorystream/-/memorystream-0.3.1.tgz#86d7090b30ce455d63fbae12dda51a47ddcaf9b2"
...
...
@@ -15849,11 +15758,6 @@ modify-values@^1.0.0:
resolved "https://registry.yarnpkg.com/modify-values/-/modify-values-1.0.1.tgz#b3939fa605546474e3e3e3c63d64bd43b4ee6022"
integrity sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==
module-error@^1.0.1, module-error@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/module-error/-/module-error-1.0.2.tgz#8d1a48897ca883f47a45816d4fb3e3c6ba404d86"
integrity sha512-0yuvsqSCv8LbaOKhnsQ/T5JhyFlCYLPXK3U2sgV10zoKQwzs/MyfuQUOZQ1V/6OCOJsK/TRgNVrPuPDqtdMFtA==
morgan@^1.10.0:
version "1.10.0"
resolved "https://registry.yarnpkg.com/morgan/-/morgan-1.10.0.tgz#091778abc1fc47cd3509824653dae1faab6b17d7"
...
...
@@ -16164,11 +16068,6 @@ node-gyp-build@^4.2.0:
resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.2.3.tgz#ce6277f853835f718829efb47db20f3e4d9c4739"
integrity sha512-MN6ZpzmfNCRM+3t57PTJHgHyw/h4OWnZ6mR8P5j/uZtqQr46RRuDE/P+g3n0YR/AiYXeWixZZzaip77gdICfRg==
node-gyp-build@^4.3.0:
version "4.5.0"
resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.5.0.tgz#7a64eefa0b21112f89f58379da128ac177f20e40"
integrity sha512-2iGbaQBV+ITgCz76ZEjmhUKAKVf7xfY1sRl4UiKQspfZMH2h06SyhNsnSVy50cwkFQDGLyif6m/6uFXHkOZ6rg==
node-gyp-build@~4.1.0:
version "4.1.1"
resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.1.1.tgz#d7270b5d86717068d114cc57fff352f96d745feb"
...
...
@@ -18046,7 +17945,7 @@ querystringify@^2.1.1:
resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6"
integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==
queue-microtask@^1.2.2
, queue-microtask@^1.2.3
:
queue-microtask@^1.2.2:
version "1.2.3"
resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243"
integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==
...
...
@@ -18818,11 +18717,6 @@ ripemd160@^2.0.0, ripemd160@^2.0.1:
hash-base "^3.0.0"
inherits "^2.0.1"
rlp@4.0.0-beta.1:
version "4.0.0-beta.1"
resolved "https://registry.yarnpkg.com/rlp/-/rlp-4.0.0-beta.1.tgz#46983ee758344e5eee48f135129407434cfea2b6"
integrity sha512-UVIENF7Rw+nX5cpfzw6X3/oXNQKsSZ8HbDJUeU9RoIs1LLyMjcPZR1o26i1vFbpuVN8GRmcdopEYOMjVsLRsQQ==
rlp@^2.0.0, rlp@^2.2.1, rlp@^2.2.2, rlp@^2.2.3, rlp@^2.2.4, rlp@^2.2.6:
version "2.2.6"
resolved "https://registry.yarnpkg.com/rlp/-/rlp-2.2.6.tgz#c80ba6266ac7a483ef1e69e8e2f056656de2fb2c"
...
...
@@ -18862,13 +18756,6 @@ run-async@^2.2.0, run-async@^2.4.0:
resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455"
integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==
run-parallel-limit@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/run-parallel-limit/-/run-parallel-limit-1.1.0.tgz#be80e936f5768623a38a963262d6bef8ff11e7ba"
integrity sha512-jJA7irRNM91jaKc3Hcl1npHsFLOXOoTkPCUL1JEa1R82O2miplXXRaGdjW/KM/98YQWDhJLiSs793CnXfblJUw==
dependencies:
queue-microtask "^1.2.2"
run-parallel@^1.1.9:
version "1.2.0"
resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee"
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment