@arkecosystem/typescript-crypto 0.0.3 → 0.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/workflows/ci.yml +23 -23
- package/.github/workflows/format.yml +80 -0
- package/.github/workflows/publish.yml +1 -1
- package/.prettierrc.json +8 -0
- package/dist/enums/ContractAbiType.d.ts.map +1 -1
- package/dist/exceptions/index.d.ts.map +1 -1
- package/dist/identities/PrivateKey.d.ts +2 -2
- package/dist/identities/PrivateKey.d.ts.map +1 -1
- package/dist/identities/PrivateKey.js +1 -1
- package/dist/identities/WIF.d.ts.map +1 -1
- package/dist/identities/WIF.js +2 -2
- package/dist/index.js +532 -626
- package/dist/networks/AbstractNetwork.d.ts +1 -1
- package/dist/networks/AbstractNetwork.d.ts.map +1 -1
- package/dist/networks/Mainnet.d.ts +1 -1
- package/dist/networks/Mainnet.d.ts.map +1 -1
- package/dist/networks/Mainnet.js +1 -1
- package/dist/networks/Testnet.d.ts +1 -1
- package/dist/networks/Testnet.d.ts.map +1 -1
- package/dist/networks/Testnet.js +1 -1
- package/dist/transactions/Deserializer.d.ts +5 -5
- package/dist/transactions/Deserializer.d.ts.map +1 -1
- package/dist/transactions/Deserializer.js +18 -18
- package/dist/transactions/Serializer.d.ts +0 -1
- package/dist/transactions/Serializer.d.ts.map +1 -1
- package/dist/transactions/Serializer.js +0 -3
- package/dist/transactions/builders/AbstractTransactionBuilder.d.ts +7 -6
- package/dist/transactions/builders/AbstractTransactionBuilder.d.ts.map +1 -1
- package/dist/transactions/builders/AbstractTransactionBuilder.js +15 -8
- package/dist/transactions/builders/EvmCallBuilder.d.ts +3 -3
- package/dist/transactions/builders/EvmCallBuilder.d.ts.map +1 -1
- package/dist/transactions/builders/MultipaymentBuilder.d.ts +5 -4
- package/dist/transactions/builders/MultipaymentBuilder.d.ts.map +1 -1
- package/dist/transactions/builders/MultipaymentBuilder.js +6 -2
- package/dist/transactions/builders/TransferBuilder.d.ts +4 -3
- package/dist/transactions/builders/TransferBuilder.d.ts.map +1 -1
- package/dist/transactions/builders/TransferBuilder.js +4 -0
- package/dist/transactions/builders/UnvoteBuilder.d.ts +3 -3
- package/dist/transactions/builders/UnvoteBuilder.d.ts.map +1 -1
- package/dist/transactions/builders/UnvoteBuilder.js +1 -1
- package/dist/transactions/builders/UsernameRegistrationBuilder.d.ts +3 -3
- package/dist/transactions/builders/UsernameRegistrationBuilder.d.ts.map +1 -1
- package/dist/transactions/builders/UsernameRegistrationBuilder.js +1 -1
- package/dist/transactions/builders/UsernameResignationBuilder.d.ts +3 -3
- package/dist/transactions/builders/UsernameResignationBuilder.d.ts.map +1 -1
- package/dist/transactions/builders/UsernameResignationBuilder.js +1 -1
- package/dist/transactions/builders/ValidatorRegistrationBuilder.d.ts +3 -3
- package/dist/transactions/builders/ValidatorRegistrationBuilder.d.ts.map +1 -1
- package/dist/transactions/builders/ValidatorRegistrationBuilder.js +4 -2
- package/dist/transactions/builders/ValidatorResignationBuilder.d.ts +3 -3
- package/dist/transactions/builders/ValidatorResignationBuilder.d.ts.map +1 -1
- package/dist/transactions/builders/ValidatorResignationBuilder.js +1 -1
- package/dist/transactions/builders/VoteBuilder.d.ts +3 -3
- package/dist/transactions/builders/VoteBuilder.d.ts.map +1 -1
- package/dist/transactions/builders/VoteBuilder.js +1 -1
- package/dist/transactions/types/AbstractTransaction.d.ts +2 -5
- package/dist/transactions/types/AbstractTransaction.d.ts.map +1 -1
- package/dist/transactions/types/AbstractTransaction.js +13 -15
- package/dist/transactions/types/EvmCall.d.ts +0 -3
- package/dist/transactions/types/EvmCall.d.ts.map +1 -1
- package/dist/transactions/types/EvmCall.js +0 -8
- package/dist/transactions/types/Multipayment.d.ts +1 -3
- package/dist/transactions/types/Multipayment.d.ts.map +1 -1
- package/dist/transactions/types/Multipayment.js +1 -8
- package/dist/transactions/types/Transfer.d.ts +0 -3
- package/dist/transactions/types/Transfer.d.ts.map +1 -1
- package/dist/transactions/types/Transfer.js +0 -8
- package/dist/transactions/types/Unvote.d.ts +0 -3
- package/dist/transactions/types/Unvote.d.ts.map +1 -1
- package/dist/transactions/types/Unvote.js +0 -8
- package/dist/transactions/types/UsernameRegistration.d.ts +1 -3
- package/dist/transactions/types/UsernameRegistration.d.ts.map +1 -1
- package/dist/transactions/types/UsernameRegistration.js +0 -7
- package/dist/transactions/types/UsernameResignation.d.ts +0 -3
- package/dist/transactions/types/UsernameResignation.d.ts.map +1 -1
- package/dist/transactions/types/UsernameResignation.js +0 -7
- package/dist/transactions/types/ValidatorRegistration.d.ts +1 -3
- package/dist/transactions/types/ValidatorRegistration.d.ts.map +1 -1
- package/dist/transactions/types/ValidatorRegistration.js +0 -8
- package/dist/transactions/types/ValidatorResignation.d.ts +0 -3
- package/dist/transactions/types/ValidatorResignation.d.ts.map +1 -1
- package/dist/transactions/types/ValidatorResignation.js +0 -8
- package/dist/transactions/types/Vote.d.ts +1 -3
- package/dist/transactions/types/Vote.d.ts.map +1 -1
- package/dist/transactions/types/Vote.js +0 -8
- package/dist/types.d.ts +19 -19
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/Abi/ArgumentDecoder.js +6 -6
- package/dist/utils/Abi/json/Abi.Consensus.json +15 -45
- package/dist/utils/Abi/json/Abi.Usernames.json +9 -27
- package/dist/utils/AbiDecoder.d.ts.map +1 -1
- package/dist/utils/AbiDecoder.js +3 -0
- package/dist/utils/AbiEncoder.d.ts +1 -1
- package/dist/utils/AbiEncoder.d.ts.map +1 -1
- package/dist/utils/AbiEncoder.js +2 -1
- package/dist/utils/Message.d.ts +1 -1
- package/dist/utils/Message.d.ts.map +1 -1
- package/dist/utils/Message.js +1 -1
- package/dist/utils/TransactionUtils.d.ts +0 -1
- package/dist/utils/TransactionUtils.d.ts.map +1 -1
- package/dist/utils/TransactionUtils.js +15 -18
- package/dist/utils/UnitConverter.d.ts.map +1 -1
- package/dist/utils/UnitConverter.js +12 -12
- package/eslint.config.mjs +19 -0
- package/jest.config.ts +6 -6
- package/package.json +6 -2
- package/src/enums/Constants.ts +1 -1
- package/src/enums/ContractAbiType.ts +4 -4
- package/src/exceptions/index.ts +1 -1
- package/src/identities/PrivateKey.ts +3 -3
- package/src/identities/WIF.ts +2 -3
- package/src/networks/AbstractNetwork.ts +3 -3
- package/src/networks/Mainnet.ts +3 -3
- package/src/networks/Testnet.ts +1 -1
- package/src/transactions/Deserializer.ts +39 -30
- package/src/transactions/Serializer.ts +1 -5
- package/src/transactions/builders/AbstractTransactionBuilder.ts +20 -11
- package/src/transactions/builders/EvmCallBuilder.ts +3 -3
- package/src/transactions/builders/MultipaymentBuilder.ts +13 -6
- package/src/transactions/builders/TransferBuilder.ts +8 -3
- package/src/transactions/builders/UnvoteBuilder.ts +4 -4
- package/src/transactions/builders/UsernameRegistrationBuilder.ts +4 -4
- package/src/transactions/builders/UsernameResignationBuilder.ts +4 -4
- package/src/transactions/builders/ValidatorRegistrationBuilder.ts +8 -5
- package/src/transactions/builders/ValidatorResignationBuilder.ts +4 -4
- package/src/transactions/builders/VoteBuilder.ts +4 -4
- package/src/transactions/types/AbstractTransaction.ts +17 -24
- package/src/transactions/types/EvmCall.ts +0 -15
- package/src/transactions/types/Multipayment.ts +3 -15
- package/src/transactions/types/Transfer.ts +0 -15
- package/src/transactions/types/Unvote.ts +0 -15
- package/src/transactions/types/UsernameRegistration.ts +1 -13
- package/src/transactions/types/UsernameResignation.ts +0 -14
- package/src/transactions/types/ValidatorRegistration.ts +1 -14
- package/src/transactions/types/ValidatorResignation.ts +0 -15
- package/src/transactions/types/Vote.ts +1 -14
- package/src/types.ts +19 -19
- package/src/utils/Abi/ArgumentDecoder.ts +6 -6
- package/src/utils/Abi/json/Abi.Consensus.json +1641 -1671
- package/src/utils/Abi/json/Abi.Multipayment.json +108 -108
- package/src/utils/Abi/json/Abi.Usernames.json +880 -898
- package/src/utils/AbiBase.ts +1 -1
- package/src/utils/AbiDecoder.ts +6 -3
- package/src/utils/AbiEncoder.ts +3 -2
- package/src/utils/Message.ts +1 -1
- package/src/utils/TransactionUtils.ts +24 -28
- package/src/utils/UnitConverter.ts +29 -29
- package/tests/fixtures/global.json +4 -4
- package/tests/fixtures/identity.json +10 -10
- package/tests/fixtures/transactions/evm-sign.json +4 -4
- package/tests/fixtures/transactions/multipayment-empty.json +4 -4
- package/tests/fixtures/transactions/multipayment-single.json +4 -4
- package/tests/fixtures/transactions/multipayment.json +4 -4
- package/tests/fixtures/transactions/transfer-0.json +4 -4
- package/tests/fixtures/transactions/transfer-large-amount.json +4 -4
- package/tests/fixtures/transactions/transfer.json +4 -4
- package/tests/fixtures/transactions/unvote.json +4 -4
- package/tests/fixtures/transactions/username-registration.json +4 -4
- package/tests/fixtures/transactions/username-resignation.json +4 -4
- package/tests/fixtures/transactions/validator-registration.json +4 -4
- package/tests/fixtures/transactions/validator-resignation.json +4 -4
- package/tests/fixtures/transactions/vote.json +4 -4
- package/tests/unit/configuration/Network.test.ts +52 -0
- package/tests/unit/identities/Address.test.ts +4 -4
- package/tests/unit/identities/PrivateKey.test.ts +5 -5
- package/tests/unit/identities/PublicKey.test.ts +9 -9
- package/tests/unit/identities/WIF.test.ts +1 -1
- package/tests/unit/transactions/Deserializer.test.ts +81 -63
- package/tests/unit/transactions/Serializer.test.ts +11 -1
- package/tests/unit/transactions/builders/EvmCallBuilder.test.ts +76 -9
- package/tests/unit/transactions/builders/MultipaymentBuilder.test.ts +125 -17
- package/tests/unit/transactions/builders/TransferBuilder.test.ts +146 -47
- package/tests/unit/transactions/builders/UnvoteBuilder.test.ts +75 -8
- package/tests/unit/transactions/builders/UsernameRegistrationBuilder.test.ts +75 -8
- package/tests/unit/transactions/builders/UsernameResignationBuilder.test.ts +75 -8
- package/tests/unit/transactions/builders/ValidatorRegistrationBuilder.test.ts +103 -8
- package/tests/unit/transactions/builders/ValidatorResignationBuilder.test.ts +75 -8
- package/tests/unit/transactions/builders/VoteBuilder.test.ts +75 -8
- package/tests/unit/transactions/types/AbstractTransaction.test.ts +27 -30
- package/tests/unit/transactions/types/EvmCall.test.ts +22 -0
- package/tests/unit/transactions/types/Multipayment.test.ts +38 -0
- package/tests/unit/transactions/types/Transfer.test.ts +18 -0
- package/tests/unit/transactions/types/Unvote.test.ts +18 -0
- package/tests/unit/transactions/types/UsernameRegistration.test.ts +22 -0
- package/tests/unit/transactions/types/UsernameResignation.test.ts +18 -0
- package/tests/unit/transactions/types/ValidatorRegistration.test.ts +22 -0
- package/tests/unit/transactions/types/ValidatorResignation.test.ts +18 -0
- package/tests/unit/transactions/types/Vote.test.ts +20 -0
- package/tests/unit/utils/Abi/ArgumentDecoder.test.ts +17 -16
- package/tests/unit/utils/AbiEncoder.test.ts +2 -2
- package/tests/unit/utils/Message.test.ts +1 -1
- package/tests/unit/utils/TransactionUtils.test.ts +1 -5
- package/tests/unit/utils/UnitConverter.test.ts +81 -47
- package/tsconfig.json +1 -1
- package/.eslintrc.js +0 -12
- package/prettier.config.js +0 -8
@@ -8,7 +8,7 @@ it("should build a transaction", async () => {
|
|
8
8
|
await UsernameResignationBuilder.new()
|
9
9
|
.nonce(fixture.data.nonce)
|
10
10
|
.gasPrice(fixture.data.gasPrice)
|
11
|
-
.
|
11
|
+
.gas(fixture.data.gas)
|
12
12
|
.network(fixture.data.network)
|
13
13
|
.sign(identityFixture.passphrase)
|
14
14
|
).transaction;
|
@@ -16,33 +16,100 @@ it("should build a transaction", async () => {
|
|
16
16
|
expect(transaction.data.gasPrice).toBe(fixture.data.gasPrice);
|
17
17
|
expect(transaction.data.nonce).toBe(fixture.data.nonce);
|
18
18
|
expect(transaction.data.network).toBe(fixture.data.network);
|
19
|
-
expect(transaction.data.
|
20
|
-
expect(transaction.data.
|
19
|
+
expect(transaction.data.gas).toBe(fixture.data.gas);
|
20
|
+
expect(transaction.data.to).toBe(fixture.data.to);
|
21
21
|
expect(transaction.data.value).toBe(fixture.data.value);
|
22
22
|
expect(transaction.data.v).toBe(fixture.data.v);
|
23
23
|
expect(transaction.data.r).toBe(fixture.data.r);
|
24
24
|
expect(transaction.data.s).toBe(fixture.data.s);
|
25
|
-
expect(transaction.data.
|
25
|
+
expect(transaction.data.hash).toBe(fixture.data.hash);
|
26
26
|
|
27
27
|
expect(transaction.serialize().toString("hex")).toEqual(fixture.serialized);
|
28
28
|
expect(transaction.verify()).toBe(true);
|
29
29
|
});
|
30
30
|
|
31
31
|
it("should sign a transaction", async () => {
|
32
|
-
const transaction = (await UsernameResignationBuilder.new(fixture.data).sign(identityFixture.passphrase))
|
32
|
+
const transaction = (await UsernameResignationBuilder.new({ ...fixture.data }).sign(identityFixture.passphrase))
|
33
33
|
.transaction;
|
34
34
|
|
35
35
|
expect(transaction.data.gasPrice).toBe(fixture.data.gasPrice);
|
36
36
|
expect(transaction.data.nonce).toBe(fixture.data.nonce);
|
37
37
|
expect(transaction.data.network).toBe(fixture.data.network);
|
38
|
-
expect(transaction.data.
|
39
|
-
expect(transaction.data.
|
38
|
+
expect(transaction.data.gas).toBe(fixture.data.gas);
|
39
|
+
expect(transaction.data.to).toBe(fixture.data.to);
|
40
40
|
expect(transaction.data.value).toBe(fixture.data.value);
|
41
41
|
expect(transaction.data.v).toBe(fixture.data.v);
|
42
42
|
expect(transaction.data.r).toBe(fixture.data.r);
|
43
43
|
expect(transaction.data.s).toBe(fixture.data.s);
|
44
|
-
expect(transaction.data.
|
44
|
+
expect(transaction.data.hash).toBe(fixture.data.hash);
|
45
45
|
|
46
46
|
expect(transaction.serialize().toString("hex")).toEqual(fixture.serialized);
|
47
47
|
expect(transaction.verify()).toBe(true);
|
48
48
|
});
|
49
|
+
|
50
|
+
it("should verify", async () => {
|
51
|
+
const transaction = await UsernameResignationBuilder.new({ ...fixture.data }).sign(identityFixture.passphrase);
|
52
|
+
|
53
|
+
expect(transaction.verify()).toBe(true);
|
54
|
+
});
|
55
|
+
|
56
|
+
it("should convert to an array", async () => {
|
57
|
+
const transaction = await UsernameResignationBuilder.new({ ...fixture.data }).sign(identityFixture.passphrase);
|
58
|
+
|
59
|
+
expect(transaction.toObject()).toEqual({
|
60
|
+
data: fixture.data.data,
|
61
|
+
to: fixture.data.to,
|
62
|
+
value: fixture.data.value,
|
63
|
+
gasPrice: fixture.data.gasPrice,
|
64
|
+
gas: fixture.data.gas,
|
65
|
+
network: fixture.data.network,
|
66
|
+
nonce: fixture.data.nonce,
|
67
|
+
v: fixture.data.v,
|
68
|
+
r: fixture.data.r,
|
69
|
+
s: fixture.data.s,
|
70
|
+
senderPublicKey: fixture.data.senderPublicKey,
|
71
|
+
hash: fixture.data.hash,
|
72
|
+
});
|
73
|
+
});
|
74
|
+
|
75
|
+
it("should convert to json", async () => {
|
76
|
+
const transaction = await UsernameResignationBuilder.new({ ...fixture.data }).sign(identityFixture.passphrase);
|
77
|
+
|
78
|
+
expect(transaction.toJson()).toEqual(
|
79
|
+
JSON.stringify({
|
80
|
+
gasPrice: fixture.data.gasPrice,
|
81
|
+
network: fixture.data.network,
|
82
|
+
hash: fixture.data.hash,
|
83
|
+
gas: fixture.data.gas,
|
84
|
+
nonce: fixture.data.nonce,
|
85
|
+
senderPublicKey: fixture.data.senderPublicKey,
|
86
|
+
to: fixture.data.to,
|
87
|
+
value: fixture.data.value,
|
88
|
+
data: fixture.data.data,
|
89
|
+
r: fixture.data.r,
|
90
|
+
s: fixture.data.s,
|
91
|
+
v: fixture.data.v,
|
92
|
+
}),
|
93
|
+
);
|
94
|
+
});
|
95
|
+
|
96
|
+
it("should convert to string", async () => {
|
97
|
+
const transaction = await UsernameResignationBuilder.new({ ...fixture.data }).sign(identityFixture.passphrase);
|
98
|
+
|
99
|
+
expect(transaction.toString()).toEqual(
|
100
|
+
JSON.stringify({
|
101
|
+
gasPrice: fixture.data.gasPrice,
|
102
|
+
network: fixture.data.network,
|
103
|
+
hash: fixture.data.hash,
|
104
|
+
gas: fixture.data.gas,
|
105
|
+
nonce: fixture.data.nonce,
|
106
|
+
senderPublicKey: fixture.data.senderPublicKey,
|
107
|
+
to: fixture.data.to,
|
108
|
+
value: fixture.data.value,
|
109
|
+
data: fixture.data.data,
|
110
|
+
r: fixture.data.r,
|
111
|
+
s: fixture.data.s,
|
112
|
+
v: fixture.data.v,
|
113
|
+
}),
|
114
|
+
);
|
115
|
+
});
|
@@ -4,6 +4,34 @@ import identityFixture from "@tests/fixtures/identity.json";
|
|
4
4
|
import { ValidatorRegistrationBuilder } from "@/transactions/builders/ValidatorRegistrationBuilder";
|
5
5
|
|
6
6
|
it("should build a transaction", async () => {
|
7
|
+
const transaction = (
|
8
|
+
await ValidatorRegistrationBuilder.new()
|
9
|
+
.validatorPublicKey(
|
10
|
+
"30954f46d6097a1d314e900e66e11e0dad0a57cd03e04ec99f0dedd1c765dcb11e6d7fa02e22cf40f9ee23d9cc1c0624",
|
11
|
+
)
|
12
|
+
.nonce(fixture.data.nonce)
|
13
|
+
.gasPrice(fixture.data.gasPrice)
|
14
|
+
.gas(fixture.data.gas)
|
15
|
+
.network(fixture.data.network)
|
16
|
+
.sign(identityFixture.passphrase)
|
17
|
+
).transaction;
|
18
|
+
|
19
|
+
expect(transaction.data.gasPrice).toBe(fixture.data.gasPrice);
|
20
|
+
expect(transaction.data.nonce).toBe(fixture.data.nonce);
|
21
|
+
expect(transaction.data.network).toBe(fixture.data.network);
|
22
|
+
expect(transaction.data.gas).toBe(fixture.data.gas);
|
23
|
+
expect(transaction.data.to).toBe(fixture.data.to);
|
24
|
+
expect(transaction.data.value).toBe(fixture.data.value);
|
25
|
+
expect(transaction.data.v).toBe(fixture.data.v);
|
26
|
+
expect(transaction.data.r).toBe(fixture.data.r);
|
27
|
+
expect(transaction.data.s).toBe(fixture.data.s);
|
28
|
+
expect(transaction.data.hash).toBe(fixture.data.hash);
|
29
|
+
|
30
|
+
expect(transaction.serialize().toString("hex")).toEqual(fixture.serialized);
|
31
|
+
expect(transaction.verify()).toBe(true);
|
32
|
+
});
|
33
|
+
|
34
|
+
it("should handle validator public key with leading 0x", async () => {
|
7
35
|
const transaction = (
|
8
36
|
await ValidatorRegistrationBuilder.new()
|
9
37
|
.validatorPublicKey(
|
@@ -11,7 +39,7 @@ it("should build a transaction", async () => {
|
|
11
39
|
)
|
12
40
|
.nonce(fixture.data.nonce)
|
13
41
|
.gasPrice(fixture.data.gasPrice)
|
14
|
-
.
|
42
|
+
.gas(fixture.data.gas)
|
15
43
|
.network(fixture.data.network)
|
16
44
|
.sign(identityFixture.passphrase)
|
17
45
|
).transaction;
|
@@ -19,33 +47,100 @@ it("should build a transaction", async () => {
|
|
19
47
|
expect(transaction.data.gasPrice).toBe(fixture.data.gasPrice);
|
20
48
|
expect(transaction.data.nonce).toBe(fixture.data.nonce);
|
21
49
|
expect(transaction.data.network).toBe(fixture.data.network);
|
22
|
-
expect(transaction.data.
|
23
|
-
expect(transaction.data.
|
50
|
+
expect(transaction.data.gas).toBe(fixture.data.gas);
|
51
|
+
expect(transaction.data.to).toBe(fixture.data.to);
|
24
52
|
expect(transaction.data.value).toBe(fixture.data.value);
|
25
53
|
expect(transaction.data.v).toBe(fixture.data.v);
|
26
54
|
expect(transaction.data.r).toBe(fixture.data.r);
|
27
55
|
expect(transaction.data.s).toBe(fixture.data.s);
|
28
|
-
expect(transaction.data.
|
56
|
+
expect(transaction.data.hash).toBe(fixture.data.hash);
|
29
57
|
|
30
58
|
expect(transaction.serialize().toString("hex")).toEqual(fixture.serialized);
|
31
59
|
expect(transaction.verify()).toBe(true);
|
32
60
|
});
|
33
61
|
|
34
62
|
it("should sign a transaction", async () => {
|
35
|
-
const transaction = (await ValidatorRegistrationBuilder.new(fixture.data).sign(identityFixture.passphrase))
|
63
|
+
const transaction = (await ValidatorRegistrationBuilder.new({ ...fixture.data }).sign(identityFixture.passphrase))
|
36
64
|
.transaction;
|
37
65
|
|
38
66
|
expect(transaction.data.gasPrice).toBe(fixture.data.gasPrice);
|
39
67
|
expect(transaction.data.nonce).toBe(fixture.data.nonce);
|
40
68
|
expect(transaction.data.network).toBe(fixture.data.network);
|
41
|
-
expect(transaction.data.
|
42
|
-
expect(transaction.data.
|
69
|
+
expect(transaction.data.gas).toBe(fixture.data.gas);
|
70
|
+
expect(transaction.data.to).toBe(fixture.data.to);
|
43
71
|
expect(transaction.data.value).toBe(fixture.data.value);
|
44
72
|
expect(transaction.data.v).toBe(fixture.data.v);
|
45
73
|
expect(transaction.data.r).toBe(fixture.data.r);
|
46
74
|
expect(transaction.data.s).toBe(fixture.data.s);
|
47
|
-
expect(transaction.data.
|
75
|
+
expect(transaction.data.hash).toBe(fixture.data.hash);
|
48
76
|
|
49
77
|
expect(transaction.serialize().toString("hex")).toEqual(fixture.serialized);
|
50
78
|
expect(transaction.verify()).toBe(true);
|
51
79
|
});
|
80
|
+
|
81
|
+
it("should verify", async () => {
|
82
|
+
const transaction = await ValidatorRegistrationBuilder.new({ ...fixture.data }).sign(identityFixture.passphrase);
|
83
|
+
|
84
|
+
expect(transaction.verify()).toBe(true);
|
85
|
+
});
|
86
|
+
|
87
|
+
it("should convert to an array", async () => {
|
88
|
+
const transaction = await ValidatorRegistrationBuilder.new({ ...fixture.data }).sign(identityFixture.passphrase);
|
89
|
+
|
90
|
+
expect(transaction.toObject()).toEqual({
|
91
|
+
data: fixture.data.data,
|
92
|
+
to: fixture.data.to,
|
93
|
+
value: fixture.data.value,
|
94
|
+
gasPrice: fixture.data.gasPrice,
|
95
|
+
gas: fixture.data.gas,
|
96
|
+
network: fixture.data.network,
|
97
|
+
nonce: fixture.data.nonce,
|
98
|
+
v: fixture.data.v,
|
99
|
+
r: fixture.data.r,
|
100
|
+
s: fixture.data.s,
|
101
|
+
senderPublicKey: fixture.data.senderPublicKey,
|
102
|
+
hash: fixture.data.hash,
|
103
|
+
});
|
104
|
+
});
|
105
|
+
|
106
|
+
it("should convert to json", async () => {
|
107
|
+
const transaction = await ValidatorRegistrationBuilder.new({ ...fixture.data }).sign(identityFixture.passphrase);
|
108
|
+
|
109
|
+
expect(transaction.toJson()).toEqual(
|
110
|
+
JSON.stringify({
|
111
|
+
gasPrice: fixture.data.gasPrice,
|
112
|
+
network: fixture.data.network,
|
113
|
+
hash: fixture.data.hash,
|
114
|
+
gas: fixture.data.gas,
|
115
|
+
nonce: fixture.data.nonce,
|
116
|
+
senderPublicKey: fixture.data.senderPublicKey,
|
117
|
+
to: fixture.data.to,
|
118
|
+
value: fixture.data.value,
|
119
|
+
data: fixture.data.data,
|
120
|
+
r: fixture.data.r,
|
121
|
+
s: fixture.data.s,
|
122
|
+
v: fixture.data.v,
|
123
|
+
}),
|
124
|
+
);
|
125
|
+
});
|
126
|
+
|
127
|
+
it("should convert to string", async () => {
|
128
|
+
const transaction = await ValidatorRegistrationBuilder.new({ ...fixture.data }).sign(identityFixture.passphrase);
|
129
|
+
|
130
|
+
expect(transaction.toString()).toEqual(
|
131
|
+
JSON.stringify({
|
132
|
+
gasPrice: fixture.data.gasPrice,
|
133
|
+
network: fixture.data.network,
|
134
|
+
hash: fixture.data.hash,
|
135
|
+
gas: fixture.data.gas,
|
136
|
+
nonce: fixture.data.nonce,
|
137
|
+
senderPublicKey: fixture.data.senderPublicKey,
|
138
|
+
to: fixture.data.to,
|
139
|
+
value: fixture.data.value,
|
140
|
+
data: fixture.data.data,
|
141
|
+
r: fixture.data.r,
|
142
|
+
s: fixture.data.s,
|
143
|
+
v: fixture.data.v,
|
144
|
+
}),
|
145
|
+
);
|
146
|
+
});
|
@@ -8,7 +8,7 @@ it("should build a transaction", async () => {
|
|
8
8
|
await ValidatorResignationBuilder.new()
|
9
9
|
.nonce(fixture.data.nonce)
|
10
10
|
.gasPrice(fixture.data.gasPrice)
|
11
|
-
.
|
11
|
+
.gas(fixture.data.gas)
|
12
12
|
.network(fixture.data.network)
|
13
13
|
.sign(identityFixture.passphrase)
|
14
14
|
).transaction;
|
@@ -16,33 +16,100 @@ it("should build a transaction", async () => {
|
|
16
16
|
expect(transaction.data.gasPrice).toBe(fixture.data.gasPrice);
|
17
17
|
expect(transaction.data.nonce).toBe(fixture.data.nonce);
|
18
18
|
expect(transaction.data.network).toBe(fixture.data.network);
|
19
|
-
expect(transaction.data.
|
20
|
-
expect(transaction.data.
|
19
|
+
expect(transaction.data.gas).toBe(fixture.data.gas);
|
20
|
+
expect(transaction.data.to).toBe(fixture.data.to);
|
21
21
|
expect(transaction.data.value).toBe(fixture.data.value);
|
22
22
|
expect(transaction.data.v).toBe(fixture.data.v);
|
23
23
|
expect(transaction.data.r).toBe(fixture.data.r);
|
24
24
|
expect(transaction.data.s).toBe(fixture.data.s);
|
25
|
-
expect(transaction.data.
|
25
|
+
expect(transaction.data.hash).toBe(fixture.data.hash);
|
26
26
|
|
27
27
|
expect(transaction.serialize().toString("hex")).toEqual(fixture.serialized);
|
28
28
|
expect(transaction.verify()).toBe(true);
|
29
29
|
});
|
30
30
|
|
31
31
|
it("should sign a transaction", async () => {
|
32
|
-
const transaction = (await ValidatorResignationBuilder.new(fixture.data).sign(identityFixture.passphrase))
|
32
|
+
const transaction = (await ValidatorResignationBuilder.new({ ...fixture.data }).sign(identityFixture.passphrase))
|
33
33
|
.transaction;
|
34
34
|
|
35
35
|
expect(transaction.data.gasPrice).toBe(fixture.data.gasPrice);
|
36
36
|
expect(transaction.data.nonce).toBe(fixture.data.nonce);
|
37
37
|
expect(transaction.data.network).toBe(fixture.data.network);
|
38
|
-
expect(transaction.data.
|
39
|
-
expect(transaction.data.
|
38
|
+
expect(transaction.data.gas).toBe(fixture.data.gas);
|
39
|
+
expect(transaction.data.to).toBe(fixture.data.to);
|
40
40
|
expect(transaction.data.value).toBe(fixture.data.value);
|
41
41
|
expect(transaction.data.v).toBe(fixture.data.v);
|
42
42
|
expect(transaction.data.r).toBe(fixture.data.r);
|
43
43
|
expect(transaction.data.s).toBe(fixture.data.s);
|
44
|
-
expect(transaction.data.
|
44
|
+
expect(transaction.data.hash).toBe(fixture.data.hash);
|
45
45
|
|
46
46
|
expect(transaction.serialize().toString("hex")).toEqual(fixture.serialized);
|
47
47
|
expect(transaction.verify()).toBe(true);
|
48
48
|
});
|
49
|
+
|
50
|
+
it("should verify", async () => {
|
51
|
+
const transaction = await ValidatorResignationBuilder.new({ ...fixture.data }).sign(identityFixture.passphrase);
|
52
|
+
|
53
|
+
expect(transaction.verify()).toBe(true);
|
54
|
+
});
|
55
|
+
|
56
|
+
it("should convert to an array", async () => {
|
57
|
+
const transaction = await ValidatorResignationBuilder.new({ ...fixture.data }).sign(identityFixture.passphrase);
|
58
|
+
|
59
|
+
expect(transaction.toObject()).toEqual({
|
60
|
+
data: fixture.data.data,
|
61
|
+
to: fixture.data.to,
|
62
|
+
value: fixture.data.value,
|
63
|
+
gasPrice: fixture.data.gasPrice,
|
64
|
+
gas: fixture.data.gas,
|
65
|
+
network: fixture.data.network,
|
66
|
+
nonce: fixture.data.nonce,
|
67
|
+
v: fixture.data.v,
|
68
|
+
r: fixture.data.r,
|
69
|
+
s: fixture.data.s,
|
70
|
+
senderPublicKey: fixture.data.senderPublicKey,
|
71
|
+
hash: fixture.data.hash,
|
72
|
+
});
|
73
|
+
});
|
74
|
+
|
75
|
+
it("should convert to json", async () => {
|
76
|
+
const transaction = await ValidatorResignationBuilder.new({ ...fixture.data }).sign(identityFixture.passphrase);
|
77
|
+
|
78
|
+
expect(transaction.toJson()).toEqual(
|
79
|
+
JSON.stringify({
|
80
|
+
gasPrice: fixture.data.gasPrice,
|
81
|
+
network: fixture.data.network,
|
82
|
+
hash: fixture.data.hash,
|
83
|
+
gas: fixture.data.gas,
|
84
|
+
nonce: fixture.data.nonce,
|
85
|
+
senderPublicKey: fixture.data.senderPublicKey,
|
86
|
+
to: fixture.data.to,
|
87
|
+
value: fixture.data.value,
|
88
|
+
data: fixture.data.data,
|
89
|
+
r: fixture.data.r,
|
90
|
+
s: fixture.data.s,
|
91
|
+
v: fixture.data.v,
|
92
|
+
}),
|
93
|
+
);
|
94
|
+
});
|
95
|
+
|
96
|
+
it("should convert to string", async () => {
|
97
|
+
const transaction = await ValidatorResignationBuilder.new({ ...fixture.data }).sign(identityFixture.passphrase);
|
98
|
+
|
99
|
+
expect(transaction.toString()).toEqual(
|
100
|
+
JSON.stringify({
|
101
|
+
gasPrice: fixture.data.gasPrice,
|
102
|
+
network: fixture.data.network,
|
103
|
+
hash: fixture.data.hash,
|
104
|
+
gas: fixture.data.gas,
|
105
|
+
nonce: fixture.data.nonce,
|
106
|
+
senderPublicKey: fixture.data.senderPublicKey,
|
107
|
+
to: fixture.data.to,
|
108
|
+
value: fixture.data.value,
|
109
|
+
data: fixture.data.data,
|
110
|
+
r: fixture.data.r,
|
111
|
+
s: fixture.data.s,
|
112
|
+
v: fixture.data.v,
|
113
|
+
}),
|
114
|
+
);
|
115
|
+
});
|
@@ -9,7 +9,7 @@ it("should build a transaction", async () => {
|
|
9
9
|
.vote("0xc3bbe9b1cee1ff85ad72b87414b0e9b7f2366763")
|
10
10
|
.nonce(fixture.data.nonce)
|
11
11
|
.gasPrice(fixture.data.gasPrice)
|
12
|
-
.
|
12
|
+
.gas(fixture.data.gas)
|
13
13
|
.network(fixture.data.network)
|
14
14
|
.sign(identityFixture.passphrase)
|
15
15
|
).transaction;
|
@@ -17,32 +17,99 @@ it("should build a transaction", async () => {
|
|
17
17
|
expect(transaction.data.gasPrice).toBe(fixture.data.gasPrice);
|
18
18
|
expect(transaction.data.nonce).toBe(fixture.data.nonce);
|
19
19
|
expect(transaction.data.network).toBe(fixture.data.network);
|
20
|
-
expect(transaction.data.
|
21
|
-
expect(transaction.data.
|
20
|
+
expect(transaction.data.gas).toBe(fixture.data.gas);
|
21
|
+
expect(transaction.data.to).toBe(fixture.data.to);
|
22
22
|
expect(transaction.data.value).toBe(fixture.data.value);
|
23
23
|
expect(transaction.data.v).toBe(fixture.data.v);
|
24
24
|
expect(transaction.data.r).toBe(fixture.data.r);
|
25
25
|
expect(transaction.data.s).toBe(fixture.data.s);
|
26
|
-
expect(transaction.data.
|
26
|
+
expect(transaction.data.hash).toBe(fixture.data.hash);
|
27
27
|
|
28
28
|
expect(transaction.serialize().toString("hex")).toEqual(fixture.serialized);
|
29
29
|
expect(transaction.verify()).toBe(true);
|
30
30
|
});
|
31
31
|
|
32
32
|
it("should sign a transaction", async () => {
|
33
|
-
const transaction = (await VoteBuilder.new(fixture.data).sign(identityFixture.passphrase)).transaction;
|
33
|
+
const transaction = (await VoteBuilder.new({ ...fixture.data }).sign(identityFixture.passphrase)).transaction;
|
34
34
|
|
35
35
|
expect(transaction.data.gasPrice).toBe(fixture.data.gasPrice);
|
36
36
|
expect(transaction.data.nonce).toBe(fixture.data.nonce);
|
37
37
|
expect(transaction.data.network).toBe(fixture.data.network);
|
38
|
-
expect(transaction.data.
|
39
|
-
expect(transaction.data.
|
38
|
+
expect(transaction.data.gas).toBe(fixture.data.gas);
|
39
|
+
expect(transaction.data.to).toBe(fixture.data.to);
|
40
40
|
expect(transaction.data.value).toBe(fixture.data.value);
|
41
41
|
expect(transaction.data.v).toBe(fixture.data.v);
|
42
42
|
expect(transaction.data.r).toBe(fixture.data.r);
|
43
43
|
expect(transaction.data.s).toBe(fixture.data.s);
|
44
|
-
expect(transaction.data.
|
44
|
+
expect(transaction.data.hash).toBe(fixture.data.hash);
|
45
45
|
|
46
46
|
expect(transaction.serialize().toString("hex")).toEqual(fixture.serialized);
|
47
47
|
expect(transaction.verify()).toBe(true);
|
48
48
|
});
|
49
|
+
|
50
|
+
it("should verify", async () => {
|
51
|
+
const transaction = await VoteBuilder.new({ ...fixture.data }).sign(identityFixture.passphrase);
|
52
|
+
|
53
|
+
expect(transaction.verify()).toBe(true);
|
54
|
+
});
|
55
|
+
|
56
|
+
it("should convert to an array", async () => {
|
57
|
+
const transaction = await VoteBuilder.new({ ...fixture.data }).sign(identityFixture.passphrase);
|
58
|
+
|
59
|
+
expect(transaction.toObject()).toEqual({
|
60
|
+
data: fixture.data.data,
|
61
|
+
to: fixture.data.to,
|
62
|
+
value: fixture.data.value,
|
63
|
+
gasPrice: fixture.data.gasPrice,
|
64
|
+
gas: fixture.data.gas,
|
65
|
+
network: fixture.data.network,
|
66
|
+
nonce: fixture.data.nonce,
|
67
|
+
v: fixture.data.v,
|
68
|
+
r: fixture.data.r,
|
69
|
+
s: fixture.data.s,
|
70
|
+
senderPublicKey: fixture.data.senderPublicKey,
|
71
|
+
hash: fixture.data.hash,
|
72
|
+
});
|
73
|
+
});
|
74
|
+
|
75
|
+
it("should convert to json", async () => {
|
76
|
+
const transaction = await VoteBuilder.new({ ...fixture.data }).sign(identityFixture.passphrase);
|
77
|
+
|
78
|
+
expect(transaction.toJson()).toEqual(
|
79
|
+
JSON.stringify({
|
80
|
+
gasPrice: fixture.data.gasPrice,
|
81
|
+
network: fixture.data.network,
|
82
|
+
hash: fixture.data.hash,
|
83
|
+
gas: fixture.data.gas,
|
84
|
+
nonce: fixture.data.nonce,
|
85
|
+
senderPublicKey: fixture.data.senderPublicKey,
|
86
|
+
to: fixture.data.to,
|
87
|
+
value: fixture.data.value,
|
88
|
+
data: fixture.data.data,
|
89
|
+
r: fixture.data.r,
|
90
|
+
s: fixture.data.s,
|
91
|
+
v: fixture.data.v,
|
92
|
+
}),
|
93
|
+
);
|
94
|
+
});
|
95
|
+
|
96
|
+
it("should convert to string", async () => {
|
97
|
+
const transaction = await VoteBuilder.new({ ...fixture.data }).sign(identityFixture.passphrase);
|
98
|
+
|
99
|
+
expect(transaction.toString()).toEqual(
|
100
|
+
JSON.stringify({
|
101
|
+
gasPrice: fixture.data.gasPrice,
|
102
|
+
network: fixture.data.network,
|
103
|
+
hash: fixture.data.hash,
|
104
|
+
gas: fixture.data.gas,
|
105
|
+
nonce: fixture.data.nonce,
|
106
|
+
senderPublicKey: fixture.data.senderPublicKey,
|
107
|
+
to: fixture.data.to,
|
108
|
+
value: fixture.data.value,
|
109
|
+
data: fixture.data.data,
|
110
|
+
r: fixture.data.r,
|
111
|
+
s: fixture.data.s,
|
112
|
+
v: fixture.data.v,
|
113
|
+
}),
|
114
|
+
);
|
115
|
+
});
|
@@ -1,26 +1,11 @@
|
|
1
1
|
import fixture from "@tests/fixtures/transactions/transfer.json";
|
2
2
|
import fixtureGlobal from "@tests/fixtures/global.json";
|
3
|
-
import fixtureVote from "@tests/fixtures/transactions/vote.json";
|
4
3
|
|
5
4
|
import { AbstractTransaction } from "@/transactions/types/AbstractTransaction";
|
6
5
|
import { PrivateKey } from "@/identities/PrivateKey";
|
7
6
|
import { TransactionData } from "@/types";
|
8
7
|
import { Transfer } from "@/transactions/types/Transfer";
|
9
8
|
|
10
|
-
class DecoderTransaction extends AbstractTransaction {
|
11
|
-
constructor(data: TransactionData) {
|
12
|
-
super(data);
|
13
|
-
|
14
|
-
this.decodePayload(data);
|
15
|
-
|
16
|
-
this.refreshPayloadData();
|
17
|
-
}
|
18
|
-
|
19
|
-
getPayload(): string {
|
20
|
-
return "7061796C6F6164";
|
21
|
-
}
|
22
|
-
}
|
23
|
-
|
24
9
|
class Transaction extends AbstractTransaction {
|
25
10
|
getPayload(): string {
|
26
11
|
return "7061796C6F6164";
|
@@ -55,12 +40,6 @@ it("should refresh the payload", () => {
|
|
55
40
|
expect(transaction.data.data).toEqual("updated-payload");
|
56
41
|
});
|
57
42
|
|
58
|
-
it("should get the id", () => {
|
59
|
-
const transaction = new Transfer(fixture.data);
|
60
|
-
|
61
|
-
expect(transaction.getId()).toEqual(fixture.data.id);
|
62
|
-
});
|
63
|
-
|
64
43
|
it("should sign a transaction", () => {
|
65
44
|
const privateKey = PrivateKey.fromPassphrase(fixtureGlobal.passphrase);
|
66
45
|
const transaction = new Transfer(fixture.data);
|
@@ -78,7 +57,7 @@ it("should recover the sender", () => {
|
|
78
57
|
transaction.recoverSender();
|
79
58
|
|
80
59
|
expect(transaction.data.senderPublicKey).toEqual(fixture.data.senderPublicKey);
|
81
|
-
expect(transaction.data.
|
60
|
+
expect(transaction.data.from).toEqual(fixture.data.from);
|
82
61
|
});
|
83
62
|
|
84
63
|
it("should verify the transaction", () => {
|
@@ -87,6 +66,28 @@ it("should verify the transaction", () => {
|
|
87
66
|
expect(transaction.verify()).toBe(true);
|
88
67
|
});
|
89
68
|
|
69
|
+
it("should not verify if there is no sender public key", () => {
|
70
|
+
const transaction = new Transfer({
|
71
|
+
...fixture.data,
|
72
|
+
|
73
|
+
senderPublicKey: undefined,
|
74
|
+
});
|
75
|
+
|
76
|
+
expect(transaction.verify()).toBe(false);
|
77
|
+
});
|
78
|
+
|
79
|
+
it("should throw an error if no signature", () => {
|
80
|
+
const transaction = new Transfer({
|
81
|
+
...fixture.data,
|
82
|
+
|
83
|
+
v: undefined,
|
84
|
+
r: undefined,
|
85
|
+
s: undefined,
|
86
|
+
});
|
87
|
+
|
88
|
+
expect(() => transaction.verify()).toThrow("Transaction signature is missing");
|
89
|
+
});
|
90
|
+
|
90
91
|
it("should convert the transaction to json", () => {
|
91
92
|
const transaction = new Transaction(fixture.data);
|
92
93
|
|
@@ -94,11 +95,11 @@ it("should convert the transaction to json", () => {
|
|
94
95
|
JSON.stringify({
|
95
96
|
gasPrice: fixture.data["gasPrice"],
|
96
97
|
network: fixture.data["network"],
|
97
|
-
|
98
|
-
|
98
|
+
hash: fixture.data["hash"],
|
99
|
+
gas: fixture.data["gas"],
|
99
100
|
nonce: fixture.data["nonce"],
|
100
101
|
senderPublicKey: fixture.data["senderPublicKey"],
|
101
|
-
|
102
|
+
to: fixture.data["to"],
|
102
103
|
value: fixture.data["value"],
|
103
104
|
data: "7061796C6F6164",
|
104
105
|
r: fixture.data["r"],
|
@@ -111,7 +112,7 @@ it("should convert the transaction to json", () => {
|
|
111
112
|
it("should generate a hash for the transaction with signature", () => {
|
112
113
|
const transaction = new Transfer(fixture.data);
|
113
114
|
|
114
|
-
expect(transaction.hash()).toEqual(fixture.data.
|
115
|
+
expect(transaction.hash()).toEqual(fixture.data.hash);
|
115
116
|
});
|
116
117
|
|
117
118
|
it("should generate a hash for the transaction without signature", () => {
|
@@ -139,7 +140,3 @@ it("should serialize the transaction without signature", () => {
|
|
139
140
|
// We don't store serialized without the signature in the fixtures so we do a partial check
|
140
141
|
expect(fixture.serialized).toContain(serialized.substring(4));
|
141
142
|
});
|
142
|
-
|
143
|
-
it("should decode the payload", () => {
|
144
|
-
expect(() => new DecoderTransaction(fixtureVote.data)).toThrow("Method not implemented");
|
145
|
-
});
|
@@ -0,0 +1,22 @@
|
|
1
|
+
import { EvmCall } from "@/transactions/types/EvmCall";
|
2
|
+
import { AbstractTransaction } from "@/transactions/types/AbstractTransaction";
|
3
|
+
import fixture from "@tests/fixtures/transactions/evm-sign.json";
|
4
|
+
|
5
|
+
it("should create a new instance", () => {
|
6
|
+
const transaction = new EvmCall(fixture.data);
|
7
|
+
|
8
|
+
expect(transaction).toBeInstanceOf(EvmCall);
|
9
|
+
expect(transaction).toBeInstanceOf(AbstractTransaction);
|
10
|
+
|
11
|
+
expect(transaction.data.data).toEqual(
|
12
|
+
"a9059cbb00000000000000000000000027fa7caffaae77ddb9ab232fdbda56d5e5af23930000000000000000000000000000000000000000000000000000000000000064",
|
13
|
+
);
|
14
|
+
});
|
15
|
+
|
16
|
+
it("should get payload", () => {
|
17
|
+
const transaction = new EvmCall(fixture.data);
|
18
|
+
|
19
|
+
expect(transaction.getPayload()).toEqual(
|
20
|
+
"a9059cbb00000000000000000000000027fa7caffaae77ddb9ab232fdbda56d5e5af23930000000000000000000000000000000000000000000000000000000000000064",
|
21
|
+
);
|
22
|
+
});
|
@@ -0,0 +1,38 @@
|
|
1
|
+
import { Multipayment } from "@/transactions/types/Multipayment";
|
2
|
+
import { AbstractTransaction } from "@/transactions/types/AbstractTransaction";
|
3
|
+
import fixture from "@tests/fixtures/transactions/multipayment.json";
|
4
|
+
|
5
|
+
it("should create a new instance", () => {
|
6
|
+
const transaction = new Multipayment(fixture.data);
|
7
|
+
|
8
|
+
expect(transaction).toBeInstanceOf(Multipayment);
|
9
|
+
expect(transaction).toBeInstanceOf(AbstractTransaction);
|
10
|
+
|
11
|
+
expect(transaction.data.data).toEqual(
|
12
|
+
"084ce708000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000020000000000000000000000006f0182a0cc707b055322ccf6d4cb6a5aff1aeb22000000000000000000000000c3bbe9b1cee1ff85ad72b87414b0e9b7f2366763000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000186a00000000000000000000000000000000000000000000000000000000000030d40",
|
13
|
+
);
|
14
|
+
});
|
15
|
+
|
16
|
+
it("should get payload", () => {
|
17
|
+
const transaction = new Multipayment(fixture.data);
|
18
|
+
|
19
|
+
expect(transaction.getPayload()).toEqual(
|
20
|
+
"084ce708000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000020000000000000000000000006f0182a0cc707b055322ccf6d4cb6a5aff1aeb22000000000000000000000000c3bbe9b1cee1ff85ad72b87414b0e9b7f2366763000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000186a00000000000000000000000000000000000000000000000000000000000030d40",
|
21
|
+
);
|
22
|
+
});
|
23
|
+
|
24
|
+
it("should handle no payload", () => {
|
25
|
+
const transaction = new Multipayment(fixture.data);
|
26
|
+
|
27
|
+
transaction.data.pay = [];
|
28
|
+
|
29
|
+
expect(transaction.getPayload()).toEqual("");
|
30
|
+
|
31
|
+
transaction.data.pay = null;
|
32
|
+
|
33
|
+
expect(transaction.getPayload()).toEqual("");
|
34
|
+
|
35
|
+
transaction.data.pay = undefined;
|
36
|
+
|
37
|
+
expect(transaction.getPayload()).toEqual("");
|
38
|
+
});
|