package notary import ( "testing" "github.com/nspcc-dev/neo-go/pkg/core/transaction" "github.com/nspcc-dev/neo-go/pkg/crypto/hash" "github.com/nspcc-dev/neo-go/pkg/crypto/keys" "github.com/stretchr/testify/require" ) func TestFakeAccounts(t *testing.T) { k, err := keys.NewPrivateKey() require.NoError(t, err) fac := FakeSimpleAccount(k.PublicKey()) require.False(t, fac.CanSign()) sh := k.PublicKey().GetScriptHash() tx := transaction.New([]byte{1, 2, 3}, 1) tx.Signers = append(tx.Signers, transaction.Signer{Account: sh}) require.NoError(t, fac.SignTx(0, tx)) fac = FakeContractAccount(sh) require.False(t, fac.CanSign()) require.NoError(t, fac.SignTx(0, tx)) _, err = FakeMultisigAccount(0, keys.PublicKeys{k.PublicKey()}) require.Error(t, err) fac, err = FakeMultisigAccount(1, keys.PublicKeys{k.PublicKey()}) require.NoError(t, err) require.False(t, fac.CanSign()) tx.Signers[0].Account = hash.Hash160(fac.Contract.Script) require.NoError(t, fac.SignTx(0, tx)) }