@amadeus-protocol/sdk 1.0.6 → 1.0.8

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 (108) hide show
  1. package/README.md +2 -2
  2. package/dist/client.js +1 -1
  3. package/dist/client.js.map +1 -1
  4. package/dist/contract-state.d.ts +59 -0
  5. package/dist/contract-state.d.ts.map +1 -0
  6. package/dist/contract-state.js +117 -0
  7. package/dist/contract-state.js.map +1 -0
  8. package/dist/contracts/abi-types.d.ts +87 -0
  9. package/dist/contracts/abi-types.d.ts.map +1 -0
  10. package/dist/contracts/abi-types.js +8 -0
  11. package/dist/contracts/abi-types.js.map +1 -0
  12. package/dist/contracts/coin.d.ts +42 -0
  13. package/dist/contracts/coin.d.ts.map +1 -0
  14. package/dist/contracts/coin.js +42 -0
  15. package/dist/contracts/coin.js.map +1 -0
  16. package/dist/contracts/contract-call.d.ts +49 -0
  17. package/dist/contracts/contract-call.d.ts.map +1 -0
  18. package/dist/contracts/contract-call.js +57 -0
  19. package/dist/contracts/contract-call.js.map +1 -0
  20. package/dist/contracts/contract.d.ts +113 -0
  21. package/dist/contracts/contract.d.ts.map +1 -0
  22. package/dist/contracts/contract.js +107 -0
  23. package/dist/contracts/contract.js.map +1 -0
  24. package/dist/contracts/index.d.ts +7 -0
  25. package/dist/contracts/index.d.ts.map +1 -0
  26. package/dist/contracts/index.js +7 -0
  27. package/dist/contracts/index.js.map +1 -0
  28. package/dist/contracts/lockup/abi.d.ts +62 -0
  29. package/dist/contracts/lockup/abi.d.ts.map +1 -0
  30. package/dist/contracts/lockup/abi.js +77 -0
  31. package/dist/contracts/lockup/abi.js.map +1 -0
  32. package/dist/contracts/lockup/calls.d.ts +23 -0
  33. package/dist/contracts/lockup/calls.d.ts.map +1 -0
  34. package/dist/contracts/lockup/calls.js +25 -0
  35. package/dist/contracts/lockup/calls.js.map +1 -0
  36. package/dist/contracts/lockup/helpers.d.ts +24 -0
  37. package/dist/contracts/lockup/helpers.d.ts.map +1 -0
  38. package/dist/contracts/lockup/helpers.js +49 -0
  39. package/dist/contracts/lockup/helpers.js.map +1 -0
  40. package/dist/contracts/lockup/index.d.ts +6 -0
  41. package/dist/contracts/lockup/index.d.ts.map +1 -0
  42. package/dist/contracts/lockup/index.js +6 -0
  43. package/dist/contracts/lockup/index.js.map +1 -0
  44. package/dist/contracts/lockup/parsers.d.ts +20 -0
  45. package/dist/contracts/lockup/parsers.d.ts.map +1 -0
  46. package/dist/contracts/lockup/parsers.js +60 -0
  47. package/dist/contracts/lockup/parsers.js.map +1 -0
  48. package/dist/contracts/lockup/storage-keys.d.ts +15 -0
  49. package/dist/contracts/lockup/storage-keys.d.ts.map +1 -0
  50. package/dist/contracts/lockup/storage-keys.js +78 -0
  51. package/dist/contracts/lockup/storage-keys.js.map +1 -0
  52. package/dist/contracts/lockup/types.d.ts +90 -0
  53. package/dist/contracts/lockup/types.d.ts.map +1 -0
  54. package/dist/contracts/lockup/types.js +7 -0
  55. package/dist/contracts/lockup/types.js.map +1 -0
  56. package/dist/contracts/lockup-prime/abi.d.ts +348 -0
  57. package/dist/contracts/lockup-prime/abi.d.ts.map +1 -0
  58. package/dist/contracts/lockup-prime/abi.js +420 -0
  59. package/dist/contracts/lockup-prime/abi.js.map +1 -0
  60. package/dist/contracts/lockup-prime/calls.d.ts +53 -0
  61. package/dist/contracts/lockup-prime/calls.d.ts.map +1 -0
  62. package/dist/contracts/lockup-prime/calls.js +60 -0
  63. package/dist/contracts/lockup-prime/calls.js.map +1 -0
  64. package/dist/contracts/lockup-prime/helpers.d.ts +38 -0
  65. package/dist/contracts/lockup-prime/helpers.d.ts.map +1 -0
  66. package/dist/contracts/lockup-prime/helpers.js +147 -0
  67. package/dist/contracts/lockup-prime/helpers.js.map +1 -0
  68. package/dist/contracts/lockup-prime/index.d.ts +6 -0
  69. package/dist/contracts/lockup-prime/index.d.ts.map +1 -0
  70. package/dist/contracts/lockup-prime/index.js +6 -0
  71. package/dist/contracts/lockup-prime/index.js.map +1 -0
  72. package/dist/contracts/lockup-prime/parsers.d.ts +25 -0
  73. package/dist/contracts/lockup-prime/parsers.d.ts.map +1 -0
  74. package/dist/contracts/lockup-prime/parsers.js +68 -0
  75. package/dist/contracts/lockup-prime/parsers.js.map +1 -0
  76. package/dist/contracts/lockup-prime/storage-keys.d.ts +25 -0
  77. package/dist/contracts/lockup-prime/storage-keys.d.ts.map +1 -0
  78. package/dist/contracts/lockup-prime/storage-keys.js +92 -0
  79. package/dist/contracts/lockup-prime/storage-keys.js.map +1 -0
  80. package/dist/contracts/lockup-prime/types.d.ts +116 -0
  81. package/dist/contracts/lockup-prime/types.d.ts.map +1 -0
  82. package/dist/contracts/lockup-prime/types.js +18 -0
  83. package/dist/contracts/lockup-prime/types.js.map +1 -0
  84. package/dist/crypto.js +1 -1
  85. package/dist/crypto.js.map +1 -1
  86. package/dist/index.d.ts +3 -0
  87. package/dist/index.d.ts.map +1 -1
  88. package/dist/index.js +3 -0
  89. package/dist/index.js.map +1 -1
  90. package/dist/mnemonic.d.ts +96 -0
  91. package/dist/mnemonic.d.ts.map +1 -0
  92. package/dist/mnemonic.js +128 -0
  93. package/dist/mnemonic.js.map +1 -0
  94. package/dist/serialization.d.ts +22 -0
  95. package/dist/serialization.d.ts.map +1 -1
  96. package/dist/serialization.js +39 -2
  97. package/dist/serialization.js.map +1 -1
  98. package/dist/signing.d.ts +39 -0
  99. package/dist/signing.d.ts.map +1 -0
  100. package/dist/signing.js +84 -0
  101. package/dist/signing.js.map +1 -0
  102. package/dist/transaction-builder.d.ts +135 -194
  103. package/dist/transaction-builder.d.ts.map +1 -1
  104. package/dist/transaction-builder.js +237 -288
  105. package/dist/transaction-builder.js.map +1 -1
  106. package/dist/types.d.ts +17 -0
  107. package/dist/types.d.ts.map +1 -1
  108. package/package.json +2 -1
