mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-08-20 02:42:27 +00:00
fix all the package from ethereum/go-ethereum to cryptoecc/ETH-ECC
This commit is contained in:
parent
0609871abd
commit
9551b26a89
841 changed files with 4212 additions and 4145 deletions
|
|
@ -1,5 +1,5 @@
|
||||||
language: go
|
language: go
|
||||||
go_import_path: github.com/ethereum/go-ethereum
|
go_import_path: github.com/cryptoecc/ETH-ECC
|
||||||
sudo: false
|
sudo: false
|
||||||
jobs:
|
jobs:
|
||||||
allow_failures:
|
allow_failures:
|
||||||
|
|
@ -155,7 +155,7 @@ jobs:
|
||||||
script:
|
script:
|
||||||
# Build the Android archive and upload it to Maven Central and Azure
|
# Build the Android archive and upload it to Maven Central and Azure
|
||||||
- mkdir -p $GOPATH/src/github.com/ethereum
|
- mkdir -p $GOPATH/src/github.com/ethereum
|
||||||
- ln -s `pwd` $GOPATH/src/github.com/ethereum/go-ethereum
|
- ln -s `pwd` $GOPATH/src/github.com/cryptoecc/ETH-ECC
|
||||||
- go run build/ci.go aar -signer ANDROID_SIGNING_KEY -signify SIGNIFY_KEY -deploy https://oss.sonatype.org -upload gethstore/builds
|
- go run build/ci.go aar -signer ANDROID_SIGNING_KEY -signify SIGNIFY_KEY -deploy https://oss.sonatype.org -upload gethstore/builds
|
||||||
|
|
||||||
# This builder does the OSX Azure, iOS CocoaPods and iOS Azure uploads
|
# This builder does the OSX Azure, iOS CocoaPods and iOS Azure uploads
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ https://camo.githubusercontent.com/915b7be44ada53c290eb157634330494ebe3e30a/6874
|
||||||
[](https://goreportcard.com/report/github.com/cryptoecc/ETH-ECC).
|
[](https://goreportcard.com/report/github.com/cryptoecc/ETH-ECC).
|
||||||
|
|
||||||
> Development client of the WorldLand blockchain.
|
> Development client of the WorldLand blockchain.
|
||||||
> It is a fork of [ethereum/go-ethereum](https://github.com/ethereum/go-ethereum)
|
> It is a fork of [ethereum/go-ethereum](https://github.com/cryptoecc/ETH-ECC)
|
||||||
|
|
||||||
## What is Worldland?
|
## What is Worldland?
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -23,8 +23,8 @@ import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"io"
|
"io"
|
||||||
|
|
||||||
"github.com/ethereum/go-ethereum/common"
|
"github.com/cryptoecc/ETH-ECC/common"
|
||||||
"github.com/ethereum/go-ethereum/crypto"
|
"github.com/cryptoecc/ETH-ECC/crypto"
|
||||||
)
|
)
|
||||||
|
|
||||||
// The ABI holds information about a contract's context and available
|
// The ABI holds information about a contract's context and available
|
||||||
|
|
|
||||||
|
|
@ -26,9 +26,9 @@ import (
|
||||||
"strings"
|
"strings"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/ethereum/go-ethereum/common"
|
"github.com/cryptoecc/ETH-ECC/common"
|
||||||
"github.com/ethereum/go-ethereum/common/math"
|
"github.com/cryptoecc/ETH-ECC/common/math"
|
||||||
"github.com/ethereum/go-ethereum/crypto"
|
"github.com/cryptoecc/ETH-ECC/crypto"
|
||||||
)
|
)
|
||||||
|
|
||||||
const jsondata = `
|
const jsondata = `
|
||||||
|
|
@ -165,8 +165,9 @@ func TestInvalidABI(t *testing.T) {
|
||||||
|
|
||||||
// TestConstructor tests a constructor function.
|
// TestConstructor tests a constructor function.
|
||||||
// The test is based on the following contract:
|
// The test is based on the following contract:
|
||||||
// contract TestConstructor {
|
//
|
||||||
// constructor(uint256 a, uint256 b) public{}
|
// contract TestConstructor {
|
||||||
|
// constructor(uint256 a, uint256 b) public{}
|
||||||
// }
|
// }
|
||||||
func TestConstructor(t *testing.T) {
|
func TestConstructor(t *testing.T) {
|
||||||
json := `[{ "inputs": [{"internalType": "uint256","name": "a","type": "uint256" },{ "internalType": "uint256","name": "b","type": "uint256"}],"stateMutability": "nonpayable","type": "constructor"}]`
|
json := `[{ "inputs": [{"internalType": "uint256","name": "a","type": "uint256" },{ "internalType": "uint256","name": "b","type": "uint256"}],"stateMutability": "nonpayable","type": "constructor"}]`
|
||||||
|
|
@ -724,16 +725,19 @@ func TestBareEvents(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// TestUnpackEvent is based on this contract:
|
// TestUnpackEvent is based on this contract:
|
||||||
// contract T {
|
//
|
||||||
// event received(address sender, uint amount, bytes memo);
|
// contract T {
|
||||||
// event receivedAddr(address sender);
|
// event received(address sender, uint amount, bytes memo);
|
||||||
// function receive(bytes memo) external payable {
|
// event receivedAddr(address sender);
|
||||||
// received(msg.sender, msg.value, memo);
|
// function receive(bytes memo) external payable {
|
||||||
// receivedAddr(msg.sender);
|
// received(msg.sender, msg.value, memo);
|
||||||
// }
|
// receivedAddr(msg.sender);
|
||||||
// }
|
// }
|
||||||
|
// }
|
||||||
|
//
|
||||||
// When receive("X") is called with sender 0x00... and value 1, it produces this tx receipt:
|
// When receive("X") is called with sender 0x00... and value 1, it produces this tx receipt:
|
||||||
// receipt{status=1 cgas=23949 bloom=00000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000040200000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 logs=[log: b6818c8064f645cd82d99b59a1a267d6d61117ef [75fd880d39c1daf53b6547ab6cb59451fc6452d27caa90e5b6649dd8293b9eed] 000000000000000000000000376c47978271565f56deb45495afa69e59c16ab200000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000158 9ae378b6d4409eada347a5dc0c180f186cb62dc68fcc0f043425eb917335aa28 0 95d429d309bb9d753954195fe2d69bd140b4ae731b9b5b605c34323de162cf00 0]}
|
//
|
||||||
|
// receipt{status=1 cgas=23949 bloom=00000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000040200000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 logs=[log: b6818c8064f645cd82d99b59a1a267d6d61117ef [75fd880d39c1daf53b6547ab6cb59451fc6452d27caa90e5b6649dd8293b9eed] 000000000000000000000000376c47978271565f56deb45495afa69e59c16ab200000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000158 9ae378b6d4409eada347a5dc0c180f186cb62dc68fcc0f043425eb917335aa28 0 95d429d309bb9d753954195fe2d69bd140b4ae731b9b5b605c34323de162cf00 0]}
|
||||||
func TestUnpackEvent(t *testing.T) {
|
func TestUnpackEvent(t *testing.T) {
|
||||||
const abiJSON = `[{"constant":false,"inputs":[{"name":"memo","type":"bytes"}],"name":"receive","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"anonymous":false,"inputs":[{"indexed":false,"name":"sender","type":"address"},{"indexed":false,"name":"amount","type":"uint256"},{"indexed":false,"name":"memo","type":"bytes"}],"name":"received","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"sender","type":"address"}],"name":"receivedAddr","type":"event"}]`
|
const abiJSON = `[{"constant":false,"inputs":[{"name":"memo","type":"bytes"}],"name":"receive","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"anonymous":false,"inputs":[{"indexed":false,"name":"sender","type":"address"},{"indexed":false,"name":"amount","type":"uint256"},{"indexed":false,"name":"memo","type":"bytes"}],"name":"received","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"sender","type":"address"}],"name":"receivedAddr","type":"event"}]`
|
||||||
abi, err := JSON(strings.NewReader(abiJSON))
|
abi, err := JSON(strings.NewReader(abiJSON))
|
||||||
|
|
@ -1078,8 +1082,9 @@ func TestDoubleDuplicateMethodNames(t *testing.T) {
|
||||||
// TestDoubleDuplicateEventNames checks that if send0 already exists, there won't be a name
|
// TestDoubleDuplicateEventNames checks that if send0 already exists, there won't be a name
|
||||||
// conflict and that the second send event will be renamed send1.
|
// conflict and that the second send event will be renamed send1.
|
||||||
// The test runs the abi of the following contract.
|
// The test runs the abi of the following contract.
|
||||||
// contract DuplicateEvent {
|
//
|
||||||
// event send(uint256 a);
|
// contract DuplicateEvent {
|
||||||
|
// event send(uint256 a);
|
||||||
// event send0();
|
// event send0();
|
||||||
// event send();
|
// event send();
|
||||||
// }
|
// }
|
||||||
|
|
@ -1106,7 +1111,8 @@ func TestDoubleDuplicateEventNames(t *testing.T) {
|
||||||
// TestUnnamedEventParam checks that an event with unnamed parameters is
|
// TestUnnamedEventParam checks that an event with unnamed parameters is
|
||||||
// correctly handled.
|
// correctly handled.
|
||||||
// The test runs the abi of the following contract.
|
// The test runs the abi of the following contract.
|
||||||
// contract TestEvent {
|
//
|
||||||
|
// contract TestEvent {
|
||||||
// event send(uint256, uint256);
|
// event send(uint256, uint256);
|
||||||
// }
|
// }
|
||||||
func TestUnnamedEventParam(t *testing.T) {
|
func TestUnnamedEventParam(t *testing.T) {
|
||||||
|
|
|
||||||
|
|
@ -23,13 +23,13 @@ import (
|
||||||
"io"
|
"io"
|
||||||
"math/big"
|
"math/big"
|
||||||
|
|
||||||
"github.com/ethereum/go-ethereum/accounts"
|
"github.com/cryptoecc/ETH-ECC/accounts"
|
||||||
"github.com/ethereum/go-ethereum/accounts/external"
|
"github.com/cryptoecc/ETH-ECC/accounts/external"
|
||||||
"github.com/ethereum/go-ethereum/accounts/keystore"
|
"github.com/cryptoecc/ETH-ECC/accounts/keystore"
|
||||||
"github.com/ethereum/go-ethereum/common"
|
"github.com/cryptoecc/ETH-ECC/common"
|
||||||
"github.com/ethereum/go-ethereum/core/types"
|
"github.com/cryptoecc/ETH-ECC/core/types"
|
||||||
"github.com/ethereum/go-ethereum/crypto"
|
"github.com/cryptoecc/ETH-ECC/crypto"
|
||||||
"github.com/ethereum/go-ethereum/log"
|
"github.com/cryptoecc/ETH-ECC/log"
|
||||||
)
|
)
|
||||||
|
|
||||||
// ErrNoChainID is returned whenever the user failed to specify a chain id.
|
// ErrNoChainID is returned whenever the user failed to specify a chain id.
|
||||||
|
|
|
||||||
|
|
@ -21,9 +21,9 @@ import (
|
||||||
"errors"
|
"errors"
|
||||||
"math/big"
|
"math/big"
|
||||||
|
|
||||||
"github.com/ethereum/go-ethereum"
|
ethereum "github.com/cryptoecc/ETH-ECC"
|
||||||
"github.com/ethereum/go-ethereum/common"
|
"github.com/cryptoecc/ETH-ECC/common"
|
||||||
"github.com/ethereum/go-ethereum/core/types"
|
"github.com/cryptoecc/ETH-ECC/core/types"
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
|
|
||||||
|
|
@ -24,25 +24,25 @@ import (
|
||||||
"sync"
|
"sync"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/ethereum/go-ethereum"
|
ethereum "github.com/cryptoecc/ETH-ECC"
|
||||||
"github.com/ethereum/go-ethereum/accounts/abi"
|
"github.com/cryptoecc/ETH-ECC/accounts/abi"
|
||||||
"github.com/ethereum/go-ethereum/accounts/abi/bind"
|
"github.com/cryptoecc/ETH-ECC/accounts/abi/bind"
|
||||||
"github.com/ethereum/go-ethereum/common"
|
"github.com/cryptoecc/ETH-ECC/common"
|
||||||
"github.com/ethereum/go-ethereum/common/hexutil"
|
"github.com/cryptoecc/ETH-ECC/common/hexutil"
|
||||||
"github.com/ethereum/go-ethereum/common/math"
|
"github.com/cryptoecc/ETH-ECC/common/math"
|
||||||
"github.com/ethereum/go-ethereum/consensus/ethash"
|
"github.com/cryptoecc/ETH-ECC/consensus/ethash"
|
||||||
"github.com/ethereum/go-ethereum/core"
|
"github.com/cryptoecc/ETH-ECC/core"
|
||||||
"github.com/ethereum/go-ethereum/core/bloombits"
|
"github.com/cryptoecc/ETH-ECC/core/bloombits"
|
||||||
"github.com/ethereum/go-ethereum/core/rawdb"
|
"github.com/cryptoecc/ETH-ECC/core/rawdb"
|
||||||
"github.com/ethereum/go-ethereum/core/state"
|
"github.com/cryptoecc/ETH-ECC/core/state"
|
||||||
"github.com/ethereum/go-ethereum/core/types"
|
"github.com/cryptoecc/ETH-ECC/core/types"
|
||||||
"github.com/ethereum/go-ethereum/core/vm"
|
"github.com/cryptoecc/ETH-ECC/core/vm"
|
||||||
"github.com/ethereum/go-ethereum/eth/filters"
|
"github.com/cryptoecc/ETH-ECC/eth/filters"
|
||||||
"github.com/ethereum/go-ethereum/ethdb"
|
"github.com/cryptoecc/ETH-ECC/ethdb"
|
||||||
"github.com/ethereum/go-ethereum/event"
|
"github.com/cryptoecc/ETH-ECC/event"
|
||||||
"github.com/ethereum/go-ethereum/log"
|
"github.com/cryptoecc/ETH-ECC/log"
|
||||||
"github.com/ethereum/go-ethereum/params"
|
"github.com/cryptoecc/ETH-ECC/params"
|
||||||
"github.com/ethereum/go-ethereum/rpc"
|
"github.com/cryptoecc/ETH-ECC/rpc"
|
||||||
)
|
)
|
||||||
|
|
||||||
// This nil assignment ensures at compile time that SimulatedBackend implements bind.ContractBackend.
|
// This nil assignment ensures at compile time that SimulatedBackend implements bind.ContractBackend.
|
||||||
|
|
|
||||||
|
|
@ -27,14 +27,14 @@ import (
|
||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/ethereum/go-ethereum"
|
ethereum "github.com/cryptoecc/ETH-ECC"
|
||||||
"github.com/ethereum/go-ethereum/accounts/abi"
|
"github.com/cryptoecc/ETH-ECC/accounts/abi"
|
||||||
"github.com/ethereum/go-ethereum/accounts/abi/bind"
|
"github.com/cryptoecc/ETH-ECC/accounts/abi/bind"
|
||||||
"github.com/ethereum/go-ethereum/common"
|
"github.com/cryptoecc/ETH-ECC/common"
|
||||||
"github.com/ethereum/go-ethereum/core"
|
"github.com/cryptoecc/ETH-ECC/core"
|
||||||
"github.com/ethereum/go-ethereum/core/types"
|
"github.com/cryptoecc/ETH-ECC/core/types"
|
||||||
"github.com/ethereum/go-ethereum/crypto"
|
"github.com/cryptoecc/ETH-ECC/crypto"
|
||||||
"github.com/ethereum/go-ethereum/params"
|
"github.com/cryptoecc/ETH-ECC/params"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestSimulatedBackend(t *testing.T) {
|
func TestSimulatedBackend(t *testing.T) {
|
||||||
|
|
@ -93,17 +93,17 @@ func TestSimulatedBackend(t *testing.T) {
|
||||||
|
|
||||||
var testKey, _ = crypto.HexToECDSA("b71c71a67e1177ad4e901695e1b4b9ee17ae16c6668d313eac2f96dbcda3f291")
|
var testKey, _ = crypto.HexToECDSA("b71c71a67e1177ad4e901695e1b4b9ee17ae16c6668d313eac2f96dbcda3f291")
|
||||||
|
|
||||||
// the following is based on this contract:
|
// the following is based on this contract:
|
||||||
// contract T {
|
// contract T {
|
||||||
// event received(address sender, uint amount, bytes memo);
|
// event received(address sender, uint amount, bytes memo);
|
||||||
// event receivedAddr(address sender);
|
// event receivedAddr(address sender);
|
||||||
//
|
//
|
||||||
// function receive(bytes calldata memo) external payable returns (string memory res) {
|
// function receive(bytes calldata memo) external payable returns (string memory res) {
|
||||||
// emit received(msg.sender, msg.value, memo);
|
// emit received(msg.sender, msg.value, memo);
|
||||||
// emit receivedAddr(msg.sender);
|
// emit receivedAddr(msg.sender);
|
||||||
// return "hello world";
|
// return "hello world";
|
||||||
// }
|
// }
|
||||||
// }
|
// }
|
||||||
const abiJSON = `[ { "constant": false, "inputs": [ { "name": "memo", "type": "bytes" } ], "name": "receive", "outputs": [ { "name": "res", "type": "string" } ], "payable": true, "stateMutability": "payable", "type": "function" }, { "anonymous": false, "inputs": [ { "indexed": false, "name": "sender", "type": "address" }, { "indexed": false, "name": "amount", "type": "uint256" }, { "indexed": false, "name": "memo", "type": "bytes" } ], "name": "received", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "name": "sender", "type": "address" } ], "name": "receivedAddr", "type": "event" } ]`
|
const abiJSON = `[ { "constant": false, "inputs": [ { "name": "memo", "type": "bytes" } ], "name": "receive", "outputs": [ { "name": "res", "type": "string" } ], "payable": true, "stateMutability": "payable", "type": "function" }, { "anonymous": false, "inputs": [ { "indexed": false, "name": "sender", "type": "address" }, { "indexed": false, "name": "amount", "type": "uint256" }, { "indexed": false, "name": "memo", "type": "bytes" } ], "name": "received", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "name": "sender", "type": "address" } ], "name": "receivedAddr", "type": "event" } ]`
|
||||||
const abiBin = `0x608060405234801561001057600080fd5b506102a0806100206000396000f3fe60806040526004361061003b576000357c010000000000000000000000000000000000000000000000000000000090048063a69b6ed014610040575b600080fd5b6100b76004803603602081101561005657600080fd5b810190808035906020019064010000000081111561007357600080fd5b82018360208201111561008557600080fd5b803590602001918460018302840111640100000000831117156100a757600080fd5b9091929391929390505050610132565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156100f75780820151818401526020810190506100dc565b50505050905090810190601f1680156101245780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60607f75fd880d39c1daf53b6547ab6cb59451fc6452d27caa90e5b6649dd8293b9eed33348585604051808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509550505050505060405180910390a17f46923992397eac56cf13058aced2a1871933622717e27b24eabc13bf9dd329c833604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a16040805190810160405280600b81526020017f68656c6c6f20776f726c6400000000000000000000000000000000000000000081525090509291505056fea165627a7a72305820ff0c57dad254cfeda48c9cfb47f1353a558bccb4d1bc31da1dae69315772d29e0029`
|
const abiBin = `0x608060405234801561001057600080fd5b506102a0806100206000396000f3fe60806040526004361061003b576000357c010000000000000000000000000000000000000000000000000000000090048063a69b6ed014610040575b600080fd5b6100b76004803603602081101561005657600080fd5b810190808035906020019064010000000081111561007357600080fd5b82018360208201111561008557600080fd5b803590602001918460018302840111640100000000831117156100a757600080fd5b9091929391929390505050610132565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156100f75780820151818401526020810190506100dc565b50505050905090810190601f1680156101245780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60607f75fd880d39c1daf53b6547ab6cb59451fc6452d27caa90e5b6649dd8293b9eed33348585604051808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509550505050505060405180910390a17f46923992397eac56cf13058aced2a1871933622717e27b24eabc13bf9dd329c833604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a16040805190810160405280600b81526020017f68656c6c6f20776f726c6400000000000000000000000000000000000000000081525090509291505056fea165627a7a72305820ff0c57dad254cfeda48c9cfb47f1353a558bccb4d1bc31da1dae69315772d29e0029`
|
||||||
const deployedCode = `60806040526004361061003b576000357c010000000000000000000000000000000000000000000000000000000090048063a69b6ed014610040575b600080fd5b6100b76004803603602081101561005657600080fd5b810190808035906020019064010000000081111561007357600080fd5b82018360208201111561008557600080fd5b803590602001918460018302840111640100000000831117156100a757600080fd5b9091929391929390505050610132565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156100f75780820151818401526020810190506100dc565b50505050905090810190601f1680156101245780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60607f75fd880d39c1daf53b6547ab6cb59451fc6452d27caa90e5b6649dd8293b9eed33348585604051808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509550505050505060405180910390a17f46923992397eac56cf13058aced2a1871933622717e27b24eabc13bf9dd329c833604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a16040805190810160405280600b81526020017f68656c6c6f20776f726c6400000000000000000000000000000000000000000081525090509291505056fea165627a7a72305820ff0c57dad254cfeda48c9cfb47f1353a558bccb4d1bc31da1dae69315772d29e0029`
|
const deployedCode = `60806040526004361061003b576000357c010000000000000000000000000000000000000000000000000000000090048063a69b6ed014610040575b600080fd5b6100b76004803603602081101561005657600080fd5b810190808035906020019064010000000081111561007357600080fd5b82018360208201111561008557600080fd5b803590602001918460018302840111640100000000831117156100a757600080fd5b9091929391929390505050610132565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156100f75780820151818401526020810190506100dc565b50505050905090810190601f1680156101245780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60607f75fd880d39c1daf53b6547ab6cb59451fc6452d27caa90e5b6649dd8293b9eed33348585604051808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509550505050505060405180910390a17f46923992397eac56cf13058aced2a1871933622717e27b24eabc13bf9dd329c833604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a16040805190810160405280600b81526020017f68656c6c6f20776f726c6400000000000000000000000000000000000000000081525090509291505056fea165627a7a72305820ff0c57dad254cfeda48c9cfb47f1353a558bccb4d1bc31da1dae69315772d29e0029`
|
||||||
|
|
@ -994,7 +994,8 @@ func TestCodeAt(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// When receive("X") is called with sender 0x00... and value 1, it produces this tx receipt:
|
// When receive("X") is called with sender 0x00... and value 1, it produces this tx receipt:
|
||||||
// receipt{status=1 cgas=23949 bloom=00000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000040200000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 logs=[log: b6818c8064f645cd82d99b59a1a267d6d61117ef [75fd880d39c1daf53b6547ab6cb59451fc6452d27caa90e5b6649dd8293b9eed] 000000000000000000000000376c47978271565f56deb45495afa69e59c16ab200000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000158 9ae378b6d4409eada347a5dc0c180f186cb62dc68fcc0f043425eb917335aa28 0 95d429d309bb9d753954195fe2d69bd140b4ae731b9b5b605c34323de162cf00 0]}
|
//
|
||||||
|
// receipt{status=1 cgas=23949 bloom=00000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000040200000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 logs=[log: b6818c8064f645cd82d99b59a1a267d6d61117ef [75fd880d39c1daf53b6547ab6cb59451fc6452d27caa90e5b6649dd8293b9eed] 000000000000000000000000376c47978271565f56deb45495afa69e59c16ab200000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000158 9ae378b6d4409eada347a5dc0c180f186cb62dc68fcc0f043425eb917335aa28 0 95d429d309bb9d753954195fe2d69bd140b4ae731b9b5b605c34323de162cf00 0]}
|
||||||
func TestPendingAndCallContract(t *testing.T) {
|
func TestPendingAndCallContract(t *testing.T) {
|
||||||
testAddr := crypto.PubkeyToAddress(testKey.PublicKey)
|
testAddr := crypto.PubkeyToAddress(testKey.PublicKey)
|
||||||
sim := simTestBackend(testAddr)
|
sim := simTestBackend(testAddr)
|
||||||
|
|
@ -1205,10 +1206,11 @@ func TestFork(t *testing.T) {
|
||||||
Example contract to test event emission:
|
Example contract to test event emission:
|
||||||
|
|
||||||
pragma solidity >=0.7.0 <0.9.0;
|
pragma solidity >=0.7.0 <0.9.0;
|
||||||
contract Callable {
|
|
||||||
event Called();
|
contract Callable {
|
||||||
function Call() public { emit Called(); }
|
event Called();
|
||||||
}
|
function Call() public { emit Called(); }
|
||||||
|
}
|
||||||
*/
|
*/
|
||||||
const callableAbi = "[{\"anonymous\":false,\"inputs\":[],\"name\":\"Called\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"Call\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]"
|
const callableAbi = "[{\"anonymous\":false,\"inputs\":[],\"name\":\"Called\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"Call\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]"
|
||||||
|
|
||||||
|
|
@ -1226,6 +1228,7 @@ const callableBin = "6080604052348015600f57600080fd5b5060998061001e6000396000f3f
|
||||||
// 7. Mine two blocks to trigger a reorg.
|
// 7. Mine two blocks to trigger a reorg.
|
||||||
// 8. Check that the event was removed.
|
// 8. Check that the event was removed.
|
||||||
// 9. Re-send the transaction and mine a block.
|
// 9. Re-send the transaction and mine a block.
|
||||||
|
//
|
||||||
// 10. Check that the event was reborn.
|
// 10. Check that the event was reborn.
|
||||||
func TestForkLogsReborn(t *testing.T) {
|
func TestForkLogsReborn(t *testing.T) {
|
||||||
testAddr := crypto.PubkeyToAddress(testKey.PublicKey)
|
testAddr := crypto.PubkeyToAddress(testKey.PublicKey)
|
||||||
|
|
|
||||||
|
|
@ -24,12 +24,12 @@ import (
|
||||||
"strings"
|
"strings"
|
||||||
"sync"
|
"sync"
|
||||||
|
|
||||||
|
"github.com/cryptoecc/ETH-ECC/accounts/abi"
|
||||||
|
"github.com/cryptoecc/ETH-ECC/common"
|
||||||
|
"github.com/cryptoecc/ETH-ECC/core/types"
|
||||||
|
"github.com/cryptoecc/ETH-ECC/crypto"
|
||||||
|
"github.com/cryptoecc/ETH-ECC/event"
|
||||||
"github.com/ethereum/go-ethereum"
|
"github.com/ethereum/go-ethereum"
|
||||||
"github.com/ethereum/go-ethereum/accounts/abi"
|
|
||||||
"github.com/ethereum/go-ethereum/common"
|
|
||||||
"github.com/ethereum/go-ethereum/core/types"
|
|
||||||
"github.com/ethereum/go-ethereum/crypto"
|
|
||||||
"github.com/ethereum/go-ethereum/event"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
const basefeeWiggleMultiplier = 2
|
const basefeeWiggleMultiplier = 2
|
||||||
|
|
|
||||||
|
|
@ -24,14 +24,14 @@ import (
|
||||||
"strings"
|
"strings"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
|
"github.com/cryptoecc/ETH-ECC/accounts/abi"
|
||||||
|
"github.com/cryptoecc/ETH-ECC/accounts/abi/bind"
|
||||||
|
"github.com/cryptoecc/ETH-ECC/common"
|
||||||
|
"github.com/cryptoecc/ETH-ECC/common/hexutil"
|
||||||
|
"github.com/cryptoecc/ETH-ECC/core/types"
|
||||||
|
"github.com/cryptoecc/ETH-ECC/crypto"
|
||||||
|
"github.com/cryptoecc/ETH-ECC/rlp"
|
||||||
"github.com/ethereum/go-ethereum"
|
"github.com/ethereum/go-ethereum"
|
||||||
"github.com/ethereum/go-ethereum/accounts/abi"
|
|
||||||
"github.com/ethereum/go-ethereum/accounts/abi/bind"
|
|
||||||
"github.com/ethereum/go-ethereum/common"
|
|
||||||
"github.com/ethereum/go-ethereum/common/hexutil"
|
|
||||||
"github.com/ethereum/go-ethereum/core/types"
|
|
||||||
"github.com/ethereum/go-ethereum/crypto"
|
|
||||||
"github.com/ethereum/go-ethereum/rlp"
|
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,7 @@
|
||||||
// Package bind generates Ethereum contract Go bindings.
|
// Package bind generates Ethereum contract Go bindings.
|
||||||
//
|
//
|
||||||
// Detailed usage document and tutorial available on the go-ethereum Wiki page:
|
// Detailed usage document and tutorial available on the go-ethereum Wiki page:
|
||||||
// https://github.com/ethereum/go-ethereum/wiki/Native-DApps:-Go-bindings-to-Ethereum-contracts
|
// https://github.com/cryptoecc/ETH-ECC/wiki/Native-DApps:-Go-bindings-to-Ethereum-contracts
|
||||||
package bind
|
package bind
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
|
@ -30,8 +30,8 @@ import (
|
||||||
"text/template"
|
"text/template"
|
||||||
"unicode"
|
"unicode"
|
||||||
|
|
||||||
"github.com/ethereum/go-ethereum/accounts/abi"
|
"github.com/cryptoecc/ETH-ECC/accounts/abi"
|
||||||
"github.com/ethereum/go-ethereum/log"
|
"github.com/cryptoecc/ETH-ECC/log"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Lang is a target programming language selector to generate bindings for.
|
// Lang is a target programming language selector to generate bindings for.
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
|
|
@ -16,7 +16,7 @@
|
||||||
|
|
||||||
package bind
|
package bind
|
||||||
|
|
||||||
import "github.com/ethereum/go-ethereum/accounts/abi"
|
import "github.com/cryptoecc/ETH-ECC/accounts/abi"
|
||||||
|
|
||||||
// tmplData is the data structure required to fill the binding template.
|
// tmplData is the data structure required to fill the binding template.
|
||||||
type tmplData struct {
|
type tmplData struct {
|
||||||
|
|
@ -92,12 +92,12 @@ import (
|
||||||
"strings"
|
"strings"
|
||||||
"errors"
|
"errors"
|
||||||
|
|
||||||
ethereum "github.com/ethereum/go-ethereum"
|
ethereum "github.com/cryptoecc/ETH-ECC"
|
||||||
"github.com/ethereum/go-ethereum/accounts/abi"
|
"github.com/cryptoecc/ETH-ECC/accounts/abi"
|
||||||
"github.com/ethereum/go-ethereum/accounts/abi/bind"
|
"github.com/cryptoecc/ETH-ECC/accounts/abi/bind"
|
||||||
"github.com/ethereum/go-ethereum/common"
|
"github.com/cryptoecc/ETH-ECC/common"
|
||||||
"github.com/ethereum/go-ethereum/core/types"
|
"github.com/cryptoecc/ETH-ECC/core/types"
|
||||||
"github.com/ethereum/go-ethereum/event"
|
"github.com/cryptoecc/ETH-ECC/event"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Reference imports to suppress errors if they are not otherwise used.
|
// Reference imports to suppress errors if they are not otherwise used.
|
||||||
|
|
|
||||||
|
|
@ -21,10 +21,10 @@ import (
|
||||||
"errors"
|
"errors"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/ethereum/go-ethereum"
|
ethereum "github.com/cryptoecc/ETH-ECC"
|
||||||
"github.com/ethereum/go-ethereum/common"
|
"github.com/cryptoecc/ETH-ECC/common"
|
||||||
"github.com/ethereum/go-ethereum/core/types"
|
"github.com/cryptoecc/ETH-ECC/core/types"
|
||||||
"github.com/ethereum/go-ethereum/log"
|
"github.com/cryptoecc/ETH-ECC/log"
|
||||||
)
|
)
|
||||||
|
|
||||||
// WaitMined waits for tx to be mined on the blockchain.
|
// WaitMined waits for tx to be mined on the blockchain.
|
||||||
|
|
|
||||||
|
|
@ -23,12 +23,12 @@ import (
|
||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/ethereum/go-ethereum/accounts/abi/bind"
|
"github.com/cryptoecc/ETH-ECC/accounts/abi/bind"
|
||||||
"github.com/ethereum/go-ethereum/accounts/abi/bind/backends"
|
"github.com/cryptoecc/ETH-ECC/accounts/abi/bind/backends"
|
||||||
"github.com/ethereum/go-ethereum/common"
|
"github.com/cryptoecc/ETH-ECC/common"
|
||||||
"github.com/ethereum/go-ethereum/core"
|
"github.com/cryptoecc/ETH-ECC/core"
|
||||||
"github.com/ethereum/go-ethereum/core/types"
|
"github.com/cryptoecc/ETH-ECC/core/types"
|
||||||
"github.com/ethereum/go-ethereum/crypto"
|
"github.com/cryptoecc/ETH-ECC/crypto"
|
||||||
)
|
)
|
||||||
|
|
||||||
var testKey, _ = crypto.HexToECDSA("b71c71a67e1177ad4e901695e1b4b9ee17ae16c6668d313eac2f96dbcda3f291")
|
var testKey, _ = crypto.HexToECDSA("b71c71a67e1177ad4e901695e1b4b9ee17ae16c6668d313eac2f96dbcda3f291")
|
||||||
|
|
|
||||||
|
|
@ -22,8 +22,8 @@ import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/ethereum/go-ethereum/common"
|
"github.com/cryptoecc/ETH-ECC/common"
|
||||||
"github.com/ethereum/go-ethereum/crypto"
|
"github.com/cryptoecc/ETH-ECC/crypto"
|
||||||
)
|
)
|
||||||
|
|
||||||
type Error struct {
|
type Error struct {
|
||||||
|
|
|
||||||
|
|
@ -20,8 +20,8 @@ import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/ethereum/go-ethereum/common"
|
"github.com/cryptoecc/ETH-ECC/common"
|
||||||
"github.com/ethereum/go-ethereum/crypto"
|
"github.com/cryptoecc/ETH-ECC/crypto"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Event is an event potentially triggered by the EVM's LOG mechanism. The Event
|
// Event is an event potentially triggered by the EVM's LOG mechanism. The Event
|
||||||
|
|
|
||||||
|
|
@ -25,8 +25,8 @@ import (
|
||||||
"strings"
|
"strings"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/ethereum/go-ethereum/common"
|
"github.com/cryptoecc/ETH-ECC/common"
|
||||||
"github.com/ethereum/go-ethereum/crypto"
|
"github.com/cryptoecc/ETH-ECC/crypto"
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,7 @@ import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/ethereum/go-ethereum/crypto"
|
"github.com/cryptoecc/ETH-ECC/crypto"
|
||||||
)
|
)
|
||||||
|
|
||||||
// FunctionType represents different types of functions a contract might have.
|
// FunctionType represents different types of functions a contract might have.
|
||||||
|
|
|
||||||
|
|
@ -22,8 +22,8 @@ import (
|
||||||
"math/big"
|
"math/big"
|
||||||
"reflect"
|
"reflect"
|
||||||
|
|
||||||
"github.com/ethereum/go-ethereum/common"
|
"github.com/cryptoecc/ETH-ECC/common"
|
||||||
"github.com/ethereum/go-ethereum/common/math"
|
"github.com/cryptoecc/ETH-ECC/common/math"
|
||||||
)
|
)
|
||||||
|
|
||||||
// packBytesSlice packs the given bytes as [L, V] as the canonical representation
|
// packBytesSlice packs the given bytes as [L, V] as the canonical representation
|
||||||
|
|
|
||||||
|
|
@ -27,7 +27,7 @@ import (
|
||||||
"strings"
|
"strings"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/ethereum/go-ethereum/common"
|
"github.com/cryptoecc/ETH-ECC/common"
|
||||||
)
|
)
|
||||||
|
|
||||||
// TestPack tests the general pack/unpack tests in packing_test.go
|
// TestPack tests the general pack/unpack tests in packing_test.go
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@ package abi
|
||||||
import (
|
import (
|
||||||
"math/big"
|
"math/big"
|
||||||
|
|
||||||
"github.com/ethereum/go-ethereum/common"
|
"github.com/cryptoecc/ETH-ECC/common"
|
||||||
)
|
)
|
||||||
|
|
||||||
type packUnpackTest struct {
|
type packUnpackTest struct {
|
||||||
|
|
|
||||||
|
|
@ -23,8 +23,8 @@ import (
|
||||||
"math/big"
|
"math/big"
|
||||||
"reflect"
|
"reflect"
|
||||||
|
|
||||||
"github.com/ethereum/go-ethereum/common"
|
"github.com/cryptoecc/ETH-ECC/common"
|
||||||
"github.com/ethereum/go-ethereum/crypto"
|
"github.com/cryptoecc/ETH-ECC/crypto"
|
||||||
)
|
)
|
||||||
|
|
||||||
// MakeTopics converts a filter query argument list into a filter topic set.
|
// MakeTopics converts a filter query argument list into a filter topic set.
|
||||||
|
|
|
||||||
|
|
@ -21,8 +21,8 @@ import (
|
||||||
"reflect"
|
"reflect"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/ethereum/go-ethereum/common"
|
"github.com/cryptoecc/ETH-ECC/common"
|
||||||
"github.com/ethereum/go-ethereum/crypto"
|
"github.com/cryptoecc/ETH-ECC/crypto"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestMakeTopics(t *testing.T) {
|
func TestMakeTopics(t *testing.T) {
|
||||||
|
|
|
||||||
|
|
@ -26,7 +26,7 @@ import (
|
||||||
"unicode"
|
"unicode"
|
||||||
"unicode/utf8"
|
"unicode/utf8"
|
||||||
|
|
||||||
"github.com/ethereum/go-ethereum/common"
|
"github.com/cryptoecc/ETH-ECC/common"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Type enumerator
|
// Type enumerator
|
||||||
|
|
|
||||||
|
|
@ -21,8 +21,8 @@ import (
|
||||||
"reflect"
|
"reflect"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
|
"github.com/cryptoecc/ETH-ECC/common"
|
||||||
"github.com/davecgh/go-spew/spew"
|
"github.com/davecgh/go-spew/spew"
|
||||||
"github.com/ethereum/go-ethereum/common"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
// typeWithoutStringer is a alias for the Type type which simply doesn't implement
|
// typeWithoutStringer is a alias for the Type type which simply doesn't implement
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,7 @@ import (
|
||||||
"math/big"
|
"math/big"
|
||||||
"reflect"
|
"reflect"
|
||||||
|
|
||||||
"github.com/ethereum/go-ethereum/common"
|
"github.com/cryptoecc/ETH-ECC/common"
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
|
|
||||||
|
|
@ -26,7 +26,7 @@ import (
|
||||||
"strings"
|
"strings"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/ethereum/go-ethereum/common"
|
"github.com/cryptoecc/ETH-ECC/common"
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -21,10 +21,10 @@ import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"math/big"
|
"math/big"
|
||||||
|
|
||||||
"github.com/ethereum/go-ethereum"
|
ethereum "github.com/cryptoecc/ETH-ECC"
|
||||||
"github.com/ethereum/go-ethereum/common"
|
"github.com/cryptoecc/ETH-ECC/common"
|
||||||
"github.com/ethereum/go-ethereum/core/types"
|
"github.com/cryptoecc/ETH-ECC/core/types"
|
||||||
"github.com/ethereum/go-ethereum/event"
|
"github.com/cryptoecc/ETH-ECC/event"
|
||||||
"golang.org/x/crypto/sha3"
|
"golang.org/x/crypto/sha3"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
@ -177,7 +177,8 @@ type Backend interface {
|
||||||
// safely used to calculate a signature from.
|
// safely used to calculate a signature from.
|
||||||
//
|
//
|
||||||
// The hash is calculated as
|
// The hash is calculated as
|
||||||
// keccak256("\x19Ethereum Signed Message:\n"${message length}${message}).
|
//
|
||||||
|
// keccak256("\x19Ethereum Signed Message:\n"${message length}${message}).
|
||||||
//
|
//
|
||||||
// This gives context to the signed message and prevents signing of transactions.
|
// This gives context to the signed message and prevents signing of transactions.
|
||||||
func TextHash(data []byte) []byte {
|
func TextHash(data []byte) []byte {
|
||||||
|
|
@ -189,7 +190,8 @@ func TextHash(data []byte) []byte {
|
||||||
// safely used to calculate a signature from.
|
// safely used to calculate a signature from.
|
||||||
//
|
//
|
||||||
// The hash is calculated as
|
// The hash is calculated as
|
||||||
// keccak256("\x19Ethereum Signed Message:\n"${message length}${message}).
|
//
|
||||||
|
// keccak256("\x19Ethereum Signed Message:\n"${message length}${message}).
|
||||||
//
|
//
|
||||||
// This gives context to the signed message and prevents signing of transactions.
|
// This gives context to the signed message and prevents signing of transactions.
|
||||||
func TextAndHash(data []byte) ([]byte, string) {
|
func TextAndHash(data []byte) ([]byte, string) {
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,7 @@ import (
|
||||||
"bytes"
|
"bytes"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/ethereum/go-ethereum/common/hexutil"
|
"github.com/cryptoecc/ETH-ECC/common/hexutil"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestTextHash(t *testing.T) {
|
func TestTextHash(t *testing.T) {
|
||||||
|
|
|
||||||
18
accounts/external/backend.go
vendored
18
accounts/external/backend.go
vendored
|
|
@ -21,15 +21,15 @@ import (
|
||||||
"math/big"
|
"math/big"
|
||||||
"sync"
|
"sync"
|
||||||
|
|
||||||
"github.com/ethereum/go-ethereum"
|
ethereum "github.com/cryptoecc/ETH-ECC"
|
||||||
"github.com/ethereum/go-ethereum/accounts"
|
"github.com/cryptoecc/ETH-ECC/accounts"
|
||||||
"github.com/ethereum/go-ethereum/common"
|
"github.com/cryptoecc/ETH-ECC/common"
|
||||||
"github.com/ethereum/go-ethereum/common/hexutil"
|
"github.com/cryptoecc/ETH-ECC/common/hexutil"
|
||||||
"github.com/ethereum/go-ethereum/core/types"
|
"github.com/cryptoecc/ETH-ECC/core/types"
|
||||||
"github.com/ethereum/go-ethereum/event"
|
"github.com/cryptoecc/ETH-ECC/event"
|
||||||
"github.com/ethereum/go-ethereum/log"
|
"github.com/cryptoecc/ETH-ECC/log"
|
||||||
"github.com/ethereum/go-ethereum/rpc"
|
"github.com/cryptoecc/ETH-ECC/rpc"
|
||||||
"github.com/ethereum/go-ethereum/signer/core/apitypes"
|
"github.com/cryptoecc/ETH-ECC/signer/core/apitypes"
|
||||||
)
|
)
|
||||||
|
|
||||||
type ExternalBackend struct {
|
type ExternalBackend struct {
|
||||||
|
|
|
||||||
|
|
@ -27,10 +27,10 @@ import (
|
||||||
"sync"
|
"sync"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"github.com/cryptoecc/ETH-ECC/accounts"
|
||||||
|
"github.com/cryptoecc/ETH-ECC/common"
|
||||||
|
"github.com/cryptoecc/ETH-ECC/log"
|
||||||
mapset "github.com/deckarep/golang-set"
|
mapset "github.com/deckarep/golang-set"
|
||||||
"github.com/ethereum/go-ethereum/accounts"
|
|
||||||
"github.com/ethereum/go-ethereum/common"
|
|
||||||
"github.com/ethereum/go-ethereum/log"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
// Minimum amount of time between cache reloads. This limit applies if the platform does
|
// Minimum amount of time between cache reloads. This limit applies if the platform does
|
||||||
|
|
|
||||||
|
|
@ -27,9 +27,9 @@ import (
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/cespare/cp"
|
"github.com/cespare/cp"
|
||||||
|
"github.com/cryptoecc/ETH-ECC/accounts"
|
||||||
|
"github.com/cryptoecc/ETH-ECC/common"
|
||||||
"github.com/davecgh/go-spew/spew"
|
"github.com/davecgh/go-spew/spew"
|
||||||
"github.com/ethereum/go-ethereum/accounts"
|
|
||||||
"github.com/ethereum/go-ethereum/common"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
|
|
||||||
|
|
@ -23,8 +23,8 @@ import (
|
||||||
"sync"
|
"sync"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"github.com/cryptoecc/ETH-ECC/log"
|
||||||
mapset "github.com/deckarep/golang-set"
|
mapset "github.com/deckarep/golang-set"
|
||||||
"github.com/ethereum/go-ethereum/log"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
// fileCache is a cache of files seen during scan of keystore.
|
// fileCache is a cache of files seen during scan of keystore.
|
||||||
|
|
|
||||||
|
|
@ -28,9 +28,9 @@ import (
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/ethereum/go-ethereum/accounts"
|
"github.com/cryptoecc/ETH-ECC/accounts"
|
||||||
"github.com/ethereum/go-ethereum/common"
|
"github.com/cryptoecc/ETH-ECC/common"
|
||||||
"github.com/ethereum/go-ethereum/crypto"
|
"github.com/cryptoecc/ETH-ECC/crypto"
|
||||||
"github.com/google/uuid"
|
"github.com/google/uuid"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -32,11 +32,11 @@ import (
|
||||||
"sync"
|
"sync"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/ethereum/go-ethereum/accounts"
|
"github.com/cryptoecc/ETH-ECC/accounts"
|
||||||
"github.com/ethereum/go-ethereum/common"
|
"github.com/cryptoecc/ETH-ECC/common"
|
||||||
"github.com/ethereum/go-ethereum/core/types"
|
"github.com/cryptoecc/ETH-ECC/core/types"
|
||||||
"github.com/ethereum/go-ethereum/crypto"
|
"github.com/cryptoecc/ETH-ECC/crypto"
|
||||||
"github.com/ethereum/go-ethereum/event"
|
"github.com/cryptoecc/ETH-ECC/event"
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
|
|
||||||
|
|
@ -27,10 +27,10 @@ import (
|
||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/ethereum/go-ethereum/accounts"
|
"github.com/cryptoecc/ETH-ECC/accounts"
|
||||||
"github.com/ethereum/go-ethereum/common"
|
"github.com/cryptoecc/ETH-ECC/common"
|
||||||
"github.com/ethereum/go-ethereum/crypto"
|
"github.com/cryptoecc/ETH-ECC/crypto"
|
||||||
"github.com/ethereum/go-ethereum/event"
|
"github.com/cryptoecc/ETH-ECC/event"
|
||||||
)
|
)
|
||||||
|
|
||||||
var testSigData = make([]byte, 32)
|
var testSigData = make([]byte, 32)
|
||||||
|
|
|
||||||
|
|
@ -37,10 +37,10 @@ import (
|
||||||
"os"
|
"os"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
|
|
||||||
"github.com/ethereum/go-ethereum/accounts"
|
"github.com/cryptoecc/ETH-ECC/accounts"
|
||||||
"github.com/ethereum/go-ethereum/common"
|
"github.com/cryptoecc/ETH-ECC/common"
|
||||||
"github.com/ethereum/go-ethereum/common/math"
|
"github.com/cryptoecc/ETH-ECC/common/math"
|
||||||
"github.com/ethereum/go-ethereum/crypto"
|
"github.com/cryptoecc/ETH-ECC/crypto"
|
||||||
"github.com/google/uuid"
|
"github.com/google/uuid"
|
||||||
"golang.org/x/crypto/pbkdf2"
|
"golang.org/x/crypto/pbkdf2"
|
||||||
"golang.org/x/crypto/scrypt"
|
"golang.org/x/crypto/scrypt"
|
||||||
|
|
@ -120,7 +120,7 @@ func (ks keyStorePassphrase) StoreKey(filename string, key *Key, auth string) er
|
||||||
"This indicates that the keystore is corrupted. \n" +
|
"This indicates that the keystore is corrupted. \n" +
|
||||||
"The corrupted file is stored at \n%v\n" +
|
"The corrupted file is stored at \n%v\n" +
|
||||||
"Please file a ticket at:\n\n" +
|
"Please file a ticket at:\n\n" +
|
||||||
"https://github.com/ethereum/go-ethereum/issues." +
|
"https://github.com/cryptoecc/ETH-ECC/issues." +
|
||||||
"The error was : %s"
|
"The error was : %s"
|
||||||
//lint:ignore ST1005 This is a message for the user
|
//lint:ignore ST1005 This is a message for the user
|
||||||
return fmt.Errorf(msg, tmpName, err)
|
return fmt.Errorf(msg, tmpName, err)
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,7 @@ import (
|
||||||
"os"
|
"os"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/ethereum/go-ethereum/common"
|
"github.com/cryptoecc/ETH-ECC/common"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,7 @@ import (
|
||||||
"os"
|
"os"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
|
|
||||||
"github.com/ethereum/go-ethereum/common"
|
"github.com/cryptoecc/ETH-ECC/common"
|
||||||
)
|
)
|
||||||
|
|
||||||
type keyStorePlain struct {
|
type keyStorePlain struct {
|
||||||
|
|
|
||||||
|
|
@ -25,8 +25,8 @@ import (
|
||||||
"strings"
|
"strings"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/ethereum/go-ethereum/common"
|
"github.com/cryptoecc/ETH-ECC/common"
|
||||||
"github.com/ethereum/go-ethereum/crypto"
|
"github.com/cryptoecc/ETH-ECC/crypto"
|
||||||
)
|
)
|
||||||
|
|
||||||
func tmpKeyStoreIface(t *testing.T, encrypted bool) (dir string, ks keyStore) {
|
func tmpKeyStoreIface(t *testing.T, encrypted bool) (dir string, ks keyStore) {
|
||||||
|
|
|
||||||
|
|
@ -25,8 +25,8 @@ import (
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
"github.com/ethereum/go-ethereum/accounts"
|
"github.com/cryptoecc/ETH-ECC/accounts"
|
||||||
"github.com/ethereum/go-ethereum/crypto"
|
"github.com/cryptoecc/ETH-ECC/crypto"
|
||||||
"github.com/google/uuid"
|
"github.com/google/uuid"
|
||||||
"golang.org/x/crypto/pbkdf2"
|
"golang.org/x/crypto/pbkdf2"
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -19,10 +19,10 @@ package keystore
|
||||||
import (
|
import (
|
||||||
"math/big"
|
"math/big"
|
||||||
|
|
||||||
"github.com/ethereum/go-ethereum"
|
ethereum "github.com/cryptoecc/ETH-ECC"
|
||||||
"github.com/ethereum/go-ethereum/accounts"
|
"github.com/cryptoecc/ETH-ECC/accounts"
|
||||||
"github.com/ethereum/go-ethereum/core/types"
|
"github.com/cryptoecc/ETH-ECC/core/types"
|
||||||
"github.com/ethereum/go-ethereum/crypto"
|
"github.com/cryptoecc/ETH-ECC/crypto"
|
||||||
)
|
)
|
||||||
|
|
||||||
// keystoreWallet implements the accounts.Wallet interface for the original
|
// keystoreWallet implements the accounts.Wallet interface for the original
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,7 @@ package keystore
|
||||||
import (
|
import (
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/ethereum/go-ethereum/log"
|
"github.com/cryptoecc/ETH-ECC/log"
|
||||||
"github.com/rjeczalik/notify"
|
"github.com/rjeczalik/notify"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -21,8 +21,8 @@ import (
|
||||||
"sort"
|
"sort"
|
||||||
"sync"
|
"sync"
|
||||||
|
|
||||||
"github.com/ethereum/go-ethereum/common"
|
"github.com/cryptoecc/ETH-ECC/common"
|
||||||
"github.com/ethereum/go-ethereum/event"
|
"github.com/cryptoecc/ETH-ECC/event"
|
||||||
)
|
)
|
||||||
|
|
||||||
// managerSubBufferSize determines how many incoming wallet events
|
// managerSubBufferSize determines how many incoming wallet events
|
||||||
|
|
|
||||||
|
|
@ -41,10 +41,10 @@ import (
|
||||||
"sync"
|
"sync"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/ethereum/go-ethereum/accounts"
|
"github.com/cryptoecc/ETH-ECC/accounts"
|
||||||
"github.com/ethereum/go-ethereum/common"
|
"github.com/cryptoecc/ETH-ECC/common"
|
||||||
"github.com/ethereum/go-ethereum/event"
|
"github.com/cryptoecc/ETH-ECC/event"
|
||||||
"github.com/ethereum/go-ethereum/log"
|
"github.com/cryptoecc/ETH-ECC/log"
|
||||||
pcsc "github.com/gballet/go-libpcsclite"
|
pcsc "github.com/gballet/go-libpcsclite"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -26,7 +26,7 @@ import (
|
||||||
"crypto/sha512"
|
"crypto/sha512"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
"github.com/ethereum/go-ethereum/crypto"
|
"github.com/cryptoecc/ETH-ECC/crypto"
|
||||||
pcsc "github.com/gballet/go-libpcsclite"
|
pcsc "github.com/gballet/go-libpcsclite"
|
||||||
"golang.org/x/crypto/pbkdf2"
|
"golang.org/x/crypto/pbkdf2"
|
||||||
"golang.org/x/text/unicode/norm"
|
"golang.org/x/text/unicode/norm"
|
||||||
|
|
|
||||||
|
|
@ -33,12 +33,12 @@ import (
|
||||||
"sync"
|
"sync"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/ethereum/go-ethereum"
|
ethereum "github.com/cryptoecc/ETH-ECC"
|
||||||
"github.com/ethereum/go-ethereum/accounts"
|
"github.com/cryptoecc/ETH-ECC/accounts"
|
||||||
"github.com/ethereum/go-ethereum/common"
|
"github.com/cryptoecc/ETH-ECC/common"
|
||||||
"github.com/ethereum/go-ethereum/core/types"
|
"github.com/cryptoecc/ETH-ECC/core/types"
|
||||||
"github.com/ethereum/go-ethereum/crypto"
|
"github.com/cryptoecc/ETH-ECC/crypto"
|
||||||
"github.com/ethereum/go-ethereum/log"
|
"github.com/cryptoecc/ETH-ECC/log"
|
||||||
pcsc "github.com/gballet/go-libpcsclite"
|
pcsc "github.com/gballet/go-libpcsclite"
|
||||||
"github.com/status-im/keycard-go/derivationpath"
|
"github.com/status-im/keycard-go/derivationpath"
|
||||||
)
|
)
|
||||||
|
|
@ -879,6 +879,7 @@ func (s *Session) walletStatus() (*walletStatus, error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// derivationPath fetches the wallet's current derivation path from the card.
|
// derivationPath fetches the wallet's current derivation path from the card.
|
||||||
|
//
|
||||||
//lint:ignore U1000 needs to be added to the console interface
|
//lint:ignore U1000 needs to be added to the console interface
|
||||||
func (s *Session) derivationPath() (accounts.DerivationPath, error) {
|
func (s *Session) derivationPath() (accounts.DerivationPath, error) {
|
||||||
response, err := s.Channel.transmitEncrypted(claSCWallet, insStatus, statusP1Path, 0, nil)
|
response, err := s.Channel.transmitEncrypted(claSCWallet, insStatus, statusP1Path, 0, nil)
|
||||||
|
|
@ -994,6 +995,7 @@ func (s *Session) derive(path accounts.DerivationPath) (accounts.Account, error)
|
||||||
}
|
}
|
||||||
|
|
||||||
// keyExport contains information on an exported keypair.
|
// keyExport contains information on an exported keypair.
|
||||||
|
//
|
||||||
//lint:ignore U1000 needs to be added to the console interface
|
//lint:ignore U1000 needs to be added to the console interface
|
||||||
type keyExport struct {
|
type keyExport struct {
|
||||||
PublicKey []byte `asn1:"tag:0"`
|
PublicKey []byte `asn1:"tag:0"`
|
||||||
|
|
@ -1001,6 +1003,7 @@ type keyExport struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
// publicKey returns the public key for the current derivation path.
|
// publicKey returns the public key for the current derivation path.
|
||||||
|
//
|
||||||
//lint:ignore U1000 needs to be added to the console interface
|
//lint:ignore U1000 needs to be added to the console interface
|
||||||
func (s *Session) publicKey() ([]byte, error) {
|
func (s *Session) publicKey() ([]byte, error) {
|
||||||
response, err := s.Channel.transmitEncrypted(claSCWallet, insExportKey, exportP1Any, exportP2Pubkey, nil)
|
response, err := s.Channel.transmitEncrypted(claSCWallet, insExportKey, exportP1Any, exportP2Pubkey, nil)
|
||||||
|
|
|
||||||
|
|
@ -23,9 +23,9 @@ import (
|
||||||
"sync/atomic"
|
"sync/atomic"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/ethereum/go-ethereum/accounts"
|
"github.com/cryptoecc/ETH-ECC/accounts"
|
||||||
"github.com/ethereum/go-ethereum/event"
|
"github.com/cryptoecc/ETH-ECC/event"
|
||||||
"github.com/ethereum/go-ethereum/log"
|
"github.com/cryptoecc/ETH-ECC/log"
|
||||||
"github.com/karalabe/usb"
|
"github.com/karalabe/usb"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -28,13 +28,13 @@ import (
|
||||||
"io"
|
"io"
|
||||||
"math/big"
|
"math/big"
|
||||||
|
|
||||||
"github.com/ethereum/go-ethereum/accounts"
|
"github.com/cryptoecc/ETH-ECC/accounts"
|
||||||
"github.com/ethereum/go-ethereum/common"
|
"github.com/cryptoecc/ETH-ECC/common"
|
||||||
"github.com/ethereum/go-ethereum/common/hexutil"
|
"github.com/cryptoecc/ETH-ECC/common/hexutil"
|
||||||
"github.com/ethereum/go-ethereum/core/types"
|
"github.com/cryptoecc/ETH-ECC/core/types"
|
||||||
"github.com/ethereum/go-ethereum/crypto"
|
"github.com/cryptoecc/ETH-ECC/crypto"
|
||||||
"github.com/ethereum/go-ethereum/log"
|
"github.com/cryptoecc/ETH-ECC/log"
|
||||||
"github.com/ethereum/go-ethereum/rlp"
|
"github.com/cryptoecc/ETH-ECC/rlp"
|
||||||
)
|
)
|
||||||
|
|
||||||
// ledgerOpcode is an enumeration encoding the supported Ledger opcodes.
|
// ledgerOpcode is an enumeration encoding the supported Ledger opcodes.
|
||||||
|
|
@ -195,18 +195,18 @@ func (w *ledgerDriver) SignTypedMessage(path accounts.DerivationPath, domainHash
|
||||||
//
|
//
|
||||||
// The version retrieval protocol is defined as follows:
|
// The version retrieval protocol is defined as follows:
|
||||||
//
|
//
|
||||||
// CLA | INS | P1 | P2 | Lc | Le
|
// CLA | INS | P1 | P2 | Lc | Le
|
||||||
// ----+-----+----+----+----+---
|
// ----+-----+----+----+----+---
|
||||||
// E0 | 06 | 00 | 00 | 00 | 04
|
// E0 | 06 | 00 | 00 | 00 | 04
|
||||||
//
|
//
|
||||||
// With no input data, and the output data being:
|
// With no input data, and the output data being:
|
||||||
//
|
//
|
||||||
// Description | Length
|
// Description | Length
|
||||||
// ---------------------------------------------------+--------
|
// ---------------------------------------------------+--------
|
||||||
// Flags 01: arbitrary data signature enabled by user | 1 byte
|
// Flags 01: arbitrary data signature enabled by user | 1 byte
|
||||||
// Application major version | 1 byte
|
// Application major version | 1 byte
|
||||||
// Application minor version | 1 byte
|
// Application minor version | 1 byte
|
||||||
// Application patch version | 1 byte
|
// Application patch version | 1 byte
|
||||||
func (w *ledgerDriver) ledgerVersion() ([3]byte, error) {
|
func (w *ledgerDriver) ledgerVersion() ([3]byte, error) {
|
||||||
// Send the request and wait for the response
|
// Send the request and wait for the response
|
||||||
reply, err := w.ledgerExchange(ledgerOpGetConfiguration, 0, 0, nil)
|
reply, err := w.ledgerExchange(ledgerOpGetConfiguration, 0, 0, nil)
|
||||||
|
|
@ -227,32 +227,32 @@ func (w *ledgerDriver) ledgerVersion() ([3]byte, error) {
|
||||||
//
|
//
|
||||||
// The address derivation protocol is defined as follows:
|
// The address derivation protocol is defined as follows:
|
||||||
//
|
//
|
||||||
// CLA | INS | P1 | P2 | Lc | Le
|
// CLA | INS | P1 | P2 | Lc | Le
|
||||||
// ----+-----+----+----+-----+---
|
// ----+-----+----+----+-----+---
|
||||||
// E0 | 02 | 00 return address
|
// E0 | 02 | 00 return address
|
||||||
// 01 display address and confirm before returning
|
// 01 display address and confirm before returning
|
||||||
// | 00: do not return the chain code
|
// | 00: do not return the chain code
|
||||||
// | 01: return the chain code
|
// | 01: return the chain code
|
||||||
// | var | 00
|
// | var | 00
|
||||||
//
|
//
|
||||||
// Where the input data is:
|
// Where the input data is:
|
||||||
//
|
//
|
||||||
// Description | Length
|
// Description | Length
|
||||||
// -------------------------------------------------+--------
|
// -------------------------------------------------+--------
|
||||||
// Number of BIP 32 derivations to perform (max 10) | 1 byte
|
// Number of BIP 32 derivations to perform (max 10) | 1 byte
|
||||||
// First derivation index (big endian) | 4 bytes
|
// First derivation index (big endian) | 4 bytes
|
||||||
// ... | 4 bytes
|
// ... | 4 bytes
|
||||||
// Last derivation index (big endian) | 4 bytes
|
// Last derivation index (big endian) | 4 bytes
|
||||||
//
|
//
|
||||||
// And the output data is:
|
// And the output data is:
|
||||||
//
|
//
|
||||||
// Description | Length
|
// Description | Length
|
||||||
// ------------------------+-------------------
|
// ------------------------+-------------------
|
||||||
// Public Key length | 1 byte
|
// Public Key length | 1 byte
|
||||||
// Uncompressed Public Key | arbitrary
|
// Uncompressed Public Key | arbitrary
|
||||||
// Ethereum address length | 1 byte
|
// Ethereum address length | 1 byte
|
||||||
// Ethereum address | 40 bytes hex ascii
|
// Ethereum address | 40 bytes hex ascii
|
||||||
// Chain code if requested | 32 bytes
|
// Chain code if requested | 32 bytes
|
||||||
func (w *ledgerDriver) ledgerDerive(derivationPath []uint32) (common.Address, error) {
|
func (w *ledgerDriver) ledgerDerive(derivationPath []uint32) (common.Address, error) {
|
||||||
// Flatten the derivation path into the Ledger request
|
// Flatten the derivation path into the Ledger request
|
||||||
path := make([]byte, 1+4*len(derivationPath))
|
path := make([]byte, 1+4*len(derivationPath))
|
||||||
|
|
@ -290,35 +290,35 @@ func (w *ledgerDriver) ledgerDerive(derivationPath []uint32) (common.Address, er
|
||||||
//
|
//
|
||||||
// The transaction signing protocol is defined as follows:
|
// The transaction signing protocol is defined as follows:
|
||||||
//
|
//
|
||||||
// CLA | INS | P1 | P2 | Lc | Le
|
// CLA | INS | P1 | P2 | Lc | Le
|
||||||
// ----+-----+----+----+-----+---
|
// ----+-----+----+----+-----+---
|
||||||
// E0 | 04 | 00: first transaction data block
|
// E0 | 04 | 00: first transaction data block
|
||||||
// 80: subsequent transaction data block
|
// 80: subsequent transaction data block
|
||||||
// | 00 | variable | variable
|
// | 00 | variable | variable
|
||||||
//
|
//
|
||||||
// Where the input for the first transaction block (first 255 bytes) is:
|
// Where the input for the first transaction block (first 255 bytes) is:
|
||||||
//
|
//
|
||||||
// Description | Length
|
// Description | Length
|
||||||
// -------------------------------------------------+----------
|
// -------------------------------------------------+----------
|
||||||
// Number of BIP 32 derivations to perform (max 10) | 1 byte
|
// Number of BIP 32 derivations to perform (max 10) | 1 byte
|
||||||
// First derivation index (big endian) | 4 bytes
|
// First derivation index (big endian) | 4 bytes
|
||||||
// ... | 4 bytes
|
// ... | 4 bytes
|
||||||
// Last derivation index (big endian) | 4 bytes
|
// Last derivation index (big endian) | 4 bytes
|
||||||
// RLP transaction chunk | arbitrary
|
// RLP transaction chunk | arbitrary
|
||||||
//
|
//
|
||||||
// And the input for subsequent transaction blocks (first 255 bytes) are:
|
// And the input for subsequent transaction blocks (first 255 bytes) are:
|
||||||
//
|
//
|
||||||
// Description | Length
|
// Description | Length
|
||||||
// ----------------------+----------
|
// ----------------------+----------
|
||||||
// RLP transaction chunk | arbitrary
|
// RLP transaction chunk | arbitrary
|
||||||
//
|
//
|
||||||
// And the output data is:
|
// And the output data is:
|
||||||
//
|
//
|
||||||
// Description | Length
|
// Description | Length
|
||||||
// ------------+---------
|
// ------------+---------
|
||||||
// signature V | 1 byte
|
// signature V | 1 byte
|
||||||
// signature R | 32 bytes
|
// signature R | 32 bytes
|
||||||
// signature S | 32 bytes
|
// signature S | 32 bytes
|
||||||
func (w *ledgerDriver) ledgerSign(derivationPath []uint32, tx *types.Transaction, chainID *big.Int) (common.Address, *types.Transaction, error) {
|
func (w *ledgerDriver) ledgerSign(derivationPath []uint32, tx *types.Transaction, chainID *big.Int) (common.Address, *types.Transaction, error) {
|
||||||
// Flatten the derivation path into the Ledger request
|
// Flatten the derivation path into the Ledger request
|
||||||
path := make([]byte, 1+4*len(derivationPath))
|
path := make([]byte, 1+4*len(derivationPath))
|
||||||
|
|
@ -392,30 +392,28 @@ func (w *ledgerDriver) ledgerSign(derivationPath []uint32, tx *types.Transaction
|
||||||
//
|
//
|
||||||
// The signing protocol is defined as follows:
|
// The signing protocol is defined as follows:
|
||||||
//
|
//
|
||||||
// CLA | INS | P1 | P2 | Lc | Le
|
// CLA | INS | P1 | P2 | Lc | Le
|
||||||
// ----+-----+----+-----------------------------+-----+---
|
// ----+-----+----+-----------------------------+-----+---
|
||||||
// E0 | 0C | 00 | implementation version : 00 | variable | variable
|
// E0 | 0C | 00 | implementation version : 00 | variable | variable
|
||||||
//
|
//
|
||||||
// Where the input is:
|
// Where the input is:
|
||||||
//
|
//
|
||||||
// Description | Length
|
// Description | Length
|
||||||
// -------------------------------------------------+----------
|
// -------------------------------------------------+----------
|
||||||
// Number of BIP 32 derivations to perform (max 10) | 1 byte
|
// Number of BIP 32 derivations to perform (max 10) | 1 byte
|
||||||
// First derivation index (big endian) | 4 bytes
|
// First derivation index (big endian) | 4 bytes
|
||||||
// ... | 4 bytes
|
// ... | 4 bytes
|
||||||
// Last derivation index (big endian) | 4 bytes
|
// Last derivation index (big endian) | 4 bytes
|
||||||
// domain hash | 32 bytes
|
// domain hash | 32 bytes
|
||||||
// message hash | 32 bytes
|
// message hash | 32 bytes
|
||||||
//
|
|
||||||
//
|
|
||||||
//
|
//
|
||||||
// And the output data is:
|
// And the output data is:
|
||||||
//
|
//
|
||||||
// Description | Length
|
// Description | Length
|
||||||
// ------------+---------
|
// ------------+---------
|
||||||
// signature V | 1 byte
|
// signature V | 1 byte
|
||||||
// signature R | 32 bytes
|
// signature R | 32 bytes
|
||||||
// signature S | 32 bytes
|
// signature S | 32 bytes
|
||||||
func (w *ledgerDriver) ledgerSignTypedMessage(derivationPath []uint32, domainHash []byte, messageHash []byte) ([]byte, error) {
|
func (w *ledgerDriver) ledgerSignTypedMessage(derivationPath []uint32, domainHash []byte, messageHash []byte) ([]byte, error) {
|
||||||
// Flatten the derivation path into the Ledger request
|
// Flatten the derivation path into the Ledger request
|
||||||
path := make([]byte, 1+4*len(derivationPath))
|
path := make([]byte, 1+4*len(derivationPath))
|
||||||
|
|
@ -454,12 +452,12 @@ func (w *ledgerDriver) ledgerSignTypedMessage(derivationPath []uint32, domainHas
|
||||||
//
|
//
|
||||||
// The common transport header is defined as follows:
|
// The common transport header is defined as follows:
|
||||||
//
|
//
|
||||||
// Description | Length
|
// Description | Length
|
||||||
// --------------------------------------+----------
|
// --------------------------------------+----------
|
||||||
// Communication channel ID (big endian) | 2 bytes
|
// Communication channel ID (big endian) | 2 bytes
|
||||||
// Command tag | 1 byte
|
// Command tag | 1 byte
|
||||||
// Packet sequence index (big endian) | 2 bytes
|
// Packet sequence index (big endian) | 2 bytes
|
||||||
// Payload | arbitrary
|
// Payload | arbitrary
|
||||||
//
|
//
|
||||||
// The Communication channel ID allows commands multiplexing over the same
|
// The Communication channel ID allows commands multiplexing over the same
|
||||||
// physical link. It is not used for the time being, and should be set to 0101
|
// physical link. It is not used for the time being, and should be set to 0101
|
||||||
|
|
@ -473,15 +471,15 @@ func (w *ledgerDriver) ledgerSignTypedMessage(derivationPath []uint32, domainHas
|
||||||
//
|
//
|
||||||
// APDU Command payloads are encoded as follows:
|
// APDU Command payloads are encoded as follows:
|
||||||
//
|
//
|
||||||
// Description | Length
|
// Description | Length
|
||||||
// -----------------------------------
|
// -----------------------------------
|
||||||
// APDU length (big endian) | 2 bytes
|
// APDU length (big endian) | 2 bytes
|
||||||
// APDU CLA | 1 byte
|
// APDU CLA | 1 byte
|
||||||
// APDU INS | 1 byte
|
// APDU INS | 1 byte
|
||||||
// APDU P1 | 1 byte
|
// APDU P1 | 1 byte
|
||||||
// APDU P2 | 1 byte
|
// APDU P2 | 1 byte
|
||||||
// APDU length | 1 byte
|
// APDU length | 1 byte
|
||||||
// Optional APDU data | arbitrary
|
// Optional APDU data | arbitrary
|
||||||
func (w *ledgerDriver) ledgerExchange(opcode ledgerOpcode, p1 ledgerParam1, p2 ledgerParam2, data []byte) ([]byte, error) {
|
func (w *ledgerDriver) ledgerExchange(opcode ledgerOpcode, p1 ledgerParam1, p2 ledgerParam2, data []byte) ([]byte, error) {
|
||||||
// Construct the message payload, possibly split into multiple chunks
|
// Construct the message payload, possibly split into multiple chunks
|
||||||
apdu := make([]byte, 2, 7+len(data))
|
apdu := make([]byte, 2, 7+len(data))
|
||||||
|
|
|
||||||
|
|
@ -27,12 +27,12 @@ import (
|
||||||
"io"
|
"io"
|
||||||
"math/big"
|
"math/big"
|
||||||
|
|
||||||
"github.com/ethereum/go-ethereum/accounts"
|
"github.com/cryptoecc/ETH-ECC/accounts"
|
||||||
"github.com/ethereum/go-ethereum/accounts/usbwallet/trezor"
|
"github.com/cryptoecc/ETH-ECC/accounts/usbwallet/trezor"
|
||||||
"github.com/ethereum/go-ethereum/common"
|
"github.com/cryptoecc/ETH-ECC/common"
|
||||||
"github.com/ethereum/go-ethereum/common/hexutil"
|
"github.com/cryptoecc/ETH-ECC/common/hexutil"
|
||||||
"github.com/ethereum/go-ethereum/core/types"
|
"github.com/cryptoecc/ETH-ECC/core/types"
|
||||||
"github.com/ethereum/go-ethereum/log"
|
"github.com/cryptoecc/ETH-ECC/log"
|
||||||
"github.com/golang/protobuf/proto"
|
"github.com/golang/protobuf/proto"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
@ -84,15 +84,15 @@ func (w *trezorDriver) Status() (string, error) {
|
||||||
|
|
||||||
// Open implements usbwallet.driver, attempting to initialize the connection to
|
// Open implements usbwallet.driver, attempting to initialize the connection to
|
||||||
// the Trezor hardware wallet. Initializing the Trezor is a two or three phase operation:
|
// the Trezor hardware wallet. Initializing the Trezor is a two or three phase operation:
|
||||||
// * The first phase is to initialize the connection and read the wallet's
|
// - The first phase is to initialize the connection and read the wallet's
|
||||||
// features. This phase is invoked if the provided passphrase is empty. The
|
// features. This phase is invoked if the provided passphrase is empty. The
|
||||||
// device will display the pinpad as a result and will return an appropriate
|
// device will display the pinpad as a result and will return an appropriate
|
||||||
// error to notify the user that a second open phase is needed.
|
// error to notify the user that a second open phase is needed.
|
||||||
// * The second phase is to unlock access to the Trezor, which is done by the
|
// - The second phase is to unlock access to the Trezor, which is done by the
|
||||||
// user actually providing a passphrase mapping a keyboard keypad to the pin
|
// user actually providing a passphrase mapping a keyboard keypad to the pin
|
||||||
// number of the user (shuffled according to the pinpad displayed).
|
// number of the user (shuffled according to the pinpad displayed).
|
||||||
// * If needed the device will ask for passphrase which will require calling
|
// - If needed the device will ask for passphrase which will require calling
|
||||||
// open again with the actual passphrase (3rd phase)
|
// open again with the actual passphrase (3rd phase)
|
||||||
func (w *trezorDriver) Open(device io.ReadWriter, passphrase string) error {
|
func (w *trezorDriver) Open(device io.ReadWriter, passphrase string) error {
|
||||||
w.device, w.failure = device, nil
|
w.device, w.failure = device, nil
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -25,12 +25,12 @@ import (
|
||||||
"sync"
|
"sync"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/ethereum/go-ethereum"
|
ethereum "github.com/cryptoecc/ETH-ECC"
|
||||||
"github.com/ethereum/go-ethereum/accounts"
|
"github.com/cryptoecc/ETH-ECC/accounts"
|
||||||
"github.com/ethereum/go-ethereum/common"
|
"github.com/cryptoecc/ETH-ECC/common"
|
||||||
"github.com/ethereum/go-ethereum/core/types"
|
"github.com/cryptoecc/ETH-ECC/core/types"
|
||||||
"github.com/ethereum/go-ethereum/crypto"
|
"github.com/cryptoecc/ETH-ECC/crypto"
|
||||||
"github.com/ethereum/go-ethereum/log"
|
"github.com/cryptoecc/ETH-ECC/log"
|
||||||
"github.com/karalabe/usb"
|
"github.com/karalabe/usb"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
||||||
33
build/ci.go
33
build/ci.go
|
|
@ -24,19 +24,18 @@ Usage: go run build/ci.go <command> <command flags/arguments>
|
||||||
|
|
||||||
Available commands are:
|
Available commands are:
|
||||||
|
|
||||||
install [ -arch architecture ] [ -cc compiler ] [ packages... ] -- builds packages and executables
|
install [ -arch architecture ] [ -cc compiler ] [ packages... ] -- builds packages and executables
|
||||||
test [ -coverage ] [ packages... ] -- runs the tests
|
test [ -coverage ] [ packages... ] -- runs the tests
|
||||||
lint -- runs certain pre-selected linters
|
lint -- runs certain pre-selected linters
|
||||||
archive [ -arch architecture ] [ -type zip|tar ] [ -signer key-envvar ] [ -signify key-envvar ] [ -upload dest ] -- archives build artifacts
|
archive [ -arch architecture ] [ -type zip|tar ] [ -signer key-envvar ] [ -signify key-envvar ] [ -upload dest ] -- archives build artifacts
|
||||||
importkeys -- imports signing keys from env
|
importkeys -- imports signing keys from env
|
||||||
debsrc [ -signer key-id ] [ -upload dest ] -- creates a debian source package
|
debsrc [ -signer key-id ] [ -upload dest ] -- creates a debian source package
|
||||||
nsis -- creates a Windows NSIS installer
|
nsis -- creates a Windows NSIS installer
|
||||||
aar [ -local ] [ -sign key-id ] [-deploy repo] [ -upload dest ] -- creates an Android archive
|
aar [ -local ] [ -sign key-id ] [-deploy repo] [ -upload dest ] -- creates an Android archive
|
||||||
xcode [ -local ] [ -sign key-id ] [-deploy repo] [ -upload dest ] -- creates an iOS XCode framework
|
xcode [ -local ] [ -sign key-id ] [-deploy repo] [ -upload dest ] -- creates an iOS XCode framework
|
||||||
purge [ -store blobstore ] [ -days threshold ] -- purges old archives from the blobstore
|
purge [ -store blobstore ] [ -days threshold ] -- purges old archives from the blobstore
|
||||||
|
|
||||||
For all commands, -n prevents execution of external programs (dry run mode).
|
For all commands, -n prevents execution of external programs (dry run mode).
|
||||||
|
|
||||||
*/
|
*/
|
||||||
package main
|
package main
|
||||||
|
|
||||||
|
|
@ -58,10 +57,10 @@ import (
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/cespare/cp"
|
"github.com/cespare/cp"
|
||||||
"github.com/ethereum/go-ethereum/common"
|
"github.com/cryptoecc/ETH-ECC/common"
|
||||||
"github.com/ethereum/go-ethereum/crypto/signify"
|
"github.com/cryptoecc/ETH-ECC/crypto/signify"
|
||||||
"github.com/ethereum/go-ethereum/internal/build"
|
"github.com/cryptoecc/ETH-ECC/internal/build"
|
||||||
"github.com/ethereum/go-ethereum/params"
|
"github.com/cryptoecc/ETH-ECC/params"
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
|
@ -1029,7 +1028,7 @@ func doAndroidArchive(cmdline []string) {
|
||||||
build.MustRun(tc.Go("mod", "download"))
|
build.MustRun(tc.Go("mod", "download"))
|
||||||
|
|
||||||
// Build the Android archive and Maven resources
|
// Build the Android archive and Maven resources
|
||||||
build.MustRun(gomobileTool("bind", "-ldflags", "-s -w", "--target", "android", "--javapkg", "org.ethereum", "-v", "github.com/ethereum/go-ethereum/mobile"))
|
build.MustRun(gomobileTool("bind", "-ldflags", "-s -w", "--target", "android", "--javapkg", "org.ethereum", "-v", "github.com/cryptoecc/ETH-ECC/mobile"))
|
||||||
|
|
||||||
if *local {
|
if *local {
|
||||||
// If we're building locally, copy bundle to build dir and skip Maven
|
// If we're building locally, copy bundle to build dir and skip Maven
|
||||||
|
|
@ -1154,7 +1153,7 @@ func doXCodeFramework(cmdline []string) {
|
||||||
build.MustRun(tc.Install(GOBIN, "golang.org/x/mobile/cmd/gomobile", "golang.org/x/mobile/cmd/gobind"))
|
build.MustRun(tc.Install(GOBIN, "golang.org/x/mobile/cmd/gomobile", "golang.org/x/mobile/cmd/gobind"))
|
||||||
|
|
||||||
// Build the iOS XCode framework
|
// Build the iOS XCode framework
|
||||||
bind := gomobileTool("bind", "-ldflags", "-s -w", "--target", "ios", "-v", "github.com/ethereum/go-ethereum/mobile")
|
bind := gomobileTool("bind", "-ldflags", "-s -w", "--target", "ios", "-v", "github.com/cryptoecc/ETH-ECC/mobile")
|
||||||
|
|
||||||
if *local {
|
if *local {
|
||||||
// If we're building locally, use the build folder and stop afterwards
|
// If we're building locally, use the build folder and stop afterwards
|
||||||
|
|
|
||||||
|
|
@ -5,8 +5,8 @@ Maintainer: {{.Author}}
|
||||||
Build-Depends: debhelper (>= 8.0.0), {{.GoBootPackage}}
|
Build-Depends: debhelper (>= 8.0.0), {{.GoBootPackage}}
|
||||||
Standards-Version: 3.9.5
|
Standards-Version: 3.9.5
|
||||||
Homepage: https://ethereum.org
|
Homepage: https://ethereum.org
|
||||||
Vcs-Git: https://github.com/ethereum/go-ethereum.git
|
Vcs-Git: https://github.com/cryptoecc/ETH-ECC.git
|
||||||
Vcs-Browser: https://github.com/ethereum/go-ethereum
|
Vcs-Browser: https://github.com/cryptoecc/ETH-ECC
|
||||||
|
|
||||||
Package: {{.Name}}
|
Package: {{.Name}}
|
||||||
Architecture: any
|
Architecture: any
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@
|
||||||
|
|
||||||
<name>Android Ethereum Client</name>
|
<name>Android Ethereum Client</name>
|
||||||
<description>Android port of the go-ethereum libraries and node</description>
|
<description>Android port of the go-ethereum libraries and node</description>
|
||||||
<url>https://github.com/ethereum/go-ethereum</url>
|
<url>https://github.com/cryptoecc/ETH-ECC</url>
|
||||||
<inceptionYear>2015</inceptionYear>
|
<inceptionYear>2015</inceptionYear>
|
||||||
|
|
||||||
<licenses>
|
<licenses>
|
||||||
|
|
@ -48,10 +48,10 @@
|
||||||
|
|
||||||
<issueManagement>
|
<issueManagement>
|
||||||
<system>GitHub Issues</system>
|
<system>GitHub Issues</system>
|
||||||
<url>https://github.com/ethereum/go-ethereum/issues/</url>
|
<url>https://github.com/cryptoecc/ETH-ECC/issues/</url>
|
||||||
</issueManagement>
|
</issueManagement>
|
||||||
|
|
||||||
<scm>
|
<scm>
|
||||||
<url>https://github.com/ethereum/go-ethereum</url>
|
<url>https://github.com/cryptoecc/ETH-ECC</url>
|
||||||
</scm>
|
</scm>
|
||||||
</project>
|
</project>
|
||||||
|
|
|
||||||
|
|
@ -3,9 +3,9 @@ InstallDir "$InstDir"
|
||||||
OutFile "${OUTPUTFILE}" # set through command line arguments
|
OutFile "${OUTPUTFILE}" # set through command line arguments
|
||||||
|
|
||||||
# Links for "Add/Remove Programs"
|
# Links for "Add/Remove Programs"
|
||||||
!define HELPURL "https://github.com/ethereum/go-ethereum/issues"
|
!define HELPURL "https://github.com/cryptoecc/ETH-ECC/issues"
|
||||||
!define UPDATEURL "https://github.com/ethereum/go-ethereum/releases"
|
!define UPDATEURL "https://github.com/cryptoecc/ETH-ECC/releases"
|
||||||
!define ABOUTURL "https://github.com/ethereum/go-ethereum#ethereum-go"
|
!define ABOUTURL "https://github.com/cryptoecc/ETH-ECC#ethereum-go"
|
||||||
!define /date NOW "%Y%m%d"
|
!define /date NOW "%Y%m%d"
|
||||||
|
|
||||||
PageEx license
|
PageEx license
|
||||||
|
|
|
||||||
|
|
@ -2,12 +2,12 @@ Pod::Spec.new do |spec|
|
||||||
spec.name = 'Geth'
|
spec.name = 'Geth'
|
||||||
spec.version = '{{.Version}}'
|
spec.version = '{{.Version}}'
|
||||||
spec.license = { :type => 'GNU Lesser General Public License, Version 3.0' }
|
spec.license = { :type => 'GNU Lesser General Public License, Version 3.0' }
|
||||||
spec.homepage = 'https://github.com/ethereum/go-ethereum'
|
spec.homepage = 'https://github.com/cryptoecc/ETH-ECC'
|
||||||
spec.authors = { {{range .Contributors}}
|
spec.authors = { {{range .Contributors}}
|
||||||
'{{.Name}}' => '{{.Email}}',{{end}}
|
'{{.Name}}' => '{{.Email}}',{{end}}
|
||||||
}
|
}
|
||||||
spec.summary = 'iOS Ethereum Client'
|
spec.summary = 'iOS Ethereum Client'
|
||||||
spec.source = { :git => 'https://github.com/ethereum/go-ethereum.git', :commit => '{{.Commit}}' }
|
spec.source = { :git => 'https://github.com/cryptoecc/ETH-ECC.git', :commit => '{{.Commit}}' }
|
||||||
|
|
||||||
spec.platform = :ios
|
spec.platform = :ios
|
||||||
spec.ios.deployment_target = '9.0'
|
spec.ios.deployment_target = '9.0'
|
||||||
|
|
|
||||||
|
|
@ -79,7 +79,7 @@ var (
|
||||||
"signer/rules/deps",
|
"signer/rules/deps",
|
||||||
|
|
||||||
// skip special licenses
|
// skip special licenses
|
||||||
"crypto/secp256k1", // Relicensed to BSD-3 via https://github.com/ethereum/go-ethereum/pull/17225
|
"crypto/secp256k1", // Relicensed to BSD-3 via https://github.com/cryptoecc/ETH-ECC/pull/17225
|
||||||
}
|
}
|
||||||
|
|
||||||
// paths with this prefix are licensed as GPL. all other files are LGPL.
|
// paths with this prefix are licensed as GPL. all other files are LGPL.
|
||||||
|
|
|
||||||
|
|
@ -23,8 +23,8 @@ import (
|
||||||
"os"
|
"os"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/ethereum/go-ethereum/signer/core/apitypes"
|
"github.com/cryptoecc/ETH-ECC/signer/core/apitypes"
|
||||||
"github.com/ethereum/go-ethereum/signer/fourbyte"
|
"github.com/cryptoecc/ETH-ECC/signer/fourbyte"
|
||||||
)
|
)
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
|
|
|
||||||
|
|
@ -24,12 +24,12 @@ import (
|
||||||
"regexp"
|
"regexp"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/ethereum/go-ethereum/accounts/abi/bind"
|
"github.com/cryptoecc/ETH-ECC/accounts/abi/bind"
|
||||||
"github.com/ethereum/go-ethereum/cmd/utils"
|
"github.com/cryptoecc/ETH-ECC/cmd/utils"
|
||||||
"github.com/ethereum/go-ethereum/common/compiler"
|
"github.com/cryptoecc/ETH-ECC/common/compiler"
|
||||||
"github.com/ethereum/go-ethereum/crypto"
|
"github.com/cryptoecc/ETH-ECC/crypto"
|
||||||
"github.com/ethereum/go-ethereum/internal/flags"
|
"github.com/cryptoecc/ETH-ECC/internal/flags"
|
||||||
"github.com/ethereum/go-ethereum/log"
|
"github.com/cryptoecc/ETH-ECC/log"
|
||||||
"github.com/urfave/cli/v2"
|
"github.com/urfave/cli/v2"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -24,13 +24,13 @@ import (
|
||||||
"net"
|
"net"
|
||||||
"os"
|
"os"
|
||||||
|
|
||||||
"github.com/ethereum/go-ethereum/cmd/utils"
|
"github.com/cryptoecc/ETH-ECC/cmd/utils"
|
||||||
"github.com/ethereum/go-ethereum/crypto"
|
"github.com/cryptoecc/ETH-ECC/crypto"
|
||||||
"github.com/ethereum/go-ethereum/log"
|
"github.com/cryptoecc/ETH-ECC/log"
|
||||||
"github.com/ethereum/go-ethereum/p2p/discover"
|
"github.com/cryptoecc/ETH-ECC/p2p/discover"
|
||||||
"github.com/ethereum/go-ethereum/p2p/enode"
|
"github.com/cryptoecc/ETH-ECC/p2p/enode"
|
||||||
"github.com/ethereum/go-ethereum/p2p/nat"
|
"github.com/cryptoecc/ETH-ECC/p2p/nat"
|
||||||
"github.com/ethereum/go-ethereum/p2p/netutil"
|
"github.com/cryptoecc/ETH-ECC/p2p/netutil"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,7 @@ However, from a security perspective, the most critical step in a synchronizatio
|
||||||
|
|
||||||
#### Hardcoded checkpoint
|
#### Hardcoded checkpoint
|
||||||
|
|
||||||
There are several hardcoded checkpoints in the [source code](https://github.com/ethereum/go-ethereum/blob/master/params/config.go#L38) of the go-ethereum project. These checkpoints are updated by go-ethereum developers when new versions of software are released. Because light client users trust Geth developers to some extent, hardcoded checkpoints in the code can also be considered correct.
|
There are several hardcoded checkpoints in the [source code](https://github.com/cryptoecc/ETH-ECC/blob/master/params/config.go#L38) of the go-ethereum project. These checkpoints are updated by go-ethereum developers when new versions of software are released. Because light client users trust Geth developers to some extent, hardcoded checkpoints in the code can also be considered correct.
|
||||||
|
|
||||||
#### Checkpoint oracle
|
#### Checkpoint oracle
|
||||||
|
|
||||||
|
|
@ -35,7 +35,7 @@ Checkpoint-admin is a command line tool designed for checkpoint oracle. Users ca
|
||||||
#### Install
|
#### Install
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
go get github.com/ethereum/go-ethereum/cmd/checkpoint-admin
|
go get github.com/cryptoecc/ETH-ECC/cmd/checkpoint-admin
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Deploy
|
#### Deploy
|
||||||
|
|
@ -66,7 +66,7 @@ checkpoint-admin sign --clef <CLEF_ENDPOINT> --signer <SIGNER_TO_SIGN_CHECKPOINT
|
||||||
checkpoint-admin sign --clef <CLEF_ENDPOINT> --signer <SIGNER_TO_SIGN_CHECKPOINT> --index <CHECKPOINT_INDEX> --hash <CHECKPOINT_HASH> --oracle <CHECKPOINT_ORACLE_ADDRESS>
|
checkpoint-admin sign --clef <CLEF_ENDPOINT> --signer <SIGNER_TO_SIGN_CHECKPOINT> --index <CHECKPOINT_INDEX> --hash <CHECKPOINT_HASH> --oracle <CHECKPOINT_ORACLE_ADDRESS>
|
||||||
```
|
```
|
||||||
|
|
||||||
*CHECKPOINT_HASH is obtained based on this [calculation method](https://github.com/ethereum/go-ethereum/blob/master/params/config.go#L251).*
|
*CHECKPOINT_HASH is obtained based on this [calculation method](https://github.com/cryptoecc/ETH-ECC/blob/master/params/config.go#L251).*
|
||||||
|
|
||||||
#### Publish
|
#### Publish
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -19,15 +19,15 @@ package main
|
||||||
import (
|
import (
|
||||||
"strconv"
|
"strconv"
|
||||||
|
|
||||||
"github.com/ethereum/go-ethereum/accounts"
|
"github.com/cryptoecc/ETH-ECC/accounts"
|
||||||
"github.com/ethereum/go-ethereum/accounts/abi/bind"
|
"github.com/cryptoecc/ETH-ECC/accounts/abi/bind"
|
||||||
"github.com/ethereum/go-ethereum/accounts/external"
|
"github.com/cryptoecc/ETH-ECC/accounts/external"
|
||||||
"github.com/ethereum/go-ethereum/cmd/utils"
|
"github.com/cryptoecc/ETH-ECC/cmd/utils"
|
||||||
"github.com/ethereum/go-ethereum/common"
|
"github.com/cryptoecc/ETH-ECC/common"
|
||||||
"github.com/ethereum/go-ethereum/contracts/checkpointoracle"
|
"github.com/cryptoecc/ETH-ECC/contracts/checkpointoracle"
|
||||||
"github.com/ethereum/go-ethereum/ethclient"
|
"github.com/cryptoecc/ETH-ECC/ethclient"
|
||||||
"github.com/ethereum/go-ethereum/params"
|
"github.com/cryptoecc/ETH-ECC/params"
|
||||||
"github.com/ethereum/go-ethereum/rpc"
|
"github.com/cryptoecc/ETH-ECC/rpc"
|
||||||
"github.com/urfave/cli/v2"
|
"github.com/urfave/cli/v2"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -25,17 +25,17 @@ import (
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/ethereum/go-ethereum/accounts"
|
"github.com/cryptoecc/ETH-ECC/accounts"
|
||||||
"github.com/ethereum/go-ethereum/cmd/utils"
|
"github.com/cryptoecc/ETH-ECC/cmd/utils"
|
||||||
"github.com/ethereum/go-ethereum/common"
|
"github.com/cryptoecc/ETH-ECC/common"
|
||||||
"github.com/ethereum/go-ethereum/common/hexutil"
|
"github.com/cryptoecc/ETH-ECC/common/hexutil"
|
||||||
"github.com/ethereum/go-ethereum/contracts/checkpointoracle"
|
"github.com/cryptoecc/ETH-ECC/contracts/checkpointoracle"
|
||||||
"github.com/ethereum/go-ethereum/contracts/checkpointoracle/contract"
|
"github.com/cryptoecc/ETH-ECC/contracts/checkpointoracle/contract"
|
||||||
"github.com/ethereum/go-ethereum/crypto"
|
"github.com/cryptoecc/ETH-ECC/crypto"
|
||||||
"github.com/ethereum/go-ethereum/ethclient"
|
"github.com/cryptoecc/ETH-ECC/ethclient"
|
||||||
"github.com/ethereum/go-ethereum/log"
|
"github.com/cryptoecc/ETH-ECC/log"
|
||||||
"github.com/ethereum/go-ethereum/params"
|
"github.com/cryptoecc/ETH-ECC/params"
|
||||||
"github.com/ethereum/go-ethereum/rpc"
|
"github.com/cryptoecc/ETH-ECC/rpc"
|
||||||
"github.com/urfave/cli/v2"
|
"github.com/urfave/cli/v2"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -22,9 +22,9 @@ import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"os"
|
"os"
|
||||||
|
|
||||||
"github.com/ethereum/go-ethereum/common/fdlimit"
|
"github.com/cryptoecc/ETH-ECC/common/fdlimit"
|
||||||
"github.com/ethereum/go-ethereum/internal/flags"
|
"github.com/cryptoecc/ETH-ECC/internal/flags"
|
||||||
"github.com/ethereum/go-ethereum/log"
|
"github.com/cryptoecc/ETH-ECC/log"
|
||||||
"github.com/urfave/cli/v2"
|
"github.com/urfave/cli/v2"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@ package main
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
"github.com/ethereum/go-ethereum/common"
|
"github.com/cryptoecc/ETH-ECC/common"
|
||||||
"github.com/urfave/cli/v2"
|
"github.com/urfave/cli/v2"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -33,25 +33,25 @@ import (
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/ethereum/go-ethereum/accounts"
|
"github.com/cryptoecc/ETH-ECC/accounts"
|
||||||
"github.com/ethereum/go-ethereum/accounts/keystore"
|
"github.com/cryptoecc/ETH-ECC/accounts/keystore"
|
||||||
"github.com/ethereum/go-ethereum/cmd/utils"
|
"github.com/cryptoecc/ETH-ECC/cmd/utils"
|
||||||
"github.com/ethereum/go-ethereum/common"
|
"github.com/cryptoecc/ETH-ECC/common"
|
||||||
"github.com/ethereum/go-ethereum/common/hexutil"
|
"github.com/cryptoecc/ETH-ECC/common/hexutil"
|
||||||
"github.com/ethereum/go-ethereum/core/types"
|
"github.com/cryptoecc/ETH-ECC/core/types"
|
||||||
"github.com/ethereum/go-ethereum/crypto"
|
"github.com/cryptoecc/ETH-ECC/crypto"
|
||||||
"github.com/ethereum/go-ethereum/internal/ethapi"
|
"github.com/cryptoecc/ETH-ECC/internal/ethapi"
|
||||||
"github.com/ethereum/go-ethereum/internal/flags"
|
"github.com/cryptoecc/ETH-ECC/internal/flags"
|
||||||
"github.com/ethereum/go-ethereum/log"
|
"github.com/cryptoecc/ETH-ECC/log"
|
||||||
"github.com/ethereum/go-ethereum/node"
|
"github.com/cryptoecc/ETH-ECC/node"
|
||||||
"github.com/ethereum/go-ethereum/params"
|
"github.com/cryptoecc/ETH-ECC/params"
|
||||||
"github.com/ethereum/go-ethereum/rlp"
|
"github.com/cryptoecc/ETH-ECC/rlp"
|
||||||
"github.com/ethereum/go-ethereum/rpc"
|
"github.com/cryptoecc/ETH-ECC/rpc"
|
||||||
"github.com/ethereum/go-ethereum/signer/core"
|
"github.com/cryptoecc/ETH-ECC/signer/core"
|
||||||
"github.com/ethereum/go-ethereum/signer/core/apitypes"
|
"github.com/cryptoecc/ETH-ECC/signer/core/apitypes"
|
||||||
"github.com/ethereum/go-ethereum/signer/fourbyte"
|
"github.com/cryptoecc/ETH-ECC/signer/fourbyte"
|
||||||
"github.com/ethereum/go-ethereum/signer/rules"
|
"github.com/cryptoecc/ETH-ECC/signer/rules"
|
||||||
"github.com/ethereum/go-ethereum/signer/storage"
|
"github.com/cryptoecc/ETH-ECC/signer/storage"
|
||||||
"github.com/mattn/go-colorable"
|
"github.com/mattn/go-colorable"
|
||||||
"github.com/mattn/go-isatty"
|
"github.com/mattn/go-isatty"
|
||||||
"github.com/urfave/cli/v2"
|
"github.com/urfave/cli/v2"
|
||||||
|
|
@ -736,7 +736,7 @@ func checkFile(filename string) error {
|
||||||
}
|
}
|
||||||
// Check the unix permission bits
|
// Check the unix permission bits
|
||||||
// However, on windows, we cannot use the unix perm-bits, see
|
// However, on windows, we cannot use the unix perm-bits, see
|
||||||
// https://github.com/ethereum/go-ethereum/issues/20123
|
// https://github.com/cryptoecc/ETH-ECC/issues/20123
|
||||||
if runtime.GOOS != "windows" && info.Mode().Perm()&0377 != 0 {
|
if runtime.GOOS != "windows" && info.Mode().Perm()&0377 != 0 {
|
||||||
return fmt.Errorf("file (%v) has insecure file permissions (%v)", filename, info.Mode().String())
|
return fmt.Errorf("file (%v) has insecure file permissions (%v)", filename, info.Mode().String())
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -100,9 +100,9 @@ or
|
||||||
{"jsonrpc":"2.0","id":1,"error":{"code":-32000,"message":"Request denied"}}
|
{"jsonrpc":"2.0","id":1,"error":{"code":-32000,"message":"Request denied"}}
|
||||||
```
|
```
|
||||||
|
|
||||||
Apart from listing accounts, you can also *request* creating a new account; signing transactions and data; and recovering signatures. You can find the available methods in the Clef [External API Spec](https://github.com/ethereum/go-ethereum/tree/master/cmd/clef#external-api-1) and the [External API Changelog](https://github.com/ethereum/go-ethereum/blob/master/cmd/clef/extapi_changelog.md).
|
Apart from listing accounts, you can also *request* creating a new account; signing transactions and data; and recovering signatures. You can find the available methods in the Clef [External API Spec](https://github.com/cryptoecc/ETH-ECC/tree/master/cmd/clef#external-api-1) and the [External API Changelog](https://github.com/cryptoecc/ETH-ECC/blob/master/cmd/clef/extapi_changelog.md).
|
||||||
|
|
||||||
*Note, the number of things you can do from the External API is deliberately small, since we want to limit the power of remote calls by as much as possible! Clef has an [Internal API](https://github.com/ethereum/go-ethereum/tree/master/cmd/clef#ui-api-1) too for the UI (User Interface) which is much richer and can support custom interfaces on top. But that's out of scope here.*
|
*Note, the number of things you can do from the External API is deliberately small, since we want to limit the power of remote calls by as much as possible! Clef has an [Internal API](https://github.com/cryptoecc/ETH-ECC/tree/master/cmd/clef#ui-api-1) too for the UI (User Interface) which is much richer and can support custom interfaces on top. But that's out of scope here.*
|
||||||
|
|
||||||
## Automatic rules
|
## Automatic rules
|
||||||
|
|
||||||
|
|
@ -288,7 +288,7 @@ t=2019-07-01T15:52:23+0300 lvl=info msg=SignData api=signer type=request meta
|
||||||
t=2019-07-01T15:52:23+0300 lvl=info msg=SignData api=signer type=response data= error="Request denied"
|
t=2019-07-01T15:52:23+0300 lvl=info msg=SignData api=signer type=response data= error="Request denied"
|
||||||
```
|
```
|
||||||
|
|
||||||
For more details on writing automatic rules, please see the [rules spec](https://github.com/ethereum/go-ethereum/blob/master/cmd/clef/rules.md).
|
For more details on writing automatic rules, please see the [rules spec](https://github.com/cryptoecc/ETH-ECC/blob/master/cmd/clef/rules.md).
|
||||||
|
|
||||||
## Geth integration
|
## Geth integration
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -19,8 +19,8 @@ package main
|
||||||
import (
|
import (
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/ethereum/go-ethereum/log"
|
"github.com/cryptoecc/ETH-ECC/log"
|
||||||
"github.com/ethereum/go-ethereum/p2p/enode"
|
"github.com/cryptoecc/ETH-ECC/p2p/enode"
|
||||||
)
|
)
|
||||||
|
|
||||||
type crawler struct {
|
type crawler struct {
|
||||||
|
|
|
||||||
|
|
@ -22,13 +22,13 @@ import (
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/ethereum/go-ethereum/cmd/devp2p/internal/v4test"
|
"github.com/cryptoecc/ETH-ECC/cmd/devp2p/internal/v4test"
|
||||||
"github.com/ethereum/go-ethereum/common"
|
"github.com/cryptoecc/ETH-ECC/common"
|
||||||
"github.com/ethereum/go-ethereum/crypto"
|
"github.com/cryptoecc/ETH-ECC/crypto"
|
||||||
"github.com/ethereum/go-ethereum/internal/flags"
|
"github.com/cryptoecc/ETH-ECC/internal/flags"
|
||||||
"github.com/ethereum/go-ethereum/p2p/discover"
|
"github.com/cryptoecc/ETH-ECC/p2p/discover"
|
||||||
"github.com/ethereum/go-ethereum/p2p/enode"
|
"github.com/cryptoecc/ETH-ECC/p2p/enode"
|
||||||
"github.com/ethereum/go-ethereum/params"
|
"github.com/cryptoecc/ETH-ECC/params"
|
||||||
"github.com/urfave/cli/v2"
|
"github.com/urfave/cli/v2"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -20,9 +20,9 @@ import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/ethereum/go-ethereum/cmd/devp2p/internal/v5test"
|
"github.com/cryptoecc/ETH-ECC/cmd/devp2p/internal/v5test"
|
||||||
"github.com/ethereum/go-ethereum/common"
|
"github.com/cryptoecc/ETH-ECC/common"
|
||||||
"github.com/ethereum/go-ethereum/p2p/discover"
|
"github.com/cryptoecc/ETH-ECC/p2p/discover"
|
||||||
"github.com/urfave/cli/v2"
|
"github.com/urfave/cli/v2"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -22,8 +22,8 @@ import (
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/cloudflare/cloudflare-go"
|
"github.com/cloudflare/cloudflare-go"
|
||||||
"github.com/ethereum/go-ethereum/log"
|
"github.com/cryptoecc/ETH-ECC/log"
|
||||||
"github.com/ethereum/go-ethereum/p2p/dnsdisc"
|
"github.com/cryptoecc/ETH-ECC/p2p/dnsdisc"
|
||||||
"github.com/urfave/cli/v2"
|
"github.com/urfave/cli/v2"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -30,8 +30,8 @@ import (
|
||||||
"github.com/aws/aws-sdk-go-v2/credentials"
|
"github.com/aws/aws-sdk-go-v2/credentials"
|
||||||
"github.com/aws/aws-sdk-go-v2/service/route53"
|
"github.com/aws/aws-sdk-go-v2/service/route53"
|
||||||
"github.com/aws/aws-sdk-go-v2/service/route53/types"
|
"github.com/aws/aws-sdk-go-v2/service/route53/types"
|
||||||
"github.com/ethereum/go-ethereum/log"
|
"github.com/cryptoecc/ETH-ECC/log"
|
||||||
"github.com/ethereum/go-ethereum/p2p/dnsdisc"
|
"github.com/cryptoecc/ETH-ECC/p2p/dnsdisc"
|
||||||
"github.com/urfave/cli/v2"
|
"github.com/urfave/cli/v2"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -24,11 +24,11 @@ import (
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/ethereum/go-ethereum/accounts/keystore"
|
"github.com/cryptoecc/ETH-ECC/accounts/keystore"
|
||||||
"github.com/ethereum/go-ethereum/common"
|
"github.com/cryptoecc/ETH-ECC/common"
|
||||||
"github.com/ethereum/go-ethereum/console/prompt"
|
"github.com/cryptoecc/ETH-ECC/console/prompt"
|
||||||
"github.com/ethereum/go-ethereum/p2p/dnsdisc"
|
"github.com/cryptoecc/ETH-ECC/p2p/dnsdisc"
|
||||||
"github.com/ethereum/go-ethereum/p2p/enode"
|
"github.com/cryptoecc/ETH-ECC/p2p/enode"
|
||||||
"github.com/urfave/cli/v2"
|
"github.com/urfave/cli/v2"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -27,9 +27,9 @@ import (
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/ethereum/go-ethereum/p2p/enode"
|
"github.com/cryptoecc/ETH-ECC/p2p/enode"
|
||||||
"github.com/ethereum/go-ethereum/p2p/enr"
|
"github.com/cryptoecc/ETH-ECC/p2p/enr"
|
||||||
"github.com/ethereum/go-ethereum/rlp"
|
"github.com/cryptoecc/ETH-ECC/rlp"
|
||||||
"github.com/urfave/cli/v2"
|
"github.com/urfave/cli/v2"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -25,12 +25,12 @@ import (
|
||||||
"os"
|
"os"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/ethereum/go-ethereum/common"
|
"github.com/cryptoecc/ETH-ECC/common"
|
||||||
"github.com/ethereum/go-ethereum/core"
|
"github.com/cryptoecc/ETH-ECC/core"
|
||||||
"github.com/ethereum/go-ethereum/core/forkid"
|
"github.com/cryptoecc/ETH-ECC/core/forkid"
|
||||||
"github.com/ethereum/go-ethereum/core/types"
|
"github.com/cryptoecc/ETH-ECC/core/types"
|
||||||
"github.com/ethereum/go-ethereum/params"
|
"github.com/cryptoecc/ETH-ECC/params"
|
||||||
"github.com/ethereum/go-ethereum/rlp"
|
"github.com/cryptoecc/ETH-ECC/rlp"
|
||||||
)
|
)
|
||||||
|
|
||||||
type Chain struct {
|
type Chain struct {
|
||||||
|
|
|
||||||
|
|
@ -21,9 +21,9 @@ import (
|
||||||
"strconv"
|
"strconv"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/ethereum/go-ethereum/core/types"
|
"github.com/cryptoecc/ETH-ECC/core/types"
|
||||||
"github.com/ethereum/go-ethereum/eth/protocols/eth"
|
"github.com/cryptoecc/ETH-ECC/eth/protocols/eth"
|
||||||
"github.com/ethereum/go-ethereum/p2p"
|
"github.com/cryptoecc/ETH-ECC/p2p"
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -23,14 +23,14 @@ import (
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"github.com/cryptoecc/ETH-ECC/common"
|
||||||
|
"github.com/cryptoecc/ETH-ECC/core/types"
|
||||||
|
"github.com/cryptoecc/ETH-ECC/crypto"
|
||||||
|
"github.com/cryptoecc/ETH-ECC/eth/protocols/eth"
|
||||||
|
"github.com/cryptoecc/ETH-ECC/internal/utesting"
|
||||||
|
"github.com/cryptoecc/ETH-ECC/p2p"
|
||||||
|
"github.com/cryptoecc/ETH-ECC/p2p/rlpx"
|
||||||
"github.com/davecgh/go-spew/spew"
|
"github.com/davecgh/go-spew/spew"
|
||||||
"github.com/ethereum/go-ethereum/common"
|
|
||||||
"github.com/ethereum/go-ethereum/core/types"
|
|
||||||
"github.com/ethereum/go-ethereum/crypto"
|
|
||||||
"github.com/ethereum/go-ethereum/eth/protocols/eth"
|
|
||||||
"github.com/ethereum/go-ethereum/internal/utesting"
|
|
||||||
"github.com/ethereum/go-ethereum/p2p"
|
|
||||||
"github.com/ethereum/go-ethereum/p2p/rlpx"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
|
|
||||||
|
|
@ -20,9 +20,9 @@ import (
|
||||||
"crypto/rand"
|
"crypto/rand"
|
||||||
"math/big"
|
"math/big"
|
||||||
|
|
||||||
"github.com/ethereum/go-ethereum/common"
|
"github.com/cryptoecc/ETH-ECC/common"
|
||||||
"github.com/ethereum/go-ethereum/common/hexutil"
|
"github.com/cryptoecc/ETH-ECC/common/hexutil"
|
||||||
"github.com/ethereum/go-ethereum/core/types"
|
"github.com/cryptoecc/ETH-ECC/core/types"
|
||||||
)
|
)
|
||||||
|
|
||||||
// largeNumber returns a very large big.Int.
|
// largeNumber returns a very large big.Int.
|
||||||
|
|
|
||||||
|
|
@ -22,12 +22,12 @@ import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"math/rand"
|
"math/rand"
|
||||||
|
|
||||||
"github.com/ethereum/go-ethereum/common"
|
"github.com/cryptoecc/ETH-ECC/common"
|
||||||
"github.com/ethereum/go-ethereum/crypto"
|
"github.com/cryptoecc/ETH-ECC/crypto"
|
||||||
"github.com/ethereum/go-ethereum/eth/protocols/snap"
|
"github.com/cryptoecc/ETH-ECC/eth/protocols/snap"
|
||||||
"github.com/ethereum/go-ethereum/internal/utesting"
|
"github.com/cryptoecc/ETH-ECC/internal/utesting"
|
||||||
"github.com/ethereum/go-ethereum/light"
|
"github.com/cryptoecc/ETH-ECC/light"
|
||||||
"github.com/ethereum/go-ethereum/trie"
|
"github.com/cryptoecc/ETH-ECC/trie"
|
||||||
"golang.org/x/crypto/sha3"
|
"golang.org/x/crypto/sha3"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@
|
||||||
|
|
||||||
package ethtest
|
package ethtest
|
||||||
|
|
||||||
import "github.com/ethereum/go-ethereum/eth/protocols/snap"
|
import "github.com/cryptoecc/ETH-ECC/eth/protocols/snap"
|
||||||
|
|
||||||
// GetAccountRange represents an account range query.
|
// GetAccountRange represents an account range query.
|
||||||
type GetAccountRange snap.GetAccountRangePacket
|
type GetAccountRange snap.GetAccountRangePacket
|
||||||
|
|
|
||||||
|
|
@ -19,10 +19,10 @@ package ethtest
|
||||||
import (
|
import (
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/ethereum/go-ethereum/common"
|
"github.com/cryptoecc/ETH-ECC/common"
|
||||||
"github.com/ethereum/go-ethereum/eth/protocols/eth"
|
"github.com/cryptoecc/ETH-ECC/eth/protocols/eth"
|
||||||
"github.com/ethereum/go-ethereum/internal/utesting"
|
"github.com/cryptoecc/ETH-ECC/internal/utesting"
|
||||||
"github.com/ethereum/go-ethereum/p2p/enode"
|
"github.com/cryptoecc/ETH-ECC/p2p/enode"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Suite represents a structure used to test a node's conformance
|
// Suite represents a structure used to test a node's conformance
|
||||||
|
|
|
||||||
|
|
@ -21,11 +21,11 @@ import (
|
||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/ethereum/go-ethereum/eth"
|
"github.com/cryptoecc/ETH-ECC/eth"
|
||||||
"github.com/ethereum/go-ethereum/eth/ethconfig"
|
"github.com/cryptoecc/ETH-ECC/eth/ethconfig"
|
||||||
"github.com/ethereum/go-ethereum/internal/utesting"
|
"github.com/cryptoecc/ETH-ECC/internal/utesting"
|
||||||
"github.com/ethereum/go-ethereum/node"
|
"github.com/cryptoecc/ETH-ECC/node"
|
||||||
"github.com/ethereum/go-ethereum/p2p"
|
"github.com/cryptoecc/ETH-ECC/p2p"
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
|
|
||||||
|
|
@ -22,14 +22,14 @@ import (
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/ethereum/go-ethereum/common"
|
"github.com/cryptoecc/ETH-ECC/common"
|
||||||
"github.com/ethereum/go-ethereum/core/types"
|
"github.com/cryptoecc/ETH-ECC/core/types"
|
||||||
"github.com/ethereum/go-ethereum/crypto"
|
"github.com/cryptoecc/ETH-ECC/crypto"
|
||||||
"github.com/ethereum/go-ethereum/internal/utesting"
|
"github.com/cryptoecc/ETH-ECC/internal/utesting"
|
||||||
"github.com/ethereum/go-ethereum/params"
|
"github.com/cryptoecc/ETH-ECC/params"
|
||||||
)
|
)
|
||||||
|
|
||||||
//var faucetAddr = common.HexToAddress("0x71562b71999873DB5b286dF957af199Ec94617F7")
|
// var faucetAddr = common.HexToAddress("0x71562b71999873DB5b286dF957af199Ec94617F7")
|
||||||
var faucetKey, _ = crypto.HexToECDSA("b71c71a67e1177ad4e901695e1b4b9ee17ae16c6668d313eac2f96dbcda3f291")
|
var faucetKey, _ = crypto.HexToECDSA("b71c71a67e1177ad4e901695e1b4b9ee17ae16c6668d313eac2f96dbcda3f291")
|
||||||
|
|
||||||
func (s *Suite) sendSuccessfulTxs(t *utesting.T) error {
|
func (s *Suite) sendSuccessfulTxs(t *utesting.T) error {
|
||||||
|
|
|
||||||
|
|
@ -21,10 +21,10 @@ import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/ethereum/go-ethereum/eth/protocols/eth"
|
"github.com/cryptoecc/ETH-ECC/eth/protocols/eth"
|
||||||
"github.com/ethereum/go-ethereum/p2p"
|
"github.com/cryptoecc/ETH-ECC/p2p"
|
||||||
"github.com/ethereum/go-ethereum/p2p/rlpx"
|
"github.com/cryptoecc/ETH-ECC/p2p/rlpx"
|
||||||
"github.com/ethereum/go-ethereum/rlp"
|
"github.com/cryptoecc/ETH-ECC/rlp"
|
||||||
)
|
)
|
||||||
|
|
||||||
type Message interface {
|
type Message interface {
|
||||||
|
|
|
||||||
|
|
@ -23,9 +23,9 @@ import (
|
||||||
"net"
|
"net"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/ethereum/go-ethereum/crypto"
|
"github.com/cryptoecc/ETH-ECC/crypto"
|
||||||
"github.com/ethereum/go-ethereum/internal/utesting"
|
"github.com/cryptoecc/ETH-ECC/internal/utesting"
|
||||||
"github.com/ethereum/go-ethereum/p2p/discover/v4wire"
|
"github.com/cryptoecc/ETH-ECC/p2p/discover/v4wire"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
|
|
||||||
|
|
@ -22,9 +22,9 @@ import (
|
||||||
"net"
|
"net"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/ethereum/go-ethereum/crypto"
|
"github.com/cryptoecc/ETH-ECC/crypto"
|
||||||
"github.com/ethereum/go-ethereum/p2p/discover/v4wire"
|
"github.com/cryptoecc/ETH-ECC/p2p/discover/v4wire"
|
||||||
"github.com/ethereum/go-ethereum/p2p/enode"
|
"github.com/cryptoecc/ETH-ECC/p2p/enode"
|
||||||
)
|
)
|
||||||
|
|
||||||
const waitTime = 300 * time.Millisecond
|
const waitTime = 300 * time.Millisecond
|
||||||
|
|
|
||||||
|
|
@ -22,10 +22,10 @@ import (
|
||||||
"sync"
|
"sync"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/ethereum/go-ethereum/internal/utesting"
|
"github.com/cryptoecc/ETH-ECC/internal/utesting"
|
||||||
"github.com/ethereum/go-ethereum/p2p/discover/v5wire"
|
"github.com/cryptoecc/ETH-ECC/p2p/discover/v5wire"
|
||||||
"github.com/ethereum/go-ethereum/p2p/enode"
|
"github.com/cryptoecc/ETH-ECC/p2p/enode"
|
||||||
"github.com/ethereum/go-ethereum/p2p/netutil"
|
"github.com/cryptoecc/ETH-ECC/p2p/netutil"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Suite is the discv5 test suite.
|
// Suite is the discv5 test suite.
|
||||||
|
|
|
||||||
|
|
@ -24,11 +24,11 @@ import (
|
||||||
"net"
|
"net"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/ethereum/go-ethereum/common/mclock"
|
"github.com/cryptoecc/ETH-ECC/common/mclock"
|
||||||
"github.com/ethereum/go-ethereum/crypto"
|
"github.com/cryptoecc/ETH-ECC/crypto"
|
||||||
"github.com/ethereum/go-ethereum/p2p/discover/v5wire"
|
"github.com/cryptoecc/ETH-ECC/p2p/discover/v5wire"
|
||||||
"github.com/ethereum/go-ethereum/p2p/enode"
|
"github.com/cryptoecc/ETH-ECC/p2p/enode"
|
||||||
"github.com/ethereum/go-ethereum/p2p/enr"
|
"github.com/cryptoecc/ETH-ECC/p2p/enr"
|
||||||
)
|
)
|
||||||
|
|
||||||
// readError represents an error during packet reading.
|
// readError represents an error during packet reading.
|
||||||
|
|
|
||||||
|
|
@ -20,8 +20,8 @@ import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"net"
|
"net"
|
||||||
|
|
||||||
"github.com/ethereum/go-ethereum/crypto"
|
"github.com/cryptoecc/ETH-ECC/crypto"
|
||||||
"github.com/ethereum/go-ethereum/p2p/enode"
|
"github.com/cryptoecc/ETH-ECC/p2p/enode"
|
||||||
"github.com/urfave/cli/v2"
|
"github.com/urfave/cli/v2"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -21,10 +21,10 @@ import (
|
||||||
"os"
|
"os"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
|
|
||||||
"github.com/ethereum/go-ethereum/internal/debug"
|
"github.com/cryptoecc/ETH-ECC/internal/debug"
|
||||||
"github.com/ethereum/go-ethereum/internal/flags"
|
"github.com/cryptoecc/ETH-ECC/internal/flags"
|
||||||
"github.com/ethereum/go-ethereum/p2p/enode"
|
"github.com/cryptoecc/ETH-ECC/p2p/enode"
|
||||||
"github.com/ethereum/go-ethereum/params"
|
"github.com/cryptoecc/ETH-ECC/params"
|
||||||
"github.com/urfave/cli/v2"
|
"github.com/urfave/cli/v2"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -24,8 +24,8 @@ import (
|
||||||
"sort"
|
"sort"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/ethereum/go-ethereum/common"
|
"github.com/cryptoecc/ETH-ECC/common"
|
||||||
"github.com/ethereum/go-ethereum/p2p/enode"
|
"github.com/cryptoecc/ETH-ECC/p2p/enode"
|
||||||
)
|
)
|
||||||
|
|
||||||
const jsonIndent = " "
|
const jsonIndent = " "
|
||||||
|
|
|
||||||
|
|
@ -25,10 +25,10 @@ import (
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/ethereum/go-ethereum/core/forkid"
|
"github.com/cryptoecc/ETH-ECC/core/forkid"
|
||||||
"github.com/ethereum/go-ethereum/p2p/enr"
|
"github.com/cryptoecc/ETH-ECC/p2p/enr"
|
||||||
"github.com/ethereum/go-ethereum/params"
|
"github.com/cryptoecc/ETH-ECC/params"
|
||||||
"github.com/ethereum/go-ethereum/rlp"
|
"github.com/cryptoecc/ETH-ECC/rlp"
|
||||||
"github.com/urfave/cli/v2"
|
"github.com/urfave/cli/v2"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -20,11 +20,11 @@ import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"net"
|
"net"
|
||||||
|
|
||||||
"github.com/ethereum/go-ethereum/cmd/devp2p/internal/ethtest"
|
"github.com/cryptoecc/ETH-ECC/cmd/devp2p/internal/ethtest"
|
||||||
"github.com/ethereum/go-ethereum/crypto"
|
"github.com/cryptoecc/ETH-ECC/crypto"
|
||||||
"github.com/ethereum/go-ethereum/p2p"
|
"github.com/cryptoecc/ETH-ECC/p2p"
|
||||||
"github.com/ethereum/go-ethereum/p2p/rlpx"
|
"github.com/cryptoecc/ETH-ECC/p2p/rlpx"
|
||||||
"github.com/ethereum/go-ethereum/rlp"
|
"github.com/cryptoecc/ETH-ECC/rlp"
|
||||||
"github.com/urfave/cli/v2"
|
"github.com/urfave/cli/v2"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -19,9 +19,9 @@ package main
|
||||||
import (
|
import (
|
||||||
"os"
|
"os"
|
||||||
|
|
||||||
"github.com/ethereum/go-ethereum/cmd/devp2p/internal/v4test"
|
"github.com/cryptoecc/ETH-ECC/cmd/devp2p/internal/v4test"
|
||||||
"github.com/ethereum/go-ethereum/internal/utesting"
|
"github.com/cryptoecc/ETH-ECC/internal/utesting"
|
||||||
"github.com/ethereum/go-ethereum/log"
|
"github.com/cryptoecc/ETH-ECC/log"
|
||||||
"github.com/urfave/cli/v2"
|
"github.com/urfave/cli/v2"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -21,8 +21,8 @@ import (
|
||||||
"os"
|
"os"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/ethereum/go-ethereum/accounts/keystore"
|
"github.com/cryptoecc/ETH-ECC/accounts/keystore"
|
||||||
"github.com/ethereum/go-ethereum/cmd/utils"
|
"github.com/cryptoecc/ETH-ECC/cmd/utils"
|
||||||
"github.com/urfave/cli/v2"
|
"github.com/urfave/cli/v2"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -22,9 +22,9 @@ import (
|
||||||
"os"
|
"os"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
|
|
||||||
"github.com/ethereum/go-ethereum/accounts/keystore"
|
"github.com/cryptoecc/ETH-ECC/accounts/keystore"
|
||||||
"github.com/ethereum/go-ethereum/cmd/utils"
|
"github.com/cryptoecc/ETH-ECC/cmd/utils"
|
||||||
"github.com/ethereum/go-ethereum/crypto"
|
"github.com/cryptoecc/ETH-ECC/crypto"
|
||||||
"github.com/google/uuid"
|
"github.com/google/uuid"
|
||||||
"github.com/urfave/cli/v2"
|
"github.com/urfave/cli/v2"
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -21,9 +21,9 @@ import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"os"
|
"os"
|
||||||
|
|
||||||
"github.com/ethereum/go-ethereum/accounts/keystore"
|
"github.com/cryptoecc/ETH-ECC/accounts/keystore"
|
||||||
"github.com/ethereum/go-ethereum/cmd/utils"
|
"github.com/cryptoecc/ETH-ECC/cmd/utils"
|
||||||
"github.com/ethereum/go-ethereum/crypto"
|
"github.com/cryptoecc/ETH-ECC/crypto"
|
||||||
"github.com/urfave/cli/v2"
|
"github.com/urfave/cli/v2"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,7 @@ import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"os"
|
"os"
|
||||||
|
|
||||||
"github.com/ethereum/go-ethereum/internal/flags"
|
"github.com/cryptoecc/ETH-ECC/internal/flags"
|
||||||
"github.com/urfave/cli/v2"
|
"github.com/urfave/cli/v2"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -21,11 +21,11 @@ import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"os"
|
"os"
|
||||||
|
|
||||||
"github.com/ethereum/go-ethereum/accounts"
|
"github.com/cryptoecc/ETH-ECC/accounts"
|
||||||
"github.com/ethereum/go-ethereum/accounts/keystore"
|
"github.com/cryptoecc/ETH-ECC/accounts/keystore"
|
||||||
"github.com/ethereum/go-ethereum/cmd/utils"
|
"github.com/cryptoecc/ETH-ECC/cmd/utils"
|
||||||
"github.com/ethereum/go-ethereum/common"
|
"github.com/cryptoecc/ETH-ECC/common"
|
||||||
"github.com/ethereum/go-ethereum/crypto"
|
"github.com/cryptoecc/ETH-ECC/crypto"
|
||||||
"github.com/urfave/cli/v2"
|
"github.com/urfave/cli/v2"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
||||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue