@amadeus-protocol/sdk 1.0.8 → 1.1.1

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 (200) hide show
  1. package/README.md +215 -30
  2. package/dist/api/chain.d.ts +144 -117
  3. package/dist/api/chain.d.ts.map +1 -1
  4. package/dist/api/chain.js +175 -146
  5. package/dist/api/chain.js.map +1 -1
  6. package/dist/api/contract.d.ts +78 -60
  7. package/dist/api/contract.d.ts.map +1 -1
  8. package/dist/api/contract.js +102 -75
  9. package/dist/api/contract.js.map +1 -1
  10. package/dist/api/epoch.d.ts +65 -66
  11. package/dist/api/epoch.d.ts.map +1 -1
  12. package/dist/api/epoch.js +90 -98
  13. package/dist/api/epoch.js.map +1 -1
  14. package/dist/api/peer.d.ts +77 -78
  15. package/dist/api/peer.d.ts.map +1 -1
  16. package/dist/api/peer.js +93 -94
  17. package/dist/api/peer.js.map +1 -1
  18. package/dist/api/proof.d.ts +44 -23
  19. package/dist/api/proof.d.ts.map +1 -1
  20. package/dist/api/proof.js +56 -29
  21. package/dist/api/proof.js.map +1 -1
  22. package/dist/api/transaction.d.ts +68 -69
  23. package/dist/api/transaction.d.ts.map +1 -1
  24. package/dist/api/transaction.js +84 -84
  25. package/dist/api/transaction.js.map +1 -1
  26. package/dist/api/wallet.d.ts +36 -37
  27. package/dist/api/wallet.d.ts.map +1 -1
  28. package/dist/api/wallet.js +47 -50
  29. package/dist/api/wallet.js.map +1 -1
  30. package/dist/client.d.ts +66 -68
  31. package/dist/client.d.ts.map +1 -1
  32. package/dist/client.js +231 -276
  33. package/dist/client.js.map +1 -1
  34. package/dist/constants.d.ts +13 -10
  35. package/dist/constants.d.ts.map +1 -1
  36. package/dist/constants.js +49 -45
  37. package/dist/constants.js.map +1 -1
  38. package/dist/contract-state.d.ts +6 -3
  39. package/dist/contract-state.d.ts.map +1 -1
  40. package/dist/contract-state.js +88 -106
  41. package/dist/contract-state.js.map +1 -1
  42. package/dist/contracts/abi-types.d.ts +32 -32
  43. package/dist/contracts/abi-types.d.ts.map +1 -1
  44. package/dist/contracts/coin.d.ts +13 -20
  45. package/dist/contracts/coin.d.ts.map +1 -1
  46. package/dist/contracts/coin.js +42 -38
  47. package/dist/contracts/coin.js.map +1 -1
  48. package/dist/contracts/contract-call.d.ts +14 -16
  49. package/dist/contracts/contract-call.d.ts.map +1 -1
  50. package/dist/contracts/contract-call.js +45 -54
  51. package/dist/contracts/contract-call.js.map +1 -1
  52. package/dist/contracts/contract.d.ts +24 -55
  53. package/dist/contracts/contract.d.ts.map +1 -1
  54. package/dist/contracts/contract.js +63 -101
  55. package/dist/contracts/contract.js.map +1 -1
  56. package/dist/contracts/lockup/abi.d.ts +54 -51
  57. package/dist/contracts/lockup/abi.d.ts.map +1 -1
  58. package/dist/contracts/lockup/abi.js +65 -74
  59. package/dist/contracts/lockup/abi.js.map +1 -1
  60. package/dist/contracts/lockup/helpers.d.ts +22 -18
  61. package/dist/contracts/lockup/helpers.d.ts.map +1 -1
  62. package/dist/contracts/lockup/helpers.js +44 -47
  63. package/dist/contracts/lockup/helpers.js.map +1 -1
  64. package/dist/contracts/lockup/parsers.d.ts +7 -3
  65. package/dist/contracts/lockup/parsers.d.ts.map +1 -1
  66. package/dist/contracts/lockup/parsers.js +51 -55
  67. package/dist/contracts/lockup/parsers.js.map +1 -1
  68. package/dist/contracts/lockup/storage-keys.d.ts +5 -2
  69. package/dist/contracts/lockup/storage-keys.d.ts.map +1 -1
  70. package/dist/contracts/lockup/storage-keys.js +54 -70
  71. package/dist/contracts/lockup/storage-keys.js.map +1 -1
  72. package/dist/contracts/lockup/types.d.ts +73 -70
  73. package/dist/contracts/lockup/types.d.ts.map +1 -1
  74. package/dist/contracts/lockup-prime/abi.d.ts +328 -325
  75. package/dist/contracts/lockup-prime/abi.d.ts.map +1 -1
  76. package/dist/contracts/lockup-prime/abi.js +397 -417
  77. package/dist/contracts/lockup-prime/abi.js.map +1 -1
  78. package/dist/contracts/lockup-prime/helpers.d.ts +35 -31
  79. package/dist/contracts/lockup-prime/helpers.d.ts.map +1 -1
  80. package/dist/contracts/lockup-prime/helpers.js +131 -137
  81. package/dist/contracts/lockup-prime/helpers.js.map +1 -1
  82. package/dist/contracts/lockup-prime/parsers.d.ts +9 -5
  83. package/dist/contracts/lockup-prime/parsers.d.ts.map +1 -1
  84. package/dist/contracts/lockup-prime/parsers.js +61 -61
  85. package/dist/contracts/lockup-prime/parsers.js.map +1 -1
  86. package/dist/contracts/lockup-prime/storage-keys.d.ts +7 -4
  87. package/dist/contracts/lockup-prime/storage-keys.d.ts.map +1 -1
  88. package/dist/contracts/lockup-prime/storage-keys.js +64 -80
  89. package/dist/contracts/lockup-prime/storage-keys.js.map +1 -1
  90. package/dist/contracts/lockup-prime/types.d.ts +92 -89
  91. package/dist/contracts/lockup-prime/types.d.ts.map +1 -1
  92. package/dist/contracts/lockup-prime/types.js +12 -13
  93. package/dist/contracts/lockup-prime/types.js.map +1 -1
  94. package/dist/contracts/nft/abi.d.ts +104 -0
  95. package/dist/contracts/nft/abi.d.ts.map +1 -0
  96. package/dist/contracts/nft/abi.js +135 -0
  97. package/dist/contracts/nft/abi.js.map +1 -0
  98. package/dist/contracts/nft/helpers.d.ts +21 -0
  99. package/dist/contracts/nft/helpers.d.ts.map +1 -0
  100. package/dist/contracts/nft/helpers.js +61 -0
  101. package/dist/contracts/nft/helpers.js.map +1 -0
  102. package/dist/contracts/nft/types.d.ts +47 -0
  103. package/dist/contracts/nft/types.d.ts.map +1 -0
  104. package/dist/conversion.d.ts +5 -2
  105. package/dist/conversion.d.ts.map +1 -1
  106. package/dist/conversion.js +45 -50
  107. package/dist/conversion.js.map +1 -1
  108. package/dist/crypto.d.ts +14 -16
  109. package/dist/crypto.d.ts.map +1 -1
  110. package/dist/crypto.js +121 -140
  111. package/dist/crypto.js.map +1 -1
  112. package/dist/encoding.d.ts +11 -8
  113. package/dist/encoding.d.ts.map +1 -1
  114. package/dist/encoding.js +123 -144
  115. package/dist/encoding.js.map +1 -1
  116. package/dist/encryption.d.ts +15 -12
  117. package/dist/encryption.d.ts.map +1 -1
  118. package/dist/encryption.js +119 -117
  119. package/dist/encryption.js.map +1 -1
  120. package/dist/explorer.d.ts +10 -7
  121. package/dist/explorer.d.ts.map +1 -1
  122. package/dist/explorer.js +51 -48
  123. package/dist/explorer.js.map +1 -1
  124. package/dist/formatters.d.ts +8 -5
  125. package/dist/formatters.d.ts.map +1 -1
  126. package/dist/formatters.js +67 -68
  127. package/dist/formatters.js.map +1 -1
  128. package/dist/index.d.ts +42 -55
  129. package/dist/index.js +39 -55
  130. package/dist/mnemonic.d.ts +12 -9
  131. package/dist/mnemonic.d.ts.map +1 -1
  132. package/dist/mnemonic.js +105 -114
  133. package/dist/mnemonic.js.map +1 -1
  134. package/dist/networks.d.ts +14 -17
  135. package/dist/networks.d.ts.map +1 -1
  136. package/dist/networks.js +40 -36
  137. package/dist/networks.js.map +1 -1
  138. package/dist/schemas.js +75 -79
  139. package/dist/schemas.js.map +1 -1
  140. package/dist/sdk.d.ts +69 -65
  141. package/dist/sdk.d.ts.map +1 -1
  142. package/dist/sdk.js +126 -117
  143. package/dist/sdk.js.map +1 -1
  144. package/dist/serialization.d.ts +8 -18
  145. package/dist/serialization.d.ts.map +1 -1
  146. package/dist/serialization.js +207 -260
  147. package/dist/serialization.js.map +1 -1
  148. package/dist/signing.js +67 -67
  149. package/dist/signing.js.map +1 -1
  150. package/dist/transaction-builder.d.ts +175 -184
  151. package/dist/transaction-builder.d.ts.map +1 -1
  152. package/dist/transaction-builder.js +295 -344
  153. package/dist/transaction-builder.js.map +1 -1
  154. package/dist/transaction-errors.d.ts +10 -12
  155. package/dist/transaction-errors.d.ts.map +1 -1
  156. package/dist/transaction-errors.js +145 -166
  157. package/dist/transaction-errors.js.map +1 -1
  158. package/dist/types.d.ts +530 -450
  159. package/dist/types.d.ts.map +1 -1
  160. package/dist/types.js +169 -183
  161. package/dist/types.js.map +1 -1
  162. package/dist/validation.d.ts +24 -26
  163. package/dist/validation.d.ts.map +1 -1
  164. package/dist/validation.js +194 -192
  165. package/dist/validation.js.map +1 -1
  166. package/package.json +4 -3
  167. package/dist/api/index.d.ts +0 -8
  168. package/dist/api/index.d.ts.map +0 -1
  169. package/dist/api/index.js +0 -8
  170. package/dist/api/index.js.map +0 -1
  171. package/dist/contracts/abi-types.js +0 -8
  172. package/dist/contracts/abi-types.js.map +0 -1
  173. package/dist/contracts/index.d.ts +0 -7
  174. package/dist/contracts/index.d.ts.map +0 -1
  175. package/dist/contracts/index.js +0 -7
  176. package/dist/contracts/index.js.map +0 -1
  177. package/dist/contracts/lockup/calls.d.ts +0 -23
  178. package/dist/contracts/lockup/calls.d.ts.map +0 -1
  179. package/dist/contracts/lockup/calls.js +0 -25
  180. package/dist/contracts/lockup/calls.js.map +0 -1
  181. package/dist/contracts/lockup/index.d.ts +0 -6
  182. package/dist/contracts/lockup/index.d.ts.map +0 -1
  183. package/dist/contracts/lockup/index.js +0 -6
  184. package/dist/contracts/lockup/index.js.map +0 -1
  185. package/dist/contracts/lockup/types.js +0 -7
  186. package/dist/contracts/lockup/types.js.map +0 -1
  187. package/dist/contracts/lockup-prime/calls.d.ts +0 -53
  188. package/dist/contracts/lockup-prime/calls.d.ts.map +0 -1
  189. package/dist/contracts/lockup-prime/calls.js +0 -60
  190. package/dist/contracts/lockup-prime/calls.js.map +0 -1
  191. package/dist/contracts/lockup-prime/index.d.ts +0 -6
  192. package/dist/contracts/lockup-prime/index.d.ts.map +0 -1
  193. package/dist/contracts/lockup-prime/index.js +0 -6
  194. package/dist/contracts/lockup-prime/index.js.map +0 -1
  195. package/dist/index.d.ts.map +0 -1
  196. package/dist/index.js.map +0 -1
  197. package/dist/schemas.d.ts +0 -67
  198. package/dist/schemas.d.ts.map +0 -1
  199. package/dist/signing.d.ts +0 -39
  200. package/dist/signing.d.ts.map +0 -1
@@ -1,215 +1,217 @@
1
+ import { AmadeusSDKError } from "./types.js";
2
+ import { AMA_TOKEN_DECIMALS_MULTIPLIER, MIN_TRANSFERABLE_AMOUNT } from "./constants.js";
3
+ import { fromBase58 } from "./encoding.js";
4
+ import { Schema } from "effect";
5
+ //#region src/validation.ts
1
6
  /**
2
- * Validation Utilities
3
- *
4
- * Helper functions for validating values using Effect Schemas and
5
- * standalone validation functions for Amadeus Protocol data types.
6
- */
7
- import { Schema } from 'effect';
8
- import { AMA_TOKEN_DECIMALS, AMA_TOKEN_DECIMALS_MULTIPLIER, AMADEUS_PUBLIC_KEY_BYTE_LENGTH, AMADEUS_SEED_BYTE_LENGTH, MIN_TRANSFERABLE_AMOUNT } from './constants';
9
- import { fromBase58 } from './encoding';
10
- import { AmadeusSDKError } from './types';
7
+ * Validation Utilities
8
+ *
9
+ * Helper functions for validating values using Effect Schemas and
10
+ * standalone validation functions for Amadeus Protocol data types.
11
+ */
11
12
  /**
12
- * Helper function to extract error message from Effect Schema ParseError
13
- */
13
+ * Helper function to extract error message from Effect Schema ParseError
14
+ */
14
15
  function getErrorMessage(error) {
15
- if (error instanceof Error) {
16
- return error.message;
17
- }
18
- if (error &&
19
- typeof error === 'object' &&
20
- 'message' in error &&
21
- typeof error.message === 'string') {
22
- return error.message;
23
- }
24
- return String(error);
16
+ if (error instanceof Error) return error.message;
17
+ if (error && typeof error === "object" && "message" in error && typeof error.message === "string") return error.message;
18
+ return String(error);
25
19
  }
26
20
  /**
27
- * Helper function to validate and decode a value using a schema
28
- * Throws AmadeusSDKError if validation fails
29
- * @param schema - Effect Schema to validate against
30
- * @param value - Value to validate
31
- * @returns Validated value
32
- */
33
- export function validate(schema, value) {
34
- try {
35
- return Schema.decodeUnknownSync(schema)(value);
36
- }
37
- catch (error) {
38
- // Convert Effect Schema ParseError to AmadeusSDKError
39
- throw new AmadeusSDKError(getErrorMessage(error));
40
- }
21
+ * Helper function to validate and decode a value using a schema
22
+ * Throws AmadeusSDKError if validation fails
23
+ * @param schema - Effect Schema to validate against
24
+ * @param value - Value to validate
25
+ * @returns Validated value
26
+ */
27
+ function validate(schema, value) {
28
+ try {
29
+ return Schema.decodeUnknownSync(schema)(value);
30
+ } catch (error) {
31
+ throw new AmadeusSDKError(getErrorMessage(error));
32
+ }
41
33
  }
42
34
  /**
43
- * Validate an Amadeus address (Base58-encoded 48-byte public key)
44
- *
45
- * @param address - The address to validate
46
- * @returns Validation result with error message if invalid
47
- *
48
- * @example
49
- * ```ts
50
- * const result = validateAddress('abc123...')
51
- * if (!result.valid) {
52
- * console.error(result.error)
53
- * }
54
- * ```
55
- */
56
- export function validateAddress(address) {
57
- if (!address || typeof address !== 'string') {
58
- return { valid: false, error: 'Address is required' };
59
- }
60
- try {
61
- const decoded = fromBase58(address);
62
- if (decoded.length !== AMADEUS_PUBLIC_KEY_BYTE_LENGTH) {
63
- return {
64
- valid: false,
65
- error: `Invalid address length: expected ${AMADEUS_PUBLIC_KEY_BYTE_LENGTH} bytes, got ${decoded.length}`
66
- };
67
- }
68
- return { valid: true };
69
- }
70
- catch {
71
- return { valid: false, error: 'Invalid Base58 encoding' };
72
- }
35
+ * Validate an Amadeus address (Base58-encoded 48-byte public key)
36
+ *
37
+ * @param address - The address to validate
38
+ * @returns Validation result with error message if invalid
39
+ *
40
+ * @example
41
+ * ```ts
42
+ * const result = validateAddress('abc123...')
43
+ * if (!result.valid) {
44
+ * console.error(result.error)
45
+ * }
46
+ * ```
47
+ */
48
+ function validateAddress(address) {
49
+ if (!address || typeof address !== "string") return {
50
+ valid: false,
51
+ error: "Address is required"
52
+ };
53
+ try {
54
+ const decoded = fromBase58(address);
55
+ if (decoded.length !== 48) return {
56
+ valid: false,
57
+ error: `Invalid address length: expected 48 bytes, got ${decoded.length}`
58
+ };
59
+ return { valid: true };
60
+ } catch {
61
+ return {
62
+ valid: false,
63
+ error: "Invalid Base58 encoding"
64
+ };
65
+ }
73
66
  }
74
67
  /**
75
- * Check if an address is valid (simple boolean version)
76
- *
77
- * @param address - The address to check
78
- * @returns true if valid, false otherwise
79
- */
80
- export function isValidAddress(address) {
81
- return validateAddress(address).valid;
68
+ * Check if an address is valid (simple boolean version)
69
+ *
70
+ * @param address - The address to check
71
+ * @returns true if valid, false otherwise
72
+ */
73
+ function isValidAddress(address) {
74
+ return validateAddress(address).valid;
82
75
  }
83
76
  /**
84
- * Validate an Amadeus seed (Base58-encoded 64-byte seed)
85
- *
86
- * @param seed - The seed to validate
87
- * @returns Validation result with error message if invalid
88
- */
89
- export function validateSeed(seed) {
90
- if (!seed || typeof seed !== 'string') {
91
- return { valid: false, error: 'Seed is required' };
92
- }
93
- try {
94
- const decoded = fromBase58(seed);
95
- if (decoded.length !== AMADEUS_SEED_BYTE_LENGTH) {
96
- return {
97
- valid: false,
98
- error: `Invalid seed length: expected ${AMADEUS_SEED_BYTE_LENGTH} bytes, got ${decoded.length}`
99
- };
100
- }
101
- return { valid: true };
102
- }
103
- catch {
104
- return { valid: false, error: 'Invalid Base58 encoding' };
105
- }
77
+ * Validate an Amadeus seed (Base58-encoded 64-byte seed)
78
+ *
79
+ * @param seed - The seed to validate
80
+ * @returns Validation result with error message if invalid
81
+ */
82
+ function validateSeed(seed) {
83
+ if (!seed || typeof seed !== "string") return {
84
+ valid: false,
85
+ error: "Seed is required"
86
+ };
87
+ try {
88
+ const decoded = fromBase58(seed);
89
+ if (decoded.length !== 64) return {
90
+ valid: false,
91
+ error: `Invalid seed length: expected 64 bytes, got ${decoded.length}`
92
+ };
93
+ return { valid: true };
94
+ } catch {
95
+ return {
96
+ valid: false,
97
+ error: "Invalid Base58 encoding"
98
+ };
99
+ }
106
100
  }
107
101
  /**
108
- * Check if a seed is valid (simple boolean version)
109
- *
110
- * @param seed - The seed to check
111
- * @returns true if valid, false otherwise
112
- */
113
- export function isValidSeed(seed) {
114
- return validateSeed(seed).valid;
102
+ * Check if a seed is valid (simple boolean version)
103
+ *
104
+ * @param seed - The seed to check
105
+ * @returns true if valid, false otherwise
106
+ */
107
+ function isValidSeed(seed) {
108
+ return validateSeed(seed).valid;
115
109
  }
116
110
  /**
117
- * Validate a transfer amount
118
- *
119
- * @param amount - The amount as a string (user input)
120
- * @returns Validation result with error message if invalid
121
- */
122
- export function validateAmount(amount) {
123
- if (!amount || typeof amount !== 'string') {
124
- return { valid: false, error: 'Amount is required' };
125
- }
126
- // Check format: must be a valid number
127
- if (!/^\d+(\.\d+)?$/.test(amount)) {
128
- return { valid: false, error: 'Amount must be a valid number' };
129
- }
130
- // Check decimal places
131
- const decimalPart = amount.split('.')[1];
132
- if (decimalPart && decimalPart.length > AMA_TOKEN_DECIMALS) {
133
- return {
134
- valid: false,
135
- error: `Amount cannot have more than ${AMA_TOKEN_DECIMALS} decimal places`
136
- };
137
- }
138
- // Check value is positive
139
- const num = Number.parseFloat(amount);
140
- if (Number.isNaN(num) || num <= 0) {
141
- return { valid: false, error: 'Amount must be greater than 0' };
142
- }
143
- // Check minimum transferable amount
144
- if (num * AMA_TOKEN_DECIMALS_MULTIPLIER < 1) {
145
- return {
146
- valid: false,
147
- error: `Amount is below the minimum transferable value (${MIN_TRANSFERABLE_AMOUNT})`
148
- };
149
- }
150
- return { valid: true };
111
+ * Validate a transfer amount
112
+ *
113
+ * @param amount - The amount as a string (user input)
114
+ * @returns Validation result with error message if invalid
115
+ */
116
+ function validateAmount(amount) {
117
+ if (!amount || typeof amount !== "string") return {
118
+ valid: false,
119
+ error: "Amount is required"
120
+ };
121
+ if (!/^\d+(\.\d+)?$/.test(amount)) return {
122
+ valid: false,
123
+ error: "Amount must be a valid number"
124
+ };
125
+ const decimalPart = amount.split(".")[1];
126
+ if (decimalPart && decimalPart.length > 9) return {
127
+ valid: false,
128
+ error: `Amount cannot have more than 9 decimal places`
129
+ };
130
+ const num = Number.parseFloat(amount);
131
+ if (Number.isNaN(num) || num <= 0) return {
132
+ valid: false,
133
+ error: "Amount must be greater than 0"
134
+ };
135
+ if (num * AMA_TOKEN_DECIMALS_MULTIPLIER < 1) return {
136
+ valid: false,
137
+ error: `Amount is below the minimum transferable value (${MIN_TRANSFERABLE_AMOUNT})`
138
+ };
139
+ return { valid: true };
151
140
  }
152
141
  /**
153
- * Check if an amount is valid (simple boolean version)
154
- *
155
- * @param amount - The amount to check
156
- * @returns true if valid, false otherwise
157
- */
158
- export function isValidAmount(amount) {
159
- return validateAmount(amount).valid;
142
+ * Check if an amount is valid (simple boolean version)
143
+ *
144
+ * @param amount - The amount to check
145
+ * @returns true if valid, false otherwise
146
+ */
147
+ function isValidAmount(amount) {
148
+ return validateAmount(amount).valid;
160
149
  }
161
150
  /**
162
- * Validate a password for wallet encryption
163
- *
164
- * @param password - The password to validate
165
- * @param options - Validation options
166
- * @returns Validation result with error message if invalid
167
- */
168
- export function validatePassword(password, options = {}) {
169
- const { minLength = 8, maxLength = 128, requireLowercase = true, requireUppercase = true, requireNumber = true, requireSpecial = true } = options;
170
- if (!password || typeof password !== 'string') {
171
- return { valid: false, error: 'Password is required' };
172
- }
173
- if (password.length < minLength) {
174
- return { valid: false, error: `Password must be at least ${minLength} characters` };
175
- }
176
- if (password.length > maxLength) {
177
- return { valid: false, error: `Password must be at most ${maxLength} characters` };
178
- }
179
- if (requireLowercase && !/[a-z]/.test(password)) {
180
- return { valid: false, error: 'Password must contain at least one lowercase letter' };
181
- }
182
- if (requireUppercase && !/[A-Z]/.test(password)) {
183
- return { valid: false, error: 'Password must contain at least one uppercase letter' };
184
- }
185
- if (requireNumber && !/[0-9]/.test(password)) {
186
- return { valid: false, error: 'Password must contain at least one number' };
187
- }
188
- if (requireSpecial && !/[^a-zA-Z0-9]/.test(password)) {
189
- return { valid: false, error: 'Password must contain at least one special character' };
190
- }
191
- return { valid: true };
151
+ * Validate a password for wallet encryption
152
+ *
153
+ * @param password - The password to validate
154
+ * @param options - Validation options
155
+ * @returns Validation result with error message if invalid
156
+ */
157
+ function validatePassword(password, options = {}) {
158
+ const { minLength = 8, maxLength = 128, requireLowercase = true, requireUppercase = true, requireNumber = true, requireSpecial = true } = options;
159
+ if (!password || typeof password !== "string") return {
160
+ valid: false,
161
+ error: "Password is required"
162
+ };
163
+ if (password.length < minLength) return {
164
+ valid: false,
165
+ error: `Password must be at least ${minLength} characters`
166
+ };
167
+ if (password.length > maxLength) return {
168
+ valid: false,
169
+ error: `Password must be at most ${maxLength} characters`
170
+ };
171
+ if (requireLowercase && !/[a-z]/.test(password)) return {
172
+ valid: false,
173
+ error: "Password must contain at least one lowercase letter"
174
+ };
175
+ if (requireUppercase && !/[A-Z]/.test(password)) return {
176
+ valid: false,
177
+ error: "Password must contain at least one uppercase letter"
178
+ };
179
+ if (requireNumber && !/[0-9]/.test(password)) return {
180
+ valid: false,
181
+ error: "Password must contain at least one number"
182
+ };
183
+ if (requireSpecial && !/[^a-zA-Z0-9]/.test(password)) return {
184
+ valid: false,
185
+ error: "Password must contain at least one special character"
186
+ };
187
+ return { valid: true };
192
188
  }
193
189
  /**
194
- * Validate a token symbol
195
- *
196
- * @param symbol - The symbol to validate
197
- * @returns Validation result with error message if invalid
198
- */
199
- export function validateTokenSymbol(symbol) {
200
- if (!symbol || typeof symbol !== 'string') {
201
- return { valid: false, error: 'Token symbol is required' };
202
- }
203
- if (symbol.length < 1) {
204
- return { valid: false, error: 'Token symbol is too short' };
205
- }
206
- if (symbol.length > 10) {
207
- return { valid: false, error: 'Token symbol is too long' };
208
- }
209
- // Only allow alphanumeric characters
210
- if (!/^[A-Z0-9]+$/.test(symbol)) {
211
- return { valid: false, error: 'Token symbol must contain only uppercase letters and numbers' };
212
- }
213
- return { valid: true };
190
+ * Validate a token symbol
191
+ *
192
+ * @param symbol - The symbol to validate
193
+ * @returns Validation result with error message if invalid
194
+ */
195
+ function validateTokenSymbol(symbol) {
196
+ if (!symbol || typeof symbol !== "string") return {
197
+ valid: false,
198
+ error: "Token symbol is required"
199
+ };
200
+ if (symbol.length < 1) return {
201
+ valid: false,
202
+ error: "Token symbol is too short"
203
+ };
204
+ if (symbol.length > 10) return {
205
+ valid: false,
206
+ error: "Token symbol is too long"
207
+ };
208
+ if (!/^[A-Z0-9]+$/.test(symbol)) return {
209
+ valid: false,
210
+ error: "Token symbol must contain only uppercase letters and numbers"
211
+ };
212
+ return { valid: true };
214
213
  }
214
+ //#endregion
215
+ export { isValidAddress, isValidAmount, isValidSeed, validate, validateAddress, validateAmount, validatePassword, validateSeed, validateTokenSymbol };
216
+
215
217
  //# sourceMappingURL=validation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validation.js","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validation.js","names":[],"sources":["../src/validation.ts"],"sourcesContent":["/**\n * Validation Utilities\n *\n * Helper functions for validating values using Effect Schemas and\n * standalone validation functions for Amadeus Protocol data types.\n */\n\nimport { Schema } from 'effect'\nimport {\n\tAMA_TOKEN_DECIMALS,\n\tAMA_TOKEN_DECIMALS_MULTIPLIER,\n\tAMADEUS_PUBLIC_KEY_BYTE_LENGTH,\n\tAMADEUS_SEED_BYTE_LENGTH,\n\tMIN_TRANSFERABLE_AMOUNT\n} from './constants'\nimport { fromBase58 } from './encoding'\nimport { AmadeusSDKError } from './types'\n\n/**\n * Helper function to extract error message from Effect Schema ParseError\n */\nfunction getErrorMessage(error: unknown): string {\n\tif (error instanceof Error) {\n\t\treturn error.message\n\t}\n\tif (\n\t\terror &&\n\t\ttypeof error === 'object' &&\n\t\t'message' in error &&\n\t\ttypeof error.message === 'string'\n\t) {\n\t\treturn error.message\n\t}\n\treturn String(error)\n}\n\n/**\n * Helper function to validate and decode a value using a schema\n * Throws AmadeusSDKError if validation fails\n * @param schema - Effect Schema to validate against\n * @param value - Value to validate\n * @returns Validated value\n */\nexport function validate<T>(schema: Schema.Schema<T>, value: unknown): T {\n\ttry {\n\t\treturn Schema.decodeUnknownSync(schema)(value)\n\t} catch (error) {\n\t\t// Convert Effect Schema ParseError to AmadeusSDKError\n\t\tthrow new AmadeusSDKError(getErrorMessage(error))\n\t}\n}\n\n// ============================================================================\n// Standalone Validation Functions\n// ============================================================================\n\n/**\n * Validation result type\n */\nexport type ValidationResult =\n\t| {\n\t\t\tvalid: true\n\t }\n\t| {\n\t\t\tvalid: false\n\t\t\terror: string\n\t }\n\n/**\n * Validate an Amadeus address (Base58-encoded 48-byte public key)\n *\n * @param address - The address to validate\n * @returns Validation result with error message if invalid\n *\n * @example\n * ```ts\n * const result = validateAddress('abc123...')\n * if (!result.valid) {\n * console.error(result.error)\n * }\n * ```\n */\nexport function validateAddress(address: string): ValidationResult {\n\tif (!address || typeof address !== 'string') {\n\t\treturn { valid: false, error: 'Address is required' }\n\t}\n\n\ttry {\n\t\tconst decoded = fromBase58(address)\n\t\tif (decoded.length !== AMADEUS_PUBLIC_KEY_BYTE_LENGTH) {\n\t\t\treturn {\n\t\t\t\tvalid: false,\n\t\t\t\terror: `Invalid address length: expected ${AMADEUS_PUBLIC_KEY_BYTE_LENGTH} bytes, got ${decoded.length}`\n\t\t\t}\n\t\t}\n\t\treturn { valid: true }\n\t} catch {\n\t\treturn { valid: false, error: 'Invalid Base58 encoding' }\n\t}\n}\n\n/**\n * Check if an address is valid (simple boolean version)\n *\n * @param address - The address to check\n * @returns true if valid, false otherwise\n */\nexport function isValidAddress(address: string): boolean {\n\treturn validateAddress(address).valid\n}\n\n/**\n * Validate an Amadeus seed (Base58-encoded 64-byte seed)\n *\n * @param seed - The seed to validate\n * @returns Validation result with error message if invalid\n */\nexport function validateSeed(seed: string): ValidationResult {\n\tif (!seed || typeof seed !== 'string') {\n\t\treturn { valid: false, error: 'Seed is required' }\n\t}\n\n\ttry {\n\t\tconst decoded = fromBase58(seed)\n\t\tif (decoded.length !== AMADEUS_SEED_BYTE_LENGTH) {\n\t\t\treturn {\n\t\t\t\tvalid: false,\n\t\t\t\terror: `Invalid seed length: expected ${AMADEUS_SEED_BYTE_LENGTH} bytes, got ${decoded.length}`\n\t\t\t}\n\t\t}\n\t\treturn { valid: true }\n\t} catch {\n\t\treturn { valid: false, error: 'Invalid Base58 encoding' }\n\t}\n}\n\n/**\n * Check if a seed is valid (simple boolean version)\n *\n * @param seed - The seed to check\n * @returns true if valid, false otherwise\n */\nexport function isValidSeed(seed: string): boolean {\n\treturn validateSeed(seed).valid\n}\n\n/**\n * Validate a transfer amount\n *\n * @param amount - The amount as a string (user input)\n * @returns Validation result with error message if invalid\n */\nexport function validateAmount(amount: string): ValidationResult {\n\tif (!amount || typeof amount !== 'string') {\n\t\treturn { valid: false, error: 'Amount is required' }\n\t}\n\n\t// Check format: must be a valid number\n\tif (!/^\\d+(\\.\\d+)?$/.test(amount)) {\n\t\treturn { valid: false, error: 'Amount must be a valid number' }\n\t}\n\n\t// Check decimal places\n\tconst decimalPart = amount.split('.')[1]\n\tif (decimalPart && decimalPart.length > AMA_TOKEN_DECIMALS) {\n\t\treturn {\n\t\t\tvalid: false,\n\t\t\terror: `Amount cannot have more than ${AMA_TOKEN_DECIMALS} decimal places`\n\t\t}\n\t}\n\n\t// Check value is positive\n\tconst num = Number.parseFloat(amount)\n\tif (Number.isNaN(num) || num <= 0) {\n\t\treturn { valid: false, error: 'Amount must be greater than 0' }\n\t}\n\n\t// Check minimum transferable amount\n\tif (num * AMA_TOKEN_DECIMALS_MULTIPLIER < 1) {\n\t\treturn {\n\t\t\tvalid: false,\n\t\t\terror: `Amount is below the minimum transferable value (${MIN_TRANSFERABLE_AMOUNT})`\n\t\t}\n\t}\n\n\treturn { valid: true }\n}\n\n/**\n * Check if an amount is valid (simple boolean version)\n *\n * @param amount - The amount to check\n * @returns true if valid, false otherwise\n */\nexport function isValidAmount(amount: string): boolean {\n\treturn validateAmount(amount).valid\n}\n\n/**\n * Validate a password for wallet encryption\n *\n * @param password - The password to validate\n * @param options - Validation options\n * @returns Validation result with error message if invalid\n */\nexport function validatePassword(\n\tpassword: string,\n\toptions: {\n\t\tminLength?: number\n\t\tmaxLength?: number\n\t\trequireLowercase?: boolean\n\t\trequireUppercase?: boolean\n\t\trequireNumber?: boolean\n\t\trequireSpecial?: boolean\n\t} = {}\n): ValidationResult {\n\tconst {\n\t\tminLength = 8,\n\t\tmaxLength = 128,\n\t\trequireLowercase = true,\n\t\trequireUppercase = true,\n\t\trequireNumber = true,\n\t\trequireSpecial = true\n\t} = options\n\n\tif (!password || typeof password !== 'string') {\n\t\treturn { valid: false, error: 'Password is required' }\n\t}\n\n\tif (password.length < minLength) {\n\t\treturn { valid: false, error: `Password must be at least ${minLength} characters` }\n\t}\n\n\tif (password.length > maxLength) {\n\t\treturn { valid: false, error: `Password must be at most ${maxLength} characters` }\n\t}\n\n\tif (requireLowercase && !/[a-z]/.test(password)) {\n\t\treturn { valid: false, error: 'Password must contain at least one lowercase letter' }\n\t}\n\n\tif (requireUppercase && !/[A-Z]/.test(password)) {\n\t\treturn { valid: false, error: 'Password must contain at least one uppercase letter' }\n\t}\n\n\tif (requireNumber && !/[0-9]/.test(password)) {\n\t\treturn { valid: false, error: 'Password must contain at least one number' }\n\t}\n\n\tif (requireSpecial && !/[^a-zA-Z0-9]/.test(password)) {\n\t\treturn { valid: false, error: 'Password must contain at least one special character' }\n\t}\n\n\treturn { valid: true }\n}\n\n/**\n * Validate a token symbol\n *\n * @param symbol - The symbol to validate\n * @returns Validation result with error message if invalid\n */\nexport function validateTokenSymbol(symbol: string): ValidationResult {\n\tif (!symbol || typeof symbol !== 'string') {\n\t\treturn { valid: false, error: 'Token symbol is required' }\n\t}\n\n\tif (symbol.length < 1) {\n\t\treturn { valid: false, error: 'Token symbol is too short' }\n\t}\n\n\tif (symbol.length > 10) {\n\t\treturn { valid: false, error: 'Token symbol is too long' }\n\t}\n\n\t// Only allow alphanumeric characters\n\tif (!/^[A-Z0-9]+$/.test(symbol)) {\n\t\treturn {\n\t\t\tvalid: false,\n\t\t\terror: 'Token symbol must contain only uppercase letters and numbers'\n\t\t}\n\t}\n\n\treturn { valid: true }\n}\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@amadeus-protocol/sdk",
3
- "version": "1.0.8",
3
+ "version": "1.1.1",
4
4
  "description": "Official TypeScript/JavaScript SDK for Amadeus Protocol - Core utilities for serialization, cryptography, transaction building, and API client",
5
5
  "repository": {
6
6
  "type": "git",
@@ -27,8 +27,8 @@
27
27
  "LICENSE"
28
28
  ],
29
29
  "scripts": {
30
- "build": "tsc -p tsconfig.build.json",
31
- "dev": "tsc --watch",
30
+ "build": "tsdown",
31
+ "dev": "tsdown --watch",
32
32
  "lint": "eslint src",
33
33
  "lint:fix": "eslint src --fix",
34
34
  "prettier:check": "prettier --check .",
@@ -74,6 +74,7 @@
74
74
  "@vitest/coverage-v8": "^2.1.0",
75
75
  "eslint": "^9.21.0",
76
76
  "prettier": "^3.7.2",
77
+ "tsdown": "^0.22.0",
77
78
  "typescript": "^5.7.2",
78
79
  "typescript-eslint": "^8.24.1",
79
80
  "vitest": "^2.1.0"
@@ -1,8 +0,0 @@
1
- export * from './chain';
2
- export * from './contract';
3
- export * from './epoch';
4
- export * from './peer';
5
- export * from './proof';
6
- export * from './transaction';
7
- export * from './wallet';
8
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAA;AACvB,cAAc,YAAY,CAAA;AAC1B,cAAc,SAAS,CAAA;AACvB,cAAc,QAAQ,CAAA;AACtB,cAAc,SAAS,CAAA;AACvB,cAAc,eAAe,CAAA;AAC7B,cAAc,UAAU,CAAA"}
package/dist/api/index.js DELETED
@@ -1,8 +0,0 @@
1
- export * from './chain';
2
- export * from './contract';
3
- export * from './epoch';
4
- export * from './peer';
5
- export * from './proof';
6
- export * from './transaction';
7
- export * from './wallet';
8
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAA;AACvB,cAAc,YAAY,CAAA;AAC1B,cAAc,SAAS,CAAA;AACvB,cAAc,QAAQ,CAAA;AACtB,cAAc,SAAS,CAAA;AACvB,cAAc,eAAe,CAAA;AAC7B,cAAc,UAAU,CAAA"}
@@ -1,8 +0,0 @@
1
- /**
2
- * Generic ABI Type Extractors
3
- *
4
- * Type-level utilities that extract TypeScript types from `as const` ABI objects.
5
- * These enable compile-time safety for contract calls without any runtime overhead.
6
- */
7
- export {};
8
- //# sourceMappingURL=abi-types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"abi-types.js","sourceRoot":"","sources":["../../src/contracts/abi-types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
@@ -1,7 +0,0 @@
1
- export * from './abi-types';
2
- export * from './contract-call';
3
- export * from './contract';
4
- export * from './coin';
5
- export * from './lockup-prime';
6
- export * from './lockup';
7
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/contracts/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,YAAY,CAAA;AAC1B,cAAc,QAAQ,CAAA;AACtB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,UAAU,CAAA"}
@@ -1,7 +0,0 @@
1
- export * from './abi-types';
2
- export * from './contract-call';
3
- export * from './contract';
4
- export * from './coin';
5
- export * from './lockup-prime';
6
- export * from './lockup';
7
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/contracts/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,YAAY,CAAA;AAC1B,cAAc,QAAQ,CAAA;AACtB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,UAAU,CAAA"}
@@ -1,23 +0,0 @@
1
- /**
2
- * Lockup Contract Call Builders
3
- *
4
- * Typed convenience builders that handle domain-to-ABI translation
5
- * and return ContractCall objects.
6
- */
7
- import type { ContractCall } from '../contract-call';
8
- import { LOCKUP_ABI } from './abi';
9
- /**
10
- * Build a Lockup `unlock` call.
11
- *
12
- * @param params.vaultIndex - Vault index to unlock
13
- *
14
- * @example
15
- * ```ts
16
- * const call = buildLockupUnlock({ vaultIndex: 5 })
17
- * TransactionBuilder.signCall(privateKey, call)
18
- * ```
19
- */
20
- export declare function buildLockupUnlock(params: {
21
- vaultIndex: number | string;
22
- }): ContractCall<typeof LOCKUP_ABI, 'unlock'>;
23
- //# sourceMappingURL=calls.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"calls.d.ts","sourceRoot":"","sources":["../../../src/contracts/lockup/calls.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAEpD,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AAElC;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE;IACzC,UAAU,EAAE,MAAM,GAAG,MAAM,CAAA;CAC3B,GAAG,YAAY,CAAC,OAAO,UAAU,EAAE,QAAQ,CAAC,CAI5C"}
@@ -1,25 +0,0 @@
1
- /**
2
- * Lockup Contract Call Builders
3
- *
4
- * Typed convenience builders that handle domain-to-ABI translation
5
- * and return ContractCall objects.
6
- */
7
- import { buildContractCall } from '../contract-call';
8
- import { LOCKUP_ABI } from './abi';
9
- /**
10
- * Build a Lockup `unlock` call.
11
- *
12
- * @param params.vaultIndex - Vault index to unlock
13
- *
14
- * @example
15
- * ```ts
16
- * const call = buildLockupUnlock({ vaultIndex: 5 })
17
- * TransactionBuilder.signCall(privateKey, call)
18
- * ```
19
- */
20
- export function buildLockupUnlock(params) {
21
- return buildContractCall(LOCKUP_ABI, 'unlock', {
22
- vaultIndex: params.vaultIndex.toString()
23
- });
24
- }
25
- //# sourceMappingURL=calls.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"calls.js","sourceRoot":"","sources":["../../../src/contracts/lockup/calls.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AAElC;;;;;;;;;;GAUG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAEjC;IACA,OAAO,iBAAiB,CAAC,UAAU,EAAE,QAAQ,EAAE;QAC9C,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE;KACxC,CAAC,CAAA;AACH,CAAC"}
@@ -1,6 +0,0 @@
1
- export * from './abi';
2
- export * from './types';
3
- export * from './helpers';
4
- export * from './parsers';
5
- export * from './storage-keys';
6
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/contracts/lockup/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAA;AACrB,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,cAAc,WAAW,CAAA;AACzB,cAAc,gBAAgB,CAAA"}
@@ -1,6 +0,0 @@
1
- export * from './abi';
2
- export * from './types';
3
- export * from './helpers';
4
- export * from './parsers';
5
- export * from './storage-keys';
6
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/contracts/lockup/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAA;AACrB,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,cAAc,WAAW,CAAA;AACzB,cAAc,gBAAgB,CAAA"}
@@ -1,7 +0,0 @@
1
- /**
2
- * Type Definitions for Lockup smart contract
3
- *
4
- * Replaces Zod schemas with plain TypeScript types.
5
- */
6
- export {};
7
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/contracts/lockup/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}