@arkecosystem/typescript-crypto 0.0.4 → 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.
Files changed (196) hide show
  1. package/.github/workflows/ci.yml +23 -23
  2. package/.github/workflows/format.yml +80 -0
  3. package/.github/workflows/publish.yml +1 -1
  4. package/.prettierrc.json +8 -0
  5. package/dist/enums/ContractAbiType.d.ts.map +1 -1
  6. package/dist/exceptions/index.d.ts.map +1 -1
  7. package/dist/identities/PrivateKey.d.ts +2 -2
  8. package/dist/identities/PrivateKey.d.ts.map +1 -1
  9. package/dist/identities/PrivateKey.js +1 -1
  10. package/dist/identities/WIF.d.ts.map +1 -1
  11. package/dist/identities/WIF.js +2 -2
  12. package/dist/index.js +532 -627
  13. package/dist/networks/AbstractNetwork.d.ts +1 -1
  14. package/dist/networks/AbstractNetwork.d.ts.map +1 -1
  15. package/dist/networks/Mainnet.d.ts +1 -1
  16. package/dist/networks/Mainnet.d.ts.map +1 -1
  17. package/dist/networks/Mainnet.js +1 -1
  18. package/dist/networks/Testnet.d.ts +1 -1
  19. package/dist/networks/Testnet.d.ts.map +1 -1
  20. package/dist/networks/Testnet.js +1 -1
  21. package/dist/transactions/Deserializer.d.ts +5 -5
  22. package/dist/transactions/Deserializer.d.ts.map +1 -1
  23. package/dist/transactions/Deserializer.js +18 -18
  24. package/dist/transactions/Serializer.d.ts +0 -1
  25. package/dist/transactions/Serializer.d.ts.map +1 -1
  26. package/dist/transactions/Serializer.js +0 -3
  27. package/dist/transactions/builders/AbstractTransactionBuilder.d.ts +7 -6
  28. package/dist/transactions/builders/AbstractTransactionBuilder.d.ts.map +1 -1
  29. package/dist/transactions/builders/AbstractTransactionBuilder.js +15 -8
  30. package/dist/transactions/builders/EvmCallBuilder.d.ts +3 -3
  31. package/dist/transactions/builders/EvmCallBuilder.d.ts.map +1 -1
  32. package/dist/transactions/builders/MultipaymentBuilder.d.ts +5 -4
  33. package/dist/transactions/builders/MultipaymentBuilder.d.ts.map +1 -1
  34. package/dist/transactions/builders/MultipaymentBuilder.js +6 -2
  35. package/dist/transactions/builders/TransferBuilder.d.ts +4 -3
  36. package/dist/transactions/builders/TransferBuilder.d.ts.map +1 -1
  37. package/dist/transactions/builders/TransferBuilder.js +4 -0
  38. package/dist/transactions/builders/UnvoteBuilder.d.ts +3 -3
  39. package/dist/transactions/builders/UnvoteBuilder.d.ts.map +1 -1
  40. package/dist/transactions/builders/UnvoteBuilder.js +1 -1
  41. package/dist/transactions/builders/UsernameRegistrationBuilder.d.ts +3 -3
  42. package/dist/transactions/builders/UsernameRegistrationBuilder.d.ts.map +1 -1
  43. package/dist/transactions/builders/UsernameRegistrationBuilder.js +1 -1
  44. package/dist/transactions/builders/UsernameResignationBuilder.d.ts +3 -3
  45. package/dist/transactions/builders/UsernameResignationBuilder.d.ts.map +1 -1
  46. package/dist/transactions/builders/UsernameResignationBuilder.js +1 -1
  47. package/dist/transactions/builders/ValidatorRegistrationBuilder.d.ts +3 -3
  48. package/dist/transactions/builders/ValidatorRegistrationBuilder.d.ts.map +1 -1
  49. package/dist/transactions/builders/ValidatorRegistrationBuilder.js +1 -1
  50. package/dist/transactions/builders/ValidatorResignationBuilder.d.ts +3 -3
  51. package/dist/transactions/builders/ValidatorResignationBuilder.d.ts.map +1 -1
  52. package/dist/transactions/builders/ValidatorResignationBuilder.js +1 -1
  53. package/dist/transactions/builders/VoteBuilder.d.ts +3 -3
  54. package/dist/transactions/builders/VoteBuilder.d.ts.map +1 -1
  55. package/dist/transactions/builders/VoteBuilder.js +1 -1
  56. package/dist/transactions/types/AbstractTransaction.d.ts +2 -5
  57. package/dist/transactions/types/AbstractTransaction.d.ts.map +1 -1
  58. package/dist/transactions/types/AbstractTransaction.js +13 -15
  59. package/dist/transactions/types/EvmCall.d.ts +0 -3
  60. package/dist/transactions/types/EvmCall.d.ts.map +1 -1
  61. package/dist/transactions/types/EvmCall.js +0 -8
  62. package/dist/transactions/types/Multipayment.d.ts +1 -3
  63. package/dist/transactions/types/Multipayment.d.ts.map +1 -1
  64. package/dist/transactions/types/Multipayment.js +1 -8
  65. package/dist/transactions/types/Transfer.d.ts +0 -3
  66. package/dist/transactions/types/Transfer.d.ts.map +1 -1
  67. package/dist/transactions/types/Transfer.js +0 -8
  68. package/dist/transactions/types/Unvote.d.ts +0 -3
  69. package/dist/transactions/types/Unvote.d.ts.map +1 -1
  70. package/dist/transactions/types/Unvote.js +0 -8
  71. package/dist/transactions/types/UsernameRegistration.d.ts +1 -3
  72. package/dist/transactions/types/UsernameRegistration.d.ts.map +1 -1
  73. package/dist/transactions/types/UsernameRegistration.js +0 -7
  74. package/dist/transactions/types/UsernameResignation.d.ts +0 -3
  75. package/dist/transactions/types/UsernameResignation.d.ts.map +1 -1
  76. package/dist/transactions/types/UsernameResignation.js +0 -7
  77. package/dist/transactions/types/ValidatorRegistration.d.ts +1 -3
  78. package/dist/transactions/types/ValidatorRegistration.d.ts.map +1 -1
  79. package/dist/transactions/types/ValidatorRegistration.js +0 -8
  80. package/dist/transactions/types/ValidatorResignation.d.ts +0 -3
  81. package/dist/transactions/types/ValidatorResignation.d.ts.map +1 -1
  82. package/dist/transactions/types/ValidatorResignation.js +0 -8
  83. package/dist/transactions/types/Vote.d.ts +1 -3
  84. package/dist/transactions/types/Vote.d.ts.map +1 -1
  85. package/dist/transactions/types/Vote.js +0 -8
  86. package/dist/types.d.ts +19 -19
  87. package/dist/types.d.ts.map +1 -1
  88. package/dist/utils/Abi/ArgumentDecoder.js +6 -6
  89. package/dist/utils/Abi/json/Abi.Consensus.json +15 -45
  90. package/dist/utils/Abi/json/Abi.Usernames.json +9 -27
  91. package/dist/utils/AbiDecoder.d.ts.map +1 -1
  92. package/dist/utils/AbiDecoder.js +3 -0
  93. package/dist/utils/AbiEncoder.d.ts +1 -1
  94. package/dist/utils/AbiEncoder.d.ts.map +1 -1
  95. package/dist/utils/AbiEncoder.js +2 -1
  96. package/dist/utils/Message.d.ts +1 -1
  97. package/dist/utils/Message.d.ts.map +1 -1
  98. package/dist/utils/Message.js +1 -1
  99. package/dist/utils/TransactionUtils.d.ts +0 -1
  100. package/dist/utils/TransactionUtils.d.ts.map +1 -1
  101. package/dist/utils/TransactionUtils.js +15 -18
  102. package/dist/utils/UnitConverter.d.ts.map +1 -1
  103. package/dist/utils/UnitConverter.js +12 -12
  104. package/eslint.config.mjs +19 -0
  105. package/jest.config.ts +6 -6
  106. package/package.json +6 -2
  107. package/src/enums/Constants.ts +1 -1
  108. package/src/enums/ContractAbiType.ts +4 -4
  109. package/src/exceptions/index.ts +1 -1
  110. package/src/identities/PrivateKey.ts +3 -3
  111. package/src/identities/WIF.ts +2 -3
  112. package/src/networks/AbstractNetwork.ts +3 -3
  113. package/src/networks/Mainnet.ts +3 -3
  114. package/src/networks/Testnet.ts +1 -1
  115. package/src/transactions/Deserializer.ts +39 -30
  116. package/src/transactions/Serializer.ts +1 -5
  117. package/src/transactions/builders/AbstractTransactionBuilder.ts +20 -11
  118. package/src/transactions/builders/EvmCallBuilder.ts +3 -3
  119. package/src/transactions/builders/MultipaymentBuilder.ts +13 -6
  120. package/src/transactions/builders/TransferBuilder.ts +8 -3
  121. package/src/transactions/builders/UnvoteBuilder.ts +4 -4
  122. package/src/transactions/builders/UsernameRegistrationBuilder.ts +4 -4
  123. package/src/transactions/builders/UsernameResignationBuilder.ts +4 -4
  124. package/src/transactions/builders/ValidatorRegistrationBuilder.ts +4 -4
  125. package/src/transactions/builders/ValidatorResignationBuilder.ts +4 -4
  126. package/src/transactions/builders/VoteBuilder.ts +4 -4
  127. package/src/transactions/types/AbstractTransaction.ts +17 -24
  128. package/src/transactions/types/EvmCall.ts +0 -15
  129. package/src/transactions/types/Multipayment.ts +3 -15
  130. package/src/transactions/types/Transfer.ts +0 -15
  131. package/src/transactions/types/Unvote.ts +0 -15
  132. package/src/transactions/types/UsernameRegistration.ts +1 -13
  133. package/src/transactions/types/UsernameResignation.ts +0 -14
  134. package/src/transactions/types/ValidatorRegistration.ts +1 -14
  135. package/src/transactions/types/ValidatorResignation.ts +0 -15
  136. package/src/transactions/types/Vote.ts +1 -14
  137. package/src/types.ts +19 -19
  138. package/src/utils/Abi/ArgumentDecoder.ts +6 -6
  139. package/src/utils/Abi/json/Abi.Consensus.json +1641 -1671
  140. package/src/utils/Abi/json/Abi.Multipayment.json +108 -108
  141. package/src/utils/Abi/json/Abi.Usernames.json +880 -898
  142. package/src/utils/AbiBase.ts +1 -1
  143. package/src/utils/AbiDecoder.ts +6 -3
  144. package/src/utils/AbiEncoder.ts +3 -2
  145. package/src/utils/Message.ts +1 -1
  146. package/src/utils/TransactionUtils.ts +24 -28
  147. package/src/utils/UnitConverter.ts +29 -29
  148. package/tests/fixtures/global.json +4 -4
  149. package/tests/fixtures/identity.json +10 -10
  150. package/tests/fixtures/transactions/evm-sign.json +4 -4
  151. package/tests/fixtures/transactions/multipayment-empty.json +4 -4
  152. package/tests/fixtures/transactions/multipayment-single.json +4 -4
  153. package/tests/fixtures/transactions/multipayment.json +4 -4
  154. package/tests/fixtures/transactions/transfer-0.json +4 -4
  155. package/tests/fixtures/transactions/transfer-large-amount.json +4 -4
  156. package/tests/fixtures/transactions/transfer.json +4 -4
  157. package/tests/fixtures/transactions/unvote.json +4 -4
  158. package/tests/fixtures/transactions/username-registration.json +4 -4
  159. package/tests/fixtures/transactions/username-resignation.json +4 -4
  160. package/tests/fixtures/transactions/validator-registration.json +4 -4
  161. package/tests/fixtures/transactions/validator-resignation.json +4 -4
  162. package/tests/fixtures/transactions/vote.json +4 -4
  163. package/tests/unit/configuration/Network.test.ts +52 -0
  164. package/tests/unit/identities/Address.test.ts +4 -4
  165. package/tests/unit/identities/PrivateKey.test.ts +5 -5
  166. package/tests/unit/identities/PublicKey.test.ts +9 -9
  167. package/tests/unit/identities/WIF.test.ts +1 -1
  168. package/tests/unit/transactions/Deserializer.test.ts +81 -63
  169. package/tests/unit/transactions/Serializer.test.ts +11 -1
  170. package/tests/unit/transactions/builders/EvmCallBuilder.test.ts +76 -9
  171. package/tests/unit/transactions/builders/MultipaymentBuilder.test.ts +125 -17
  172. package/tests/unit/transactions/builders/TransferBuilder.test.ts +146 -47
  173. package/tests/unit/transactions/builders/UnvoteBuilder.test.ts +75 -8
  174. package/tests/unit/transactions/builders/UsernameRegistrationBuilder.test.ts +75 -8
  175. package/tests/unit/transactions/builders/UsernameResignationBuilder.test.ts +75 -8
  176. package/tests/unit/transactions/builders/ValidatorRegistrationBuilder.test.ts +79 -12
  177. package/tests/unit/transactions/builders/ValidatorResignationBuilder.test.ts +75 -8
  178. package/tests/unit/transactions/builders/VoteBuilder.test.ts +75 -8
  179. package/tests/unit/transactions/types/AbstractTransaction.test.ts +27 -30
  180. package/tests/unit/transactions/types/EvmCall.test.ts +22 -0
  181. package/tests/unit/transactions/types/Multipayment.test.ts +38 -0
  182. package/tests/unit/transactions/types/Transfer.test.ts +18 -0
  183. package/tests/unit/transactions/types/Unvote.test.ts +18 -0
  184. package/tests/unit/transactions/types/UsernameRegistration.test.ts +22 -0
  185. package/tests/unit/transactions/types/UsernameResignation.test.ts +18 -0
  186. package/tests/unit/transactions/types/ValidatorRegistration.test.ts +22 -0
  187. package/tests/unit/transactions/types/ValidatorResignation.test.ts +18 -0
  188. package/tests/unit/transactions/types/Vote.test.ts +20 -0
  189. package/tests/unit/utils/Abi/ArgumentDecoder.test.ts +17 -16
  190. package/tests/unit/utils/AbiEncoder.test.ts +2 -2
  191. package/tests/unit/utils/Message.test.ts +1 -1
  192. package/tests/unit/utils/TransactionUtils.test.ts +1 -5
  193. package/tests/unit/utils/UnitConverter.test.ts +81 -47
  194. package/tsconfig.json +1 -1
  195. package/.eslintrc.js +0 -12
  196. 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