@@ -0,0 +1,96 @@
1
+ /**
2
+ * BIP39 Mnemonic Utilities for Amadeus Protocol
3
+ *
4
+ * This module provides BIP39 mnemonic generation, validation, and seed derivation
5
+ * for use with Amadeus Protocol wallets.
6
+ */
7
+ /**
8
+ * Generate a new 12-word BIP39 mnemonic
9
+ *
10
+ * @returns 12-word mnemonic phrase
11
+ *
12
+ * @example
13
+ * ```ts
14
+ * const mnemonic = generateMnemonic()
15
+ * // "abandon ability able about above absent absorb abstract absurd abuse access accident"
16
+ * ```
17
+ */
18
+ export declare function generateMnemonic(): string;
19
+ /**
20
+ * Validate a BIP39 mnemonic phrase
21
+ *
22
+ * @param mnemonic - Mnemonic phrase to validate
23
+ * @returns true if the mnemonic is valid
24
+ *
25
+ * @example
26
+ * ```ts
27
+ * const isValid = validateMnemonic('abandon ability able ...')
28
+ * ```
29
+ */
30
+ export declare function validateMnemonic(mnemonic: string): boolean;
31
+ /**
32
+ * Derive an Amadeus seed (base58-encoded 64 bytes) from a BIP39 mnemonic.
33
+ * Uses BIP39 seed derivation (PBKDF2 with SHA-512) which produces a 64-byte seed,
34
+ * matching the Amadeus SDK's expected seed length.
35
+ *
36
+ * @param mnemonic - BIP39 mnemonic phrase
37
+ * @returns Base58-encoded 64-byte seed
38
+ *
39
+ * @example
40
+ * ```ts
41
+ * const seed = mnemonicToSeedBase58('abandon ability able ...')
42
+ * ```
43
+ */
44
+ export declare function mnemonicToSeedBase58(mnemonic: string): string;
45
+ /**
46
+ * Detect whether input is a mnemonic phrase or a raw private key.
47
+ *
48
+ * @param input - User input string
49
+ * @returns 'mnemonic' if the input looks like a word-based mnemonic, or 'seed' if it looks like a base58-encoded key
50
+ *
51
+ * @example
52
+ * ```ts
53
+ * const type = detectInputType('abandon ability able ...')
54
+ * // 'mnemonic'
55
+ * ```
56
+ */
57
+ export declare function detectInputType(input: string): 'mnemonic' | 'seed';
58
+ /**
59
+ * Vault data format that supports both mnemonic and raw seed storage.
60
+ * When decrypted, old vaults return a plain base58 string,
61
+ * new vaults return a JSON string with this shape.
62
+ */
63
+ export interface VaultSecretData {
64
+ seed: string;
65
+ mnemonic?: string;
66
+ }
67
+ /**
68
+ * Encode vault secret data as a string for encryption.
69
+ * Always stores as JSON to include the optional mnemonic.
70
+ *
71
+ * @param seed - Base58-encoded seed
72
+ * @param mnemonic - Optional BIP39 mnemonic phrase
73
+ * @returns JSON string for vault encryption
74
+ *
75
+ * @example
76
+ * ```ts
77
+ * const vaultData = encodeVaultSecret(seed, mnemonic)
78
+ * const encrypted = await encryptWithPassword(vaultData, password)
79
+ * ```
80
+ */
81
+ export declare function encodeVaultSecret(seed: string, mnemonic?: string): string;
82
+ /**
83
+ * Decode vault secret data from a decrypted string.
84
+ * Handles both old format (plain base58 seed) and new format (JSON with seed + mnemonic).
85
+ *
86
+ * @param decrypted - Decrypted vault string
87
+ * @returns Parsed vault secret data
88
+ *
89
+ * @example
90
+ * ```ts
91
+ * const decrypted = await decryptWithPassword(encrypted, password)
92
+ * const { seed, mnemonic } = decodeVaultSecret(decrypted)
93
+ * ```
94
+ */
95
+ export declare function decodeVaultSecret(decrypted: string): VaultSecretData;
96
+ //# sourceMappingURL=mnemonic.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mnemonic.d.ts","sourceRoot":"","sources":["../src/mnemonic.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAE1D;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAG7D;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,CAUlE;AAED;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAA;CACjB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAMzE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,eAAe,CAapE"}
@@ -0,0 +1,128 @@
1
+ /**
2
+ * BIP39 Mnemonic Utilities for Amadeus Protocol
3
+ *
4
+ * This module provides BIP39 mnemonic generation, validation, and seed derivation
5
+ * for use with Amadeus Protocol wallets.
6
+ */
7
+ import * as bip39 from '@scure/bip39';
8
+ import { wordlist } from '@scure/bip39/wordlists/english.js';
9
+ import { toBase58 } from './encoding';
10
+ /**
11
+ * Generate a new 12-word BIP39 mnemonic
12
+ *
13
+ * @returns 12-word mnemonic phrase
14
+ *
15
+ * @example
16
+ * ```ts
17
+ * const mnemonic = generateMnemonic()
18
+ * // "abandon ability able about above absent absorb abstract absurd abuse access accident"
19
+ * ```
20
+ */
21
+ export function generateMnemonic() {
22
+ return bip39.generateMnemonic(wordlist, 128); // 128 bits = 12 words
23
+ }
24
+ /**
25
+ * Validate a BIP39 mnemonic phrase
26
+ *
27
+ * @param mnemonic - Mnemonic phrase to validate
28
+ * @returns true if the mnemonic is valid
29
+ *
30
+ * @example
31
+ * ```ts
32
+ * const isValid = validateMnemonic('abandon ability able ...')
33
+ * ```
34
+ */
35
+ export function validateMnemonic(mnemonic) {
36
+ return bip39.validateMnemonic(mnemonic.trim().toLowerCase(), wordlist);
37
+ }
38
+ /**
39
+ * Derive an Amadeus seed (base58-encoded 64 bytes) from a BIP39 mnemonic.
40
+ * Uses BIP39 seed derivation (PBKDF2 with SHA-512) which produces a 64-byte seed,
41
+ * matching the Amadeus SDK's expected seed length.
42
+ *
43
+ * @param mnemonic - BIP39 mnemonic phrase
44
+ * @returns Base58-encoded 64-byte seed
45
+ *
46
+ * @example
47
+ * ```ts
48
+ * const seed = mnemonicToSeedBase58('abandon ability able ...')
49
+ * ```
50
+ */
51
+ export function mnemonicToSeedBase58(mnemonic) {
52
+ const seed = bip39.mnemonicToSeedSync(mnemonic.trim().toLowerCase());
53
+ return toBase58(seed);
54
+ }
55
+ /**
56
+ * Detect whether input is a mnemonic phrase or a raw private key.
57
+ *
58
+ * @param input - User input string
59
+ * @returns 'mnemonic' if the input looks like a word-based mnemonic, or 'seed' if it looks like a base58-encoded key
60
+ *
61
+ * @example
62
+ * ```ts
63
+ * const type = detectInputType('abandon ability able ...')
64
+ * // 'mnemonic'
65
+ * ```
66
+ */
67
+ export function detectInputType(input) {
68
+ const trimmed = input.trim();
69
+ const words = trimmed.split(/\s+/);
70
+ // BIP39 mnemonics are 12 or 24 words
71
+ if (words.length === 12 || words.length === 24) {
72
+ // Check if all words look like English words (no numbers, no special chars)
73
+ const allWords = words.every((w) => /^[a-zA-Z]+$/.test(w));
74
+ if (allWords)
75
+ return 'mnemonic';
76
+ }
77
+ return 'seed';
78
+ }
79
+ /**
80
+ * Encode vault secret data as a string for encryption.
81
+ * Always stores as JSON to include the optional mnemonic.
82
+ *
83
+ * @param seed - Base58-encoded seed
84
+ * @param mnemonic - Optional BIP39 mnemonic phrase
85
+ * @returns JSON string for vault encryption
86
+ *
87
+ * @example
88
+ * ```ts
89
+ * const vaultData = encodeVaultSecret(seed, mnemonic)
90
+ * const encrypted = await encryptWithPassword(vaultData, password)
91
+ * ```
92
+ */
93
+ export function encodeVaultSecret(seed, mnemonic) {
94
+ const data = { seed };
95
+ if (mnemonic) {
96
+ data.mnemonic = mnemonic;
97
+ }
98
+ return JSON.stringify(data);
99
+ }
100
+ /**
101
+ * Decode vault secret data from a decrypted string.
102
+ * Handles both old format (plain base58 seed) and new format (JSON with seed + mnemonic).
103
+ *
104
+ * @param decrypted - Decrypted vault string
105
+ * @returns Parsed vault secret data
106
+ *
107
+ * @example
108
+ * ```ts
109
+ * const decrypted = await decryptWithPassword(encrypted, password)
110
+ * const { seed, mnemonic } = decodeVaultSecret(decrypted)
111
+ * ```
112
+ */
113
+ export function decodeVaultSecret(decrypted) {
114
+ try {
115
+ const parsed = JSON.parse(decrypted);
116
+ if (parsed && typeof parsed.seed === 'string') {
117
+ return {
118
+ seed: parsed.seed,
119
+ mnemonic: parsed.mnemonic || undefined
120
+ };
121
+ }
122
+ }
123
+ catch {
124
+ // Not JSON — old format, plain base58 seed
125
+ }
126
+ return { seed: decrypted };
127
+ }
128
+ //# sourceMappingURL=mnemonic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mnemonic.js","sourceRoot":"","sources":["../src/mnemonic.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAA;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAErC;;;;;;;;;;GAUG;AACH,MAAM,UAAU,gBAAgB;IAC/B,OAAO,KAAK,CAAC,gBAAgB,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAA,CAAC,sBAAsB;AACpE,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,gBAAgB,CAAC,QAAgB;IAChD,OAAO,KAAK,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,QAAQ,CAAC,CAAA;AACvE,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,oBAAoB,CAAC,QAAgB;IACpD,MAAM,IAAI,GAAG,KAAK,CAAC,kBAAkB,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAA;IACpE,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAA;AACtB,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,eAAe,CAAC,KAAa;IAC5C,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAA;IAC5B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IAClC,qCAAqC;IACrC,IAAI,KAAK,CAAC,MAAM,KAAK,EAAE,IAAI,KAAK,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;QAChD,4EAA4E;QAC5E,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;QAC1D,IAAI,QAAQ;YAAE,OAAO,UAAU,CAAA;IAChC,CAAC;IACD,OAAO,MAAM,CAAA;AACd,CAAC;AAYD;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAY,EAAE,QAAiB;IAChE,MAAM,IAAI,GAAoB,EAAE,IAAI,EAAE,CAAA;IACtC,IAAI,QAAQ,EAAE,CAAC;QACd,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;IACzB,CAAC;IACD,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;AAC5B,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,iBAAiB,CAAC,SAAiB;IAClD,IAAI,CAAC;QACJ,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;QACpC,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC/C,OAAO;gBACN,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,SAAS;aACtC,CAAA;QACF,CAAC;IACF,CAAC;IAAC,MAAM,CAAC;QACR,2CAA2C;IAC5C,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAA;AAC3B,CAAC"}
@@ -39,4 +39,26 @@ export declare function encode(term: SerializableValue): Uint8Array;
39
39
  * ```
40
40
  */
41
41
  export declare function decode(bytes: Uint8Array | number[]): DecodedValue;
42
+ /**
43
+ * Decode VecPack-encoded contract state into key-value pairs
44
+ *
45
+ * Contract state prefix queries return a VecPack-encoded map where both
46
+ * keys and values are binary (Uint8Array). This convenience function decodes
47
+ * the binary data and returns the entries as an array of tuples.
48
+ *
49
+ * @param bytes - VecPack-encoded bytes (Uint8Array or ArrayBuffer)
50
+ * @returns Array of [key, value] tuples
51
+ * @throws Error if the data is not a valid VecPack map or entries are not binary
52
+ *
53
+ * @example
54
+ * ```ts
55
+ * const response = await fetch('/contract/state/prefix?prefix=...')
56
+ * const buffer = await response.arrayBuffer()
57
+ * const entries = decodeContractState(buffer)
58
+ * for (const [key, value] of entries) {
59
+ * console.log(key, value)
60
+ * }
61
+ * ```
62
+ */
63
+ export declare function decodeContractState(bytes: Uint8Array | ArrayBuffer): Array<[Uint8Array, Uint8Array]>;
42
64
  //# sourceMappingURL=serialization.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"serialization.d.ts","sourceRoot":"","sources":["../src/serialization.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAUH,OAAO,KAAK,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAM9D;;;;;;;;;;;GAWG;AACH,wBAAgB,MAAM,CAAC,IAAI,EAAE,iBAAiB,GAAG,UAAU,CAI1D;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,EAAE,GAAG,YAAY,CAQjE"}
1
+ {"version":3,"file":"serialization.d.ts","sourceRoot":"","sources":["../src/serialization.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAUH,OAAO,KAAK,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAM9D;;;;;;;;;;;GAWG;AACH,wBAAgB,MAAM,CAAC,IAAI,EAAE,iBAAiB,GAAG,UAAU,CAI1D;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,EAAE,GAAG,YAAY,CAQjE;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,mBAAmB,CAClC,KAAK,EAAE,UAAU,GAAG,WAAW,GAC7B,KAAK,CAAC,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAiBjC"}
@@ -57,6 +57,42 @@ export function decode(bytes) {
57
57
  }
58
58
  return value;
59
59
  }
60
+ /**
61
+ * Decode VecPack-encoded contract state into key-value pairs
62
+ *
63
+ * Contract state prefix queries return a VecPack-encoded map where both
64
+ * keys and values are binary (Uint8Array). This convenience function decodes
65
+ * the binary data and returns the entries as an array of tuples.
66
+ *
67
+ * @param bytes - VecPack-encoded bytes (Uint8Array or ArrayBuffer)
68
+ * @returns Array of [key, value] tuples
69
+ * @throws Error if the data is not a valid VecPack map or entries are not binary
70
+ *
71
+ * @example
72
+ * ```ts
73
+ * const response = await fetch('/contract/state/prefix?prefix=...')
74
+ * const buffer = await response.arrayBuffer()
75
+ * const entries = decodeContractState(buffer)
76
+ * for (const [key, value] of entries) {
77
+ * console.log(key, value)
78
+ * }
79
+ * ```
80
+ */
81
+ export function decodeContractState(bytes) {
82
+ const data = bytes instanceof ArrayBuffer ? new Uint8Array(bytes) : bytes;
83
+ const decoded = decode(data);
84
+ if (!(decoded instanceof Map)) {
85
+ throw new Error(`Expected MAP type, got ${typeof decoded}`);
86
+ }
87
+ const result = [];
88
+ for (const [key, value] of decoded.entries()) {
89
+ if (!(key instanceof Uint8Array) || !(value instanceof Uint8Array)) {
90
+ throw new Error('Expected Uint8Array for key and value');
91
+ }
92
+ result.push([key, value]);
93
+ }
94
+ return result;
95
+ }
60
96
  /*
61
97
  * Helper functions for encoding and decoding
62
98
  */
@@ -118,8 +154,6 @@ function decodeVarint(data, ref) {
118
154
  for (let i = 0; i < length; i++) {
119
155
  mag = (mag << 8n) | BigInt(data[ref.offset++]);
120
156
  }
121
- if (mag > BigInt(Number.MAX_SAFE_INTEGER))
122
- throw new Error('length_overflow');
123
157
  if (signBit === 1) {
124
158
  return -mag;
125
159
  }
@@ -132,6 +166,9 @@ function decodeVarintGteZero(data, ref) {
132
166
  if (n < 0n) {
133
167
  throw new Error('length_is_negative');
134
168
  }
169
+ if (n > BigInt(Number.MAX_SAFE_INTEGER)) {
170
+ throw new Error('length_overflow');
171
+ }
135
172
  return Number(n);
136
173
  }
137
174
  function encodeTerm(value, out) {
@@ -1 +1 @@
1
- {"version":3,"file":"serialization.js","sourceRoot":"","sources":["../src/serialization.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"serialization.js","sourceRoot":"","sources":["../src/serialization.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Transaction Signing Primitives
3
+ *
4
+ * Stateless, standalone functions for building and signing Amadeus transactions.
5
+ * This module is the source of truth for the signing pipeline — both
6
+ * TransactionBuilder and createContract().connect() delegate to these functions.
7
+ */
8
+ import type { PrivKey } from '@noble/curves/abstract/utils';
9
+ import type { BuildTransactionResult, SerializableValue, UnsignedTransactionWithHash } from './types';
10
+ import type { ContractCall } from './contracts/contract-call';
11
+ /**
12
+ * Normalize a signer secret key to PrivKey format.
13
+ * Accepts Base58 strings, raw Uint8Array, or already-derived PrivKey.
14
+ */
15
+ export declare function normalizeSignerSk(signerSk: PrivKey | string | Uint8Array): PrivKey;
16
+ /**
17
+ * Build an unsigned transaction from raw contract/method/args.
18
+ */
19
+ export declare function buildUnsigned(signerPk: Uint8Array, contract: string, method: string, args: SerializableValue[]): UnsignedTransactionWithHash;
20
+ /**
21
+ * Sign an already-built unsigned transaction.
22
+ */
23
+ export declare function signUnsigned(unsignedTx: UnsignedTransactionWithHash, signerSk: PrivKey | string | Uint8Array): BuildTransactionResult;
24
+ /**
25
+ * Build and sign a transaction from raw contract/method/args.
26
+ */
27
+ export declare function buildAndSignRaw(signerPk: Uint8Array, signerSk: PrivKey | string | Uint8Array, contract: string, method: string, args: SerializableValue[]): BuildTransactionResult;
28
+ /**
29
+ * Build an unsigned transaction from a ContractCall.
30
+ */
31
+ export declare function buildUnsignedFromCall(signerPk: Uint8Array, call: ContractCall): UnsignedTransactionWithHash;
32
+ /**
33
+ * Highest-level: derive keys from a Base58 private key and sign a ContractCall.
34
+ *
35
+ * This is the core function behind `TransactionBuilder.signCall()` and
36
+ * `createContract(ABI).connect(key).method()`.
37
+ */
38
+ export declare function signContractCall(senderPrivkey: string, call: ContractCall): BuildTransactionResult;
39
+ //# sourceMappingURL=signing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signing.d.ts","sourceRoot":"","sources":["../src/signing.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAA;AAO3D,OAAO,KAAK,EACX,sBAAsB,EACtB,iBAAiB,EAGjB,2BAA2B,EAC3B,MAAM,SAAS,CAAA;AAChB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAU7D;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,OAAO,GAAG,MAAM,GAAG,UAAU,GAAG,OAAO,CAMlF;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC5B,QAAQ,EAAE,UAAU,EACpB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,iBAAiB,EAAE,GACvB,2BAA2B,CAe7B;AAED;;GAEG;AACH,wBAAgB,YAAY,CAC3B,UAAU,EAAE,2BAA2B,EACvC,QAAQ,EAAE,OAAO,GAAG,MAAM,GAAG,UAAU,GACrC,sBAAsB,CAOxB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC9B,QAAQ,EAAE,UAAU,EACpB,QAAQ,EAAE,OAAO,GAAG,MAAM,GAAG,UAAU,EACvC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,iBAAiB,EAAE,GACvB,sBAAsB,CAGxB;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACpC,QAAQ,EAAE,UAAU,EACpB,IAAI,EAAE,YAAY,GAChB,2BAA2B,CAE7B;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC/B,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE,YAAY,GAChB,sBAAsB,CAIxB"}
@@ -0,0 +1,84 @@
1
+ /**
2
+ * Transaction Signing Primitives
3
+ *
4
+ * Stateless, standalone functions for building and signing Amadeus transactions.
5
+ * This module is the source of truth for the signing pipeline — both
6
+ * TransactionBuilder and createContract().connect() delegate to these functions.
7
+ */
8
+ import { bls12_381 as bls } from '@noble/curves/bls12-381';
9
+ import { sha256 } from '@noble/hashes/sha2';
10
+ import { deriveSkAndSeed64FromBase58Seed, getPublicKey } from './crypto';
11
+ import { toBase58 } from './encoding';
12
+ import { encode } from './serialization';
13
+ /** Domain Separation Tag for transaction signatures */
14
+ const TX_DST = 'AMADEUS_SIG_BLS12381G2_XMD:SHA-256_SSWU_RO_TX_';
15
+ /** Generate a transaction nonce based on current timestamp */
16
+ function generateNonce() {
17
+ return BigInt(Date.now()) * 1000000n;
18
+ }
19
+ /**
20
+ * Normalize a signer secret key to PrivKey format.
21
+ * Accepts Base58 strings, raw Uint8Array, or already-derived PrivKey.
22
+ */
23
+ export function normalizeSignerSk(signerSk) {
24
+ if (typeof signerSk === 'string') {
25
+ const { sk } = deriveSkAndSeed64FromBase58Seed(signerSk);
26
+ return sk;
27
+ }
28
+ return signerSk;
29
+ }
30
+ /**
31
+ * Build an unsigned transaction from raw contract/method/args.
32
+ */
33
+ export function buildUnsigned(signerPk, contract, method, args) {
34
+ const action = {
35
+ op: 'call',
36
+ contract,
37
+ function: method,
38
+ args
39
+ };
40
+ const tx = {
41
+ signer: signerPk,
42
+ nonce: generateNonce(),
43
+ action
44
+ };
45
+ const txEncoded = encode(tx);
46
+ const hash = sha256(txEncoded);
47
+ return { tx, hash };
48
+ }
49
+ /**
50
+ * Sign an already-built unsigned transaction.
51
+ */
52
+ export function signUnsigned(unsignedTx, signerSk) {
53
+ const sk = normalizeSignerSk(signerSk);
54
+ const signature = bls.sign(unsignedTx.hash, sk, { DST: TX_DST });
55
+ return {
56
+ txHash: toBase58(unsignedTx.hash),
57
+ txPacked: encode({ tx: unsignedTx.tx, hash: unsignedTx.hash, signature })
58
+ };
59
+ }
60
+ /**
61
+ * Build and sign a transaction from raw contract/method/args.
62
+ */
63
+ export function buildAndSignRaw(signerPk, signerSk, contract, method, args) {
64
+ const unsignedTx = buildUnsigned(signerPk, contract, method, args);
65
+ return signUnsigned(unsignedTx, signerSk);
66
+ }
67
+ /**
68
+ * Build an unsigned transaction from a ContractCall.
69
+ */
70
+ export function buildUnsignedFromCall(signerPk, call) {
71
+ return buildUnsigned(signerPk, call.contract, call.method, call.args);
72
+ }
73
+ /**
74
+ * Highest-level: derive keys from a Base58 private key and sign a ContractCall.
75
+ *
76
+ * This is the core function behind `TransactionBuilder.signCall()` and
77
+ * `createContract(ABI).connect(key).method()`.
78
+ */
79
+ export function signContractCall(senderPrivkey, call) {
80
+ const { seed64, sk } = deriveSkAndSeed64FromBase58Seed(senderPrivkey);
81
+ const signerPubKey = getPublicKey(seed64);
82
+ return buildAndSignRaw(signerPubKey, sk, call.contract, call.method, call.args);
83
+ }
84
+ //# sourceMappingURL=signing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signing.js","sourceRoot":"","sources":["../src/signing.ts"],"names":[],"mappings":"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"}