@bitgo-beta/sdk-coin-icp 1.0.1-beta.95 → 1.0.1-beta.97

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 (34) hide show
  1. package/dist/src/lib/iface.d.ts +165 -0
  2. package/dist/src/lib/iface.d.ts.map +1 -0
  3. package/dist/src/lib/iface.js +31 -0
  4. package/dist/src/lib/index.d.ts +3 -0
  5. package/dist/src/lib/index.d.ts.map +1 -1
  6. package/dist/src/lib/index.js +8 -2
  7. package/dist/src/lib/protoDefinition.d.ts +2 -0
  8. package/dist/src/lib/protoDefinition.d.ts.map +1 -0
  9. package/dist/src/lib/protoDefinition.js +44 -0
  10. package/dist/src/lib/signedTransactionBuilder.d.ts +9 -0
  11. package/dist/src/lib/signedTransactionBuilder.d.ts.map +1 -0
  12. package/dist/src/lib/signedTransactionBuilder.js +69 -0
  13. package/dist/src/lib/transaction.d.ts +42 -0
  14. package/dist/src/lib/transaction.d.ts.map +1 -0
  15. package/dist/src/lib/transaction.js +169 -0
  16. package/dist/src/lib/transactionBuilder.d.ts +47 -31
  17. package/dist/src/lib/transactionBuilder.d.ts.map +1 -1
  18. package/dist/src/lib/transactionBuilder.js +98 -44
  19. package/dist/src/lib/transactionBuilderFactory.d.ts +15 -12
  20. package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -1
  21. package/dist/src/lib/transactionBuilderFactory.js +38 -24
  22. package/dist/src/lib/transferBuilder.d.ts +10 -25
  23. package/dist/src/lib/transferBuilder.d.ts.map +1 -1
  24. package/dist/src/lib/transferBuilder.js +95 -44
  25. package/dist/src/lib/unsignedTransactionBuilder.d.ts +12 -0
  26. package/dist/src/lib/unsignedTransactionBuilder.d.ts.map +1 -0
  27. package/dist/src/lib/unsignedTransactionBuilder.js +105 -0
  28. package/dist/src/lib/utils.d.ts +261 -7
  29. package/dist/src/lib/utils.d.ts.map +1 -1
  30. package/dist/src/lib/utils.js +453 -52
  31. package/dist/src/ticp.d.ts +0 -4
  32. package/dist/src/ticp.d.ts.map +1 -1
  33. package/dist/src/ticp.js +1 -7
  34. package/package.json +11 -7
@@ -1,25 +1,279 @@
1
- import { BaseUtils, KeyPair } from '@bitgo-beta/sdk-core';
1
+ import { BaseUtils, KeyPair, Recipient } from '@bitgo-beta/sdk-core';
2
2
  import { Principal as DfinityPrincipal } from '@dfinity/principal';
3
+ import { HttpCanisterUpdate, IcpTransactionData, ReadState, Signatures, IcpMetadata } from './iface';
4
+ import BigNumber from 'bignumber.js';
5
+ export declare const REQUEST_STATUS = "request_status";
3
6
  export declare class Utils implements BaseUtils {
4
- isValidAddress(address: string): boolean;
7
+ /** @inheritdoc */
5
8
  isValidTransactionId(txId: string): boolean;
9
+ /** @inheritdoc */
10
+ isValidBlockId(hash: string): boolean;
11
+ /** @inheritdoc */
12
+ isValidSignature(signature: string): boolean;
13
+ /**
14
+ * gets the gas data of this transaction.
15
+ */
16
+ gasData(): string;
17
+ /**
18
+ * Checks if the provided address is a valid hexadecimal string.
19
+ *
20
+ * @param {string} address - The address to validate.
21
+ * @returns {boolean} - Returns `true` if the address is a valid 64-character hexadecimal string, otherwise `false`.
22
+ */
23
+ isValidAddress(address: string): boolean;
24
+ /**
25
+ * Checks if the provided hex string is a valid public key.
26
+ *
27
+ * A valid public key can be either compressed or uncompressed:
28
+ * - Compressed public keys are 33 bytes long and start with either 0x02 or 0x03.
29
+ * - Uncompressed public keys are 65 bytes long and start with 0x04.
30
+ *
31
+ * @param {string} hexStr - The hex string representation of the public key to validate.
32
+ * @returns {boolean} - Returns `true` if the hex string is a valid public key, otherwise `false`.
33
+ */
6
34
  isValidPublicKey(hexStr: string): boolean;
35
+ /**
36
+ * Encodes a value into CBOR format and returns it as a hex string.
37
+ *
38
+ * @param {unknown} value - The value to encode.
39
+ * @returns {string} - The CBOR encoded value as a hex string.
40
+ */
41
+ cborEncode(value: unknown): string;
42
+ /**
43
+ * Checks if the length of the given hexadecimal string is valid.
44
+ * A valid length is either 66 characters (33 bytes) or 130 characters (65 bytes).
45
+ *
46
+ * @param {string} hexStr - The hexadecimal string to check.
47
+ * @returns {boolean} - Returns `true` if the length is valid, otherwise `false`.
48
+ */
7
49
  isValidLength(hexStr: string): boolean;
50
+ /**
51
+ * Checks if the provided string is a valid hexadecimal string.
52
+ *
53
+ * A valid hexadecimal string consists of pairs of hexadecimal digits (0-9, a-f, A-F).
54
+ *
55
+ * @param hexStr - The string to be validated as a hexadecimal string.
56
+ * @returns True if the string is a valid hexadecimal string, false otherwise.
57
+ */
8
58
  isValidHex(hexStr: string): boolean;
59
+ /**
60
+ * Converts a hexadecimal string to a Uint8Array.
61
+ *
62
+ * @param {string} hex - The hexadecimal string to convert.
63
+ * @returns {Uint8Array} The resulting byte array.
64
+ */
9
65
  hexToBytes(hex: string): Uint8Array;
10
66
  /** @inheritdoc */
11
67
  isValidPrivateKey(key: string): boolean;
68
+ /**
69
+ * Validates whether the provided key is a valid ICP private key.
70
+ *
71
+ * This function attempts to create a new instance of `IcpKeyPair` using the provided key.
72
+ * If the key is valid, the function returns `true`. If the key is invalid, an error is thrown,
73
+ * and the function returns `false`.
74
+ *
75
+ * @param {string} key - The private key to validate.
76
+ * @returns {boolean} - `true` if the key is valid, `false` otherwise.
77
+ */
12
78
  isValidKey(key: string): boolean;
13
- isValidSignature(signature: string): boolean;
14
- isValidBlockId(hash: string): boolean;
15
- getHeaders(): Record<string, string>;
16
- getNetworkIdentifier(): Record<string, string>;
79
+ /**
80
+ * Compresses an uncompressed public key.
81
+ *
82
+ * @param {string} uncompressedKey - The uncompressed public key in hexadecimal format.
83
+ * @returns {string} - The compressed public key in hexadecimal format.
84
+ * @throws {Error} - If the input key is not a valid uncompressed public key.
85
+ */
17
86
  compressPublicKey(uncompressedKey: string): string;
18
- getCurveType(): string;
87
+ /**
88
+ * Converts a public key from its hexadecimal string representation to DER format.
89
+ *
90
+ * @param {string} publicKeyHex - The public key in hexadecimal string format.
91
+ * @returns The public key in DER format as a Uint8Array.
92
+ */
93
+ getPublicKeyInDERFormat(publicKeyHex: string): Uint8Array;
94
+ /**
95
+ * Converts a public key in hexadecimal format to a Dfinity Principal ID.
96
+ *
97
+ * @param {string} publicKeyHex - The public key in hexadecimal format.
98
+ * @returns The corresponding Dfinity Principal ID.
99
+ */
100
+ getPrincipalIdFromPublicKey(publicKeyHex: string): DfinityPrincipal;
101
+ /**
102
+ * Derives a DfinityPrincipal from a given public key in hexadecimal format.
103
+ *
104
+ * @param {string} publicKeyHex - The public key in hexadecimal format.
105
+ * @returns The derived DfinityPrincipal.
106
+ * @throws Will throw an error if the principal cannot be derived from the public key.
107
+ */
19
108
  derivePrincipalFromPublicKey(publicKeyHex: string): DfinityPrincipal;
109
+ /**
110
+ * Converts a DfinityPrincipal and an optional subAccount to a string representation of an account ID.
111
+ *
112
+ * @param {DfinityPrincipal} principal - The principal to convert.
113
+ * @param {Uint8Array} [subAccount=new Uint8Array(32)] - An optional sub-account, defaults to a 32-byte array of zeros.
114
+ * @returns {string} The hexadecimal string representation of the account ID.
115
+ */
20
116
  fromPrincipal(principal: DfinityPrincipal, subAccount?: Uint8Array): string;
117
+ /**
118
+ * Retrieves the address associated with a given hex-encoded public key.
119
+ *
120
+ * @param {string} hexEncodedPublicKey - The public key in hex-encoded format.
121
+ * @returns {Promise<string>} A promise that resolves to the address derived from the provided public key.
122
+ * @throws {Error} Throws an error if the provided public key is not in a valid hex-encoded format.
123
+ */
21
124
  getAddressFromPublicKey(hexEncodedPublicKey: string): Promise<string>;
125
+ /**
126
+ * Generates a new key pair. If a seed is provided, it will be used to generate the key pair.
127
+ *
128
+ * @param {Buffer} [seed] - Optional seed for key generation.
129
+ * @returns {KeyPair} - The generated key pair containing both public and private keys.
130
+ * @throws {Error} - If the private key is missing in the generated key pair.
131
+ */
22
132
  generateKeyPair(seed?: Buffer): KeyPair;
133
+ validateFee(fee: string): void;
134
+ /** @inheritdoc */
135
+ validateValue(value: BigNumber): void;
136
+ validateMemo(memo: number | BigInt): void;
137
+ validateExpireTime(expireTime: number | BigInt): void;
138
+ /**
139
+ * Validates the raw transaction data to ensure it has a valid format in the blockchain context.
140
+ *
141
+ * @param {IcpTransactionData} transactionData - The transaction data to validate.
142
+ * @throws {ParseTransactionError} If the transaction data is invalid.
143
+ */
144
+ validateRawTransaction(transactionData: IcpTransactionData): void;
145
+ /**
146
+ *
147
+ * @param {object} update
148
+ * @returns {Buffer}
149
+ */
150
+ generateHttpCanisterUpdateId(update: HttpCanisterUpdate): Buffer;
151
+ /**
152
+ * Generates a representation-independent hash for an HTTP canister update.
153
+ *
154
+ * @param {HttpCanisterUpdate} update - The HTTP canister update object.
155
+ * @returns {Buffer} - The hash of the update object.
156
+ */
157
+ HttpCanisterUpdateRepresentationIndependentHash(update: HttpCanisterUpdate): Buffer;
158
+ /**
159
+ * Generates a SHA-256 hash for a given map object.
160
+ *
161
+ * @param {Record<string, unknown>} map - The map object to hash.
162
+ * @returns {Buffer} - The resulting hash as a Buffer.
163
+ */
164
+ hashOfMap(map: Record<string, any>): Buffer;
165
+ /**
166
+ * Generates a hash for a key-value pair.
167
+ *
168
+ * @param {string} key - The key to hash.
169
+ * @param {string | Buffer | BigInt} val - The value to hash.
170
+ * @returns {Buffer} - The resulting hash as a Buffer.
171
+ */
172
+ hashKeyVal(key: string, val: any): Buffer;
173
+ /**
174
+ * Generates a SHA-256 hash for a given string.
175
+ *
176
+ * @param {string} value - The string to hash.
177
+ * @returns {Buffer} - The resulting hash as a Buffer.
178
+ */
179
+ hashString(value: string): Buffer;
180
+ /**
181
+ * Generates a hash for a 64-bit unsigned integer.
182
+ *
183
+ * @param {bigint} n - The 64-bit unsigned integer to hash.
184
+ * @returns {Buffer} - The resulting hash as a Buffer.
185
+ */
186
+ hashU64(n: bigint): Buffer;
187
+ /**
188
+ * Generates a SHA-256 hash for an array of elements.
189
+ *
190
+ * @param {Array<any>} elements - The array of elements to hash.
191
+ * @returns {Buffer} - The resulting hash as a Buffer.
192
+ */
193
+ hashArray(elements: Array<any>): Buffer;
194
+ /**
195
+ * Generates a hash for a given value.
196
+ *
197
+ * @param {string | Buffer | BigInt | number | Array<unknown>} val - The value to hash.
198
+ * @returns {Buffer} - The resulting hash as a Buffer.
199
+ * @throws {Error} - If the value type is unsupported.
200
+ */
201
+ hashVal(val: string | Buffer | BigInt | number | Array<unknown>): Buffer;
202
+ /**
203
+ * Computes the SHA-256 hash of the given buffer.
204
+ *
205
+ * @param value - The buffer to hash.
206
+ * @returns The SHA-256 hash of the input buffer.
207
+ */
208
+ hashBytes(value: Buffer): Buffer;
209
+ /**
210
+ * Computes the SHA-256 hash of the provided array of Buffer chunks.
211
+ *
212
+ * @param {Array<Buffer>} chunks - An array of Buffer objects to be hashed.
213
+ * @returns {Buffer} - The resulting SHA-256 hash as a Buffer.
214
+ */
215
+ sha256(chunks: Array<Buffer>): Buffer;
216
+ /**
217
+ * Converts a hexadecimal string to a Buffer.
218
+ *
219
+ * @param hex - The hexadecimal string to convert.
220
+ * @returns A Buffer containing the binary data represented by the hexadecimal string.
221
+ */
222
+ blobFromHex(hex: string): Buffer;
223
+ /**
224
+ * Converts a binary blob (Buffer) to a hexadecimal string.
225
+ *
226
+ * @param {Buffer} blob - The binary data to be converted.
227
+ * @returns {string} The hexadecimal representation of the binary data.
228
+ */
229
+ blobToHex(blob: Buffer): string;
230
+ /**
231
+ * Decodes a given CBOR-encoded buffer.
232
+ *
233
+ * @param buffer - The CBOR-encoded buffer to decode.
234
+ * @returns The decoded data.
235
+ */
236
+ cborDecode(buffer: Buffer): unknown;
237
+ /**
238
+ * Generates a Buffer containing the domain IC request string.
239
+ *
240
+ * @returns {Buffer} A Buffer object initialized with the string '\x0Aic-request'.
241
+ */
242
+ getDomainICRequest(): Buffer;
243
+ /**
244
+ * Combines the domain IC request buffer with the provided message ID buffer to create signature data.
245
+ *
246
+ * @param {Buffer} messageId - The buffer containing the message ID.
247
+ * @returns {Buffer} - The concatenated buffer containing the domain IC request and the message ID.
248
+ */
249
+ makeSignatureData(messageId: Buffer): Buffer;
250
+ /**
251
+ * Generates a read state object from an HTTP canister update.
252
+ *
253
+ * @param {HttpCanisterUpdate} update - The HTTP canister update object.
254
+ * @returns {ReadState} The read state object containing the sender, paths, and ingress expiry.
255
+ */
256
+ makeReadStateFromUpdate(update: HttpCanisterUpdate): ReadState;
257
+ /**
258
+ * Generates a representation-independent hash for an HTTP read state object.
259
+ *
260
+ * @param {ReadState} readState - The HTTP read state object.
261
+ * @returns {Buffer} - The hash of the read state object.
262
+ */
263
+ HttpReadStateRepresentationIndependentHash(readState: ReadState): Buffer;
264
+ /**
265
+ * Extracts the recipient information from the provided ICP transaction data.
266
+ *
267
+ * @param {IcpTransactionData} icpTransactionData - The ICP transaction data containing the receiver's address and amount.
268
+ * @returns {Recipient[]} An array containing a single recipient object with the receiver's address and amount.
269
+ */
270
+ getRecipients(icpTransactionData: IcpTransactionData): Recipient;
271
+ getTransactionSignature(signatureMap: Map<string, Signatures>, update: HttpCanisterUpdate): Signatures | undefined;
272
+ getReadStateSignature(signatureMap: Map<string, Signatures>, readState: ReadState): Signatures | undefined;
273
+ getMetaData(memo: number | BigInt): {
274
+ metaData: IcpMetadata;
275
+ ingressEndTime: number | BigInt;
276
+ };
23
277
  }
24
278
  declare const utils: Utils;
25
279
  export default utils;
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/lib/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,EAAE,SAAS,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAMnE,qBAAa,KAAM,YAAW,SAAS;IACrC,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAIxC,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI3C,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAiBzC,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAItC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAInC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU;IAInC,kBAAkB;IAClB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIvC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAShC,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAI5C,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIrC,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAMpC,oBAAoB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAO9C,iBAAiB,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM;IAgBlD,YAAY,IAAI,MAAM;IAItB,4BAA4B,CAAC,YAAY,EAAE,MAAM,GAAG,gBAAgB;IAapE,aAAa,CAAC,SAAS,EAAE,gBAAgB,EAAE,UAAU,GAAE,UAA+B,GAAG,MAAM;IAiBzF,uBAAuB,CAAC,mBAAmB,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAUpE,eAAe,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO;CAW/C;AAED,QAAA,MAAM,KAAK,OAAc,CAAC;AAC1B,eAAe,KAAK,CAAC"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/lib/utils.ts"],"names":[],"mappings":"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"}