@arkecosystem/typescript-crypto 0.0.4 → 0.0.6
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/Address.js +2 -2
- package/dist/identities/PrivateKey.d.ts +2 -2
- package/dist/identities/PrivateKey.d.ts.map +1 -1
- package/dist/identities/PrivateKey.js +3 -3
- package/dist/identities/PublicKey.js +2 -2
- package/dist/identities/WIF.d.ts.map +1 -1
- package/dist/identities/WIF.js +2 -2
- package/dist/index.js +536 -631
- 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 +1 -1
- 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/AbiBase.d.ts +1 -1
- package/dist/utils/AbiBase.js +1 -1
- 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/Address.ts +2 -2
- package/src/identities/PrivateKey.ts +5 -5
- package/src/identities/PublicKey.ts +2 -2
- 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 +4 -4
- 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 +2 -2
- 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 +79 -12
- 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/AbiDecoder.test.ts +8 -6
- package/tests/unit/utils/AbiEncoder.test.ts +20 -2
- package/tests/unit/utils/Message.test.ts +1 -1
- package/tests/unit/utils/TransactionUtils.test.ts +29 -6
- 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
@@ -4,6 +4,7 @@ import fixtureSingle from "@tests/fixtures/transactions/multipayment-single.json
|
|
4
4
|
import identityFixture from "@tests/fixtures/identity.json";
|
5
5
|
|
6
6
|
import { MultipaymentBuilder } from "@/transactions/builders/MultipaymentBuilder";
|
7
|
+
import { UnitConverter } from "@/utils/UnitConverter";
|
7
8
|
|
8
9
|
it("should build a transaction", async () => {
|
9
10
|
const transaction = (
|
@@ -11,7 +12,7 @@ it("should build a transaction", async () => {
|
|
11
12
|
.pay("0x6F0182a0cc707b055322CcF6d4CB6a5Aff1aEb22", "100000")
|
12
13
|
.pay("0xc3bbe9b1cee1ff85ad72b87414b0e9b7f2366763", "200000")
|
13
14
|
.gasPrice(fixture.data.gasPrice)
|
14
|
-
.
|
15
|
+
.gas(fixture.data.gas)
|
15
16
|
.network(fixture.data.network)
|
16
17
|
.sign(identityFixture.passphrase)
|
17
18
|
).transaction;
|
@@ -19,31 +20,32 @@ it("should build a transaction", async () => {
|
|
19
20
|
expect(transaction.data.gasPrice).toBe(fixture.data.gasPrice);
|
20
21
|
expect(transaction.data.nonce).toBe(fixture.data.nonce);
|
21
22
|
expect(transaction.data.network).toBe(fixture.data.network);
|
22
|
-
expect(transaction.data.
|
23
|
-
expect(transaction.data.
|
23
|
+
expect(transaction.data.gas).toBe(fixture.data.gas);
|
24
|
+
expect(transaction.data.to).toBe(fixture.data.to);
|
24
25
|
expect(transaction.data.value).toBe(fixture.data.value);
|
25
26
|
expect(transaction.data.v).toBe(fixture.data.v);
|
26
27
|
expect(transaction.data.r).toBe(fixture.data.r);
|
27
28
|
expect(transaction.data.s).toBe(fixture.data.s);
|
28
|
-
expect(transaction.data.
|
29
|
+
expect(transaction.data.hash).toBe(fixture.data.hash);
|
29
30
|
|
30
31
|
expect(transaction.serialize().toString("hex")).toEqual(fixture.serialized);
|
31
32
|
expect(transaction.verify()).toBe(true);
|
32
33
|
});
|
33
34
|
|
34
35
|
it("should sign a transaction", async () => {
|
35
|
-
const transaction = (await MultipaymentBuilder.new(fixture.data).sign(identityFixture.passphrase))
|
36
|
+
const transaction = (await MultipaymentBuilder.new({ ...fixture.data }).sign(identityFixture.passphrase))
|
37
|
+
.transaction;
|
36
38
|
|
37
39
|
expect(transaction.data.gasPrice).toBe(fixture.data.gasPrice);
|
38
40
|
expect(transaction.data.nonce).toBe(fixture.data.nonce);
|
39
41
|
expect(transaction.data.network).toBe(fixture.data.network);
|
40
|
-
expect(transaction.data.
|
41
|
-
expect(transaction.data.
|
42
|
-
expect(transaction.data.value).toBe(fixture.data.value);
|
42
|
+
expect(transaction.data.gas).toBe(fixture.data.gas);
|
43
|
+
expect(transaction.data.to).toBe(fixture.data.to);
|
44
|
+
expect(transaction.data.value).toBe(BigInt(fixture.data.value));
|
43
45
|
expect(transaction.data.v).toBe(fixture.data.v);
|
44
46
|
expect(transaction.data.r).toBe(fixture.data.r);
|
45
47
|
expect(transaction.data.s).toBe(fixture.data.s);
|
46
|
-
expect(transaction.data.
|
48
|
+
expect(transaction.data.hash).toBe(fixture.data.hash);
|
47
49
|
|
48
50
|
expect(transaction.serialize().toString("hex")).toEqual(fixture.serialized);
|
49
51
|
expect(transaction.verify()).toBe(true);
|
@@ -54,7 +56,7 @@ it("should build a transaction with a single payment", async () => {
|
|
54
56
|
await MultipaymentBuilder.new()
|
55
57
|
.pay("0x6F0182a0cc707b055322CcF6d4CB6a5Aff1aEb22", "100000")
|
56
58
|
.gasPrice(fixtureSingle.data.gasPrice)
|
57
|
-
.
|
59
|
+
.gas(fixtureSingle.data.gas)
|
58
60
|
.network(fixtureSingle.data.network)
|
59
61
|
.sign(identityFixture.passphrase)
|
60
62
|
).transaction;
|
@@ -62,13 +64,13 @@ it("should build a transaction with a single payment", async () => {
|
|
62
64
|
expect(transaction.data.gasPrice).toBe(fixtureSingle.data.gasPrice);
|
63
65
|
expect(transaction.data.nonce).toBe(fixtureSingle.data.nonce);
|
64
66
|
expect(transaction.data.network).toBe(fixtureSingle.data.network);
|
65
|
-
expect(transaction.data.
|
66
|
-
expect(transaction.data.
|
67
|
+
expect(transaction.data.gas).toBe(fixtureSingle.data.gas);
|
68
|
+
expect(transaction.data.to).toBe(fixtureSingle.data.to);
|
67
69
|
expect(transaction.data.value).toBe(fixtureSingle.data.value);
|
68
70
|
expect(transaction.data.v).toBe(fixtureSingle.data.v);
|
69
71
|
expect(transaction.data.r).toBe(fixtureSingle.data.r);
|
70
72
|
expect(transaction.data.s).toBe(fixtureSingle.data.s);
|
71
|
-
expect(transaction.data.
|
73
|
+
expect(transaction.data.hash).toBe(fixtureSingle.data.hash);
|
72
74
|
|
73
75
|
expect(transaction.serialize().toString("hex")).toEqual(fixtureSingle.serialized);
|
74
76
|
expect(transaction.verify()).toBe(true);
|
@@ -78,7 +80,7 @@ it("should build a transaction with an empty payment", async () => {
|
|
78
80
|
const transaction = (
|
79
81
|
await MultipaymentBuilder.new()
|
80
82
|
.gasPrice(fixtureEmpty.data.gasPrice)
|
81
|
-
.
|
83
|
+
.gas(fixtureEmpty.data.gas)
|
82
84
|
.network(fixtureEmpty.data.network)
|
83
85
|
.sign(identityFixture.passphrase)
|
84
86
|
).transaction;
|
@@ -86,14 +88,120 @@ it("should build a transaction with an empty payment", async () => {
|
|
86
88
|
expect(transaction.data.gasPrice).toBe(fixtureEmpty.data.gasPrice);
|
87
89
|
expect(transaction.data.nonce).toBe(fixtureEmpty.data.nonce);
|
88
90
|
expect(transaction.data.network).toBe(fixtureEmpty.data.network);
|
89
|
-
expect(transaction.data.
|
90
|
-
expect(transaction.data.
|
91
|
+
expect(transaction.data.gas).toBe(fixtureEmpty.data.gas);
|
92
|
+
expect(transaction.data.to).toBe(fixtureEmpty.data.to);
|
91
93
|
expect(transaction.data.value).toBe(fixtureEmpty.data.value);
|
92
94
|
expect(transaction.data.v).toBe(fixtureEmpty.data.v);
|
93
95
|
expect(transaction.data.r).toBe(fixtureEmpty.data.r);
|
94
96
|
expect(transaction.data.s).toBe(fixtureEmpty.data.s);
|
95
|
-
expect(transaction.data.
|
97
|
+
expect(transaction.data.hash).toBe(fixtureEmpty.data.hash);
|
96
98
|
|
97
99
|
expect(transaction.serialize().toString("hex")).toEqual(fixtureEmpty.serialized);
|
98
100
|
expect(transaction.verify()).toBe(true);
|
99
101
|
});
|
102
|
+
|
103
|
+
it("should handle bignumber values", async () => {
|
104
|
+
const transaction = (
|
105
|
+
await MultipaymentBuilder.new()
|
106
|
+
.pay("0x6F0182a0cc707b055322CcF6d4CB6a5Aff1aEb22", UnitConverter.parseUnits("100000", "wei"))
|
107
|
+
.pay("0xc3bbe9b1cee1ff85ad72b87414b0e9b7f2366763", UnitConverter.parseUnits("200000", "wei"))
|
108
|
+
.gasPrice(UnitConverter.parseUnits(fixture.data.gasPrice, "wei"))
|
109
|
+
.gas(UnitConverter.parseUnits(fixture.data.gas, "wei"))
|
110
|
+
.network(fixture.data.network)
|
111
|
+
.sign(identityFixture.passphrase)
|
112
|
+
).transaction;
|
113
|
+
|
114
|
+
expect(transaction.data.gasPrice).toBe(fixture.data.gasPrice);
|
115
|
+
expect(transaction.data.nonce).toBe(fixture.data.nonce);
|
116
|
+
expect(transaction.data.network).toBe(fixture.data.network);
|
117
|
+
expect(transaction.data.gas).toBe(fixture.data.gas);
|
118
|
+
expect(transaction.data.to).toBe(fixture.data.to);
|
119
|
+
expect(transaction.data.value).toBe(fixture.data.value);
|
120
|
+
expect(transaction.data.v).toBe(fixture.data.v);
|
121
|
+
expect(transaction.data.r).toBe(fixture.data.r);
|
122
|
+
expect(transaction.data.s).toBe(fixture.data.s);
|
123
|
+
expect(transaction.data.hash).toBe(fixture.data.hash);
|
124
|
+
|
125
|
+
expect(transaction.serialize().toString("hex")).toEqual(fixture.serialized);
|
126
|
+
expect(transaction.verify()).toBe(true);
|
127
|
+
});
|
128
|
+
|
129
|
+
it("should track value correctly on pay when initially not set", async () => {
|
130
|
+
const builder = await MultipaymentBuilder.new()
|
131
|
+
.gasPrice(fixtureSingle.data.gasPrice)
|
132
|
+
.gas(fixtureSingle.data.gas)
|
133
|
+
.network(fixtureSingle.data.network);
|
134
|
+
|
135
|
+
builder.transaction.data.value = undefined;
|
136
|
+
|
137
|
+
builder.pay("0x6F0182a0cc707b055322CcF6d4CB6a5Aff1aEb22", "100000");
|
138
|
+
|
139
|
+
expect(builder.transaction.data.value).toBe("100000");
|
140
|
+
});
|
141
|
+
|
142
|
+
it("should verify", async () => {
|
143
|
+
const transaction = await MultipaymentBuilder.new({ ...fixture.data }).sign(identityFixture.passphrase);
|
144
|
+
|
145
|
+
expect(transaction.verify()).toBe(true);
|
146
|
+
});
|
147
|
+
|
148
|
+
it("should convert to an array", async () => {
|
149
|
+
const transaction = await MultipaymentBuilder.new({ ...fixture.data }).sign(identityFixture.passphrase);
|
150
|
+
|
151
|
+
expect(transaction.toObject()).toEqual({
|
152
|
+
data: fixture.data.data,
|
153
|
+
to: fixture.data.to,
|
154
|
+
value: fixture.data.value,
|
155
|
+
gasPrice: fixture.data.gasPrice,
|
156
|
+
gas: fixture.data.gas,
|
157
|
+
network: fixture.data.network,
|
158
|
+
nonce: fixture.data.nonce,
|
159
|
+
v: fixture.data.v,
|
160
|
+
r: fixture.data.r,
|
161
|
+
s: fixture.data.s,
|
162
|
+
senderPublicKey: fixture.data.senderPublicKey,
|
163
|
+
hash: fixture.data.hash,
|
164
|
+
});
|
165
|
+
});
|
166
|
+
|
167
|
+
it("should convert to json", async () => {
|
168
|
+
const transaction = await MultipaymentBuilder.new({ ...fixture.data }).sign(identityFixture.passphrase);
|
169
|
+
|
170
|
+
expect(transaction.toJson()).toEqual(
|
171
|
+
JSON.stringify({
|
172
|
+
gasPrice: fixture.data.gasPrice,
|
173
|
+
network: fixture.data.network,
|
174
|
+
hash: fixture.data.hash,
|
175
|
+
gas: fixture.data.gas,
|
176
|
+
nonce: fixture.data.nonce,
|
177
|
+
senderPublicKey: fixture.data.senderPublicKey,
|
178
|
+
to: fixture.data.to,
|
179
|
+
value: fixture.data.value,
|
180
|
+
data: fixture.data.data,
|
181
|
+
r: fixture.data.r,
|
182
|
+
s: fixture.data.s,
|
183
|
+
v: fixture.data.v,
|
184
|
+
}),
|
185
|
+
);
|
186
|
+
});
|
187
|
+
|
188
|
+
it("should convert to string", async () => {
|
189
|
+
const transaction = await MultipaymentBuilder.new({ ...fixture.data }).sign(identityFixture.passphrase);
|
190
|
+
|
191
|
+
expect(transaction.toString()).toEqual(
|
192
|
+
JSON.stringify({
|
193
|
+
gasPrice: fixture.data.gasPrice,
|
194
|
+
network: fixture.data.network,
|
195
|
+
hash: fixture.data.hash,
|
196
|
+
gas: fixture.data.gas,
|
197
|
+
nonce: fixture.data.nonce,
|
198
|
+
senderPublicKey: fixture.data.senderPublicKey,
|
199
|
+
to: fixture.data.to,
|
200
|
+
value: fixture.data.value,
|
201
|
+
data: fixture.data.data,
|
202
|
+
r: fixture.data.r,
|
203
|
+
s: fixture.data.s,
|
204
|
+
v: fixture.data.v,
|
205
|
+
}),
|
206
|
+
);
|
207
|
+
});
|
@@ -1,73 +1,172 @@
|
|
1
|
-
import
|
1
|
+
import fixture from "@tests/fixtures/transactions/transfer.json";
|
2
2
|
import fixtureTransferLargeAmount from "@tests/fixtures/transactions/transfer-large-amount.json";
|
3
3
|
import identityFixture from "@tests/fixtures/identity.json";
|
4
4
|
|
5
5
|
import { TransferBuilder } from "@/transactions/builders/TransferBuilder";
|
6
|
+
import { UnitConverter } from "@/utils/UnitConverter";
|
6
7
|
|
7
8
|
it("should build a transaction", async () => {
|
8
|
-
const transaction = (
|
9
|
-
.
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
expect(transaction.data.
|
20
|
-
expect(transaction.data.
|
21
|
-
expect(transaction.data.
|
22
|
-
expect(transaction.data.
|
23
|
-
expect(transaction.data.
|
24
|
-
expect(transaction.data.
|
25
|
-
expect(transaction.data.
|
26
|
-
expect(transaction.data.
|
27
|
-
|
28
|
-
expect(transaction.
|
9
|
+
const transaction = (
|
10
|
+
await TransferBuilder.new()
|
11
|
+
.value(fixture.data.value)
|
12
|
+
.to(fixture.data.to)
|
13
|
+
.nonce(fixture.data.nonce)
|
14
|
+
.gasPrice(fixture.data.gasPrice)
|
15
|
+
.gas(fixture.data.gas)
|
16
|
+
.network(fixture.data.network)
|
17
|
+
.sign(identityFixture.passphrase)
|
18
|
+
).transaction;
|
19
|
+
|
20
|
+
expect(transaction.data.gasPrice).toBe(fixture.data.gasPrice);
|
21
|
+
expect(transaction.data.nonce).toBe(fixture.data.nonce);
|
22
|
+
expect(transaction.data.network).toBe(fixture.data.network);
|
23
|
+
expect(transaction.data.gas).toBe(fixture.data.gas);
|
24
|
+
expect(transaction.data.to).toBe(fixture.data.to);
|
25
|
+
expect(transaction.data.value).toBe(fixture.data.value);
|
26
|
+
expect(transaction.data.v).toBe(fixture.data.v);
|
27
|
+
expect(transaction.data.r).toBe(fixture.data.r);
|
28
|
+
expect(transaction.data.s).toBe(fixture.data.s);
|
29
|
+
expect(transaction.data.hash).toBe(fixture.data.hash);
|
30
|
+
|
31
|
+
expect(transaction.serialize().toString("hex")).toEqual(fixture.serialized);
|
29
32
|
expect(transaction.verify()).toBe(true);
|
30
33
|
});
|
31
34
|
|
32
35
|
it("should sign a transaction", async () => {
|
33
|
-
const transaction = (await TransferBuilder.new(
|
34
|
-
|
35
|
-
expect(transaction.data.gasPrice).toBe(
|
36
|
-
expect(transaction.data.nonce).toBe(
|
37
|
-
expect(transaction.data.network).toBe(
|
38
|
-
expect(transaction.data.
|
39
|
-
expect(transaction.data.
|
40
|
-
expect(transaction.data.value).toBe(
|
41
|
-
expect(transaction.data.v).toBe(
|
42
|
-
expect(transaction.data.r).toBe(
|
43
|
-
expect(transaction.data.s).toBe(
|
44
|
-
expect(transaction.data.
|
45
|
-
|
46
|
-
expect(transaction.serialize().toString("hex")).toEqual(
|
36
|
+
const transaction = (await TransferBuilder.new({ ...fixture.data }).sign(identityFixture.passphrase)).transaction;
|
37
|
+
|
38
|
+
expect(transaction.data.gasPrice).toBe(fixture.data.gasPrice);
|
39
|
+
expect(transaction.data.nonce).toBe(fixture.data.nonce);
|
40
|
+
expect(transaction.data.network).toBe(fixture.data.network);
|
41
|
+
expect(transaction.data.gas).toBe(fixture.data.gas);
|
42
|
+
expect(transaction.data.to).toBe(fixture.data.to);
|
43
|
+
expect(transaction.data.value).toBe(fixture.data.value);
|
44
|
+
expect(transaction.data.v).toBe(fixture.data.v);
|
45
|
+
expect(transaction.data.r).toBe(fixture.data.r);
|
46
|
+
expect(transaction.data.s).toBe(fixture.data.s);
|
47
|
+
expect(transaction.data.hash).toBe(fixture.data.hash);
|
48
|
+
|
49
|
+
expect(transaction.serialize().toString("hex")).toEqual(fixture.serialized);
|
47
50
|
expect(transaction.verify()).toBe(true);
|
48
51
|
});
|
49
52
|
|
50
53
|
it("should handle large amounts", async () => {
|
51
|
-
const transaction = (
|
52
|
-
.
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
54
|
+
const transaction = (
|
55
|
+
await TransferBuilder.new()
|
56
|
+
.value(fixtureTransferLargeAmount.data.value)
|
57
|
+
.to(fixtureTransferLargeAmount.data.to)
|
58
|
+
.nonce(fixtureTransferLargeAmount.data.nonce)
|
59
|
+
.gasPrice(fixtureTransferLargeAmount.data.gasPrice)
|
60
|
+
.gas(fixtureTransferLargeAmount.data.gas)
|
61
|
+
.network(fixtureTransferLargeAmount.data.network)
|
62
|
+
.sign(identityFixture.passphrase)
|
63
|
+
).transaction;
|
59
64
|
|
60
65
|
expect(transaction.data.gasPrice).toBe(fixtureTransferLargeAmount.data.gasPrice);
|
61
66
|
expect(transaction.data.nonce).toBe(fixtureTransferLargeAmount.data.nonce);
|
62
67
|
expect(transaction.data.network).toBe(fixtureTransferLargeAmount.data.network);
|
63
|
-
expect(transaction.data.
|
64
|
-
expect(transaction.data.
|
68
|
+
expect(transaction.data.gas).toBe(fixtureTransferLargeAmount.data.gas);
|
69
|
+
expect(transaction.data.to).toBe(fixtureTransferLargeAmount.data.to);
|
65
70
|
expect(transaction.data.value).toBe(fixtureTransferLargeAmount.data.value);
|
66
71
|
expect(transaction.data.v).toBe(fixtureTransferLargeAmount.data.v);
|
67
72
|
expect(transaction.data.r).toBe(fixtureTransferLargeAmount.data.r);
|
68
73
|
expect(transaction.data.s).toBe(fixtureTransferLargeAmount.data.s);
|
69
|
-
expect(transaction.data.
|
74
|
+
expect(transaction.data.hash).toBe(fixtureTransferLargeAmount.data.hash);
|
70
75
|
|
71
76
|
expect(transaction.serialize().toString("hex")).toEqual(fixtureTransferLargeAmount.serialized);
|
72
77
|
expect(transaction.verify()).toBe(true);
|
73
78
|
});
|
79
|
+
|
80
|
+
it("should handle a bignumber value", async () => {
|
81
|
+
const transaction = (
|
82
|
+
await TransferBuilder.new()
|
83
|
+
.value(UnitConverter.parseUnits(fixture.data.value, "wei"))
|
84
|
+
.to(fixture.data.to)
|
85
|
+
.nonce(fixture.data.nonce)
|
86
|
+
.gasPrice(UnitConverter.parseUnits(fixture.data.gasPrice, "wei"))
|
87
|
+
.gas(UnitConverter.parseUnits(fixture.data.gas, "wei"))
|
88
|
+
.network(fixture.data.network)
|
89
|
+
.sign(identityFixture.passphrase)
|
90
|
+
).transaction;
|
91
|
+
|
92
|
+
expect(transaction.data.gasPrice).toBe(fixture.data.gasPrice);
|
93
|
+
expect(transaction.data.nonce).toBe(fixture.data.nonce);
|
94
|
+
expect(transaction.data.network).toBe(fixture.data.network);
|
95
|
+
expect(transaction.data.gas).toBe(fixture.data.gas);
|
96
|
+
expect(transaction.data.to).toBe(fixture.data.to);
|
97
|
+
expect(transaction.data.value).toBe(fixture.data.value);
|
98
|
+
expect(transaction.data.v).toBe(fixture.data.v);
|
99
|
+
expect(transaction.data.r).toBe(fixture.data.r);
|
100
|
+
expect(transaction.data.s).toBe(fixture.data.s);
|
101
|
+
expect(transaction.data.hash).toBe(fixture.data.hash);
|
102
|
+
|
103
|
+
expect(transaction.serialize().toString("hex")).toEqual(fixture.serialized);
|
104
|
+
expect(transaction.verify()).toBe(true);
|
105
|
+
});
|
106
|
+
|
107
|
+
it("should verify", async () => {
|
108
|
+
const transaction = await TransferBuilder.new({ ...fixture.data }).sign(identityFixture.passphrase);
|
109
|
+
|
110
|
+
expect(transaction.verify()).toBe(true);
|
111
|
+
});
|
112
|
+
|
113
|
+
it("should convert to an array", async () => {
|
114
|
+
const transaction = await TransferBuilder.new({ ...fixture.data }).sign(identityFixture.passphrase);
|
115
|
+
|
116
|
+
expect(transaction.toObject()).toEqual({
|
117
|
+
data: fixture.data.data,
|
118
|
+
to: fixture.data.to,
|
119
|
+
value: fixture.data.value,
|
120
|
+
gasPrice: fixture.data.gasPrice,
|
121
|
+
gas: fixture.data.gas,
|
122
|
+
network: fixture.data.network,
|
123
|
+
nonce: fixture.data.nonce,
|
124
|
+
v: fixture.data.v,
|
125
|
+
r: fixture.data.r,
|
126
|
+
s: fixture.data.s,
|
127
|
+
senderPublicKey: fixture.data.senderPublicKey,
|
128
|
+
hash: fixture.data.hash,
|
129
|
+
});
|
130
|
+
});
|
131
|
+
|
132
|
+
it("should convert to json", async () => {
|
133
|
+
const transaction = await TransferBuilder.new({ ...fixture.data }).sign(identityFixture.passphrase);
|
134
|
+
|
135
|
+
expect(transaction.toJson()).toEqual(
|
136
|
+
JSON.stringify({
|
137
|
+
gasPrice: fixture.data.gasPrice,
|
138
|
+
network: fixture.data.network,
|
139
|
+
hash: fixture.data.hash,
|
140
|
+
gas: fixture.data.gas,
|
141
|
+
nonce: fixture.data.nonce,
|
142
|
+
senderPublicKey: fixture.data.senderPublicKey,
|
143
|
+
to: fixture.data.to,
|
144
|
+
value: fixture.data.value,
|
145
|
+
data: fixture.data.data,
|
146
|
+
r: fixture.data.r,
|
147
|
+
s: fixture.data.s,
|
148
|
+
v: fixture.data.v,
|
149
|
+
}),
|
150
|
+
);
|
151
|
+
});
|
152
|
+
|
153
|
+
it("should convert to string", async () => {
|
154
|
+
const transaction = await TransferBuilder.new({ ...fixture.data }).sign(identityFixture.passphrase);
|
155
|
+
|
156
|
+
expect(transaction.toString()).toEqual(
|
157
|
+
JSON.stringify({
|
158
|
+
gasPrice: fixture.data.gasPrice,
|
159
|
+
network: fixture.data.network,
|
160
|
+
hash: fixture.data.hash,
|
161
|
+
gas: fixture.data.gas,
|
162
|
+
nonce: fixture.data.nonce,
|
163
|
+
senderPublicKey: fixture.data.senderPublicKey,
|
164
|
+
to: fixture.data.to,
|
165
|
+
value: fixture.data.value,
|
166
|
+
data: fixture.data.data,
|
167
|
+
r: fixture.data.r,
|
168
|
+
s: fixture.data.s,
|
169
|
+
v: fixture.data.v,
|
170
|
+
}),
|
171
|
+
);
|
172
|
+
});
|
@@ -8,7 +8,7 @@ it("should build a transaction", async () => {
|
|
8
8
|
await UnvoteBuilder.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,32 +16,99 @@ 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 UnvoteBuilder.new(fixture.data).sign(identityFixture.passphrase)).transaction;
|
32
|
+
const transaction = (await UnvoteBuilder.new({ ...fixture.data }).sign(identityFixture.passphrase)).transaction;
|
33
33
|
|
34
34
|
expect(transaction.data.gasPrice).toBe(fixture.data.gasPrice);
|
35
35
|
expect(transaction.data.nonce).toBe(fixture.data.nonce);
|
36
36
|
expect(transaction.data.network).toBe(fixture.data.network);
|
37
|
-
expect(transaction.data.
|
38
|
-
expect(transaction.data.
|
37
|
+
expect(transaction.data.gas).toBe(fixture.data.gas);
|
38
|
+
expect(transaction.data.to).toBe(fixture.data.to);
|
39
39
|
expect(transaction.data.value).toBe(fixture.data.value);
|
40
40
|
expect(transaction.data.v).toBe(fixture.data.v);
|
41
41
|
expect(transaction.data.r).toBe(fixture.data.r);
|
42
42
|
expect(transaction.data.s).toBe(fixture.data.s);
|
43
|
-
expect(transaction.data.
|
43
|
+
expect(transaction.data.hash).toBe(fixture.data.hash);
|
44
44
|
|
45
45
|
expect(transaction.serialize().toString("hex")).toEqual(fixture.serialized);
|
46
46
|
expect(transaction.verify()).toBe(true);
|
47
47
|
});
|
48
|
+
|
49
|
+
it("should verify", async () => {
|
50
|
+
const transaction = await UnvoteBuilder.new({ ...fixture.data }).sign(identityFixture.passphrase);
|
51
|
+
|
52
|
+
expect(transaction.verify()).toBe(true);
|
53
|
+
});
|
54
|
+
|
55
|
+
it("should convert to an array", async () => {
|
56
|
+
const transaction = await UnvoteBuilder.new({ ...fixture.data }).sign(identityFixture.passphrase);
|
57
|
+
|
58
|
+
expect(transaction.toObject()).toEqual({
|
59
|
+
data: fixture.data.data,
|
60
|
+
to: fixture.data.to,
|
61
|
+
value: fixture.data.value,
|
62
|
+
gasPrice: fixture.data.gasPrice,
|
63
|
+
gas: fixture.data.gas,
|
64
|
+
network: fixture.data.network,
|
65
|
+
nonce: fixture.data.nonce,
|
66
|
+
v: fixture.data.v,
|
67
|
+
r: fixture.data.r,
|
68
|
+
s: fixture.data.s,
|
69
|
+
senderPublicKey: fixture.data.senderPublicKey,
|
70
|
+
hash: fixture.data.hash,
|
71
|
+
});
|
72
|
+
});
|
73
|
+
|
74
|
+
it("should convert to json", async () => {
|
75
|
+
const transaction = await UnvoteBuilder.new({ ...fixture.data }).sign(identityFixture.passphrase);
|
76
|
+
|
77
|
+
expect(transaction.toJson()).toEqual(
|
78
|
+
JSON.stringify({
|
79
|
+
gasPrice: fixture.data.gasPrice,
|
80
|
+
network: fixture.data.network,
|
81
|
+
hash: fixture.data.hash,
|
82
|
+
gas: fixture.data.gas,
|
83
|
+
nonce: fixture.data.nonce,
|
84
|
+
senderPublicKey: fixture.data.senderPublicKey,
|
85
|
+
to: fixture.data.to,
|
86
|
+
value: fixture.data.value,
|
87
|
+
data: fixture.data.data,
|
88
|
+
r: fixture.data.r,
|
89
|
+
s: fixture.data.s,
|
90
|
+
v: fixture.data.v,
|
91
|
+
}),
|
92
|
+
);
|
93
|
+
});
|
94
|
+
|
95
|
+
it("should convert to string", async () => {
|
96
|
+
const transaction = await UnvoteBuilder.new({ ...fixture.data }).sign(identityFixture.passphrase);
|
97
|
+
|
98
|
+
expect(transaction.toString()).toEqual(
|
99
|
+
JSON.stringify({
|
100
|
+
gasPrice: fixture.data.gasPrice,
|
101
|
+
network: fixture.data.network,
|
102
|
+
hash: fixture.data.hash,
|
103
|
+
gas: fixture.data.gas,
|
104
|
+
nonce: fixture.data.nonce,
|
105
|
+
senderPublicKey: fixture.data.senderPublicKey,
|
106
|
+
to: fixture.data.to,
|
107
|
+
value: fixture.data.value,
|
108
|
+
data: fixture.data.data,
|
109
|
+
r: fixture.data.r,
|
110
|
+
s: fixture.data.s,
|
111
|
+
v: fixture.data.v,
|
112
|
+
}),
|
113
|
+
);
|
114
|
+
});
|
@@ -10,7 +10,7 @@ it("should build a transaction", async () => {
|
|
10
10
|
.username("fixture")
|
11
11
|
.nonce(fixture.data.nonce)
|
12
12
|
.gasPrice(fixture.data.gasPrice)
|
13
|
-
.
|
13
|
+
.gas(fixture.data.gas)
|
14
14
|
.network(fixture.data.network)
|
15
15
|
.sign(identityFixture.passphrase)
|
16
16
|
).transaction;
|
@@ -18,32 +18,32 @@ it("should build a transaction", async () => {
|
|
18
18
|
expect(transaction.data.gasPrice).toBe(fixture.data.gasPrice);
|
19
19
|
expect(transaction.data.nonce).toBe(fixture.data.nonce);
|
20
20
|
expect(transaction.data.network).toBe(fixture.data.network);
|
21
|
-
expect(transaction.data.
|
22
|
-
expect(transaction.data.
|
21
|
+
expect(transaction.data.gas).toBe(fixture.data.gas);
|
22
|
+
expect(transaction.data.to).toBe(fixture.data.to);
|
23
23
|
expect(transaction.data.value).toBe(fixture.data.value);
|
24
24
|
expect(transaction.data.v).toBe(fixture.data.v);
|
25
25
|
expect(transaction.data.r).toBe(fixture.data.r);
|
26
26
|
expect(transaction.data.s).toBe(fixture.data.s);
|
27
|
-
expect(transaction.data.
|
27
|
+
expect(transaction.data.hash).toBe(fixture.data.hash);
|
28
28
|
|
29
29
|
expect(transaction.serialize().toString("hex")).toEqual(fixture.serialized);
|
30
30
|
expect(transaction.verify()).toBe(true);
|
31
31
|
});
|
32
32
|
|
33
33
|
it("should sign a transaction", async () => {
|
34
|
-
const transaction = (await UsernameRegistrationBuilder.new(fixture.data).sign(identityFixture.passphrase))
|
34
|
+
const transaction = (await UsernameRegistrationBuilder.new({ ...fixture.data }).sign(identityFixture.passphrase))
|
35
35
|
.transaction;
|
36
36
|
|
37
37
|
expect(transaction.data.gasPrice).toBe(fixture.data.gasPrice);
|
38
38
|
expect(transaction.data.nonce).toBe(fixture.data.nonce);
|
39
39
|
expect(transaction.data.network).toBe(fixture.data.network);
|
40
|
-
expect(transaction.data.
|
41
|
-
expect(transaction.data.
|
40
|
+
expect(transaction.data.gas).toBe(fixture.data.gas);
|
41
|
+
expect(transaction.data.to).toBe(fixture.data.to);
|
42
42
|
expect(transaction.data.value).toBe(fixture.data.value);
|
43
43
|
expect(transaction.data.v).toBe(fixture.data.v);
|
44
44
|
expect(transaction.data.r).toBe(fixture.data.r);
|
45
45
|
expect(transaction.data.s).toBe(fixture.data.s);
|
46
|
-
expect(transaction.data.
|
46
|
+
expect(transaction.data.hash).toBe(fixture.data.hash);
|
47
47
|
|
48
48
|
expect(transaction.serialize().toString("hex")).toEqual(fixture.serialized);
|
49
49
|
expect(transaction.verify()).toBe(true);
|
@@ -52,3 +52,70 @@ it("should sign a transaction", async () => {
|
|
52
52
|
it("should throw if username is invalid", async () => {
|
53
53
|
expect(() => UsernameRegistrationBuilder.new().username("invalid.username.too.long")).toThrow();
|
54
54
|
});
|
55
|
+
|
56
|
+
it("should verify", async () => {
|
57
|
+
const transaction = await UsernameRegistrationBuilder.new({ ...fixture.data }).sign(identityFixture.passphrase);
|
58
|
+
|
59
|
+
expect(transaction.verify()).toBe(true);
|
60
|
+
});
|
61
|
+
|
62
|
+
it("should convert to an array", async () => {
|
63
|
+
const transaction = await UsernameRegistrationBuilder.new({ ...fixture.data }).sign(identityFixture.passphrase);
|
64
|
+
|
65
|
+
expect(transaction.toObject()).toEqual({
|
66
|
+
data: fixture.data.data,
|
67
|
+
to: fixture.data.to,
|
68
|
+
value: fixture.data.value,
|
69
|
+
gasPrice: fixture.data.gasPrice,
|
70
|
+
gas: fixture.data.gas,
|
71
|
+
network: fixture.data.network,
|
72
|
+
nonce: fixture.data.nonce,
|
73
|
+
v: fixture.data.v,
|
74
|
+
r: fixture.data.r,
|
75
|
+
s: fixture.data.s,
|
76
|
+
senderPublicKey: fixture.data.senderPublicKey,
|
77
|
+
hash: fixture.data.hash,
|
78
|
+
});
|
79
|
+
});
|
80
|
+
|
81
|
+
it("should convert to json", async () => {
|
82
|
+
const transaction = await UsernameRegistrationBuilder.new({ ...fixture.data }).sign(identityFixture.passphrase);
|
83
|
+
|
84
|
+
expect(transaction.toJson()).toEqual(
|
85
|
+
JSON.stringify({
|
86
|
+
gasPrice: fixture.data.gasPrice,
|
87
|
+
network: fixture.data.network,
|
88
|
+
hash: fixture.data.hash,
|
89
|
+
gas: fixture.data.gas,
|
90
|
+
nonce: fixture.data.nonce,
|
91
|
+
senderPublicKey: fixture.data.senderPublicKey,
|
92
|
+
to: fixture.data.to,
|
93
|
+
value: fixture.data.value,
|
94
|
+
data: fixture.data.data,
|
95
|
+
r: fixture.data.r,
|
96
|
+
s: fixture.data.s,
|
97
|
+
v: fixture.data.v,
|
98
|
+
}),
|
99
|
+
);
|
100
|
+
});
|
101
|
+
|
102
|
+
it("should convert to string", async () => {
|
103
|
+
const transaction = await UsernameRegistrationBuilder.new({ ...fixture.data }).sign(identityFixture.passphrase);
|
104
|
+
|
105
|
+
expect(transaction.toString()).toEqual(
|
106
|
+
JSON.stringify({
|
107
|
+
gasPrice: fixture.data.gasPrice,
|
108
|
+
network: fixture.data.network,
|
109
|
+
hash: fixture.data.hash,
|
110
|
+
gas: fixture.data.gas,
|
111
|
+
nonce: fixture.data.nonce,
|
112
|
+
senderPublicKey: fixture.data.senderPublicKey,
|
113
|
+
to: fixture.data.to,
|
114
|
+
value: fixture.data.value,
|
115
|
+
data: fixture.data.data,
|
116
|
+
r: fixture.data.r,
|
117
|
+
s: fixture.data.s,
|
118
|
+
v: fixture.data.v,
|
119
|
+
}),
|
120
|
+
);
|
121
|
+
});
|