Merge pull request #1358 from nspcc-dev/fix/1354
rpc/client: provide sender in `CreateNEP5MultiTransferTx`
This commit is contained in:
commit
b4bcd23c0f
2 changed files with 26 additions and 1 deletions
|
@ -134,7 +134,10 @@ func (c *Client) CreateNEP5MultiTransferTx(acc *wallet.Account, gas int64, recip
|
||||||
recipients[i].Address, recipients[i].Amount)
|
recipients[i].Address, recipients[i].Amount)
|
||||||
emit.Opcode(w.BinWriter, opcode.ASSERT)
|
emit.Opcode(w.BinWriter, opcode.ASSERT)
|
||||||
}
|
}
|
||||||
return c.CreateTxFromScript(w.Bytes(), acc, -1, gas)
|
return c.CreateTxFromScript(w.Bytes(), acc, -1, gas, transaction.Signer{
|
||||||
|
Account: acc.Contract.ScriptHash(),
|
||||||
|
Scopes: transaction.CalledByEntry,
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// CreateTxFromScript creates transaction and properly sets cosigners and NetworkFee.
|
// CreateTxFromScript creates transaction and properly sets cosigners and NetworkFee.
|
||||||
|
|
|
@ -12,6 +12,7 @@ import (
|
||||||
"github.com/nspcc-dev/neo-go/pkg/internal/testchain"
|
"github.com/nspcc-dev/neo-go/pkg/internal/testchain"
|
||||||
"github.com/nspcc-dev/neo-go/pkg/io"
|
"github.com/nspcc-dev/neo-go/pkg/io"
|
||||||
"github.com/nspcc-dev/neo-go/pkg/rpc/client"
|
"github.com/nspcc-dev/neo-go/pkg/rpc/client"
|
||||||
|
"github.com/nspcc-dev/neo-go/pkg/smartcontract"
|
||||||
"github.com/nspcc-dev/neo-go/pkg/util"
|
"github.com/nspcc-dev/neo-go/pkg/util"
|
||||||
"github.com/nspcc-dev/neo-go/pkg/vm/opcode"
|
"github.com/nspcc-dev/neo-go/pkg/vm/opcode"
|
||||||
"github.com/nspcc-dev/neo-go/pkg/wallet"
|
"github.com/nspcc-dev/neo-go/pkg/wallet"
|
||||||
|
@ -198,3 +199,24 @@ func TestCreateTxFromScript(t *testing.T) {
|
||||||
require.Equal(t, acc.PrivateKey().GetScriptHash(), tx.Signers[0].Account)
|
require.Equal(t, acc.PrivateKey().GetScriptHash(), tx.Signers[0].Account)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestCreateNEP5TransferTx(t *testing.T) {
|
||||||
|
chain, rpcSrv, httpSrv := initServerWithInMemoryChain(t)
|
||||||
|
defer chain.Close()
|
||||||
|
defer rpcSrv.Shutdown()
|
||||||
|
|
||||||
|
c, err := client.New(context.Background(), httpSrv.URL, client.Options{Network: testchain.Network()})
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
priv := testchain.PrivateKeyByID(0)
|
||||||
|
acc, err := wallet.NewAccountFromWIF(priv.WIF())
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
tx, err := c.CreateNEP5TransferTx(acc, util.Uint160{}, client.GasContractHash, 1000, 0)
|
||||||
|
require.NoError(t, err)
|
||||||
|
require.NoError(t, acc.SignTx(tx))
|
||||||
|
require.NoError(t, chain.VerifyTx(tx))
|
||||||
|
v := chain.GetTestVM(tx)
|
||||||
|
v.LoadScriptWithFlags(tx.Script, smartcontract.All)
|
||||||
|
require.NoError(t, v.Run())
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue