core: add one more Contract tx to the test chain

When testing CLI it is useful to have some spent coins
on an account with a known key.
This commit is contained in:
Evgenii Stratonikov 2020-02-27 15:59:17 +03:00
parent 37c2bc4733
commit 972e0d8ad1
2 changed files with 28 additions and 3 deletions

View file

@ -158,6 +158,11 @@ func newDumbBlock() *block.Block {
}
}
func getInvocationScript(data []byte, priv *keys.PrivateKey) []byte {
signature := priv.Sign(data)
return append([]byte{byte(opcode.PUSHBYTES64)}, signature...)
}
// This function generates "../rpc/testdata/testblocks.acc" file which contains data
// for RPC unit tests.
// To generate new "../rpc/testdata/testblocks.acc", follow the steps:
@ -246,9 +251,7 @@ func _(t *testing.T) {
for i := range privNetKeys {
priv, err := keys.NewPrivateKeyFromWIF(privNetKeys[i])
require.NoError(t, err)
signature := priv.Sign(data)
invoc = append(invoc, byte(opcode.PUSHBYTES64))
invoc = append(invoc, signature...)
invoc = append(invoc, getInvocationScript(data, priv)...)
}
tx4.Scripts = []transaction.Witness{{
@ -259,6 +262,28 @@ func _(t *testing.T) {
b := bc.newBlock(newMinerTX(), tx3, tx4)
require.NoError(t, bc.AddBlock(b))
priv1, err := keys.NewPrivateKeyFromWIF(privNetKeys[1])
require.NoError(t, err)
tx5 := transaction.NewContractTX()
tx5.Data = new(transaction.ContractTX)
tx5.AddInput(&transaction.Input{
PrevHash: tx4.Hash(),
PrevIndex: 0,
})
tx5.AddOutput(&transaction.Output{
AssetID: GoverningTokenID(),
Amount: util.Fixed8FromInt64(1000),
ScriptHash: priv1.GetScriptHash(),
})
tx5.Scripts = []transaction.Witness{{
InvocationScript: getInvocationScript(tx5.GetSignedPart(), priv),
VerificationScript: priv.PublicKey().GetVerificationScript(),
}}
b = bc.newBlock(newMinerTX(), tx5)
require.NoError(t, bc.AddBlock(b))
outStream, err := os.Create(prefix + "testblocks.acc")
require.NoError(t, err)
defer outStream.Close()

Binary file not shown.