@amadeus-protocol/sdk 1.0.8 → 1.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.
- package/dist/api/chain.d.ts +144 -117
- package/dist/api/chain.d.ts.map +1 -1
- package/dist/api/chain.js +175 -146
- package/dist/api/chain.js.map +1 -1
- package/dist/api/contract.d.ts +78 -60
- package/dist/api/contract.d.ts.map +1 -1
- package/dist/api/contract.js +102 -75
- package/dist/api/contract.js.map +1 -1
- package/dist/api/epoch.d.ts +65 -66
- package/dist/api/epoch.d.ts.map +1 -1
- package/dist/api/epoch.js +90 -98
- package/dist/api/epoch.js.map +1 -1
- package/dist/api/peer.d.ts +77 -78
- package/dist/api/peer.d.ts.map +1 -1
- package/dist/api/peer.js +93 -94
- package/dist/api/peer.js.map +1 -1
- package/dist/api/proof.d.ts +44 -23
- package/dist/api/proof.d.ts.map +1 -1
- package/dist/api/proof.js +56 -29
- package/dist/api/proof.js.map +1 -1
- package/dist/api/transaction.d.ts +68 -69
- package/dist/api/transaction.d.ts.map +1 -1
- package/dist/api/transaction.js +84 -84
- package/dist/api/transaction.js.map +1 -1
- package/dist/api/wallet.d.ts +36 -37
- package/dist/api/wallet.d.ts.map +1 -1
- package/dist/api/wallet.js +47 -50
- package/dist/api/wallet.js.map +1 -1
- package/dist/client.d.ts +66 -68
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +231 -276
- package/dist/client.js.map +1 -1
- package/dist/constants.d.ts +13 -10
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +49 -45
- package/dist/constants.js.map +1 -1
- package/dist/contract-state.d.ts +6 -3
- package/dist/contract-state.d.ts.map +1 -1
- package/dist/contract-state.js +88 -106
- package/dist/contract-state.js.map +1 -1
- package/dist/contracts/abi-types.d.ts +32 -32
- package/dist/contracts/abi-types.d.ts.map +1 -1
- package/dist/contracts/coin.d.ts +13 -20
- package/dist/contracts/coin.d.ts.map +1 -1
- package/dist/contracts/coin.js +42 -38
- package/dist/contracts/coin.js.map +1 -1
- package/dist/contracts/contract-call.d.ts +14 -16
- package/dist/contracts/contract-call.d.ts.map +1 -1
- package/dist/contracts/contract-call.js +45 -54
- package/dist/contracts/contract-call.js.map +1 -1
- package/dist/contracts/contract.d.ts +24 -55
- package/dist/contracts/contract.d.ts.map +1 -1
- package/dist/contracts/contract.js +63 -101
- package/dist/contracts/contract.js.map +1 -1
- package/dist/contracts/lockup/abi.d.ts +54 -51
- package/dist/contracts/lockup/abi.d.ts.map +1 -1
- package/dist/contracts/lockup/abi.js +65 -74
- package/dist/contracts/lockup/abi.js.map +1 -1
- package/dist/contracts/lockup/helpers.d.ts +22 -18
- package/dist/contracts/lockup/helpers.d.ts.map +1 -1
- package/dist/contracts/lockup/helpers.js +44 -47
- package/dist/contracts/lockup/helpers.js.map +1 -1
- package/dist/contracts/lockup/parsers.d.ts +7 -3
- package/dist/contracts/lockup/parsers.d.ts.map +1 -1
- package/dist/contracts/lockup/parsers.js +51 -55
- package/dist/contracts/lockup/parsers.js.map +1 -1
- package/dist/contracts/lockup/storage-keys.d.ts +5 -2
- package/dist/contracts/lockup/storage-keys.d.ts.map +1 -1
- package/dist/contracts/lockup/storage-keys.js +54 -70
- package/dist/contracts/lockup/storage-keys.js.map +1 -1
- package/dist/contracts/lockup/types.d.ts +73 -70
- package/dist/contracts/lockup/types.d.ts.map +1 -1
- package/dist/contracts/lockup-prime/abi.d.ts +328 -325
- package/dist/contracts/lockup-prime/abi.d.ts.map +1 -1
- package/dist/contracts/lockup-prime/abi.js +397 -417
- package/dist/contracts/lockup-prime/abi.js.map +1 -1
- package/dist/contracts/lockup-prime/helpers.d.ts +35 -31
- package/dist/contracts/lockup-prime/helpers.d.ts.map +1 -1
- package/dist/contracts/lockup-prime/helpers.js +131 -137
- package/dist/contracts/lockup-prime/helpers.js.map +1 -1
- package/dist/contracts/lockup-prime/parsers.d.ts +9 -5
- package/dist/contracts/lockup-prime/parsers.d.ts.map +1 -1
- package/dist/contracts/lockup-prime/parsers.js +61 -61
- package/dist/contracts/lockup-prime/parsers.js.map +1 -1
- package/dist/contracts/lockup-prime/storage-keys.d.ts +7 -4
- package/dist/contracts/lockup-prime/storage-keys.d.ts.map +1 -1
- package/dist/contracts/lockup-prime/storage-keys.js +64 -80
- package/dist/contracts/lockup-prime/storage-keys.js.map +1 -1
- package/dist/contracts/lockup-prime/types.d.ts +92 -89
- package/dist/contracts/lockup-prime/types.d.ts.map +1 -1
- package/dist/contracts/lockup-prime/types.js +12 -13
- package/dist/contracts/lockup-prime/types.js.map +1 -1
- package/dist/contracts/nft/abi.d.ts +104 -0
- package/dist/contracts/nft/abi.d.ts.map +1 -0
- package/dist/contracts/nft/abi.js +135 -0
- package/dist/contracts/nft/abi.js.map +1 -0
- package/dist/contracts/nft/helpers.d.ts +21 -0
- package/dist/contracts/nft/helpers.d.ts.map +1 -0
- package/dist/contracts/nft/helpers.js +61 -0
- package/dist/contracts/nft/helpers.js.map +1 -0
- package/dist/contracts/nft/types.d.ts +47 -0
- package/dist/contracts/nft/types.d.ts.map +1 -0
- package/dist/conversion.d.ts +5 -2
- package/dist/conversion.d.ts.map +1 -1
- package/dist/conversion.js +45 -50
- package/dist/conversion.js.map +1 -1
- package/dist/crypto.d.ts +14 -16
- package/dist/crypto.d.ts.map +1 -1
- package/dist/crypto.js +121 -140
- package/dist/crypto.js.map +1 -1
- package/dist/encoding.d.ts +11 -8
- package/dist/encoding.d.ts.map +1 -1
- package/dist/encoding.js +123 -144
- package/dist/encoding.js.map +1 -1
- package/dist/encryption.d.ts +15 -12
- package/dist/encryption.d.ts.map +1 -1
- package/dist/encryption.js +119 -117
- package/dist/encryption.js.map +1 -1
- package/dist/explorer.d.ts +10 -7
- package/dist/explorer.d.ts.map +1 -1
- package/dist/explorer.js +51 -48
- package/dist/explorer.js.map +1 -1
- package/dist/formatters.d.ts +8 -5
- package/dist/formatters.d.ts.map +1 -1
- package/dist/formatters.js +67 -68
- package/dist/formatters.js.map +1 -1
- package/dist/index.d.ts +42 -55
- package/dist/index.js +39 -55
- package/dist/mnemonic.d.ts +12 -9
- package/dist/mnemonic.d.ts.map +1 -1
- package/dist/mnemonic.js +105 -114
- package/dist/mnemonic.js.map +1 -1
- package/dist/networks.d.ts +14 -17
- package/dist/networks.d.ts.map +1 -1
- package/dist/networks.js +40 -36
- package/dist/networks.js.map +1 -1
- package/dist/schemas.js +75 -79
- package/dist/schemas.js.map +1 -1
- package/dist/sdk.d.ts +69 -65
- package/dist/sdk.d.ts.map +1 -1
- package/dist/sdk.js +126 -117
- package/dist/sdk.js.map +1 -1
- package/dist/serialization.d.ts +8 -18
- package/dist/serialization.d.ts.map +1 -1
- package/dist/serialization.js +207 -260
- package/dist/serialization.js.map +1 -1
- package/dist/signing.js +67 -67
- package/dist/signing.js.map +1 -1
- package/dist/transaction-builder.d.ts +175 -184
- package/dist/transaction-builder.d.ts.map +1 -1
- package/dist/transaction-builder.js +295 -344
- package/dist/transaction-builder.js.map +1 -1
- package/dist/transaction-errors.d.ts +10 -12
- package/dist/transaction-errors.d.ts.map +1 -1
- package/dist/transaction-errors.js +145 -166
- package/dist/transaction-errors.js.map +1 -1
- package/dist/types.d.ts +530 -450
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +169 -183
- package/dist/types.js.map +1 -1
- package/dist/validation.d.ts +24 -26
- package/dist/validation.d.ts.map +1 -1
- package/dist/validation.js +194 -192
- package/dist/validation.js.map +1 -1
- package/package.json +4 -3
- package/dist/api/index.d.ts +0 -8
- package/dist/api/index.d.ts.map +0 -1
- package/dist/api/index.js +0 -8
- package/dist/api/index.js.map +0 -1
- package/dist/contracts/abi-types.js +0 -8
- package/dist/contracts/abi-types.js.map +0 -1
- package/dist/contracts/index.d.ts +0 -7
- package/dist/contracts/index.d.ts.map +0 -1
- package/dist/contracts/index.js +0 -7
- package/dist/contracts/index.js.map +0 -1
- package/dist/contracts/lockup/calls.d.ts +0 -23
- package/dist/contracts/lockup/calls.d.ts.map +0 -1
- package/dist/contracts/lockup/calls.js +0 -25
- package/dist/contracts/lockup/calls.js.map +0 -1
- package/dist/contracts/lockup/index.d.ts +0 -6
- package/dist/contracts/lockup/index.d.ts.map +0 -1
- package/dist/contracts/lockup/index.js +0 -6
- package/dist/contracts/lockup/index.js.map +0 -1
- package/dist/contracts/lockup/types.js +0 -7
- package/dist/contracts/lockup/types.js.map +0 -1
- package/dist/contracts/lockup-prime/calls.d.ts +0 -53
- package/dist/contracts/lockup-prime/calls.d.ts.map +0 -1
- package/dist/contracts/lockup-prime/calls.js +0 -60
- package/dist/contracts/lockup-prime/calls.js.map +0 -1
- package/dist/contracts/lockup-prime/index.d.ts +0 -6
- package/dist/contracts/lockup-prime/index.d.ts.map +0 -1
- package/dist/contracts/lockup-prime/index.js +0 -6
- package/dist/contracts/lockup-prime/index.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/schemas.d.ts +0 -67
- package/dist/schemas.d.ts.map +0 -1
- package/dist/signing.d.ts +0 -39
- package/dist/signing.d.ts.map +0 -1
package/dist/validation.js
CHANGED
|
@@ -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
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
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
|
-
|
|
13
|
-
|
|
13
|
+
* Helper function to extract error message from Effect Schema ParseError
|
|
14
|
+
*/
|
|
14
15
|
function getErrorMessage(error) {
|
|
15
|
-
|
|
16
|
-
|
|
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
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
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
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
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
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
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
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
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
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
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
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
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
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
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
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
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
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
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
|
package/dist/validation.js.map
CHANGED
|
@@ -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
|
|
3
|
+
"version": "1.1.0",
|
|
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": "
|
|
31
|
-
"dev": "
|
|
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"
|
package/dist/api/index.d.ts
DELETED
package/dist/api/index.d.ts.map
DELETED
|
@@ -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
package/dist/api/index.js.map
DELETED
|
@@ -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 +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"}
|
package/dist/contracts/index.js
DELETED
|
@@ -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 +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 +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 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/contracts/lockup/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|