mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-08-19 18:32:23 +00:00
test coinbase
This commit is contained in:
parent
6845b5eff6
commit
c5e33fac0e
1 changed files with 21 additions and 18 deletions
|
|
@ -640,6 +640,7 @@ func TestMulticallV1(t *testing.T) {
|
||||||
genBlocks = 10
|
genBlocks = 10
|
||||||
signer = types.HomesteadSigner{}
|
signer = types.HomesteadSigner{}
|
||||||
cac = common.HexToAddress("0x0000000000000000000000000000000000000cac")
|
cac = common.HexToAddress("0x0000000000000000000000000000000000000cac")
|
||||||
|
coinbase = "0x000000000000000000000000000000000000ffff"
|
||||||
genesis = &core.Genesis{
|
genesis = &core.Genesis{
|
||||||
Config: params.TestChainConfig,
|
Config: params.TestChainConfig,
|
||||||
Alloc: core.GenesisAlloc{
|
Alloc: core.GenesisAlloc{
|
||||||
|
|
@ -660,6 +661,7 @@ func TestMulticallV1(t *testing.T) {
|
||||||
sha256Address = common.BytesToAddress([]byte{0x02})
|
sha256Address = common.BytesToAddress([]byte{0x02})
|
||||||
)
|
)
|
||||||
api := NewBlockChainAPI(newTestBackend(t, genBlocks, genesis, func(i int, b *core.BlockGen) {
|
api := NewBlockChainAPI(newTestBackend(t, genBlocks, genesis, func(i int, b *core.BlockGen) {
|
||||||
|
b.SetCoinbase(common.HexToAddress(coinbase))
|
||||||
// Transfer from account[0] to account[1]
|
// Transfer from account[0] to account[1]
|
||||||
// value: 1000 wei
|
// value: 1000 wei
|
||||||
// fee: 0 wei
|
// fee: 0 wei
|
||||||
|
|
@ -731,7 +733,7 @@ func TestMulticallV1(t *testing.T) {
|
||||||
Hash: n10hash,
|
Hash: n10hash,
|
||||||
GasLimit: "0x47e7c4",
|
GasLimit: "0x47e7c4",
|
||||||
GasUsed: "0xa410",
|
GasUsed: "0xa410",
|
||||||
FeeRecipient: "0x0000000000000000000000000000000000000000",
|
FeeRecipient: coinbase,
|
||||||
Calls: []callRes{{
|
Calls: []callRes{{
|
||||||
ReturnValue: "0x",
|
ReturnValue: "0x",
|
||||||
GasUsed: "0x5208",
|
GasUsed: "0x5208",
|
||||||
|
|
@ -784,7 +786,7 @@ func TestMulticallV1(t *testing.T) {
|
||||||
Hash: n10hash,
|
Hash: n10hash,
|
||||||
GasLimit: "0x47e7c4",
|
GasLimit: "0x47e7c4",
|
||||||
GasUsed: "0xa410",
|
GasUsed: "0xa410",
|
||||||
FeeRecipient: "0x0000000000000000000000000000000000000000",
|
FeeRecipient: coinbase,
|
||||||
Calls: []callRes{{
|
Calls: []callRes{{
|
||||||
ReturnValue: "0x",
|
ReturnValue: "0x",
|
||||||
GasUsed: "0x5208",
|
GasUsed: "0x5208",
|
||||||
|
|
@ -801,7 +803,7 @@ func TestMulticallV1(t *testing.T) {
|
||||||
Hash: n10hash,
|
Hash: n10hash,
|
||||||
GasLimit: "0x47e7c4",
|
GasLimit: "0x47e7c4",
|
||||||
GasUsed: "0x5208",
|
GasUsed: "0x5208",
|
||||||
FeeRecipient: "0x0000000000000000000000000000000000000000",
|
FeeRecipient: coinbase,
|
||||||
Calls: []callRes{{
|
Calls: []callRes{{
|
||||||
ReturnValue: "0x",
|
ReturnValue: "0x",
|
||||||
GasUsed: "0x5208",
|
GasUsed: "0x5208",
|
||||||
|
|
@ -821,7 +823,8 @@ func TestMulticallV1(t *testing.T) {
|
||||||
tag: latest,
|
tag: latest,
|
||||||
blocks: []CallBatch{{
|
blocks: []CallBatch{{
|
||||||
BlockOverrides: &BlockOverrides{
|
BlockOverrides: &BlockOverrides{
|
||||||
Number: (*hexutil.Big)(big.NewInt(11)),
|
Number: (*hexutil.Big)(big.NewInt(11)),
|
||||||
|
Coinbase: &cac,
|
||||||
},
|
},
|
||||||
Calls: []TransactionArgs{
|
Calls: []TransactionArgs{
|
||||||
{
|
{
|
||||||
|
|
@ -851,7 +854,7 @@ func TestMulticallV1(t *testing.T) {
|
||||||
Hash: crypto.Keccak256Hash([]byte{0xb}).Hex(),
|
Hash: crypto.Keccak256Hash([]byte{0xb}).Hex(),
|
||||||
GasLimit: "0x47e7c4",
|
GasLimit: "0x47e7c4",
|
||||||
GasUsed: "0xe891",
|
GasUsed: "0xe891",
|
||||||
FeeRecipient: "0x0000000000000000000000000000000000000000",
|
FeeRecipient: strings.ToLower(cac.String()),
|
||||||
Calls: []callRes{{
|
Calls: []callRes{{
|
||||||
ReturnValue: "0x000000000000000000000000000000000000000000000000000000000000000b",
|
ReturnValue: "0x000000000000000000000000000000000000000000000000000000000000000b",
|
||||||
GasUsed: "0xe891",
|
GasUsed: "0xe891",
|
||||||
|
|
@ -863,7 +866,7 @@ func TestMulticallV1(t *testing.T) {
|
||||||
Hash: crypto.Keccak256Hash([]byte{0xc}).Hex(),
|
Hash: crypto.Keccak256Hash([]byte{0xc}).Hex(),
|
||||||
GasLimit: "0x47e7c4",
|
GasLimit: "0x47e7c4",
|
||||||
GasUsed: "0xe891",
|
GasUsed: "0xe891",
|
||||||
FeeRecipient: "0x0000000000000000000000000000000000000000",
|
FeeRecipient: coinbase,
|
||||||
Calls: []callRes{{
|
Calls: []callRes{{
|
||||||
ReturnValue: "0x000000000000000000000000000000000000000000000000000000000000000c",
|
ReturnValue: "0x000000000000000000000000000000000000000000000000000000000000000c",
|
||||||
GasUsed: "0xe891",
|
GasUsed: "0xe891",
|
||||||
|
|
@ -932,7 +935,7 @@ func TestMulticallV1(t *testing.T) {
|
||||||
Hash: n10hash,
|
Hash: n10hash,
|
||||||
GasLimit: "0x47e7c4",
|
GasLimit: "0x47e7c4",
|
||||||
GasUsed: "0x10683",
|
GasUsed: "0x10683",
|
||||||
FeeRecipient: "0x0000000000000000000000000000000000000000",
|
FeeRecipient: coinbase,
|
||||||
Calls: []callRes{{
|
Calls: []callRes{{
|
||||||
ReturnValue: "0x",
|
ReturnValue: "0x",
|
||||||
GasUsed: "0xaacc",
|
GasUsed: "0xaacc",
|
||||||
|
|
@ -974,7 +977,7 @@ func TestMulticallV1(t *testing.T) {
|
||||||
Hash: n10hash,
|
Hash: n10hash,
|
||||||
GasLimit: "0x47e7c4",
|
GasLimit: "0x47e7c4",
|
||||||
GasUsed: "0x5508",
|
GasUsed: "0x5508",
|
||||||
FeeRecipient: "0x0000000000000000000000000000000000000000",
|
FeeRecipient: coinbase,
|
||||||
Calls: []callRes{{
|
Calls: []callRes{{
|
||||||
ReturnValue: "0x",
|
ReturnValue: "0x",
|
||||||
Logs: []types.Log{{
|
Logs: []types.Log{{
|
||||||
|
|
@ -1044,7 +1047,7 @@ func TestMulticallV1(t *testing.T) {
|
||||||
Hash: n10hash,
|
Hash: n10hash,
|
||||||
GasLimit: "0x47e7c4",
|
GasLimit: "0x47e7c4",
|
||||||
GasUsed: "0x52f6",
|
GasUsed: "0x52f6",
|
||||||
FeeRecipient: "0x0000000000000000000000000000000000000000",
|
FeeRecipient: coinbase,
|
||||||
Calls: []callRes{{
|
Calls: []callRes{{
|
||||||
// Caller is in this case the contract that invokes ecrecover.
|
// Caller is in this case the contract that invokes ecrecover.
|
||||||
ReturnValue: strings.ToLower(randomAccounts[2].addr.String()),
|
ReturnValue: strings.ToLower(randomAccounts[2].addr.String()),
|
||||||
|
|
@ -1095,7 +1098,7 @@ func TestMulticallV1(t *testing.T) {
|
||||||
Hash: n10hash,
|
Hash: n10hash,
|
||||||
GasLimit: "0x47e7c4",
|
GasLimit: "0x47e7c4",
|
||||||
GasUsed: "0xa58c",
|
GasUsed: "0xa58c",
|
||||||
FeeRecipient: "0x0000000000000000000000000000000000000000",
|
FeeRecipient: coinbase,
|
||||||
Calls: []callRes{{
|
Calls: []callRes{{
|
||||||
ReturnValue: "0xec4916dd28fc4c10d78e287ca5d9cc51ee1ae73cbfde08c6b37324cbfaac8bc5",
|
ReturnValue: "0xec4916dd28fc4c10d78e287ca5d9cc51ee1ae73cbfde08c6b37324cbfaac8bc5",
|
||||||
GasUsed: "0x52dc",
|
GasUsed: "0x52dc",
|
||||||
|
|
@ -1144,7 +1147,7 @@ func TestMulticallV1(t *testing.T) {
|
||||||
Hash: n10hash,
|
Hash: n10hash,
|
||||||
GasLimit: "0x47e7c4",
|
GasLimit: "0x47e7c4",
|
||||||
GasUsed: "0xd984",
|
GasUsed: "0xd984",
|
||||||
FeeRecipient: "0x0000000000000000000000000000000000000000",
|
FeeRecipient: coinbase,
|
||||||
Calls: []callRes{{
|
Calls: []callRes{{
|
||||||
ReturnValue: "0x",
|
ReturnValue: "0x",
|
||||||
GasUsed: "0xd984",
|
GasUsed: "0xd984",
|
||||||
|
|
@ -1198,7 +1201,7 @@ func TestMulticallV1(t *testing.T) {
|
||||||
Hash: n10hash,
|
Hash: n10hash,
|
||||||
GasLimit: "0x47e7c4",
|
GasLimit: "0x47e7c4",
|
||||||
GasUsed: "0x1b83f",
|
GasUsed: "0x1b83f",
|
||||||
FeeRecipient: "0x0000000000000000000000000000000000000000",
|
FeeRecipient: coinbase,
|
||||||
Calls: []callRes{{
|
Calls: []callRes{{
|
||||||
ReturnValue: "0x",
|
ReturnValue: "0x",
|
||||||
GasUsed: "0xd166",
|
GasUsed: "0xd166",
|
||||||
|
|
@ -1229,7 +1232,7 @@ func TestMulticallV1(t *testing.T) {
|
||||||
Hash: n10hash,
|
Hash: n10hash,
|
||||||
GasLimit: "0x47e7c4",
|
GasLimit: "0x47e7c4",
|
||||||
GasUsed: "0x0",
|
GasUsed: "0x0",
|
||||||
FeeRecipient: "0x0000000000000000000000000000000000000000",
|
FeeRecipient: coinbase,
|
||||||
Calls: []callRes{{
|
Calls: []callRes{{
|
||||||
ReturnValue: "0x",
|
ReturnValue: "0x",
|
||||||
GasUsed: "0x0",
|
GasUsed: "0x0",
|
||||||
|
|
@ -1241,7 +1244,7 @@ func TestMulticallV1(t *testing.T) {
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
for i, tc := range testSuite {
|
for _, tc := range testSuite {
|
||||||
t.Run(tc.name, func(t *testing.T) {
|
t.Run(tc.name, func(t *testing.T) {
|
||||||
opts := multicallOpts{BlockStateCalls: tc.blocks}
|
opts := multicallOpts{BlockStateCalls: tc.blocks}
|
||||||
if tc.includeTransfers != nil && *tc.includeTransfers {
|
if tc.includeTransfers != nil && *tc.includeTransfers {
|
||||||
|
|
@ -1253,18 +1256,18 @@ func TestMulticallV1(t *testing.T) {
|
||||||
result, err := api.MulticallV1(context.Background(), opts, tc.tag)
|
result, err := api.MulticallV1(context.Background(), opts, tc.tag)
|
||||||
if tc.expectErr != nil {
|
if tc.expectErr != nil {
|
||||||
if err == nil {
|
if err == nil {
|
||||||
t.Fatalf("test %d: want error %v, have nothing", i, tc.expectErr)
|
t.Fatalf("test %s: want error %v, have nothing", tc.name, tc.expectErr)
|
||||||
}
|
}
|
||||||
if !errors.Is(err, tc.expectErr) {
|
if !errors.Is(err, tc.expectErr) {
|
||||||
// Second try
|
// Second try
|
||||||
if !reflect.DeepEqual(err, tc.expectErr) {
|
if !reflect.DeepEqual(err, tc.expectErr) {
|
||||||
t.Errorf("test %d: error mismatch, want %v, have %v", i, tc.expectErr, err)
|
t.Errorf("test %s: error mismatch, want %v, have %v", tc.name, tc.expectErr, err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("test %d: want no error, have %v", i, err)
|
t.Fatalf("test %s: want no error, have %v", tc.name, err)
|
||||||
}
|
}
|
||||||
// Turn result into res-struct
|
// Turn result into res-struct
|
||||||
var have []blockRes
|
var have []blockRes
|
||||||
|
|
@ -1273,7 +1276,7 @@ func TestMulticallV1(t *testing.T) {
|
||||||
t.Fatalf("failed to unmarshal result: %v", err)
|
t.Fatalf("failed to unmarshal result: %v", err)
|
||||||
}
|
}
|
||||||
if !reflect.DeepEqual(have, tc.want) {
|
if !reflect.DeepEqual(have, tc.want) {
|
||||||
t.Errorf("test %d, result mismatch, have\n%v\n, want\n%v\n", i, have, tc.want)
|
t.Errorf("test %s, result mismatch, have\n%v\n, want\n%v\n", tc.name, have, tc.want)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue