github.com/nspcc-dev/neo-go@v0.105.2-0.20240517133400-6be757af3eba/pkg/rpcclient/notary/accounts_test.go (about) 1 package notary 2 3 import ( 4 "testing" 5 6 "github.com/nspcc-dev/neo-go/pkg/core/transaction" 7 "github.com/nspcc-dev/neo-go/pkg/crypto/hash" 8 "github.com/nspcc-dev/neo-go/pkg/crypto/keys" 9 "github.com/stretchr/testify/require" 10 ) 11 12 func TestFakeAccounts(t *testing.T) { 13 k, err := keys.NewPrivateKey() 14 require.NoError(t, err) 15 16 fac := FakeSimpleAccount(k.PublicKey()) 17 require.False(t, fac.CanSign()) 18 19 sh := k.PublicKey().GetScriptHash() 20 tx := transaction.New([]byte{1, 2, 3}, 1) 21 tx.Signers = append(tx.Signers, transaction.Signer{Account: sh}) 22 require.NoError(t, fac.SignTx(0, tx)) 23 24 fac = FakeContractAccount(sh) 25 require.False(t, fac.CanSign()) 26 require.NoError(t, fac.SignTx(0, tx)) 27 28 _, err = FakeMultisigAccount(0, keys.PublicKeys{k.PublicKey()}) 29 require.Error(t, err) 30 31 fac, err = FakeMultisigAccount(1, keys.PublicKeys{k.PublicKey()}) 32 require.NoError(t, err) 33 require.False(t, fac.CanSign()) 34 tx.Signers[0].Account = hash.Hash160(fac.Contract.Script) 35 require.NoError(t, fac.SignTx(0, tx)) 36 }