- .gasLimit(fixture.data.gasLimit)
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.gasLimit).toBe(fixture.data.gasLimit);
23
- expect(transaction.data.recipientAddress).toBe(fixture.data.recipientAddress);
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.id).toBe(fixture.data.id);
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)).transaction;
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.gasLimit).toBe(fixture.data.gasLimit);
41
- expect(transaction.data.recipientAddress).toBe(fixture.data.recipientAddress);
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.id).toBe(fixture.data.id);
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
- .gasLimit(fixtureSingle.data.gasLimit)
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.gasLimit).toBe(fixtureSingle.data.gasLimit);
66
- expect(transaction.data.recipientAddress).toBe(fixtureSingle.data.recipientAddress);
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.id).toBe(fixtureSingle.data.id);
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
- .gasLimit(fixtureEmpty.data.gasLimit)
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.gasLimit).toBe(fixtureEmpty.data.gasLimit);
90
- expect(transaction.data.recipientAddress).toBe(fixtureEmpty.data.recipientAddress);
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.id).toBe(fixtureEmpty.data.id);
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 fixtureTransfer from "@tests/fixtures/transactions/transfer.json";
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 = (await TransferBuilder.new()
9
- .value(fixtureTransfer.data.value)
10
- .recipientAddress(fixtureTransfer.data.recipientAddress)
11
- .nonce(fixtureTransfer.data.nonce)
12
- .gasPrice(fixtureTransfer.data.gasPrice)
13
- .gasLimit(fixtureTransfer.data.gasLimit)
14
- .network(fixtureTransfer.data.network)
15
- .sign(identityFixture.passphrase)).transaction;
16
-
17
- expect(transaction.data.gasPrice).toBe(fixtureTransfer.data.gasPrice);
18
- expect(transaction.data.nonce).toBe(fixtureTransfer.data.nonce);
19
- expect(transaction.data.network).toBe(fixtureTransfer.data.network);
20
- expect(transaction.data.gasLimit).toBe(fixtureTransfer.data.gasLimit);
21
- expect(transaction.data.recipientAddress).toBe(fixtureTransfer.data.recipientAddress);
22
- expect(transaction.data.value).toBe(fixtureTransfer.data.value);
23
- expect(transaction.data.v).toBe(fixtureTransfer.data.v);
24
- expect(transaction.data.r).toBe(fixtureTransfer.data.r);
25
- expect(transaction.data.s).toBe(fixtureTransfer.data.s);
26
- expect(transaction.data.id).toBe(fixtureTransfer.data.id);
27
-
28
- expect(transaction.serialize().toString("hex")).toEqual(fixtureTransfer.serialized);
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(fixtureTransfer.data).sign(identityFixture.passphrase)).transaction;
34
-
35
- expect(transaction.data.gasPrice).toBe(fixtureTransfer.data.gasPrice);
36
- expect(transaction.data.nonce).toBe(fixtureTransfer.data.nonce);
37
- expect(transaction.data.network).toBe(fixtureTransfer.data.network);
38
- expect(transaction.data.gasLimit).toBe(fixtureTransfer.data.gasLimit);
39
- expect(transaction.data.recipientAddress).toBe(fixtureTransfer.data.recipientAddress);
40
- expect(transaction.data.value).toBe(fixtureTransfer.data.value);
41
- expect(transaction.data.v).toBe(fixtureTransfer.data.v);
42
- expect(transaction.data.r).toBe(fixtureTransfer.data.r);
43
- expect(transaction.data.s).toBe(fixtureTransfer.data.s);
44
- expect(transaction.data.id).toBe(fixtureTransfer.data.id);
45
-
46
- expect(transaction.serialize().toString("hex")).toEqual(fixtureTransfer.serialized);
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 = (await TransferBuilder.new()
52
- .value(fixtureTransferLargeAmount.data.value)
53
- .recipientAddress(fixtureTransferLargeAmount.data.recipientAddress)
54
- .nonce(fixtureTransferLargeAmount.data.nonce)
55
- .gasPrice(fixtureTransferLargeAmount.data.gasPrice)
56
- .gasLimit(fixtureTransferLargeAmount.data.gasLimit)
57
- .network(fixtureTransferLargeAmount.data.network)
58
- .sign(identityFixture.passphrase)).transaction;
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.gasLimit).toBe(fixtureTransferLargeAmount.data.gasLimit);
64
- expect(transaction.data.recipientAddress).toBe(fixtureTransferLargeAmount.data.recipientAddress);
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.id).toBe(fixtureTransferLargeAmount.data.id);
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
- .gasLimit(fixture.data.gasLimit)
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.gasLimit).toBe(fixture.data.gasLimit);
20
- expect(transaction.data.recipientAddress).toBe(fixture.data.recipientAddress);
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.id).toBe(fixture.data.id);
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.gasLimit).toBe(fixture.data.gasLimit);
38
- expect(transaction.data.recipientAddress).toBe(fixture.data.recipientAddress);
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.id).toBe(fixture.data.id);
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
- .gasLimit(fixture.data.gasLimit)
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.gasLimit).toBe(fixture.data.gasLimit);
22
- expect(transaction.data.recipientAddress).toBe(fixture.data.recipientAddress);
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.id).toBe(fixture.data.id);
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.gasLimit).toBe(fixture.data.gasLimit);
41
- expect(transaction.data.recipientAddress).toBe(fixture.data.recipientAddress);
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.id).toBe(fixture.data.id);
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
+ });