Commit 90ade85a authored by clabby's avatar clabby

Remove unused dependencies from `contracts-bedrock`

parent eeed99ed
...@@ -114,7 +114,7 @@ func (n *nodeAPI) OutputAtBlock(ctx context.Context, number hexutil.Uint64) (*et ...@@ -114,7 +114,7 @@ func (n *nodeAPI) OutputAtBlock(ctx context.Context, number hexutil.Uint64) (*et
} }
var l2OutputRootVersion eth.Bytes32 // it's zero for now 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{ return &eth.OutputResponse{
Version: l2OutputRootVersion, Version: l2OutputRootVersion,
......
...@@ -8,7 +8,7 @@ import ( ...@@ -8,7 +8,7 @@ import (
) )
// ComputeL2OutputRoot computes the L2 output root // ComputeL2OutputRoot computes the L2 output root
func ComputeL2OutputRoot(l2OutputRootVersion eth.Bytes32, blockHash common.Hash, blockRoot common.Hash, storageRoot common.Hash) eth.Bytes32 { func ComputeL2OutputRoot(l2OutputRootVersion eth.Bytes32, blockRoot common.Hash, storageRoot common.Hash, blockHash common.Hash) eth.Bytes32 {
digest := crypto.Keccak256Hash( digest := crypto.Keccak256Hash(
l2OutputRootVersion[:], l2OutputRootVersion[:],
blockRoot.Bytes(), blockRoot.Bytes(),
......
...@@ -59,8 +59,6 @@ ...@@ -59,8 +59,6 @@
}, },
"devDependencies": { "devDependencies": {
"@eth-optimism/hardhat-deploy-config": "^0.2.5", "@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-provider": "^5.7.0",
"@ethersproject/abstract-signer": "^5.7.0", "@ethersproject/abstract-signer": "^5.7.0",
"ethereumjs-wallet": "^1.0.2", "ethereumjs-wallet": "^1.0.2",
......
...@@ -6,6 +6,7 @@ import ( ...@@ -6,6 +6,7 @@ import (
"math/big" "math/big"
"os" "os"
"github.com/ethereum-optimism/optimism/op-bindings/predeploys"
"github.com/ethereum-optimism/optimism/op-chain-ops/crossdomain" "github.com/ethereum-optimism/optimism/op-chain-ops/crossdomain"
"github.com/ethereum/go-ethereum/accounts/abi" "github.com/ethereum/go-ethereum/accounts/abi"
"github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/common"
...@@ -18,18 +19,14 @@ import ( ...@@ -18,18 +19,14 @@ import (
// ABI types // ABI types
var ( var (
// Plain dynamic bytesAbi type // Plain dynamic dynBytes type
bytesAbi, _ = abi.NewType("bytes", "bytes", []abi.ArgumentMarshaling{ dynBytes, _ = abi.NewType("bytes", "", nil)
{Name: "data", Type: "bytes"}, bytesArgs = abi.Arguments{
}) {Type: dynBytes},
bytesArgs = abi.Arguments{
{Type: bytesAbi},
} }
// Plain fixed bytes32 type // Plain fixed bytes32 type
fixedBytes, _ = abi.NewType("bytes32", "bytes32", []abi.ArgumentMarshaling{ fixedBytes, _ = abi.NewType("bytes32", "", nil)
{Name: "data", Type: "bytes32"},
})
fixedBytesArgs = abi.Arguments{ fixedBytesArgs = abi.Arguments{
{Type: fixedBytes}, {Type: fixedBytes},
} }
...@@ -40,11 +37,11 @@ var ( ...@@ -40,11 +37,11 @@ var (
{Name: "version", Type: "uint256"}, {Name: "version", Type: "uint256"},
}) })
decodedNonceArgs = abi.Arguments{ decodedNonceArgs = abi.Arguments{
{Name: "nonce", Type: decodedNonce}, {Name: "encodedNonce", Type: decodedNonce},
} }
// WithdrawalHash slot tuple (bytes32, bytes32) // WithdrawalHash slot tuple (bytes32, bytes32)
withdrawalSlot, _ = abi.NewType("tuple", "ArraySlotHash", []abi.ArgumentMarshaling{ withdrawalSlot, _ = abi.NewType("tuple", "SlotHash", []abi.ArgumentMarshaling{
{Name: "withdrawalHash", Type: "bytes32"}, {Name: "withdrawalHash", Type: "bytes32"},
{Name: "zeroPadding", Type: "bytes32"}, {Name: "zeroPadding", Type: "bytes32"},
}) })
...@@ -52,34 +49,10 @@ var ( ...@@ -52,34 +49,10 @@ var (
{Name: "slotHash", Type: withdrawalSlot}, {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[]) // Prove withdrawal inputs tuple (bytes32, bytes32, bytes32, bytes32, bytes[])
proveWithdrawalInputs, _ = abi.NewType("tuple", "ProveWithdrawalInputs", []abi.ArgumentMarshaling{ proveWithdrawalInputs, _ = abi.NewType("tuple", "ProveWithdrawalInputs", []abi.ArgumentMarshaling{
{Name: "worldRoot", Type: "bytes32"}, {Name: "worldRoot", Type: "bytes32"},
{Name: "storageRoot", Type: "bytes32"}, {Name: "stateRoot", Type: "bytes32"},
{Name: "outputRoot", Type: "bytes32"}, {Name: "outputRoot", Type: "bytes32"},
{Name: "withdrawalHash", Type: "bytes32"}, {Name: "withdrawalHash", Type: "bytes32"},
{Name: "proof", Type: "bytes[]"}, {Name: "proof", Type: "bytes[]"},
...@@ -115,10 +88,9 @@ func main() { ...@@ -115,10 +88,9 @@ func main() {
version, version,
} }
packed, err := decodedNonceArgs.Pack(&packArgs) packed, err := decodedNonceArgs.Pack(&packArgs)
checkErr(err, fmt.Sprintf("Error encoding output: %s", err)) checkErr(err, "Error encoding output")
fmt.Print(hexutil.Encode(packed)) fmt.Print(hexutil.Encode(packed))
break
case "encodeCrossDomainMessage": case "encodeCrossDomainMessage":
// Parse input arguments // Parse input arguments
nonce, ok := new(big.Int).SetString(args[1], 10) nonce, ok := new(big.Int).SetString(args[1], 10)
...@@ -133,14 +105,13 @@ func main() { ...@@ -133,14 +105,13 @@ func main() {
// Encode cross domain message // Encode cross domain message
encoded, err := encodeCrossDomainMessage(nonce, sender, target, value, gasLimit, data) 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 // Pack encoded cross domain message
packed, err := bytesArgs.Pack(&encoded) packed, err := bytesArgs.Pack(&encoded)
checkErr(err, fmt.Sprintf("Error encoding output: %s", err)) checkErr(err, "Error encoding output")
fmt.Print(hexutil.Encode(packed)) fmt.Print(hexutil.Encode(packed))
break
case "hashCrossDomainMessage": case "hashCrossDomainMessage":
// Parse input arguments // Parse input arguments
nonce, ok := new(big.Int).SetString(args[1], 10) nonce, ok := new(big.Int).SetString(args[1], 10)
...@@ -155,17 +126,16 @@ func main() { ...@@ -155,17 +126,16 @@ func main() {
// Encode cross domain message // Encode cross domain message
encoded, err := encodeCrossDomainMessage(nonce, sender, target, value, gasLimit, data) 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 encoded cross domain message
hash := crypto.Keccak256Hash(encoded) hash := crypto.Keccak256Hash(encoded)
// Pack hash // Pack hash
packed, err := fixedBytesArgs.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)) fmt.Print(hexutil.Encode(packed))
break
case "hashDepositTransaction": case "hashDepositTransaction":
// Parse input arguments // Parse input arguments
l1BlockHash := common.HexToHash(args[1]) l1BlockHash := common.HexToHash(args[1])
...@@ -186,17 +156,16 @@ func main() { ...@@ -186,17 +156,16 @@ func main() {
// RLP encode deposit transaction // RLP encode deposit transaction
encoded, err := types.NewTx(&depositTx).MarshalBinary() 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 encoded deposit transaction
hash := crypto.Keccak256Hash(encoded) hash := crypto.Keccak256Hash(encoded)
// Pack hash // Pack hash
packed, err := fixedBytesArgs.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)) fmt.Print(hexutil.Encode(packed))
break
case "encodeDepositTransaction": case "encodeDepositTransaction":
// Parse input arguments // Parse input arguments
from := common.HexToAddress(args[1]) from := common.HexToAddress(args[1])
...@@ -217,13 +186,12 @@ func main() { ...@@ -217,13 +186,12 @@ func main() {
// RLP encode deposit transaction // RLP encode deposit transaction
encoded, err := types.NewTx(&depositTx).MarshalBinary() 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 // Pack rlp encoded deposit transaction
packed, err := bytesArgs.Pack(&encoded) packed, err := bytesArgs.Pack(&encoded)
checkErr(err, fmt.Sprintf("Error encoding output: %s", err)) checkErr(err, "Error encoding output")
fmt.Print(hexutil.Encode(packed)) fmt.Print(hexutil.Encode(packed))
break
case "hashWithdrawal": case "hashWithdrawal":
// Parse input arguments // Parse input arguments
nonce, ok := new(big.Int).SetString(args[1], 10) nonce, ok := new(big.Int).SetString(args[1], 10)
...@@ -238,14 +206,13 @@ func main() { ...@@ -238,14 +206,13 @@ func main() {
// Hash withdrawal // Hash withdrawal
hash, err := hashWithdrawal(nonce, sender, target, value, gasLimit, data) 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 // Pack hash
packed, err := fixedBytesArgs.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)) fmt.Print(hexutil.Encode(packed))
break
case "hashOutputRootProof": case "hashOutputRootProof":
// Parse input arguments // Parse input arguments
version := common.HexToHash(args[1]) version := common.HexToHash(args[1])
...@@ -254,14 +221,13 @@ func main() { ...@@ -254,14 +221,13 @@ func main() {
latestBlockHash := common.HexToHash(args[4]) latestBlockHash := common.HexToHash(args[4])
// Hash the output root proof // Hash the output root proof
hash, err := hashOutputRootProof(version, stateRoot, messagePasserStorageRoot, latestBlockHash) hash := hashOutputRootProof(version, stateRoot, messagePasserStorageRoot, latestBlockHash)
// Pack hash // Pack hash
packed, err := fixedBytesArgs.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)) fmt.Print(hexutil.Encode(packed))
break
case "getProveWithdrawalTransactionInputs": case "getProveWithdrawalTransactionInputs":
// Parse input arguments // Parse input arguments
nonce, ok := new(big.Int).SetString(args[1], 10) nonce, ok := new(big.Int).SetString(args[1], 10)
...@@ -275,7 +241,7 @@ func main() { ...@@ -275,7 +241,7 @@ func main() {
data := common.FromHex(args[6]) data := common.FromHex(args[6])
wdHash, err := hashWithdrawal(nonce, sender, target, value, gasLimit, data) 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 // Compute the storage slot the withdrawalHash will be stored in
slot := struct { slot := struct {
...@@ -286,81 +252,65 @@ func main() { ...@@ -286,81 +252,65 @@ func main() {
ZeroPadding: common.Hash{}, ZeroPadding: common.Hash{},
} }
packed, err := withdrawalSlotArgs.Pack(&slot) 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 // Compute the storage slot the withdrawalHash will be stored in
hash := crypto.Keccak256Hash(packed) hash := crypto.Keccak256Hash(packed)
// Create a secure trie for storage // Create a secure trie for state
storage, err := trie.NewStateTrie( state, err := trie.NewStateTrie(
trie.TrieID(common.HexToHash("0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421")), trie.TrieID(types.EmptyRootHash),
trie.NewDatabase(rawdb.NewMemoryDatabase()), 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 // Put a "true" bool in the storage slot
storage.Update(hash.Bytes(), []byte{0x01}) state.Update(hash.Bytes(), []byte{0x01})
// Create a secure trie for the world state // Create a secure trie for the world state
world, err := trie.NewStateTrie( world, err := trie.NewStateTrie(
trie.TrieID(common.HexToHash("0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421")), trie.TrieID(types.EmptyRootHash),
trie.NewDatabase(rawdb.NewMemoryDatabase()), 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 // Put the put the rlp encoded account in the world trie
address := common.HexToAddress("0x4200000000000000000000000000000000000016")
account := types.StateAccount{ account := types.StateAccount{
Nonce: 0, Nonce: 0,
Balance: big.NewInt(0), Balance: big.NewInt(0),
Root: storage.Hash(), Root: state.Hash(),
} }
writer := new(bytes.Buffer) writer := new(bytes.Buffer)
checkErr(account.EncodeRLP(writer), fmt.Sprintf("Error encoding account: %s", err)) checkErr(account.EncodeRLP(writer), "Error encoding account")
world.Update(address.Bytes(), writer.Bytes()) world.Update(predeploys.L2ToL1MessagePasserAddr.Bytes(), writer.Bytes())
// Get the proof // Get the proof
var proof proofList var proof proofList
checkErr(storage.Prove(address.Bytes(), 0, &proof), fmt.Sprintf("Error getting proof: %s", err)) checkErr(state.Prove(predeploys.L2ToL1MessagePasserAddr.Bytes(), 0, &proof), "Error getting proof")
// Get the output root // Get the output root
outputRoot, err := hashOutputRootProof(common.Hash{}, world.Hash(), storage.Hash(), common.Hash{}) outputRoot := hashOutputRootProof(common.Hash{}, world.Hash(), state.Hash(), common.Hash{})
// Pack the output // Pack the output
output := struct { output := struct {
WorldRoot common.Hash WorldRoot common.Hash
StorageRoot common.Hash StateRoot common.Hash
OutputRoot common.Hash OutputRoot common.Hash
WithdrawalHash common.Hash WithdrawalHash common.Hash
Proof [][]byte Proof proofList
}{ }{
WorldRoot: world.Hash(), WorldRoot: world.Hash(),
StorageRoot: storage.Hash(), StateRoot: state.Hash(),
OutputRoot: outputRoot, OutputRoot: outputRoot,
WithdrawalHash: wdHash, WithdrawalHash: wdHash,
Proof: proof, Proof: proof,
} }
packed, err = proveWithdrawalInputsArgs.Pack(&output) packed, err = proveWithdrawalInputsArgs.Pack(&output)
checkErr(err, fmt.Sprintf("Error encoding output: %s", err)) checkErr(err, "Error encoding output")
// Print the output // Print the output
fmt.Print(hexutil.Encode(packed[32:])) fmt.Print(hexutil.Encode(packed[32:]))
break
default: default:
panic(fmt.Errorf("Unknown command: %s", args[0])) 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")
}
...@@ -5,17 +5,16 @@ import ( ...@@ -5,17 +5,16 @@ import (
"fmt" "fmt"
"math/big" "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-chain-ops/crossdomain"
"github.com/ethereum-optimism/optimism/op-node/rollup"
"github.com/ethereum-optimism/optimism/op-node/rollup/derive" "github.com/ethereum-optimism/optimism/op-node/rollup/derive"
"github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/core/types" "github.com/ethereum/go-ethereum/core/types"
"github.com/ethereum/go-ethereum/crypto"
) )
var UnknownNonceVersion = errors.New("Unknown nonce version") var UnknownNonceVersion = errors.New("Unknown nonce version")
var ZeroPadding = [32]byte{}
// checkOk checks if ok is false, and panics if so. // checkOk checks if ok is false, and panics if so.
// Shorthand to ease go's god awful error handling // Shorthand to ease go's god awful error handling
func checkOk(ok bool) { func checkOk(ok bool) {
...@@ -53,52 +52,26 @@ func encodeCrossDomainMessage(nonce *big.Int, sender common.Address, target comm ...@@ -53,52 +52,26 @@ func encodeCrossDomainMessage(nonce *big.Int, sender common.Address, target comm
// hashWithdrawal hashes a withdrawal transaction. // 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) { func hashWithdrawal(nonce *big.Int, sender common.Address, target common.Address, value *big.Int, gasLimit *big.Int, data []byte) (common.Hash, error) {
// Pack withdrawal wd := crossdomain.Withdrawal{
wdtx := struct {
Nonce *big.Int
Sender common.Address
Target common.Address
Value *big.Int
GasLimit *big.Int
Data []byte
}{
Nonce: nonce, Nonce: nonce,
Sender: sender, Sender: &sender,
Target: target, Target: &target,
Value: value, Value: value,
GasLimit: gasLimit, GasLimit: gasLimit,
Data: data, Data: data,
} }
packed, err := withdrawalTransactionArgs.Pack(&wdtx) return wd.Hash()
if err != nil {
return common.Hash{}, err
}
// Hash packed withdrawal (we ignore the pointer)
return crypto.Keccak256Hash(packed[32:]), nil
} }
// hashOutputRootProof hashes an output root proof. // hashOutputRootProof hashes an output root proof.
func hashOutputRootProof(version common.Hash, stateRoot common.Hash, messagePasserStorageRoot common.Hash, latestBlockHash common.Hash) (common.Hash, error) { func hashOutputRootProof(version common.Hash, stateRoot common.Hash, messagePasserStorageRoot common.Hash, latestBlockHash common.Hash) common.Hash {
// Pack proof proof := bindings.TypesOutputRootProof{
proof := struct {
Version common.Hash
StateRoot common.Hash
MessagePasserStorageRoot common.Hash
LatestBlockHash common.Hash
}{
Version: version, Version: version,
StateRoot: stateRoot, StateRoot: stateRoot,
MessagePasserStorageRoot: messagePasserStorageRoot, MessagePasserStorageRoot: messagePasserStorageRoot,
LatestBlockHash: latestBlockHash, LatestBlockhash: latestBlockHash,
}
packed, err := outputRootProofArgs.Pack(&proof)
if err != nil {
return common.Hash{}, err
} }
return common.Hash(rollup.HashOutputRootProof(&proof))
// Hash packed proof
return crypto.Keccak256Hash(packed), nil
} }
// makeDepositTx creates a deposit transaction type. // makeDepositTx creates a deposit transaction type.
...@@ -139,3 +112,15 @@ func makeDepositTx( ...@@ -139,3 +112,15 @@ func makeDepositTx(
return depositTx 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")
}
...@@ -1105,20 +1105,6 @@ ...@@ -1105,20 +1105,6 @@
ethereumjs-util "^7.1.1" ethereumjs-util "^7.1.1"
miller-rabin "^4.0.0" 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": "@ethereumjs/tx@^3.2.1":
version "3.3.0" version "3.3.0"
resolved "https://registry.yarnpkg.com/@ethereumjs/tx/-/tx-3.3.0.tgz#14ed1b7fa0f28e1cd61e3ecbdab824205f6a4378" resolved "https://registry.yarnpkg.com/@ethereumjs/tx/-/tx-3.3.0.tgz#14ed1b7fa0f28e1cd61e3ecbdab824205f6a4378"
...@@ -1143,14 +1129,6 @@ ...@@ -1143,14 +1129,6 @@
"@ethereumjs/common" "^2.6.3" "@ethereumjs/common" "^2.6.3"
ethereumjs-util "^7.1.4" 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": "@ethereumjs/vm@^5.9.0":
version "5.9.0" version "5.9.0"
resolved "https://registry.yarnpkg.com/@ethereumjs/vm/-/vm-5.9.0.tgz#54e485097c6dbb42554d541ef8d84d06b7ddf12f" resolved "https://registry.yarnpkg.com/@ethereumjs/vm/-/vm-5.9.0.tgz#54e485097c6dbb42554d541ef8d84d06b7ddf12f"
...@@ -5534,19 +5512,6 @@ abort-controller@^3.0.0: ...@@ -5534,19 +5512,6 @@ abort-controller@^3.0.0:
dependencies: dependencies:
event-target-shim "^5.0.0" 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: abstract-leveldown@3.0.0:
version "3.0.0" version "3.0.0"
resolved "https://registry.yarnpkg.com/abstract-leveldown/-/abstract-leveldown-3.0.0.tgz#5cb89f958a44f526779d740d1440e743e0c30a57" 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: ...@@ -7086,16 +7051,6 @@ brorand@^1.0.1, brorand@^1.1.0:
resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f"
integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= 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: browser-stdout@1.3.1:
version "1.3.1" version "1.3.1"
resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" 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: ...@@ -7528,11 +7483,6 @@ caseless@^0.12.0, caseless@~0.12.0:
resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= 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: cbor@^5.0.2:
version "5.2.0" version "5.2.0"
resolved "https://registry.yarnpkg.com/cbor/-/cbor-5.2.0.tgz#4cca67783ccd6de7b50ab4ed62636712f287a67c" resolved "https://registry.yarnpkg.com/cbor/-/cbor-5.2.0.tgz#4cca67783ccd6de7b50ab4ed62636712f287a67c"
...@@ -7803,17 +7753,6 @@ class-utils@^0.3.5: ...@@ -7803,17 +7753,6 @@ class-utils@^0.3.5:
isobject "^3.0.0" isobject "^3.0.0"
static-extend "^0.1.1" 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: clean-regexp@^1.0.0:
version "1.0.0" version "1.0.0"
resolved "https://registry.yarnpkg.com/clean-regexp/-/clean-regexp-1.0.0.tgz#8df7c7aae51fd36874e8f8d05b9180bc11a3fed7" resolved "https://registry.yarnpkg.com/clean-regexp/-/clean-regexp-1.0.0.tgz#8df7c7aae51fd36874e8f8d05b9180bc11a3fed7"
...@@ -13089,7 +13028,7 @@ is-buffer@^1.1.5: ...@@ -13089,7 +13028,7 @@ is-buffer@^1.1.5:
resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be"
integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== 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" version "2.0.5"
resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191"
integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==
...@@ -14256,11 +14195,6 @@ level-sublevel@6.6.4: ...@@ -14256,11 +14195,6 @@ level-sublevel@6.6.4:
typewiselite "~1.0.0" typewiselite "~1.0.0"
xtend "~4.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: level-supports@~1.0.0:
version "1.0.1" version "1.0.1"
resolved "https://registry.yarnpkg.com/level-supports/-/level-supports-1.0.1.tgz#2f530a596834c7301622521988e2c36bb77d122d" resolved "https://registry.yarnpkg.com/level-supports/-/level-supports-1.0.1.tgz#2f530a596834c7301622521988e2c36bb77d122d"
...@@ -14268,14 +14202,6 @@ level-supports@~1.0.0: ...@@ -14268,14 +14202,6 @@ level-supports@~1.0.0:
dependencies: dependencies:
xtend "^4.0.2" 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: level-ws@0.0.0:
version "0.0.0" version "0.0.0"
resolved "https://registry.yarnpkg.com/level-ws/-/level-ws-0.0.0.tgz#372e512177924a00424b0b43aef2bb42496d228b" resolved "https://registry.yarnpkg.com/level-ws/-/level-ws-0.0.0.tgz#372e512177924a00424b0b43aef2bb42496d228b"
...@@ -14311,14 +14237,6 @@ level-ws@^2.0.0: ...@@ -14311,14 +14237,6 @@ level-ws@^2.0.0:
level-packager "^5.1.0" level-packager "^5.1.0"
leveldown "^5.4.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: leveldown@^5.4.0:
version "5.6.0" version "5.6.0"
resolved "https://registry.yarnpkg.com/leveldown/-/leveldown-5.6.0.tgz#16ba937bb2991c6094e13ac5a6898ee66d3eee98" resolved "https://registry.yarnpkg.com/leveldown/-/leveldown-5.6.0.tgz#16ba937bb2991c6094e13ac5a6898ee66d3eee98"
...@@ -15176,15 +15094,6 @@ memdown@~3.0.0: ...@@ -15176,15 +15094,6 @@ memdown@~3.0.0:
ltgt "~2.2.0" ltgt "~2.2.0"
safe-buffer "~5.1.1" 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: memorystream@^0.3.1:
version "0.3.1" version "0.3.1"
resolved "https://registry.yarnpkg.com/memorystream/-/memorystream-0.3.1.tgz#86d7090b30ce455d63fbae12dda51a47ddcaf9b2" resolved "https://registry.yarnpkg.com/memorystream/-/memorystream-0.3.1.tgz#86d7090b30ce455d63fbae12dda51a47ddcaf9b2"
...@@ -15849,11 +15758,6 @@ modify-values@^1.0.0: ...@@ -15849,11 +15758,6 @@ modify-values@^1.0.0:
resolved "https://registry.yarnpkg.com/modify-values/-/modify-values-1.0.1.tgz#b3939fa605546474e3e3e3c63d64bd43b4ee6022" resolved "https://registry.yarnpkg.com/modify-values/-/modify-values-1.0.1.tgz#b3939fa605546474e3e3e3c63d64bd43b4ee6022"
integrity sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw== 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: morgan@^1.10.0:
version "1.10.0" version "1.10.0"
resolved "https://registry.yarnpkg.com/morgan/-/morgan-1.10.0.tgz#091778abc1fc47cd3509824653dae1faab6b17d7" resolved "https://registry.yarnpkg.com/morgan/-/morgan-1.10.0.tgz#091778abc1fc47cd3509824653dae1faab6b17d7"
...@@ -16164,11 +16068,6 @@ node-gyp-build@^4.2.0: ...@@ -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" 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== 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: node-gyp-build@~4.1.0:
version "4.1.1" version "4.1.1"
resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.1.1.tgz#d7270b5d86717068d114cc57fff352f96d745feb" resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.1.1.tgz#d7270b5d86717068d114cc57fff352f96d745feb"
...@@ -18046,7 +17945,7 @@ querystringify@^2.1.1: ...@@ -18046,7 +17945,7 @@ querystringify@^2.1.1:
resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6"
integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==
queue-microtask@^1.2.2, queue-microtask@^1.2.3: queue-microtask@^1.2.2:
version "1.2.3" version "1.2.3"
resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243"
integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==
...@@ -18818,11 +18717,6 @@ ripemd160@^2.0.0, ripemd160@^2.0.1: ...@@ -18818,11 +18717,6 @@ ripemd160@^2.0.0, ripemd160@^2.0.1:
hash-base "^3.0.0" hash-base "^3.0.0"
inherits "^2.0.1" 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: 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" version "2.2.6"
resolved "https://registry.yarnpkg.com/rlp/-/rlp-2.2.6.tgz#c80ba6266ac7a483ef1e69e8e2f056656de2fb2c" 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: ...@@ -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" resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455"
integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== 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: run-parallel@^1.1.9:
version "1.2.0" version "1.2.0"
resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment