core: adjust Signer to stackitem conversion
Follow the https://github.com/neo-project/neo/pull/2708.
This commit is contained in:
parent
73ef36e03e
commit
d8f7d5d5b6
3 changed files with 0 additions and 15 deletions
|
@ -10,7 +10,6 @@ import (
|
||||||
"github.com/nspcc-dev/neo-go/pkg/core/interop"
|
"github.com/nspcc-dev/neo-go/pkg/core/interop"
|
||||||
"github.com/nspcc-dev/neo-go/pkg/core/native/nativenames"
|
"github.com/nspcc-dev/neo-go/pkg/core/native/nativenames"
|
||||||
"github.com/nspcc-dev/neo-go/pkg/core/transaction"
|
"github.com/nspcc-dev/neo-go/pkg/core/transaction"
|
||||||
"github.com/nspcc-dev/neo-go/pkg/io"
|
|
||||||
"github.com/nspcc-dev/neo-go/pkg/smartcontract"
|
"github.com/nspcc-dev/neo-go/pkg/smartcontract"
|
||||||
"github.com/nspcc-dev/neo-go/pkg/smartcontract/callflag"
|
"github.com/nspcc-dev/neo-go/pkg/smartcontract/callflag"
|
||||||
"github.com/nspcc-dev/neo-go/pkg/smartcontract/manifest"
|
"github.com/nspcc-dev/neo-go/pkg/smartcontract/manifest"
|
||||||
|
@ -261,12 +260,7 @@ func TransactionToStackItem(t *transaction.Transaction) stackitem.Item {
|
||||||
// SignersToStackItem converts transaction.Signers to stackitem.Item.
|
// SignersToStackItem converts transaction.Signers to stackitem.Item.
|
||||||
func SignersToStackItem(signers []transaction.Signer) stackitem.Item {
|
func SignersToStackItem(signers []transaction.Signer) stackitem.Item {
|
||||||
res := make([]stackitem.Item, len(signers))
|
res := make([]stackitem.Item, len(signers))
|
||||||
bw := io.NewBufBinWriter()
|
|
||||||
for i, s := range signers {
|
for i, s := range signers {
|
||||||
s.EncodeBinary(bw.BinWriter)
|
|
||||||
if bw.Err != nil {
|
|
||||||
panic(fmt.Errorf("failed to serialize signer %d to stackitem: %w", i, bw.Err))
|
|
||||||
}
|
|
||||||
contracts := make([]stackitem.Item, len(s.AllowedContracts))
|
contracts := make([]stackitem.Item, len(s.AllowedContracts))
|
||||||
for j, c := range s.AllowedContracts {
|
for j, c := range s.AllowedContracts {
|
||||||
contracts[j] = stackitem.NewByteArray(c.BytesBE())
|
contracts[j] = stackitem.NewByteArray(c.BytesBE())
|
||||||
|
@ -280,14 +274,12 @@ func SignersToStackItem(signers []transaction.Signer) stackitem.Item {
|
||||||
rules[j] = r.ToStackItem()
|
rules[j] = r.ToStackItem()
|
||||||
}
|
}
|
||||||
res[i] = stackitem.NewArray([]stackitem.Item{
|
res[i] = stackitem.NewArray([]stackitem.Item{
|
||||||
stackitem.NewByteArray(bw.Bytes()),
|
|
||||||
stackitem.NewByteArray(s.Account.BytesBE()),
|
stackitem.NewByteArray(s.Account.BytesBE()),
|
||||||
stackitem.NewBigInteger(big.NewInt(int64(s.Scopes))),
|
stackitem.NewBigInteger(big.NewInt(int64(s.Scopes))),
|
||||||
stackitem.NewArray(contracts),
|
stackitem.NewArray(contracts),
|
||||||
stackitem.NewArray(groups),
|
stackitem.NewArray(groups),
|
||||||
stackitem.NewArray(rules),
|
stackitem.NewArray(rules),
|
||||||
})
|
})
|
||||||
bw.Reset()
|
|
||||||
}
|
}
|
||||||
return stackitem.NewArray(res)
|
return stackitem.NewArray(res)
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,7 +10,6 @@ import (
|
||||||
"github.com/nspcc-dev/neo-go/pkg/config"
|
"github.com/nspcc-dev/neo-go/pkg/config"
|
||||||
"github.com/nspcc-dev/neo-go/pkg/core/native/nativenames"
|
"github.com/nspcc-dev/neo-go/pkg/core/native/nativenames"
|
||||||
"github.com/nspcc-dev/neo-go/pkg/core/transaction"
|
"github.com/nspcc-dev/neo-go/pkg/core/transaction"
|
||||||
"github.com/nspcc-dev/neo-go/pkg/io"
|
|
||||||
"github.com/nspcc-dev/neo-go/pkg/neotest"
|
"github.com/nspcc-dev/neo-go/pkg/neotest"
|
||||||
"github.com/nspcc-dev/neo-go/pkg/neotest/chain"
|
"github.com/nspcc-dev/neo-go/pkg/neotest/chain"
|
||||||
"github.com/nspcc-dev/neo-go/pkg/util"
|
"github.com/nspcc-dev/neo-go/pkg/util"
|
||||||
|
@ -190,12 +189,8 @@ func TestLedger_GetTransactionSigners(t *testing.T) {
|
||||||
Account: c.CommitteeHash,
|
Account: c.CommitteeHash,
|
||||||
Scopes: transaction.Global,
|
Scopes: transaction.Global,
|
||||||
}
|
}
|
||||||
bw := io.NewBufBinWriter()
|
|
||||||
s.EncodeBinary(bw.BinWriter)
|
|
||||||
require.NoError(t, bw.Err)
|
|
||||||
expected := stackitem.NewArray([]stackitem.Item{
|
expected := stackitem.NewArray([]stackitem.Item{
|
||||||
stackitem.NewArray([]stackitem.Item{
|
stackitem.NewArray([]stackitem.Item{
|
||||||
stackitem.NewByteArray(bw.Bytes()),
|
|
||||||
stackitem.NewByteArray(s.Account.BytesBE()),
|
stackitem.NewByteArray(s.Account.BytesBE()),
|
||||||
stackitem.NewBigInteger(big.NewInt(int64(s.Scopes))),
|
stackitem.NewBigInteger(big.NewInt(int64(s.Scopes))),
|
||||||
stackitem.NewArray([]stackitem.Item{}),
|
stackitem.NewArray([]stackitem.Item{}),
|
||||||
|
|
|
@ -5,8 +5,6 @@ import "github.com/nspcc-dev/neo-go/pkg/interop"
|
||||||
// TransactionSigner represent the signer of a NEO transaction. It's similar to
|
// TransactionSigner represent the signer of a NEO transaction. It's similar to
|
||||||
// Signer class in Neo .net framework.
|
// Signer class in Neo .net framework.
|
||||||
type TransactionSigner struct {
|
type TransactionSigner struct {
|
||||||
// Bytes is a binary serialized representation of the given signer.
|
|
||||||
Bytes []byte
|
|
||||||
// Account represents the account (160 bit BE value in a 20 byte slice) of
|
// Account represents the account (160 bit BE value in a 20 byte slice) of
|
||||||
// the given signer.
|
// the given signer.
|
||||||
Account interop.Hash160
|
Account interop.Hash160
|
||||||
|
|
Loading…
Reference in a new issue