@ecency/hive-tx 7.1.0

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 (214) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +206 -0
  3. package/dist/browser/hive-tx.min.js +3 -0
  4. package/dist/browser/hive-tx.min.js.LICENSE.txt +5 -0
  5. package/dist/browser/hive-tx.min.js.map +1 -0
  6. package/dist/cjs/Transaction.d.ts +71 -0
  7. package/dist/cjs/Transaction.d.ts.map +1 -0
  8. package/dist/cjs/Transaction.js +199 -0
  9. package/dist/cjs/Transaction.js.map +1 -0
  10. package/dist/cjs/config.d.ts +37 -0
  11. package/dist/cjs/config.d.ts.map +1 -0
  12. package/dist/cjs/config.js +54 -0
  13. package/dist/cjs/config.js.map +1 -0
  14. package/dist/cjs/helpers/Asset.d.ts +21 -0
  15. package/dist/cjs/helpers/Asset.d.ts.map +1 -0
  16. package/dist/cjs/helpers/Asset.js +74 -0
  17. package/dist/cjs/helpers/Asset.js.map +1 -0
  18. package/dist/cjs/helpers/ByteBuffer.d.ts +75 -0
  19. package/dist/cjs/helpers/ByteBuffer.d.ts.map +1 -0
  20. package/dist/cjs/helpers/ByteBuffer.js +555 -0
  21. package/dist/cjs/helpers/ByteBuffer.js.map +1 -0
  22. package/dist/cjs/helpers/HexBuffer.d.ts +10 -0
  23. package/dist/cjs/helpers/HexBuffer.d.ts.map +1 -0
  24. package/dist/cjs/helpers/HexBuffer.js +33 -0
  25. package/dist/cjs/helpers/HexBuffer.js.map +1 -0
  26. package/dist/cjs/helpers/PrivateKey.d.ts +114 -0
  27. package/dist/cjs/helpers/PrivateKey.d.ts.map +1 -0
  28. package/dist/cjs/helpers/PrivateKey.js +212 -0
  29. package/dist/cjs/helpers/PrivateKey.js.map +1 -0
  30. package/dist/cjs/helpers/PublicKey.d.ts +47 -0
  31. package/dist/cjs/helpers/PublicKey.d.ts.map +1 -0
  32. package/dist/cjs/helpers/PublicKey.js +97 -0
  33. package/dist/cjs/helpers/PublicKey.js.map +1 -0
  34. package/dist/cjs/helpers/Signature.d.ts +38 -0
  35. package/dist/cjs/helpers/Signature.d.ts.map +1 -0
  36. package/dist/cjs/helpers/Signature.js +85 -0
  37. package/dist/cjs/helpers/Signature.js.map +1 -0
  38. package/dist/cjs/helpers/aes.d.ts +15 -0
  39. package/dist/cjs/helpers/aes.d.ts.map +1 -0
  40. package/dist/cjs/helpers/aes.js +87 -0
  41. package/dist/cjs/helpers/aes.js.map +1 -0
  42. package/dist/cjs/helpers/call.d.ts +119 -0
  43. package/dist/cjs/helpers/call.d.ts.map +1 -0
  44. package/dist/cjs/helpers/call.js +498 -0
  45. package/dist/cjs/helpers/call.js.map +1 -0
  46. package/dist/cjs/helpers/deserializer.d.ts +4 -0
  47. package/dist/cjs/helpers/deserializer.d.ts.map +1 -0
  48. package/dist/cjs/helpers/deserializer.js +58 -0
  49. package/dist/cjs/helpers/deserializer.js.map +1 -0
  50. package/dist/cjs/helpers/memo.d.ts +36 -0
  51. package/dist/cjs/helpers/memo.d.ts.map +1 -0
  52. package/dist/cjs/helpers/memo.js +167 -0
  53. package/dist/cjs/helpers/memo.js.map +1 -0
  54. package/dist/cjs/helpers/serializer.d.ts +14 -0
  55. package/dist/cjs/helpers/serializer.d.ts.map +1 -0
  56. package/dist/cjs/helpers/serializer.js +639 -0
  57. package/dist/cjs/helpers/serializer.js.map +1 -0
  58. package/dist/cjs/helpers/sleep.d.ts +2 -0
  59. package/dist/cjs/helpers/sleep.d.ts.map +1 -0
  60. package/dist/cjs/helpers/sleep.js +8 -0
  61. package/dist/cjs/helpers/sleep.js.map +1 -0
  62. package/dist/cjs/helpers/utils.d.ts +122 -0
  63. package/dist/cjs/helpers/utils.d.ts.map +1 -0
  64. package/dist/cjs/helpers/utils.js +202 -0
  65. package/dist/cjs/helpers/utils.js.map +1 -0
  66. package/dist/cjs/index.d.ts +10 -0
  67. package/dist/cjs/index.d.ts.map +1 -0
  68. package/dist/cjs/index.js +60 -0
  69. package/dist/cjs/index.js.map +1 -0
  70. package/dist/cjs/type_generators/types/balance.d.ts +1096 -0
  71. package/dist/cjs/type_generators/types/balance.d.ts.map +1 -0
  72. package/dist/cjs/type_generators/types/balance.js +3 -0
  73. package/dist/cjs/type_generators/types/balance.js.map +1 -0
  74. package/dist/cjs/type_generators/types/hafah.d.ts +2154 -0
  75. package/dist/cjs/type_generators/types/hafah.d.ts.map +1 -0
  76. package/dist/cjs/type_generators/types/hafah.js +3 -0
  77. package/dist/cjs/type_generators/types/hafah.js.map +1 -0
  78. package/dist/cjs/type_generators/types/hafbe.d.ts +2121 -0
  79. package/dist/cjs/type_generators/types/hafbe.d.ts.map +1 -0
  80. package/dist/cjs/type_generators/types/hafbe.js +3 -0
  81. package/dist/cjs/type_generators/types/hafbe.js.map +1 -0
  82. package/dist/cjs/type_generators/types/hafsql.d.ts +2439 -0
  83. package/dist/cjs/type_generators/types/hafsql.d.ts.map +1 -0
  84. package/dist/cjs/type_generators/types/hafsql.js +3 -0
  85. package/dist/cjs/type_generators/types/hafsql.js.map +1 -0
  86. package/dist/cjs/type_generators/types/hivemind.d.ts +202 -0
  87. package/dist/cjs/type_generators/types/hivemind.d.ts.map +1 -0
  88. package/dist/cjs/type_generators/types/hivemind.js +3 -0
  89. package/dist/cjs/type_generators/types/hivemind.js.map +1 -0
  90. package/dist/cjs/type_generators/types/hivesense.d.ts +448 -0
  91. package/dist/cjs/type_generators/types/hivesense.d.ts.map +1 -0
  92. package/dist/cjs/type_generators/types/hivesense.js +3 -0
  93. package/dist/cjs/type_generators/types/hivesense.js.map +1 -0
  94. package/dist/cjs/type_generators/types/nft-tracker.d.ts +348 -0
  95. package/dist/cjs/type_generators/types/nft-tracker.d.ts.map +1 -0
  96. package/dist/cjs/type_generators/types/nft-tracker.js +3 -0
  97. package/dist/cjs/type_generators/types/nft-tracker.js.map +1 -0
  98. package/dist/cjs/type_generators/types/reputation.d.ts +182 -0
  99. package/dist/cjs/type_generators/types/reputation.d.ts.map +1 -0
  100. package/dist/cjs/type_generators/types/reputation.js +3 -0
  101. package/dist/cjs/type_generators/types/reputation.js.map +1 -0
  102. package/dist/cjs/type_generators/types/status.d.ts +139 -0
  103. package/dist/cjs/type_generators/types/status.d.ts.map +1 -0
  104. package/dist/cjs/type_generators/types/status.js +3 -0
  105. package/dist/cjs/type_generators/types/status.js.map +1 -0
  106. package/dist/cjs/types.d.ts +415 -0
  107. package/dist/cjs/types.d.ts.map +1 -0
  108. package/dist/cjs/types.js +3 -0
  109. package/dist/cjs/types.js.map +1 -0
  110. package/dist/esm/Transaction.d.ts +71 -0
  111. package/dist/esm/Transaction.d.ts.map +1 -0
  112. package/dist/esm/Transaction.js +195 -0
  113. package/dist/esm/Transaction.js.map +1 -0
  114. package/dist/esm/config.d.ts +37 -0
  115. package/dist/esm/config.d.ts.map +1 -0
  116. package/dist/esm/config.js +51 -0
  117. package/dist/esm/config.js.map +1 -0
  118. package/dist/esm/helpers/Asset.d.ts +21 -0
  119. package/dist/esm/helpers/Asset.d.ts.map +1 -0
  120. package/dist/esm/helpers/Asset.js +70 -0
  121. package/dist/esm/helpers/Asset.js.map +1 -0
  122. package/dist/esm/helpers/ByteBuffer.d.ts +75 -0
  123. package/dist/esm/helpers/ByteBuffer.d.ts.map +1 -0
  124. package/dist/esm/helpers/ByteBuffer.js +551 -0
  125. package/dist/esm/helpers/ByteBuffer.js.map +1 -0
  126. package/dist/esm/helpers/HexBuffer.d.ts +10 -0
  127. package/dist/esm/helpers/HexBuffer.d.ts.map +1 -0
  128. package/dist/esm/helpers/HexBuffer.js +29 -0
  129. package/dist/esm/helpers/HexBuffer.js.map +1 -0
  130. package/dist/esm/helpers/PrivateKey.d.ts +114 -0
  131. package/dist/esm/helpers/PrivateKey.d.ts.map +1 -0
  132. package/dist/esm/helpers/PrivateKey.js +205 -0
  133. package/dist/esm/helpers/PrivateKey.js.map +1 -0
  134. package/dist/esm/helpers/PublicKey.d.ts +47 -0
  135. package/dist/esm/helpers/PublicKey.d.ts.map +1 -0
  136. package/dist/esm/helpers/PublicKey.js +90 -0
  137. package/dist/esm/helpers/PublicKey.js.map +1 -0
  138. package/dist/esm/helpers/Signature.d.ts +38 -0
  139. package/dist/esm/helpers/Signature.d.ts.map +1 -0
  140. package/dist/esm/helpers/Signature.js +81 -0
  141. package/dist/esm/helpers/Signature.js.map +1 -0
  142. package/dist/esm/helpers/aes.d.ts +15 -0
  143. package/dist/esm/helpers/aes.d.ts.map +1 -0
  144. package/dist/esm/helpers/aes.js +81 -0
  145. package/dist/esm/helpers/aes.js.map +1 -0
  146. package/dist/esm/helpers/call.d.ts +119 -0
  147. package/dist/esm/helpers/call.d.ts.map +1 -0
  148. package/dist/esm/helpers/call.js +490 -0
  149. package/dist/esm/helpers/call.js.map +1 -0
  150. package/dist/esm/helpers/deserializer.d.ts +4 -0
  151. package/dist/esm/helpers/deserializer.d.ts.map +1 -0
  152. package/dist/esm/helpers/deserializer.js +55 -0
  153. package/dist/esm/helpers/deserializer.js.map +1 -0
  154. package/dist/esm/helpers/memo.d.ts +36 -0
  155. package/dist/esm/helpers/memo.d.ts.map +1 -0
  156. package/dist/esm/helpers/memo.js +128 -0
  157. package/dist/esm/helpers/memo.js.map +1 -0
  158. package/dist/esm/helpers/serializer.d.ts +14 -0
  159. package/dist/esm/helpers/serializer.d.ts.map +1 -0
  160. package/dist/esm/helpers/serializer.js +636 -0
  161. package/dist/esm/helpers/serializer.js.map +1 -0
  162. package/dist/esm/helpers/sleep.d.ts +2 -0
  163. package/dist/esm/helpers/sleep.d.ts.map +1 -0
  164. package/dist/esm/helpers/sleep.js +4 -0
  165. package/dist/esm/helpers/sleep.js.map +1 -0
  166. package/dist/esm/helpers/utils.d.ts +122 -0
  167. package/dist/esm/helpers/utils.d.ts.map +1 -0
  168. package/dist/esm/helpers/utils.js +196 -0
  169. package/dist/esm/helpers/utils.js.map +1 -0
  170. package/dist/esm/index.d.ts +10 -0
  171. package/dist/esm/index.d.ts.map +1 -0
  172. package/dist/esm/index.js +11 -0
  173. package/dist/esm/index.js.map +1 -0
  174. package/dist/esm/type_generators/types/balance.d.ts +1096 -0
  175. package/dist/esm/type_generators/types/balance.d.ts.map +1 -0
  176. package/dist/esm/type_generators/types/balance.js +2 -0
  177. package/dist/esm/type_generators/types/balance.js.map +1 -0
  178. package/dist/esm/type_generators/types/hafah.d.ts +2154 -0
  179. package/dist/esm/type_generators/types/hafah.d.ts.map +1 -0
  180. package/dist/esm/type_generators/types/hafah.js +2 -0
  181. package/dist/esm/type_generators/types/hafah.js.map +1 -0
  182. package/dist/esm/type_generators/types/hafbe.d.ts +2121 -0
  183. package/dist/esm/type_generators/types/hafbe.d.ts.map +1 -0
  184. package/dist/esm/type_generators/types/hafbe.js +2 -0
  185. package/dist/esm/type_generators/types/hafbe.js.map +1 -0
  186. package/dist/esm/type_generators/types/hafsql.d.ts +2439 -0
  187. package/dist/esm/type_generators/types/hafsql.d.ts.map +1 -0
  188. package/dist/esm/type_generators/types/hafsql.js +2 -0
  189. package/dist/esm/type_generators/types/hafsql.js.map +1 -0
  190. package/dist/esm/type_generators/types/hivemind.d.ts +202 -0
  191. package/dist/esm/type_generators/types/hivemind.d.ts.map +1 -0
  192. package/dist/esm/type_generators/types/hivemind.js +2 -0
  193. package/dist/esm/type_generators/types/hivemind.js.map +1 -0
  194. package/dist/esm/type_generators/types/hivesense.d.ts +448 -0
  195. package/dist/esm/type_generators/types/hivesense.d.ts.map +1 -0
  196. package/dist/esm/type_generators/types/hivesense.js +2 -0
  197. package/dist/esm/type_generators/types/hivesense.js.map +1 -0
  198. package/dist/esm/type_generators/types/nft-tracker.d.ts +348 -0
  199. package/dist/esm/type_generators/types/nft-tracker.d.ts.map +1 -0
  200. package/dist/esm/type_generators/types/nft-tracker.js +2 -0
  201. package/dist/esm/type_generators/types/nft-tracker.js.map +1 -0
  202. package/dist/esm/type_generators/types/reputation.d.ts +182 -0
  203. package/dist/esm/type_generators/types/reputation.d.ts.map +1 -0
  204. package/dist/esm/type_generators/types/reputation.js +2 -0
  205. package/dist/esm/type_generators/types/reputation.js.map +1 -0
  206. package/dist/esm/type_generators/types/status.d.ts +139 -0
  207. package/dist/esm/type_generators/types/status.d.ts.map +1 -0
  208. package/dist/esm/type_generators/types/status.js +2 -0
  209. package/dist/esm/type_generators/types/status.js.map +1 -0
  210. package/dist/esm/types.d.ts +415 -0
  211. package/dist/esm/types.d.ts.map +1 -0
  212. package/dist/esm/types.js +2 -0
  213. package/dist/esm/types.js.map +1 -0
  214. package/package.json +83 -0
