mirror of
https://github.com/nspcc-dev/neo-go.git
synced 2024-11-26 19:42:23 +00:00
integration: add signing tx
This commit is contained in:
parent
a2dac4507b
commit
eeb2fb7004
1 changed files with 42 additions and 4 deletions
|
@ -8,7 +8,10 @@ import (
|
||||||
"github.com/CityOfZion/neo-go/pkg/core"
|
"github.com/CityOfZion/neo-go/pkg/core"
|
||||||
"github.com/CityOfZion/neo-go/pkg/core/storage"
|
"github.com/CityOfZion/neo-go/pkg/core/storage"
|
||||||
"github.com/CityOfZion/neo-go/pkg/core/transaction"
|
"github.com/CityOfZion/neo-go/pkg/core/transaction"
|
||||||
|
"github.com/CityOfZion/neo-go/pkg/crypto"
|
||||||
|
"github.com/CityOfZion/neo-go/pkg/crypto/keys"
|
||||||
"github.com/CityOfZion/neo-go/pkg/network"
|
"github.com/CityOfZion/neo-go/pkg/network"
|
||||||
|
"github.com/CityOfZion/neo-go/pkg/rpc"
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -28,16 +31,46 @@ func BenchmarkTXPerformanceTest(t *testing.B) {
|
||||||
|
|
||||||
serverConfig := network.NewServerConfig(cfg)
|
serverConfig := network.NewServerConfig(cfg)
|
||||||
server := network.NewServer(serverConfig, chain)
|
server := network.NewServer(serverConfig, chain)
|
||||||
|
data := prepareData(t)
|
||||||
|
t.ResetTimer()
|
||||||
|
|
||||||
for n := 0; n < t.N; n++ {
|
for n := 0; n < t.N; n++ {
|
||||||
tx := getTX()
|
require.Equal(t, server.RelayTxn(data[n]), network.RelaySucceed)
|
||||||
require.Equal(t, server.RelayTxn(tx), network.RelaySucceed)
|
require.Equal(t, server.RelayTxn(data[n]), network.RelayAlreadyExists)
|
||||||
require.Equal(t, server.RelayTxn(tx), network.RelayAlreadyExists)
|
|
||||||
}
|
}
|
||||||
chain.Close()
|
chain.Close()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func prepareData(t *testing.B) []*transaction.Transaction {
|
||||||
|
var data []*transaction.Transaction
|
||||||
|
|
||||||
|
wif := getWif(t)
|
||||||
|
|
||||||
|
for n := 0; n < t.N; n++ {
|
||||||
|
tx := getTX(t, wif)
|
||||||
|
require.NoError(t, rpc.SignTx(tx, wif))
|
||||||
|
data = append(data, tx)
|
||||||
|
}
|
||||||
|
return data
|
||||||
|
}
|
||||||
|
|
||||||
|
// getWif returns Wif.
|
||||||
|
func getWif(t *testing.B) *keys.WIF {
|
||||||
|
var (
|
||||||
|
wifEncoded = "KxhEDBQyyEFymvfJD96q8stMbJMbZUb6D1PmXqBWZDU2WvbvVs9o"
|
||||||
|
version = byte(0x00)
|
||||||
|
)
|
||||||
|
wif, err := keys.WIFDecode(wifEncoded, version)
|
||||||
|
require.NoError(t, err)
|
||||||
|
return wif
|
||||||
|
}
|
||||||
|
|
||||||
// getTX returns Invocation transaction with some random attributes in order to have different hashes.
|
// getTX returns Invocation transaction with some random attributes in order to have different hashes.
|
||||||
func getTX() *transaction.Transaction {
|
func getTX(t *testing.B, wif *keys.WIF) *transaction.Transaction {
|
||||||
|
fromAddress := wif.PrivateKey.Address()
|
||||||
|
fromAddressHash, err := crypto.Uint160DecodeAddress(fromAddress)
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
tx := &transaction.Transaction{
|
tx := &transaction.Transaction{
|
||||||
Type: transaction.InvocationType,
|
Type: transaction.InvocationType,
|
||||||
Version: 0,
|
Version: 0,
|
||||||
|
@ -57,6 +90,11 @@ func getTX() *transaction.Transaction {
|
||||||
Usage: transaction.Description,
|
Usage: transaction.Description,
|
||||||
Data: []byte(randString(10)),
|
Data: []byte(randString(10)),
|
||||||
})
|
})
|
||||||
|
tx.Attributes = append(tx.Attributes,
|
||||||
|
transaction.Attribute{
|
||||||
|
Usage: transaction.Script,
|
||||||
|
Data: fromAddressHash.BytesBE(),
|
||||||
|
})
|
||||||
return tx
|
return tx
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue