@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.
- package/README.md +215 -30
- 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/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.js","names":[],"sources":["../src/client.ts"],"sourcesContent":["/**\n * HTTP Client\n *\n * Lightweight HTTP client using native fetch API (no axios dependency)\n * Provides request/response handling, timeout management, and error handling.\n */\n\nimport type { AmadeusSDKConfig, ApiResponse } from './types'\nimport { AmadeusSDKError } from './types'\nimport { NODE_API_URL, DEFAULT_TIMEOUT, SDK_VERSION } from './constants'\nimport { NonEmptyStringSchema } from './schemas'\nimport { validate } from './validation'\n\n/**\n * Validates a URL string\n */\nfunction isValidUrl(url: string): boolean {\n\ttry {\n\t\tconst parsed = new URL(url)\n\t\treturn parsed.protocol === 'http:' || parsed.protocol === 'https:'\n\t} catch {\n\t\treturn false\n\t}\n}\n\nexport class AmadeusClient {\n\tprivate config: Required<AmadeusSDKConfig>\n\tprivate abortController: AbortController | null = null\n\n\t/**\n\t * Create a new AmadeusClient instance\n\t *\n\t * @param config - SDK configuration\n\t * @throws {AmadeusSDKError} If baseUrl is invalid\n\t */\n\tconstructor(config: AmadeusSDKConfig) {\n\t\tconst baseUrl = config.baseUrl || NODE_API_URL\n\n\t\tif (!isValidUrl(baseUrl)) {\n\t\t\tthrow new AmadeusSDKError(\n\t\t\t\t`Invalid baseUrl: ${baseUrl}. Must be a valid HTTP/HTTPS URL.`\n\t\t\t)\n\t\t}\n\n\t\t// Ensure baseUrl doesn't end with a slash\n\t\tconst normalizedBaseUrl = baseUrl.replace(/\\/+$/, '')\n\n\t\tthis.config = {\n\t\t\tbaseUrl: normalizedBaseUrl,\n\t\t\ttimeout: config.timeout && config.timeout > 0 ? config.timeout : DEFAULT_TIMEOUT,\n\t\t\theaders: {\n\t\t\t\t'Content-Type': 'application/octet-stream',\n\t\t\t\t'X-Client-Type': `@amadeus-protocol/sdk/${SDK_VERSION}`,\n\t\t\t\t...config.headers\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Make a GET request\n\t *\n\t * @param endpoint - API endpoint path\n\t * @param params - Optional query parameters\n\t * @returns Promise resolving to the response data\n\t */\n\tasync get<T = unknown>(endpoint: string, params?: Record<string, unknown>): Promise<T> {\n\t\tvalidate(NonEmptyStringSchema, endpoint)\n\n\t\tconst url = this.buildUrl(endpoint, params)\n\t\tconst response = await this.request(url, {\n\t\t\tmethod: 'GET'\n\t\t})\n\t\treturn this.handleResponse(response) as Promise<T>\n\t}\n\n\t/**\n\t * Make a POST request\n\t *\n\t * @param endpoint - API endpoint path\n\t * @param data - Request body data (Uint8Array for binary, object for JSON)\n\t * @returns Promise resolving to the response data\n\t */\n\tasync post<T = unknown>(endpoint: string, data?: unknown): Promise<T> {\n\t\tvalidate(NonEmptyStringSchema, endpoint)\n\n\t\tconst url = this.buildUrl(endpoint)\n\t\tconst { body, contentType } = this.prepareBody(data)\n\n\t\tconst response = await this.request(url, {\n\t\t\tmethod: 'POST',\n\t\t\tbody,\n\t\t\theaders: {\n\t\t\t\t'Content-Type': contentType\n\t\t\t}\n\t\t})\n\t\treturn this.handleResponse(response) as Promise<T>\n\t}\n\n\t/**\n\t * Build full URL with query parameters\n\t */\n\tprivate buildUrl(endpoint: string, params?: Record<string, unknown>): string {\n\t\tconst url = new URL(endpoint, this.config.baseUrl)\n\n\t\tif (params) {\n\t\t\tfor (const [key, value] of Object.entries(params)) {\n\t\t\t\tif (value !== undefined && value !== null) {\n\t\t\t\t\turl.searchParams.append(key, String(value))\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn url.toString()\n\t}\n\n\t/**\n\t * Prepare request body and determine Content-Type\n\t */\n\tprivate prepareBody(data?: unknown): { body: BodyInit | undefined; contentType: string } {\n\t\tif (!data) {\n\t\t\treturn { body: undefined, contentType: 'application/octet-stream' }\n\t\t}\n\n\t\t// If it's already a Uint8Array or ArrayBuffer, send as binary\n\t\tif (data instanceof Uint8Array) {\n\t\t\treturn { body: data as BodyInit, contentType: 'application/octet-stream' }\n\t\t}\n\t\tif (data instanceof ArrayBuffer) {\n\t\t\treturn { body: data as BodyInit, contentType: 'application/octet-stream' }\n\t\t}\n\n\t\t// If it's a Buffer (Node.js), convert to Uint8Array\n\t\tif (typeof Buffer !== 'undefined' && Buffer.isBuffer(data)) {\n\t\t\treturn {\n\t\t\t\tbody: new Uint8Array(data) as BodyInit,\n\t\t\t\tcontentType: 'application/octet-stream'\n\t\t\t}\n\t\t}\n\n\t\t// For objects, try to send as binary if it has txPacked or tx_packed\n\t\tif (typeof data === 'object' && data !== null) {\n\t\t\tconst obj = data as Record<string, unknown>\n\t\t\tif ('txPacked' in obj && obj.txPacked instanceof Uint8Array) {\n\t\t\t\treturn { body: obj.txPacked as BodyInit, contentType: 'application/octet-stream' }\n\t\t\t}\n\t\t\tif ('tx_packed' in obj && obj.tx_packed instanceof Uint8Array) {\n\t\t\t\treturn { body: obj.tx_packed as BodyInit, contentType: 'application/octet-stream' }\n\t\t\t}\n\t\t}\n\n\t\t// Default: send as JSON\n\t\treturn { body: JSON.stringify(data), contentType: 'application/json' }\n\t}\n\n\t/**\n\t * Make HTTP request with timeout\n\t */\n\tprivate async request(url: string, options: RequestInit): Promise<Response> {\n\t\t// Cancel previous request if any\n\t\tif (this.abortController) {\n\t\t\tthis.abortController.abort()\n\t\t}\n\n\t\tthis.abortController = new AbortController()\n\t\tconst timeoutId = setTimeout(() => {\n\t\t\tthis.abortController?.abort()\n\t\t}, this.config.timeout)\n\n\t\ttry {\n\t\t\tconst response = await fetch(url, {\n\t\t\t\t...options,\n\t\t\t\theaders: {\n\t\t\t\t\t...this.config.headers,\n\t\t\t\t\t...options.headers\n\t\t\t\t},\n\t\t\t\tsignal: this.abortController.signal\n\t\t\t})\n\n\t\t\tclearTimeout(timeoutId)\n\t\t\treturn response\n\t\t} catch (error) {\n\t\t\tclearTimeout(timeoutId)\n\t\t\tif (error instanceof Error) {\n\t\t\t\tif (error.name === 'AbortError' || error.name === 'TimeoutError') {\n\t\t\t\t\tthrow new AmadeusSDKError(`Request timeout after ${this.config.timeout}ms`, 408)\n\t\t\t\t}\n\t\t\t\tthrow new AmadeusSDKError(\n\t\t\t\t\t`Request failed: ${error.message}`,\n\t\t\t\t\t0,\n\t\t\t\t\terror instanceof Error\n\t\t\t\t\t\t? { message: error.message, name: error.name }\n\t\t\t\t\t\t: { error: String(error) }\n\t\t\t\t)\n\t\t\t}\n\t\t\tthrow new AmadeusSDKError(`Request failed: ${String(error)}`, 0, {\n\t\t\t\terror: String(error)\n\t\t\t})\n\t\t}\n\t}\n\n\t/**\n\t * Handle API response and parse errors\n\t */\n\tprivate async handleResponse(response: Response): Promise<unknown> {\n\t\tif (!response.ok) {\n\t\t\tlet errorData: unknown\n\t\t\tconst contentType = response.headers.get('content-type')\n\n\t\t\ttry {\n\t\t\t\tif (contentType?.includes('application/json')) {\n\t\t\t\t\terrorData = await response.json()\n\t\t\t\t} else {\n\t\t\t\t\tconst text = await response.text()\n\t\t\t\t\t// If it's HTML, try to extract a meaningful error message\n\t\t\t\t\tif (contentType?.includes('text/html')) {\n\t\t\t\t\t\t// Try to extract title or error message from HTML\n\t\t\t\t\t\tconst titleMatch = text.match(/<title>([^<]+)<\\/title>/i)\n\t\t\t\t\t\tconst h1Match = text.match(/<h1[^>]*>([^<]+)<\\/h1>/i)\n\t\t\t\t\t\terrorData =\n\t\t\t\t\t\t\ttitleMatch?.[1] || h1Match?.[1] || `HTTP ${response.status} Error`\n\t\t\t\t\t} else {\n\t\t\t\t\t\terrorData = text\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch (parseError) {\n\t\t\t\terrorData = `Failed to parse error response: ${\n\t\t\t\t\tparseError instanceof Error ? parseError.message : String(parseError)\n\t\t\t\t}`\n\t\t\t}\n\n\t\t\tconst message =\n\t\t\t\ttypeof errorData === 'object' && errorData !== null && 'error' in errorData\n\t\t\t\t\t? String((errorData as { error: unknown }).error)\n\t\t\t\t\t: typeof errorData === 'string'\n\t\t\t\t\t\t? errorData.length > 500\n\t\t\t\t\t\t\t? `${errorData.substring(0, 500)}... (truncated)`\n\t\t\t\t\t\t\t: errorData\n\t\t\t\t\t\t: response.statusText || 'Unknown error'\n\n\t\t\tthrow new AmadeusSDKError(\n\t\t\t\t`HTTP ${response.status}: ${message}`,\n\t\t\t\tresponse.status,\n\t\t\t\terrorData as Record<string, unknown>\n\t\t\t)\n\t\t}\n\n\t\tconst contentType = response.headers.get('content-type')\n\t\tlet data: unknown\n\n\t\ttry {\n\t\t\tif (contentType?.includes('application/json')) {\n\t\t\t\tdata = await response.json()\n\t\t\t} else {\n\t\t\t\t// Try JSON first, fallback to text\n\t\t\t\tconst text = await response.text()\n\t\t\t\ttry {\n\t\t\t\t\tdata = JSON.parse(text)\n\t\t\t\t} catch {\n\t\t\t\t\tdata = text\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (parseError) {\n\t\t\tthrow new AmadeusSDKError(\n\t\t\t\t`Failed to parse response: ${parseError instanceof Error ? parseError.message : String(parseError)}`,\n\t\t\t\tresponse.status\n\t\t\t)\n\t\t}\n\n\t\t// Handle API response format\n\t\tif (typeof data === 'object' && data !== null && 'error' in data) {\n\t\t\tconst apiResponse = data as ApiResponse\n\t\t\tif (apiResponse.error === 'ok') {\n\t\t\t\t// Remove error property from response (intentionally unused)\n\t\t\t\tconst { error: _error, ...rest } = apiResponse\n\t\t\t\treturn rest\n\t\t\t} else if (apiResponse.error === 'not_found') {\n\t\t\t\tthrow new AmadeusSDKError(\n\t\t\t\t\t'Resource not found',\n\t\t\t\t\t404,\n\t\t\t\t\tapiResponse as Record<string, unknown>\n\t\t\t\t)\n\t\t\t} else {\n\t\t\t\tthrow new AmadeusSDKError(\n\t\t\t\t\tapiResponse.error || 'Unknown API error',\n\t\t\t\t\t400,\n\t\t\t\t\tapiResponse as Record<string, unknown>\n\t\t\t\t)\n\t\t\t}\n\t\t}\n\n\t\treturn data\n\t}\n\n\t/**\n\t * Get current configuration\n\t */\n\tgetConfig(): AmadeusSDKConfig {\n\t\treturn { ...this.config }\n\t}\n\n\t/**\n\t * Update base URL\n\t *\n\t * @param url - New base URL\n\t * @throws {AmadeusSDKError} If URL is invalid\n\t */\n\tsetBaseUrl(url: string): void {\n\t\tif (!isValidUrl(url)) {\n\t\t\tthrow new AmadeusSDKError(`Invalid baseUrl: ${url}. Must be a valid HTTP/HTTPS URL.`)\n\t\t}\n\t\tthis.config.baseUrl = url.replace(/\\/+$/, '')\n\t}\n\n\t/**\n\t * Update headers\n\t */\n\tsetHeaders(headers: Record<string, string>): void {\n\t\tthis.config.headers = { ...this.config.headers, ...headers }\n\t}\n\n\t/**\n\t * Cancel ongoing requests\n\t */\n\tcancel(): void {\n\t\tif (this.abortController) {\n\t\t\tthis.abortController.abort()\n\t\t\tthis.abortController = null\n\t\t}\n\t}\n}\n"],"mappings":"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"}
|
package/dist/constants.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
//#region src/constants.d.ts
|
|
1
2
|
/**
|
|
2
3
|
* Amadeus Protocol Constants
|
|
3
4
|
*
|
|
@@ -6,41 +7,43 @@
|
|
|
6
7
|
/**
|
|
7
8
|
* SDK version
|
|
8
9
|
*/
|
|
9
|
-
|
|
10
|
+
declare const SDK_VERSION = "1.0.0";
|
|
10
11
|
/**
|
|
11
12
|
* Byte length of an Amadeus public key (BLS12-381 public key)
|
|
12
13
|
*/
|
|
13
|
-
|
|
14
|
+
declare const AMADEUS_PUBLIC_KEY_BYTE_LENGTH = 48;
|
|
14
15
|
/**
|
|
15
16
|
* Byte length of an Amadeus seed (private key seed)
|
|
16
17
|
*/
|
|
17
|
-
|
|
18
|
+
declare const AMADEUS_SEED_BYTE_LENGTH = 64;
|
|
18
19
|
/**
|
|
19
20
|
* Number of decimal places for AMA token
|
|
20
21
|
*/
|
|
21
|
-
|
|
22
|
+
declare const AMA_TOKEN_DECIMALS = 9;
|
|
22
23
|
/**
|
|
23
24
|
* Multiplier for converting between atomic units and AMA tokens
|
|
24
25
|
*/
|
|
25
|
-
|
|
26
|
+
declare const AMA_TOKEN_DECIMALS_MULTIPLIER: number;
|
|
26
27
|
/**
|
|
27
28
|
* Minimum transferable amount in AMA (1 atomic unit)
|
|
28
29
|
*/
|
|
29
|
-
|
|
30
|
+
declare const MIN_TRANSFERABLE_AMOUNT: number;
|
|
30
31
|
/**
|
|
31
32
|
* Flat network transfer fee in AMA for standard transfers
|
|
32
33
|
*/
|
|
33
|
-
|
|
34
|
+
declare const AMA_TRANSFER_FEE = 0.02;
|
|
34
35
|
/**
|
|
35
36
|
* Default explorer URL
|
|
36
37
|
*/
|
|
37
|
-
|
|
38
|
+
declare const EXPLORER_URL = "https://explorer.ama.one";
|
|
38
39
|
/**
|
|
39
40
|
* Default node API URL
|
|
40
41
|
*/
|
|
41
|
-
|
|
42
|
+
declare const NODE_API_URL = "https://mainnet-rpc.ama.one/api";
|
|
42
43
|
/**
|
|
43
44
|
* Default request timeout in milliseconds
|
|
44
45
|
*/
|
|
45
|
-
|
|
46
|
+
declare const DEFAULT_TIMEOUT = 30000;
|
|
47
|
+
//#endregion
|
|
48
|
+
export { AMADEUS_PUBLIC_KEY_BYTE_LENGTH, AMADEUS_SEED_BYTE_LENGTH, AMA_TOKEN_DECIMALS, AMA_TOKEN_DECIMALS_MULTIPLIER, AMA_TRANSFER_FEE, DEFAULT_TIMEOUT, EXPLORER_URL, MIN_TRANSFERABLE_AMOUNT, NODE_API_URL, SDK_VERSION };
|
|
46
49
|
//# sourceMappingURL=constants.d.ts.map
|
package/dist/constants.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","
|
|
1
|
+
{"version":3,"file":"constants.d.ts","names":[],"sources":["../src/constants.ts"],"mappings":";;AASA;;;;;AAKA;;cALa,WAAA;;;AAUb;cALa,8BAAA;;;;cAKA,wBAAA;;;;cAKA,kBAAA;AAKb;;;AAAA,cAAa,6BAAA;;AAKb;;cAAa,uBAAA;;;AAKb;cAAa,gBAAA;;;;cAKA,YAAA;;;;cAKA,YAAA;AAAb;;;AAAA,cAKa,eAAA"}
|
package/dist/constants.js
CHANGED
|
@@ -1,46 +1,50 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
1
|
+
//#region src/constants.ts
|
|
2
|
+
/**
|
|
3
|
+
* Amadeus Protocol Constants
|
|
4
|
+
*
|
|
5
|
+
* This module contains all protocol-level constants used throughout the SDK.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* SDK version
|
|
9
|
+
*/
|
|
10
|
+
const SDK_VERSION = "1.0.0";
|
|
11
|
+
/**
|
|
12
|
+
* Byte length of an Amadeus public key (BLS12-381 public key)
|
|
13
|
+
*/
|
|
14
|
+
const AMADEUS_PUBLIC_KEY_BYTE_LENGTH = 48;
|
|
15
|
+
/**
|
|
16
|
+
* Byte length of an Amadeus seed (private key seed)
|
|
17
|
+
*/
|
|
18
|
+
const AMADEUS_SEED_BYTE_LENGTH = 64;
|
|
19
|
+
/**
|
|
20
|
+
* Number of decimal places for AMA token
|
|
21
|
+
*/
|
|
22
|
+
const AMA_TOKEN_DECIMALS = 9;
|
|
23
|
+
/**
|
|
24
|
+
* Multiplier for converting between atomic units and AMA tokens
|
|
25
|
+
*/
|
|
26
|
+
const AMA_TOKEN_DECIMALS_MULTIPLIER = 10 ** 9;
|
|
27
|
+
/**
|
|
28
|
+
* Minimum transferable amount in AMA (1 atomic unit)
|
|
29
|
+
*/
|
|
30
|
+
const MIN_TRANSFERABLE_AMOUNT = 1 / AMA_TOKEN_DECIMALS_MULTIPLIER;
|
|
31
|
+
/**
|
|
32
|
+
* Flat network transfer fee in AMA for standard transfers
|
|
33
|
+
*/
|
|
34
|
+
const AMA_TRANSFER_FEE = .02;
|
|
35
|
+
/**
|
|
36
|
+
* Default explorer URL
|
|
37
|
+
*/
|
|
38
|
+
const EXPLORER_URL = "https://explorer.ama.one";
|
|
39
|
+
/**
|
|
40
|
+
* Default node API URL
|
|
41
|
+
*/
|
|
42
|
+
const NODE_API_URL = "https://mainnet-rpc.ama.one/api";
|
|
43
|
+
/**
|
|
44
|
+
* Default request timeout in milliseconds
|
|
45
|
+
*/
|
|
46
|
+
const DEFAULT_TIMEOUT = 3e4;
|
|
47
|
+
//#endregion
|
|
48
|
+
export { AMADEUS_PUBLIC_KEY_BYTE_LENGTH, AMADEUS_SEED_BYTE_LENGTH, AMA_TOKEN_DECIMALS, AMA_TOKEN_DECIMALS_MULTIPLIER, AMA_TRANSFER_FEE, DEFAULT_TIMEOUT, EXPLORER_URL, MIN_TRANSFERABLE_AMOUNT, NODE_API_URL, SDK_VERSION };
|
|
49
|
+
|
|
46
50
|
//# sourceMappingURL=constants.js.map
|
package/dist/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","
|
|
1
|
+
{"version":3,"file":"constants.js","names":[],"sources":["../src/constants.ts"],"sourcesContent":["/**\n * Amadeus Protocol Constants\n *\n * This module contains all protocol-level constants used throughout the SDK.\n */\n\n/**\n * SDK version\n */\nexport const SDK_VERSION = '1.0.0'\n\n/**\n * Byte length of an Amadeus public key (BLS12-381 public key)\n */\nexport const AMADEUS_PUBLIC_KEY_BYTE_LENGTH = 48\n\n/**\n * Byte length of an Amadeus seed (private key seed)\n */\nexport const AMADEUS_SEED_BYTE_LENGTH = 64\n\n/**\n * Number of decimal places for AMA token\n */\nexport const AMA_TOKEN_DECIMALS = 9\n\n/**\n * Multiplier for converting between atomic units and AMA tokens\n */\nexport const AMA_TOKEN_DECIMALS_MULTIPLIER = 10 ** AMA_TOKEN_DECIMALS\n\n/**\n * Minimum transferable amount in AMA (1 atomic unit)\n */\nexport const MIN_TRANSFERABLE_AMOUNT = 1 / AMA_TOKEN_DECIMALS_MULTIPLIER\n\n/**\n * Flat network transfer fee in AMA for standard transfers\n */\nexport const AMA_TRANSFER_FEE = 0.02\n\n/**\n * Default explorer URL\n */\nexport const EXPLORER_URL = 'https://explorer.ama.one'\n\n/**\n * Default node API URL\n */\nexport const NODE_API_URL = 'https://mainnet-rpc.ama.one/api'\n\n/**\n * Default request timeout in milliseconds\n */\nexport const DEFAULT_TIMEOUT = 30000\n"],"mappings":";;;;;;;;;AASA,MAAa,cAAc;;;;AAK3B,MAAa,iCAAiC;;;;AAK9C,MAAa,2BAA2B;;;;AAKxC,MAAa,qBAAqB;;;;AAKlC,MAAa,gCAAgC,MAAA;;;;AAK7C,MAAa,0BAA0B,IAAI;;;;AAK3C,MAAa,mBAAmB;;;;AAKhC,MAAa,eAAe;;;;AAK5B,MAAa,eAAe;;;;AAK5B,MAAa,kBAAkB"}
|
package/dist/contract-state.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
//#region src/contract-state.d.ts
|
|
1
2
|
/**
|
|
2
3
|
* Contract State Utilities
|
|
3
4
|
*
|
|
@@ -21,7 +22,7 @@
|
|
|
21
22
|
* // entries: [["base64key", "base64value"], ...]
|
|
22
23
|
* ```
|
|
23
24
|
*/
|
|
24
|
-
|
|
25
|
+
declare function decodeContractStateToBase64(bytes: Uint8Array | ArrayBuffer): Array<[string, string]>;
|
|
25
26
|
/**
|
|
26
27
|
* Parse a contract state value as a number.
|
|
27
28
|
*
|
|
@@ -42,7 +43,7 @@ export declare function decodeContractStateToBase64(bytes: Uint8Array | ArrayBuf
|
|
|
42
43
|
* parseStateNumber(null) // 0
|
|
43
44
|
* ```
|
|
44
45
|
*/
|
|
45
|
-
|
|
46
|
+
declare function parseStateNumber(value: string | number | Uint8Array | null | undefined): number;
|
|
46
47
|
/**
|
|
47
48
|
* Parse a contract state value as a string.
|
|
48
49
|
*
|
|
@@ -55,5 +56,7 @@ export declare function parseStateNumber(value: string | number | Uint8Array | n
|
|
|
55
56
|
* @param value - Raw contract state value
|
|
56
57
|
* @returns Parsed string or null
|
|
57
58
|
*/
|
|
58
|
-
|
|
59
|
+
declare function parseStateString(value: string | number | Uint8Array | null | undefined): string | null;
|
|
60
|
+
//#endregion
|
|
61
|
+
export { decodeContractStateToBase64, parseStateNumber, parseStateString };
|
|
59
62
|
//# sourceMappingURL=contract-state.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract-state.d.ts","
|
|
1
|
+
{"version":3,"file":"contract-state.d.ts","names":[],"sources":["../src/contract-state.ts"],"mappings":";;AA2BA;;;;;;;;;;;;;;AA6BA;;;;;AAyBA;;;iBAtDgB,2BAAA,CACf,KAAA,EAAO,UAAA,GAAa,WAAA,GAClB,KAAA;;;;;;;;;;;;;;;;;;;;;iBA2Ba,gBAAA,CAAiB,KAAA,oBAAyB,UAAA;;;;;;;;;;;;;iBAyB1C,gBAAA,CACf,KAAA,oBAAyB,UAAA"}
|
package/dist/contract-state.js
CHANGED
|
@@ -1,117 +1,99 @@
|
|
|
1
|
+
import { decodeContractState } from "./serialization.js";
|
|
2
|
+
import { uint8ArrayToBase64 } from "./encoding.js";
|
|
3
|
+
//#region src/contract-state.ts
|
|
1
4
|
/**
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
import { uint8ArrayToBase64 } from './encoding';
|
|
9
|
-
import { decodeContractState } from './serialization';
|
|
5
|
+
* Contract State Utilities
|
|
6
|
+
*
|
|
7
|
+
* Provides functions for parsing contract state values returned by the Amadeus chain.
|
|
8
|
+
* Contract state values are stored as binary (Uint8Array) and need to be decoded
|
|
9
|
+
* into usable types (numbers, strings, etc.).
|
|
10
|
+
*/
|
|
10
11
|
/**
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
return pairs
|
|
29
|
-
.filter(([key, value]) => key.length > 0 && value.length > 0)
|
|
30
|
-
.map(([key, value]) => [uint8ArrayToBase64(key), uint8ArrayToBase64(value)]);
|
|
12
|
+
* Decode VecPack-encoded contract state and convert keys/values to Base64 strings.
|
|
13
|
+
*
|
|
14
|
+
* Useful for serializing decoded contract state for Redux or other stores
|
|
15
|
+
* that require JSON-serializable values.
|
|
16
|
+
*
|
|
17
|
+
* @param bytes - VecPack-encoded bytes (Uint8Array or ArrayBuffer)
|
|
18
|
+
* @returns Array of [key, value] tuples as Base64 strings
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* ```ts
|
|
22
|
+
* const buffer = await response.arrayBuffer()
|
|
23
|
+
* const entries = decodeContractStateToBase64(buffer)
|
|
24
|
+
* // entries: [["base64key", "base64value"], ...]
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
function decodeContractStateToBase64(bytes) {
|
|
28
|
+
return decodeContractState(bytes).filter(([key, value]) => key.length > 0 && value.length > 0).map(([key, value]) => [uint8ArrayToBase64(key), uint8ArrayToBase64(value)]);
|
|
31
29
|
}
|
|
32
30
|
/**
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
if (value instanceof Uint8Array) {
|
|
62
|
-
return decodeUint8ArrayAsNumber(value);
|
|
63
|
-
}
|
|
64
|
-
return 0;
|
|
31
|
+
* Parse a contract state value as a number.
|
|
32
|
+
*
|
|
33
|
+
* Handles multiple input types:
|
|
34
|
+
* - `number` — returned directly
|
|
35
|
+
* - `string` — parsed as integer
|
|
36
|
+
* - `Uint8Array` — first tries UTF-8 digit string, then little-endian binary
|
|
37
|
+
* - `null`/`undefined` — returns 0
|
|
38
|
+
*
|
|
39
|
+
* @param value - Raw contract state value
|
|
40
|
+
* @returns Parsed number (0 if unparseable)
|
|
41
|
+
*
|
|
42
|
+
* @example
|
|
43
|
+
* ```ts
|
|
44
|
+
* parseStateNumber(new TextEncoder().encode('42')) // 42
|
|
45
|
+
* parseStateNumber(new Uint8Array([0x2a, 0x00])) // 42 (little-endian)
|
|
46
|
+
* parseStateNumber('100') // 100
|
|
47
|
+
* parseStateNumber(null) // 0
|
|
48
|
+
* ```
|
|
49
|
+
*/
|
|
50
|
+
function parseStateNumber(value) {
|
|
51
|
+
if (value === null || value === void 0) return 0;
|
|
52
|
+
if (typeof value === "number") return Number.isInteger(value) && value >= 0 ? value : 0;
|
|
53
|
+
if (typeof value === "string") {
|
|
54
|
+
const parsed = parseInt(value, 10);
|
|
55
|
+
return isNaN(parsed) || parsed < 0 ? 0 : parsed;
|
|
56
|
+
}
|
|
57
|
+
if (value instanceof Uint8Array) return decodeUint8ArrayAsNumber(value);
|
|
58
|
+
return 0;
|
|
65
59
|
}
|
|
66
60
|
/**
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
return value.toString();
|
|
85
|
-
if (value instanceof Uint8Array) {
|
|
86
|
-
return new TextDecoder().decode(value);
|
|
87
|
-
}
|
|
88
|
-
return null;
|
|
61
|
+
* Parse a contract state value as a string.
|
|
62
|
+
*
|
|
63
|
+
* Handles multiple input types:
|
|
64
|
+
* - `string` — returned directly
|
|
65
|
+
* - `number` — converted to string
|
|
66
|
+
* - `Uint8Array` — decoded as UTF-8
|
|
67
|
+
* - `null`/`undefined` — returns null
|
|
68
|
+
*
|
|
69
|
+
* @param value - Raw contract state value
|
|
70
|
+
* @returns Parsed string or null
|
|
71
|
+
*/
|
|
72
|
+
function parseStateString(value) {
|
|
73
|
+
if (value === null || value === void 0) return null;
|
|
74
|
+
if (typeof value === "string") return value;
|
|
75
|
+
if (typeof value === "number") return value.toString();
|
|
76
|
+
if (value instanceof Uint8Array) return new TextDecoder().decode(value);
|
|
77
|
+
return null;
|
|
89
78
|
}
|
|
90
79
|
/**
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
80
|
+
* Decode a Uint8Array contract state value as a number.
|
|
81
|
+
* Tries UTF-8 digit string first, falls back to little-endian binary.
|
|
82
|
+
*/
|
|
94
83
|
function decodeUint8ArrayAsNumber(value) {
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
// Fallthrough to binary parsing
|
|
107
|
-
}
|
|
108
|
-
// Fallback: parse as little-endian integer (u32/u64)
|
|
109
|
-
let result = 0n;
|
|
110
|
-
const bytesToRead = Math.min(value.length, 8);
|
|
111
|
-
for (let i = 0; i < bytesToRead; i++) {
|
|
112
|
-
result |= BigInt(value[i]) << BigInt(i * 8);
|
|
113
|
-
}
|
|
114
|
-
const asNumber = Number(result);
|
|
115
|
-
return Number.isSafeInteger(asNumber) ? asNumber : 0;
|
|
84
|
+
if (!value.length) return 0;
|
|
85
|
+
try {
|
|
86
|
+
const str = new TextDecoder().decode(value);
|
|
87
|
+
const parsed = parseInt(str, 10);
|
|
88
|
+
if (!isNaN(parsed)) return parsed;
|
|
89
|
+
} catch {}
|
|
90
|
+
let result = 0n;
|
|
91
|
+
const bytesToRead = Math.min(value.length, 8);
|
|
92
|
+
for (let i = 0; i < bytesToRead; i++) result |= BigInt(value[i]) << BigInt(i * 8);
|
|
93
|
+
const asNumber = Number(result);
|
|
94
|
+
return Number.isSafeInteger(asNumber) ? asNumber : 0;
|
|
116
95
|
}
|
|
96
|
+
//#endregion
|
|
97
|
+
export { decodeContractStateToBase64, parseStateNumber, parseStateString };
|
|
98
|
+
|
|
117
99
|
//# sourceMappingURL=contract-state.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract-state.js","
|
|
1
|
+
{"version":3,"file":"contract-state.js","names":[],"sources":["../src/contract-state.ts"],"sourcesContent":["/**\n * Contract State Utilities\n *\n * Provides functions for parsing contract state values returned by the Amadeus chain.\n * Contract state values are stored as binary (Uint8Array) and need to be decoded\n * into usable types (numbers, strings, etc.).\n */\n\nimport { uint8ArrayToBase64 } from './encoding'\nimport { decodeContractState } from './serialization'\n\n/**\n * Decode VecPack-encoded contract state and convert keys/values to Base64 strings.\n *\n * Useful for serializing decoded contract state for Redux or other stores\n * that require JSON-serializable values.\n *\n * @param bytes - VecPack-encoded bytes (Uint8Array or ArrayBuffer)\n * @returns Array of [key, value] tuples as Base64 strings\n *\n * @example\n * ```ts\n * const buffer = await response.arrayBuffer()\n * const entries = decodeContractStateToBase64(buffer)\n * // entries: [[\"base64key\", \"base64value\"], ...]\n * ```\n */\nexport function decodeContractStateToBase64(\n\tbytes: Uint8Array | ArrayBuffer\n): Array<[string, string]> {\n\tconst pairs = decodeContractState(bytes)\n\treturn pairs\n\t\t.filter(([key, value]) => key.length > 0 && value.length > 0)\n\t\t.map(([key, value]) => [uint8ArrayToBase64(key), uint8ArrayToBase64(value)])\n}\n\n/**\n * Parse a contract state value as a number.\n *\n * Handles multiple input types:\n * - `number` — returned directly\n * - `string` — parsed as integer\n * - `Uint8Array` — first tries UTF-8 digit string, then little-endian binary\n * - `null`/`undefined` — returns 0\n *\n * @param value - Raw contract state value\n * @returns Parsed number (0 if unparseable)\n *\n * @example\n * ```ts\n * parseStateNumber(new TextEncoder().encode('42')) // 42\n * parseStateNumber(new Uint8Array([0x2a, 0x00])) // 42 (little-endian)\n * parseStateNumber('100') // 100\n * parseStateNumber(null) // 0\n * ```\n */\nexport function parseStateNumber(value: string | number | Uint8Array | null | undefined): number {\n\tif (value === null || value === undefined) return 0\n\tif (typeof value === 'number') return Number.isInteger(value) && value >= 0 ? value : 0\n\tif (typeof value === 'string') {\n\t\tconst parsed = parseInt(value, 10)\n\t\treturn isNaN(parsed) || parsed < 0 ? 0 : parsed\n\t}\n\tif (value instanceof Uint8Array) {\n\t\treturn decodeUint8ArrayAsNumber(value)\n\t}\n\treturn 0\n}\n\n/**\n * Parse a contract state value as a string.\n *\n * Handles multiple input types:\n * - `string` — returned directly\n * - `number` — converted to string\n * - `Uint8Array` — decoded as UTF-8\n * - `null`/`undefined` — returns null\n *\n * @param value - Raw contract state value\n * @returns Parsed string or null\n */\nexport function parseStateString(\n\tvalue: string | number | Uint8Array | null | undefined\n): string | null {\n\tif (value === null || value === undefined) return null\n\tif (typeof value === 'string') return value\n\tif (typeof value === 'number') return value.toString()\n\tif (value instanceof Uint8Array) {\n\t\treturn new TextDecoder().decode(value)\n\t}\n\treturn null\n}\n\n/**\n * Decode a Uint8Array contract state value as a number.\n * Tries UTF-8 digit string first, falls back to little-endian binary.\n */\nfunction decodeUint8ArrayAsNumber(value: Uint8Array): number {\n\tif (!value.length) return 0\n\n\t// First try to interpret as UTF-8 digits\n\ttry {\n\t\tconst str = new TextDecoder().decode(value)\n\t\tconst parsed = parseInt(str, 10)\n\t\tif (!isNaN(parsed)) {\n\t\t\treturn parsed\n\t\t}\n\t} catch {\n\t\t// Fallthrough to binary parsing\n\t}\n\n\t// Fallback: parse as little-endian integer (u32/u64)\n\tlet result = 0n\n\tconst bytesToRead = Math.min(value.length, 8)\n\tfor (let i = 0; i < bytesToRead; i++) {\n\t\tresult |= BigInt(value[i]!) << BigInt(i * 8)\n\t}\n\n\tconst asNumber = Number(result)\n\treturn Number.isSafeInteger(asNumber) ? asNumber : 0\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AA2BA,SAAgB,4BACf,OAC0B;CAE1B,OADc,oBAAoB,MACtB,CACV,QAAQ,CAAC,KAAK,WAAW,IAAI,SAAS,KAAK,MAAM,SAAS,EAAE,CAC5D,KAAK,CAAC,KAAK,WAAW,CAAC,mBAAmB,IAAI,EAAE,mBAAmB,MAAM,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;AAuB9E,SAAgB,iBAAiB,OAAgE;CAChG,IAAI,UAAU,QAAQ,UAAU,KAAA,GAAW,OAAO;CAClD,IAAI,OAAO,UAAU,UAAU,OAAO,OAAO,UAAU,MAAM,IAAI,SAAS,IAAI,QAAQ;CACtF,IAAI,OAAO,UAAU,UAAU;EAC9B,MAAM,SAAS,SAAS,OAAO,GAAG;EAClC,OAAO,MAAM,OAAO,IAAI,SAAS,IAAI,IAAI;;CAE1C,IAAI,iBAAiB,YACpB,OAAO,yBAAyB,MAAM;CAEvC,OAAO;;;;;;;;;;;;;;AAeR,SAAgB,iBACf,OACgB;CAChB,IAAI,UAAU,QAAQ,UAAU,KAAA,GAAW,OAAO;CAClD,IAAI,OAAO,UAAU,UAAU,OAAO;CACtC,IAAI,OAAO,UAAU,UAAU,OAAO,MAAM,UAAU;CACtD,IAAI,iBAAiB,YACpB,OAAO,IAAI,aAAa,CAAC,OAAO,MAAM;CAEvC,OAAO;;;;;;AAOR,SAAS,yBAAyB,OAA2B;CAC5D,IAAI,CAAC,MAAM,QAAQ,OAAO;CAG1B,IAAI;EACH,MAAM,MAAM,IAAI,aAAa,CAAC,OAAO,MAAM;EAC3C,MAAM,SAAS,SAAS,KAAK,GAAG;EAChC,IAAI,CAAC,MAAM,OAAO,EACjB,OAAO;SAED;CAKR,IAAI,SAAS;CACb,MAAM,cAAc,KAAK,IAAI,MAAM,QAAQ,EAAE;CAC7C,KAAK,IAAI,IAAI,GAAG,IAAI,aAAa,KAChC,UAAU,OAAO,MAAM,GAAI,IAAI,OAAO,IAAI,EAAE;CAG7C,MAAM,WAAW,OAAO,OAAO;CAC/B,OAAO,OAAO,cAAc,SAAS,GAAG,WAAW"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
//#region src/contracts/abi-types.d.ts
|
|
1
2
|
/**
|
|
2
3
|
* Generic ABI Type Extractors
|
|
3
4
|
*
|
|
@@ -7,39 +8,39 @@
|
|
|
7
8
|
/**
|
|
8
9
|
* Shape of an ABI function input
|
|
9
10
|
*/
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
11
|
+
interface AbiInput {
|
|
12
|
+
readonly name: string;
|
|
13
|
+
readonly type: string;
|
|
14
|
+
readonly description?: string;
|
|
15
|
+
readonly validation?: {
|
|
16
|
+
readonly min?: string;
|
|
17
|
+
readonly max?: string;
|
|
18
|
+
readonly type?: string;
|
|
19
|
+
};
|
|
20
|
+
readonly enum?: readonly string[];
|
|
20
21
|
}
|
|
21
22
|
/**
|
|
22
23
|
* Shape of an ABI function entry
|
|
23
24
|
*/
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
25
|
+
interface AbiFunction {
|
|
26
|
+
readonly type: 'function';
|
|
27
|
+
readonly name: string;
|
|
28
|
+
readonly inputs: readonly AbiInput[];
|
|
29
|
+
readonly outputs: readonly unknown[];
|
|
30
|
+
readonly stateMutability: string;
|
|
31
|
+
readonly description?: string;
|
|
32
|
+
readonly requirements?: readonly string[];
|
|
33
|
+
readonly storage?: unknown;
|
|
33
34
|
}
|
|
34
35
|
/**
|
|
35
36
|
* Shape of any ABI definition (contractName, abi[], errors[], storage)
|
|
36
37
|
*/
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
38
|
+
interface AbiDefinition {
|
|
39
|
+
readonly contractName: string;
|
|
40
|
+
readonly contractVersion?: string;
|
|
41
|
+
readonly abi: readonly AbiFunction[];
|
|
42
|
+
readonly errors?: readonly unknown[];
|
|
43
|
+
readonly storage?: unknown;
|
|
43
44
|
}
|
|
44
45
|
/**
|
|
45
46
|
* Extract the literal contract name from an ABI definition
|
|
@@ -50,7 +51,7 @@ export interface AbiDefinition {
|
|
|
50
51
|
* // => 'LockupPrime'
|
|
51
52
|
* ```
|
|
52
53
|
*/
|
|
53
|
-
|
|
54
|
+
type ExtractContractName<T extends AbiDefinition> = T['contractName'];
|
|
54
55
|
/**
|
|
55
56
|
* Extract a union of all function names from an ABI definition
|
|
56
57
|
*
|
|
@@ -60,12 +61,12 @@ export type ExtractContractName<T extends AbiDefinition> = T['contractName'];
|
|
|
60
61
|
* // => 'lock' | 'unlock' | 'daily_checkin'
|
|
61
62
|
* ```
|
|
62
63
|
*/
|
|
63
|
-
|
|
64
|
+
type ExtractFunctionNames<T extends AbiDefinition> = T['abi'][number]['name'];
|
|
64
65
|
/**
|
|
65
66
|
* Find a specific function entry in the ABI by name
|
|
66
67
|
*/
|
|
67
68
|
type FindFunction<TAbi extends AbiDefinition, TFn extends string> = Extract<TAbi['abi'][number], {
|
|
68
|
-
|
|
69
|
+
readonly name: TFn;
|
|
69
70
|
}>;
|
|
70
71
|
/**
|
|
71
72
|
* Extract the inputs array for a specific function
|
|
@@ -80,8 +81,7 @@ type FunctionInputs<TAbi extends AbiDefinition, TFn extends string> = FindFuncti
|
|
|
80
81
|
* // => { amount: string; tier: string }
|
|
81
82
|
* ```
|
|
82
83
|
*/
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
};
|
|
86
|
-
export {};
|
|
84
|
+
type FunctionParams<TAbi extends AbiDefinition, TFn extends string> = { [K in FunctionInputs<TAbi, TFn>[number] as K['name']]: string };
|
|
85
|
+
//#endregion
|
|
86
|
+
export { AbiDefinition, AbiFunction, AbiInput, ExtractContractName, ExtractFunctionNames, FunctionParams };
|
|
87
87
|
//# sourceMappingURL=abi-types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abi-types.d.ts","
|
|
1
|
+
{"version":3,"file":"abi-types.d.ts","names":[],"sources":["../../src/contracts/abi-types.ts"],"mappings":";;AAUA;;;;;;;;UAAiB,QAAA;EAAA,SACP,IAAA;EAAA,SACA,IAAA;EAAA,SACA,WAAA;EAAA,SACA,UAAA;IAAA,SACC,GAAA;IAAA,SACA,GAAA;IAAA,SACA,IAAA;EAAA;EAAA,SAED,IAAA;AAAA;;;;UAMO,WAAA;EAAA,SACP,IAAA;EAAA,SACA,IAAA;EAAA,SACA,MAAA,WAAiB,QAAA;EAAA,SACjB,OAAA;EAAA,SACA,eAAA;EAAA,SACA,WAAA;EAAA,SACA,YAAA;EAAA,SACA,OAAA;AAAA;;;;UAMO,aAAA;EAAA,SACP,YAAA;EAAA,SACA,eAAA;EAAA,SACA,GAAA,WAAc,WAAA;EAAA,SACd,MAAA;EAAA,SACA,OAAA;AAAA;;;;;;;;;AAuBV;KAXY,mBAAA,WAA8B,aAAA,IAAiB,CAAA;;;;;;;;AAWyB;;KAAxE,oBAAA,WAA+B,aAAA,IAAiB,CAAA;;;;KAKvD,YAAA,cAA0B,aAAA,wBAAqC,OAAA,CACnE,IAAA;EAAA,SACW,IAAA,EAAM,GAAA;AAAA;;;;KAMb,cAAA,cAA4B,aAAA,wBAAqC,YAAA,CACrE,IAAA,EACA,GAAA;;;;;;AARoB;;;;KAoBT,cAAA,cAA4B,aAAA,gCACjC,cAAA,CAAe,IAAA,EAAM,GAAA,aAAgB,CAAA"}
|