@@ -0,0 +1,195 @@
1
+ import { bytesToHex, hexToBytes } from '@noble/hashes/utils.js';
2
+ import { ByteBuffer } from './helpers/ByteBuffer';
3
+ import { Serializer } from './helpers/serializer';
4
+ import { sha256 } from '@noble/hashes/sha2.js';
5
+ import { config } from './config';
6
+ import { callRPC, callRPCBroadcast, RPCError } from './helpers/call';
7
+ import { sleep } from './helpers/sleep';
8
+ const chainId = hexToBytes(config.chain_id);
9
+ export class Transaction {
10
+ constructor(options) {
11
+ this.expiration = 60000;
12
+ /**
13
+ * Creates the transaction structure and initializes it with blockchain data.
14
+ * Retrieves current head block information and sets up reference block data.
15
+ * @private
16
+ * @param expiration Transaction expiration in milliseconds
17
+ */
18
+ this.createTransaction = async (expiration) => {
19
+ const props = await callRPC('condenser_api.get_dynamic_global_properties', []);
20
+ const bytes = hexToBytes(props.head_block_id);
21
+ const refBlockPrefix = Number(new Uint32Array(bytes.buffer, bytes.byteOffset + 4, 1)[0]);
22
+ const expirationIso = new Date(Date.now() + expiration).toISOString().slice(0, -5);
23
+ this.transaction = {
24
+ expiration: expirationIso,
25
+ extensions: [],
26
+ operations: [],
27
+ ref_block_num: props.head_block_number & 0xffff,
28
+ ref_block_prefix: refBlockPrefix,
29
+ signatures: []
30
+ };
31
+ };
32
+ if (options?.transaction) {
33
+ if (options.transaction instanceof Transaction) {
34
+ this.transaction = options.transaction.transaction;
35
+ this.expiration = options.transaction.expiration;
36
+ }
37
+ else {
38
+ this.transaction = options.transaction;
39
+ }
40
+ this.txId = this.digest().txId;
41
+ }
42
+ if (options?.expiration) {
43
+ this.expiration = options.expiration;
44
+ }
45
+ }
46
+ /**
47
+ * Adds an operation to the transaction. If no transaction exists, creates one first.
48
+ * @template O Operation name type for type safety
49
+ * @param operationName The name/type of the operation to add (e.g., 'transfer', 'vote', 'comment')
50
+ * @param operationBody The operation data/body for the specified operation type
51
+ * @returns Promise that resolves when the operation is added
52
+ * @throws Error if transaction creation fails or global properties cannot be retrieved
53
+ */
54
+ async addOperation(operationName, operationBody) {
55
+ if (!this.transaction) {
56
+ await this.createTransaction(this.expiration);
57
+ }
58
+ this.transaction.operations.push([operationName, operationBody]);
59
+ }
60
+ /**
61
+ * Signs the transaction with the provided key(s), supporting both single and multi-signature transactions.
62
+ * For multi-signature, you can sign with all keys at once or sign individually by calling this method multiple times.
63
+ * @param keys Single PrivateKey or array of PrivateKeys to sign the transaction with
64
+ * @returns The signed transaction
65
+ * @throws Error if no transaction exists to sign
66
+ */
67
+ sign(keys) {
68
+ if (!this.transaction) {
69
+ throw new Error('First create a transaction by .addOperation()');
70
+ }
71
+ if (this.transaction) {
72
+ const { digest, txId } = this.digest();
73
+ if (!Array.isArray(keys)) {
74
+ keys = [keys];
75
+ }
76
+ for (const key of keys) {
77
+ const signature = key.sign(digest);
78
+ this.transaction.signatures.push(signature.customToString());
79
+ }
80
+ this.txId = txId;
81
+ return this.transaction;
82
+ }
83
+ else {
84
+ throw new Error('No transaction to sign');
85
+ }
86
+ }
87
+ /**
88
+ * Broadcasts the signed transaction to the Hive network.
89
+ * Automatically handles retries and duplicate transaction detection.
90
+ * @param checkStatus By default (false) the transaction is not guaranteed to be included in a block.
91
+ * For example the transaction can expire while waiting in mempool.
92
+ * If you pass true here, the function will wait for the transaction to be either included or dropped
93
+ * before returning a result.
94
+ * @returns Promise resolving to broadcast result
95
+ * @throws Error if no transaction exists or transaction is not signed or transaction got rejected
96
+ */
97
+ async broadcast(checkStatus = false) {
98
+ if (!this.transaction) {
99
+ throw new Error('Attempted to broadcast an empty transaction. Add operations by .addOperation()');
100
+ }
101
+ if (this.transaction.signatures.length === 0) {
102
+ throw new Error('Attempted to broadcast a transaction with no signatures. Sign using .sign(keys)');
103
+ }
104
+ try {
105
+ await callRPCBroadcast('condenser_api.broadcast_transaction', [this.transaction]);
106
+ }
107
+ catch (e) {
108
+ if (e instanceof RPCError && e.message.includes('Duplicate transaction check failed')) {
109
+ // ignore duplicate transaction error as this can happen when we retry the broadcast
110
+ }
111
+ else {
112
+ throw e;
113
+ }
114
+ }
115
+ if (!this.txId) {
116
+ this.txId = this.digest().txId;
117
+ }
118
+ if (!checkStatus) {
119
+ return { tx_id: this.txId, status: 'unknown' };
120
+ }
121
+ // Poll until the transaction reaches a final state or max attempts exceeded.
122
+ // With 60 attempts: delays grow from 1.3s to 19s, total wait ~10 minutes.
123
+ const maxPollAttempts = 60;
124
+ await sleep(1000);
125
+ let status = await this.checkStatus();
126
+ let i = 1;
127
+ while (status?.status !== 'within_irreversible_block' &&
128
+ status?.status !== 'expired_irreversible' &&
129
+ status?.status !== 'too_old' &&
130
+ i < maxPollAttempts) {
131
+ await sleep(1000 + i * 300);
132
+ status = await this.checkStatus();
133
+ i++;
134
+ }
135
+ return {
136
+ tx_id: this.txId,
137
+ status: (status?.status ?? 'unknown')
138
+ };
139
+ }
140
+ /**
141
+ * Returns the transaction digest containing the transaction ID and hash.
142
+ * The digest can be used to verify signatures and for transaction identification.
143
+ * @returns DigestData containing transaction ID and hash
144
+ * @throws Error if no transaction exists
145
+ */
146
+ digest() {
147
+ if (!this.transaction) {
148
+ throw new Error('First create a transaction by .addOperation()');
149
+ }
150
+ const buffer = new ByteBuffer(ByteBuffer.DEFAULT_CAPACITY, ByteBuffer.LITTLE_ENDIAN);
151
+ const temp = { ...this.transaction };
152
+ try {
153
+ Serializer.Transaction(buffer, temp);
154
+ }
155
+ catch (cause) {
156
+ throw new Error('Unable to serialize transaction: ' + cause);
157
+ }
158
+ buffer.flip();
159
+ const transactionData = new Uint8Array(buffer.toBuffer());
160
+ const txId = bytesToHex(sha256(transactionData)).slice(0, 40);
161
+ const digest = sha256(new Uint8Array([...chainId, ...transactionData]));
162
+ return { digest, txId };
163
+ }
164
+ /**
165
+ * Adds a signature to an already created transaction. Useful when signing with external tools.
166
+ * Multiple signatures can be added one at a time for multi-signature transactions.
167
+ * @param signature The signature string in hex format (must be exactly 130 characters)
168
+ * @returns The transaction with the added signature
169
+ * @throws Error if no transaction exists or signature format is invalid
170
+ */
171
+ addSignature(signature) {
172
+ if (!this.transaction) {
173
+ throw new Error('First create a transaction by .create(operations)');
174
+ }
175
+ if (typeof signature !== 'string') {
176
+ throw new Error('Signature must be string');
177
+ }
178
+ if (signature.length !== 130) {
179
+ throw new Error('Signature must be 130 characters long');
180
+ }
181
+ this.transaction.signatures.push(signature);
182
+ return this.transaction;
183
+ }
184
+ /** Get status of this transaction. Usually called internally after broadcasting. */
185
+ async checkStatus() {
186
+ if (!this.txId) {
187
+ this.txId = this.digest().txId;
188
+ }
189
+ return callRPC('transaction_status_api.find_transaction', {
190
+ transaction_id: this.txId,
191
+ expiration: this.transaction?.expiration
192
+ });
193
+ }
194
+ }
195
+ //# sourceMappingURL=Transaction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Transaction.js","sourceRoot":"","sources":["../../src/Transaction.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Configuration object for customizing hive-tx library behavior.
3
+ * Modify these values to change the default node endpoints, timeout, and other settings.
4
+ */
5
+ export declare const config: {
6
+ /**
7
+ * Array of Hive API node endpoints for load balancing and failover.
8
+ * @default Array of multiple Hive API endpoints
9
+ */
10
+ nodes: string[];
11
+ /**
12
+ * Array Hive API node endpoints that support REST APIs
13
+ * Note: Without the trailing /
14
+ */
15
+ restNodes: string[];
16
+ /**
17
+ * The Hive blockchain chain ID for transaction signing and verification.
18
+ * @default Mainnet chain ID
19
+ */
20
+ chain_id: string;
21
+ /**
22
+ * Address prefix used for public key formatting (STM for mainnet).
23
+ * @default 'STM'
24
+ */
25
+ address_prefix: string;
26
+ /**
27
+ * Timeout in milliseconds for individual API calls.
28
+ * @default 10000
29
+ */
30
+ timeout: number;
31
+ /**
32
+ * Number of retry attempts for failed API calls before throwing an error.
33
+ * @default 8
34
+ */
35
+ retry: number;
36
+ };
37
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,MAAM;IACjB;;;OAGG;;IAWH;;;OAGG;;IASH;;;OAGG;;IAGH;;;OAGG;;IAGH;;;OAGG;;IAGH;;;OAGG;;CAEJ,CAAA"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Configuration object for customizing hive-tx library behavior.
3
+ * Modify these values to change the default node endpoints, timeout, and other settings.
4
+ */
5
+ export const config = {
6
+ /**
7
+ * Array of Hive API node endpoints for load balancing and failover.
8
+ * @default Array of multiple Hive API endpoints
9
+ */
10
+ nodes: [
11
+ 'https://api.hive.blog',
12
+ 'https://api.deathwing.me',
13
+ 'https://api.openhive.network',
14
+ 'https://rpc.mahdiyari.info',
15
+ 'https://techcoderx.com',
16
+ 'https://hiveapi.actifit.io',
17
+ 'https://api.c0ff33a.uk'
18
+ ],
19
+ /**
20
+ * Array Hive API node endpoints that support REST APIs
21
+ * Note: Without the trailing /
22
+ */
23
+ restNodes: [
24
+ 'https://api.hive.blog',
25
+ 'https://rpc.mahdiyari.info',
26
+ 'https://techcoderx.com',
27
+ 'https://hiveapi.actifit.io',
28
+ 'https://api.c0ff33a.uk'
29
+ ],
30
+ /**
31
+ * The Hive blockchain chain ID for transaction signing and verification.
32
+ * @default Mainnet chain ID
33
+ */
34
+ chain_id: 'beeab0de00000000000000000000000000000000000000000000000000000000',
35
+ /**
36
+ * Address prefix used for public key formatting (STM for mainnet).
37
+ * @default 'STM'
38
+ */
39
+ address_prefix: 'STM',
40
+ /**
41
+ * Timeout in milliseconds for individual API calls.
42
+ * @default 10000
43
+ */
44
+ timeout: 10000,
45
+ /**
46
+ * Number of retry attempts for failed API calls before throwing an error.
47
+ * @default 8
48
+ */
49
+ retry: 8
50
+ };
51
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB;;;OAGG;IACH,KAAK,EAAE;QACL,uBAAuB;QACvB,0BAA0B;QAC1B,8BAA8B;QAC9B,4BAA4B;QAC5B,wBAAwB;QACxB,4BAA4B;QAC5B,wBAAwB;KACzB;IAED;;;OAGG;IACH,SAAS,EAAE;QACT,uBAAuB;QACvB,4BAA4B;QAC5B,wBAAwB;QACxB,4BAA4B;QAC5B,wBAAwB;KACzB;IAED;;;OAGG;IACH,QAAQ,EAAE,kEAAkE;IAE5E;;;OAGG;IACH,cAAc,EAAE,KAAK;IAErB;;;OAGG;IACH,OAAO,EAAE,KAAM;IAEf;;;OAGG;IACH,KAAK,EAAE,CAAC;CACT,CAAA"}
@@ -0,0 +1,21 @@
1
+ /** Class representing a hive asset,
2
+ * e.g. `1.000 HIVE` or `12.112233 VESTS`. */
3
+ export declare class Asset {
4
+ amount: number;
5
+ symbol: string;
6
+ constructor(amount: number, symbol: string);
7
+ /** Create a new Asset instance from a string, e.g. `42.000 HIVE`. */
8
+ static fromString(string: string, expectedSymbol?: string | null): Asset;
9
+ /**
10
+ * Convenience to create new Asset.
11
+ * @param symbol Symbol to use when created from number. Will also be used to validate
12
+ * the asset, throws if the passed value has a different symbol than this.
13
+ */
14
+ static from(value: number | string | Asset, symbol?: string | null): Asset;
15
+ /** Return asset precision. */
16
+ getPrecision(): 3 | 6;
17
+ /** Return a string representation of this asset, e.g. `42.000 HIVE`. */
18
+ toString(): string;
19
+ toJSON(): string;
20
+ }
21
+ //# sourceMappingURL=Asset.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Asset.d.ts","sourceRoot":"","sources":["../../../src/helpers/Asset.ts"],"names":[],"mappings":"AAAA;6CAC6C;AAC7C,qBAAa,KAAK;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;gBAEF,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAK1C,qEAAqE;IACrE,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,GAAE,MAAM,GAAG,IAAW,GAAG,KAAK;IAe9E;;;;OAIG;IACH,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,KAAK,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,KAAK;IAiB1E,8BAA8B;IAC9B,YAAY;IAgBZ,wEAAwE;IACxE,QAAQ;IAIR,MAAM;CAGP"}
@@ -0,0 +1,70 @@
1
+ /** Class representing a hive asset,
2
+ * e.g. `1.000 HIVE` or `12.112233 VESTS`. */
3
+ export class Asset {
4
+ constructor(amount, symbol) {
5
+ this.amount = amount;
6
+ this.symbol = symbol === 'HIVE' ? 'STEEM' : symbol === 'HBD' ? 'SBD' : symbol;
7
+ }
8
+ /** Create a new Asset instance from a string, e.g. `42.000 HIVE`. */
9
+ static fromString(string, expectedSymbol = null) {
10
+ const [amountString, symbol] = string.split(' ');
11
+ if (['STEEM', 'VESTS', 'SBD', 'TESTS', 'TBD', 'HIVE', 'HBD'].indexOf(symbol) === -1) {
12
+ throw new Error(`Invalid asset symbol: ${symbol}`);
13
+ }
14
+ if (expectedSymbol && symbol !== expectedSymbol) {
15
+ throw new Error(`Invalid asset, expected symbol: ${expectedSymbol} got: ${symbol}`);
16
+ }
17
+ const amount = Number.parseFloat(amountString);
18
+ if (!Number.isFinite(amount)) {
19
+ throw new Error(`Invalid asset amount: ${amountString}`);
20
+ }
21
+ return new Asset(amount, symbol);
22
+ }
23
+ /**
24
+ * Convenience to create new Asset.
25
+ * @param symbol Symbol to use when created from number. Will also be used to validate
26
+ * the asset, throws if the passed value has a different symbol than this.
27
+ */
28
+ static from(value, symbol) {
29
+ if (value instanceof Asset) {
30
+ if (symbol && value.symbol !== symbol) {
31
+ throw new Error(`Invalid asset, expected symbol: ${symbol} got: ${value.symbol}`);
32
+ }
33
+ return value;
34
+ }
35
+ else if (typeof value === 'number' && Number.isFinite(value)) {
36
+ return new Asset(value, symbol || 'STEEM');
37
+ }
38
+ else if (typeof value === 'string') {
39
+ return Asset.fromString(value, symbol);
40
+ }
41
+ else {
42
+ throw new Error(`Invalid asset '${String(value)}'`);
43
+ }
44
+ }
45
+ // We convert HIVE & HBD strings to STEEM & SBD because the serialization should be based on STEEM & SBD
46
+ /** Return asset precision. */
47
+ getPrecision() {
48
+ switch (this.symbol) {
49
+ case 'TESTS':
50
+ case 'TBD':
51
+ case 'STEEM':
52
+ case 'SBD':
53
+ case 'HBD':
54
+ case 'HIVE':
55
+ return 3;
56
+ case 'VESTS':
57
+ return 6;
58
+ default:
59
+ return 3;
60
+ }
61
+ }
62
+ /** Return a string representation of this asset, e.g. `42.000 HIVE`. */
63
+ toString() {
64
+ return `${this.amount.toFixed(this.getPrecision())} ${this.symbol}`;
65
+ }
66
+ toJSON() {
67
+ return this.toString();
68
+ }
69
+ }
70
+ //# sourceMappingURL=Asset.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Asset.js","sourceRoot":"","sources":["../../../src/helpers/Asset.ts"],"names":[],"mappings":"AAAA;6CAC6C;AAC7C,MAAM,OAAO,KAAK;IAIhB,YAAY,MAAc,EAAE,MAAc;QACxC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,MAAM,GAAG,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAA;IAC/E,CAAC;IAED,qEAAqE;IACrE,MAAM,CAAC,UAAU,CAAC,MAAc,EAAE,iBAAgC,IAAI;QACpE,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAChD,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;YACpF,MAAM,IAAI,KAAK,CAAC,yBAAyB,MAAM,EAAE,CAAC,CAAA;QACpD,CAAC;QACD,IAAI,cAAc,IAAI,MAAM,KAAK,cAAc,EAAE,CAAC;YAChD,MAAM,IAAI,KAAK,CAAC,mCAAmC,cAAc,SAAS,MAAM,EAAE,CAAC,CAAA;QACrF,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,CAAA;QAC9C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,yBAAyB,YAAY,EAAE,CAAC,CAAA;QAC1D,CAAC;QACD,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAClC,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,IAAI,CAAC,KAA8B,EAAE,MAAsB;QAChE,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YAC3B,IAAI,MAAM,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;gBACtC,MAAM,IAAI,KAAK,CAAC,mCAAmC,MAAM,SAAS,KAAK,CAAC,MAAM,EAAE,CAAC,CAAA;YACnF,CAAC;YACD,OAAO,KAAK,CAAA;QACd,CAAC;aAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAC/D,OAAO,IAAI,KAAK,CAAC,KAAK,EAAE,MAAM,IAAI,OAAO,CAAC,CAAA;QAC5C,CAAC;aAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YACrC,OAAO,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;QACxC,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,kBAAkB,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QACrD,CAAC;IACH,CAAC;IAED,wGAAwG;IAExG,8BAA8B;IAC9B,YAAY;QACV,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;YACpB,KAAK,OAAO,CAAC;YACb,KAAK,KAAK,CAAC;YACX,KAAK,OAAO,CAAC;YACb,KAAK,KAAK,CAAC;YACX,KAAK,KAAK,CAAC;YACX,KAAK,MAAM;gBACT,OAAO,CAAC,CAAA;YACV,KAAK,OAAO;gBACV,OAAO,CAAC,CAAA;YACV;gBACE,OAAO,CAAC,CAAA;QACZ,CAAC;IACH,CAAC;IAED,wEAAwE;IACxE,QAAQ;QACN,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAA;IACrE,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAA;IACxB,CAAC;CACF"}
@@ -0,0 +1,75 @@
1
+ /**
2
+ * @license bytebuffer.ts (c) 2015 Daniel Wirtz <dcode@dcode.io>
3
+ * Backing buffer: ArrayBuffer, Accessor: DataView
4
+ * Released under the Apache License, Version 2.0
5
+ * see: https://github.com/dcodeIO/bytebuffer.ts for details
6
+ * modified by @xmcl/bytebuffer
7
+ * And customized for hive-tx
8
+ */
9
+ export declare class ByteBuffer {
10
+ static LITTLE_ENDIAN: boolean;
11
+ static BIG_ENDIAN: boolean;
12
+ static DEFAULT_CAPACITY: number;
13
+ static DEFAULT_ENDIAN: boolean;
14
+ buffer: ArrayBufferLike;
15
+ view: DataView;
16
+ offset: number;
17
+ markedOffset: number;
18
+ limit: number;
19
+ littleEndian: boolean;
20
+ constructor(capacity?: number, littleEndian?: boolean);
21
+ static allocate(capacity?: number, littleEndian?: boolean): ByteBuffer;
22
+ static concat(buffers: Array<ByteBuffer | ArrayBuffer | Uint8Array | number[]>, littleEndian?: boolean): ByteBuffer;
23
+ static wrap(buffer: ByteBuffer | ArrayBuffer | Uint8Array | number[], littleEndian?: boolean): ByteBuffer;
24
+ writeBytes(source: ByteBuffer | ArrayBuffer | Uint8Array | number[], offset?: number): ByteBuffer;
25
+ writeInt8(value: number, offset?: number): ByteBuffer;
26
+ writeByte(value: number, offset?: number): ByteBuffer;
27
+ writeUint8(value: number, offset?: number): ByteBuffer;
28
+ writeUInt8(value: number, offset?: number): ByteBuffer;
29
+ readUint8(offset?: number): number;
30
+ readUInt8(offset?: number): number;
31
+ writeInt16(value: number, offset?: number): ByteBuffer;
32
+ writeShort(value: number, offset?: number): ByteBuffer;
33
+ writeUint16(value: number, offset?: number): ByteBuffer;
34
+ writeUInt16(value: number, offset?: number): ByteBuffer;
35
+ writeInt32(value: number, offset?: number): ByteBuffer;
36
+ writeInt(value: number, offset?: number): ByteBuffer;
37
+ writeUint32(value: number, offset?: number): ByteBuffer;
38
+ writeUInt32(value: number, offset?: number): ByteBuffer;
39
+ readUint32(offset?: number): number;
40
+ readUInt32: (offset?: number) => number;
41
+ append(source: ByteBuffer | ArrayBuffer | Uint8Array | number[], offset?: number): ByteBuffer;
42
+ clone(copy?: boolean): ByteBuffer;
43
+ copy(begin?: number, end?: number): ByteBuffer;
44
+ copyTo(target: ByteBuffer, targetOffset?: number, sourceOffset?: number, sourceLimit?: number): ByteBuffer;
45
+ ensureCapacity(capacity: number): ByteBuffer;
46
+ flip(): ByteBuffer;
47
+ resize(capacity: number): ByteBuffer;
48
+ skip(length: number): ByteBuffer;
49
+ writeInt64(value: number | bigint, offset?: number): ByteBuffer;
50
+ writeLong(value: number | bigint, offset?: number): ByteBuffer;
51
+ readInt64(offset?: number): bigint;
52
+ readLong(offset?: number): bigint;
53
+ writeUint64(value: number | bigint, offset?: number): ByteBuffer;
54
+ writeUInt64(value: number | bigint, offset?: number): ByteBuffer;
55
+ readUint64(offset?: number): bigint;
56
+ readUInt64(offset?: number): bigint;
57
+ toBuffer(forceCopy?: boolean): ArrayBufferLike;
58
+ toArrayBuffer(forceCopy?: boolean): ArrayBufferLike;
59
+ writeVarint32(value: number, offset?: number): ByteBuffer | number;
60
+ readVarint32(offset?: number): number | {
61
+ value: number;
62
+ length: number;
63
+ };
64
+ calculateVarint32(value: number): number;
65
+ writeVString(str: string, offset?: number): ByteBuffer | number;
66
+ readVString(offset?: number): string | {
67
+ string: string;
68
+ length: number;
69
+ };
70
+ readUTF8String(length: number, offset?: number): string | {
71
+ string: string;
72
+ length: number;
73
+ };
74
+ }
75
+ //# sourceMappingURL=ByteBuffer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ByteBuffer.d.ts","sourceRoot":"","sources":["../../../src/helpers/ByteBuffer.ts"],"names":[],"mappings":"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"}