@amadeus-protocol/sdk 1.0.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/LICENSE +21 -0
- package/README.md +410 -0
- package/dist/api/chain.d.ts +119 -0
- package/dist/api/chain.d.ts.map +1 -0
- package/dist/api/chain.js +147 -0
- package/dist/api/chain.js.map +1 -0
- package/dist/api/contract.d.ts +62 -0
- package/dist/api/contract.d.ts.map +1 -0
- package/dist/api/contract.js +76 -0
- package/dist/api/contract.js.map +1 -0
- package/dist/api/epoch.d.ts +68 -0
- package/dist/api/epoch.d.ts.map +1 -0
- package/dist/api/epoch.js +99 -0
- package/dist/api/epoch.js.map +1 -0
- package/dist/api/index.d.ts +8 -0
- package/dist/api/index.d.ts.map +1 -0
- package/dist/api/index.js +8 -0
- package/dist/api/index.js.map +1 -0
- package/dist/api/peer.d.ts +80 -0
- package/dist/api/peer.d.ts.map +1 -0
- package/dist/api/peer.js +95 -0
- package/dist/api/peer.js.map +1 -0
- package/dist/api/proof.d.ts +25 -0
- package/dist/api/proof.d.ts.map +1 -0
- package/dist/api/proof.js +30 -0
- package/dist/api/proof.js.map +1 -0
- package/dist/api/transaction.d.ts +71 -0
- package/dist/api/transaction.d.ts.map +1 -0
- package/dist/api/transaction.js +85 -0
- package/dist/api/transaction.js.map +1 -0
- package/dist/api/wallet.d.ts +39 -0
- package/dist/api/wallet.d.ts.map +1 -0
- package/dist/api/wallet.js +51 -0
- package/dist/api/wallet.js.map +1 -0
- package/dist/client.d.ts +70 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +280 -0
- package/dist/client.js.map +1 -0
- package/dist/constants.d.ts +42 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +42 -0
- package/dist/constants.js.map +1 -0
- package/dist/conversion.d.ts +32 -0
- package/dist/conversion.d.ts.map +1 -0
- package/dist/conversion.js +50 -0
- package/dist/conversion.js.map +1 -0
- package/dist/crypto.d.ts +93 -0
- package/dist/crypto.d.ts.map +1 -0
- package/dist/crypto.js +156 -0
- package/dist/crypto.js.map +1 -0
- package/dist/encoding.d.ts +108 -0
- package/dist/encoding.d.ts.map +1 -0
- package/dist/encoding.js +165 -0
- package/dist/encoding.js.map +1 -0
- package/dist/encryption.d.ts +76 -0
- package/dist/encryption.d.ts.map +1 -0
- package/dist/encryption.js +137 -0
- package/dist/encryption.js.map +1 -0
- package/dist/index.d.ts +47 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +47 -0
- package/dist/index.js.map +1 -0
- package/dist/schemas.d.ts +67 -0
- package/dist/schemas.d.ts.map +1 -0
- package/dist/schemas.js +103 -0
- package/dist/schemas.js.map +1 -0
- package/dist/sdk.d.ts +100 -0
- package/dist/sdk.d.ts.map +1 -0
- package/dist/sdk.js +120 -0
- package/dist/sdk.js.map +1 -0
- package/dist/serialization.d.ts +42 -0
- package/dist/serialization.d.ts.map +1 -0
- package/dist/serialization.js +247 -0
- package/dist/serialization.js.map +1 -0
- package/dist/transaction-builder.d.ts +267 -0
- package/dist/transaction-builder.d.ts.map +1 -0
- package/dist/transaction-builder.js +397 -0
- package/dist/transaction-builder.js.map +1 -0
- package/dist/types.d.ts +550 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +78 -0
- package/dist/types.js.map +1 -0
- package/dist/validation.d.ts +15 -0
- package/dist/validation.d.ts.map +1 -0
- package/dist/validation.js +39 -0
- package/dist/validation.js.map +1 -0
- package/package.json +80 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../src/api/transaction.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAC9C,OAAO,KAAK,EACX,yBAAyB,EACzB,gCAAgC,EAChC,8BAA8B,EAC9B,WAAW,EACX,MAAM,UAAU,CAAA;AAIjB,qBAAa,cAAc;IACd,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,aAAa;IAEzC;;;;;;;;;;;;;;OAcG;IACG,MAAM,CAAC,QAAQ,EAAE,UAAU,GAAG,MAAM,GAAG,OAAO,CAAC,yBAAyB,CAAC;IAK/E;;;;;;;;;;;;;;;OAeG;IACG,aAAa,CAAC,QAAQ,EAAE,UAAU,GAAG,MAAM,GAAG,OAAO,CAAC,gCAAgC,CAAC;IAQ7F;;;;;;;;;;;OAWG;IACG,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAK7C;;;;;;;;;;;OAWG;IACG,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,8BAA8B,CAAC;CAM5E"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Transaction API
|
|
3
|
+
*
|
|
4
|
+
* Provides methods for submitting transactions and querying transaction data
|
|
5
|
+
*/
|
|
6
|
+
import { Base58HashSchema, TransactionDataSchema } from '../schemas';
|
|
7
|
+
import { validate } from '../validation';
|
|
8
|
+
export class TransactionAPI {
|
|
9
|
+
client;
|
|
10
|
+
constructor(client) {
|
|
11
|
+
this.client = client;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Submit a transaction to the network
|
|
15
|
+
*
|
|
16
|
+
* @param txPacked - Packed transaction as Uint8Array or Base58 string
|
|
17
|
+
* @returns Promise resolving to submission result
|
|
18
|
+
* @throws {AmadeusSDKError} If transaction data is invalid
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* ```ts
|
|
22
|
+
* const result = await sdk.transaction.submit(txPacked)
|
|
23
|
+
* if (result.error === 'ok') {
|
|
24
|
+
* console.log('Transaction hash:', result.hash)
|
|
25
|
+
* }
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
async submit(txPacked) {
|
|
29
|
+
validate(TransactionDataSchema, txPacked);
|
|
30
|
+
return this.client.post('/api/tx/submit', txPacked);
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Submit a transaction and wait for confirmation
|
|
34
|
+
*
|
|
35
|
+
* @param txPacked - Packed transaction as Uint8Array or Base58 string
|
|
36
|
+
* @returns Promise resolving to submission result with confirmation
|
|
37
|
+
* @throws {AmadeusSDKError} If transaction data is invalid
|
|
38
|
+
*
|
|
39
|
+
* @example
|
|
40
|
+
* ```ts
|
|
41
|
+
* const result = await sdk.transaction.submitAndWait(txPacked)
|
|
42
|
+
* if (result.error === 'ok') {
|
|
43
|
+
* console.log('Transaction hash:', result.hash)
|
|
44
|
+
* console.log('Entry hash:', result.entry_hash)
|
|
45
|
+
* }
|
|
46
|
+
* ```
|
|
47
|
+
*/
|
|
48
|
+
async submitAndWait(txPacked) {
|
|
49
|
+
validate(TransactionDataSchema, txPacked);
|
|
50
|
+
return this.client.post('/api/tx/submit_and_wait', txPacked);
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Get transaction by ID
|
|
54
|
+
*
|
|
55
|
+
* @param txid - Transaction ID (Base58 encoded)
|
|
56
|
+
* @returns Promise resolving to transaction data
|
|
57
|
+
* @throws {AmadeusSDKError} If transaction ID is invalid
|
|
58
|
+
*
|
|
59
|
+
* @example
|
|
60
|
+
* ```ts
|
|
61
|
+
* const tx = await sdk.transaction.get('5Kd3N...')
|
|
62
|
+
* ```
|
|
63
|
+
*/
|
|
64
|
+
async get(txid) {
|
|
65
|
+
validate(Base58HashSchema, txid);
|
|
66
|
+
return this.client.get(`/api/chain/tx/${txid}`);
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Get transactions by entry hash
|
|
70
|
+
*
|
|
71
|
+
* @param entryHash - Entry hash (Base58 encoded)
|
|
72
|
+
* @returns Promise resolving to transactions in the entry
|
|
73
|
+
* @throws {AmadeusSDKError} If entry hash is invalid
|
|
74
|
+
*
|
|
75
|
+
* @example
|
|
76
|
+
* ```ts
|
|
77
|
+
* const { txs } = await sdk.transaction.getByEntry('5Kd3N...')
|
|
78
|
+
* ```
|
|
79
|
+
*/
|
|
80
|
+
async getByEntry(entryHash) {
|
|
81
|
+
validate(Base58HashSchema, entryHash);
|
|
82
|
+
return this.client.get(`/api/chain/txs_in_entry/${entryHash}`);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=transaction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transaction.js","sourceRoot":"","sources":["../../src/api/transaction.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AASH,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAA;AACpE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAExC,MAAM,OAAO,cAAc;IACN;IAApB,YAAoB,MAAqB;QAArB,WAAM,GAAN,MAAM,CAAe;IAAG,CAAC;IAE7C;;;;;;;;;;;;;;OAcG;IACH,KAAK,CAAC,MAAM,CAAC,QAA6B;QACzC,QAAQ,CAAC,qBAAqB,EAAE,QAAQ,CAAC,CAAA;QACzC,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAA4B,gBAAgB,EAAE,QAAQ,CAAC,CAAA;IAC/E,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,KAAK,CAAC,aAAa,CAAC,QAA6B;QAChD,QAAQ,CAAC,qBAAqB,EAAE,QAAQ,CAAC,CAAA;QACzC,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CACtB,yBAAyB,EACzB,QAAQ,CACR,CAAA;IACF,CAAC;IAED;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,GAAG,CAAC,IAAY;QACrB,QAAQ,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAA;QAChC,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAc,iBAAiB,IAAI,EAAE,CAAC,CAAA;IAC7D,CAAC;IAED;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,UAAU,CAAC,SAAiB;QACjC,QAAQ,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAA;QACrC,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CACrB,2BAA2B,SAAS,EAAE,CACtC,CAAA;IACF,CAAC;CACD"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Wallet API
|
|
3
|
+
*
|
|
4
|
+
* Provides methods for querying wallet balances and information
|
|
5
|
+
*/
|
|
6
|
+
import type { AmadeusClient } from '../client';
|
|
7
|
+
import type { WalletBalance, GetAllBalancesResponse } from '../types';
|
|
8
|
+
export declare class WalletAPI {
|
|
9
|
+
private client;
|
|
10
|
+
constructor(client: AmadeusClient);
|
|
11
|
+
/**
|
|
12
|
+
* Get balance for a specific address and symbol
|
|
13
|
+
*
|
|
14
|
+
* @param address - Base58 encoded wallet address
|
|
15
|
+
* @param symbol - Token symbol (default: 'AMA')
|
|
16
|
+
* @returns Promise resolving to wallet balance
|
|
17
|
+
* @throws {AmadeusSDKError} If address is invalid
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```ts
|
|
21
|
+
* const balance = await sdk.wallet.getBalance('5Kd3N...', 'AMA')
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
getBalance(address: string, symbol?: string): Promise<WalletBalance>;
|
|
25
|
+
/**
|
|
26
|
+
* Get all balances for an address
|
|
27
|
+
*
|
|
28
|
+
* @param address - Base58 encoded wallet address
|
|
29
|
+
* @returns Promise resolving to all wallet balances
|
|
30
|
+
* @throws {AmadeusSDKError} If address is invalid
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* ```ts
|
|
34
|
+
* const { balances } = await sdk.wallet.getAllBalances('5Kd3N...')
|
|
35
|
+
* ```
|
|
36
|
+
*/
|
|
37
|
+
getAllBalances(address: string): Promise<GetAllBalancesResponse>;
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=wallet.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wallet.d.ts","sourceRoot":"","sources":["../../src/api/wallet.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAC9C,OAAO,KAAK,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAA;AAIrE,qBAAa,SAAS;IACT,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,aAAa;IAEzC;;;;;;;;;;;;OAYG;IACG,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,GAAE,MAAc,GAAG,OAAO,CAAC,aAAa,CAAC;IAWjF;;;;;;;;;;;OAWG;IACG,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC;CAItE"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Wallet API
|
|
3
|
+
*
|
|
4
|
+
* Provides methods for querying wallet balances and information
|
|
5
|
+
*/
|
|
6
|
+
import { Base58AddressSchema, NonEmptyStringSchema } from '../schemas';
|
|
7
|
+
import { validate } from '../validation';
|
|
8
|
+
export class WalletAPI {
|
|
9
|
+
client;
|
|
10
|
+
constructor(client) {
|
|
11
|
+
this.client = client;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Get balance for a specific address and symbol
|
|
15
|
+
*
|
|
16
|
+
* @param address - Base58 encoded wallet address
|
|
17
|
+
* @param symbol - Token symbol (default: 'AMA')
|
|
18
|
+
* @returns Promise resolving to wallet balance
|
|
19
|
+
* @throws {AmadeusSDKError} If address is invalid
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```ts
|
|
23
|
+
* const balance = await sdk.wallet.getBalance('5Kd3N...', 'AMA')
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
async getBalance(address, symbol = 'AMA') {
|
|
27
|
+
validate(Base58AddressSchema, address);
|
|
28
|
+
validate(NonEmptyStringSchema, symbol);
|
|
29
|
+
const url = symbol === 'AMA'
|
|
30
|
+
? `/api/wallet/balance/${address}`
|
|
31
|
+
: `/api/wallet/balance/${address}/${symbol}`;
|
|
32
|
+
return this.client.get(url);
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Get all balances for an address
|
|
36
|
+
*
|
|
37
|
+
* @param address - Base58 encoded wallet address
|
|
38
|
+
* @returns Promise resolving to all wallet balances
|
|
39
|
+
* @throws {AmadeusSDKError} If address is invalid
|
|
40
|
+
*
|
|
41
|
+
* @example
|
|
42
|
+
* ```ts
|
|
43
|
+
* const { balances } = await sdk.wallet.getAllBalances('5Kd3N...')
|
|
44
|
+
* ```
|
|
45
|
+
*/
|
|
46
|
+
async getAllBalances(address) {
|
|
47
|
+
validate(Base58AddressSchema, address);
|
|
48
|
+
return this.client.get(`/api/wallet/balance_all/${address}`);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=wallet.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wallet.js","sourceRoot":"","sources":["../../src/api/wallet.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AACtE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAExC,MAAM,OAAO,SAAS;IACD;IAApB,YAAoB,MAAqB;QAArB,WAAM,GAAN,MAAM,CAAe;IAAG,CAAC;IAE7C;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,UAAU,CAAC,OAAe,EAAE,SAAiB,KAAK;QACvD,QAAQ,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAA;QACtC,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAA;QAEtC,MAAM,GAAG,GACR,MAAM,KAAK,KAAK;YACf,CAAC,CAAC,uBAAuB,OAAO,EAAE;YAClC,CAAC,CAAC,uBAAuB,OAAO,IAAI,MAAM,EAAE,CAAA;QAC9C,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAgB,GAAG,CAAC,CAAA;IAC3C,CAAC;IAED;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,cAAc,CAAC,OAAe;QACnC,QAAQ,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAA;QACtC,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAyB,2BAA2B,OAAO,EAAE,CAAC,CAAA;IACrF,CAAC;CACD"}
|
package/dist/client.d.ts
ADDED
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HTTP Client
|
|
3
|
+
*
|
|
4
|
+
* Lightweight HTTP client using native fetch API (no axios dependency)
|
|
5
|
+
* Provides request/response handling, timeout management, and error handling.
|
|
6
|
+
*/
|
|
7
|
+
import type { AmadeusSDKConfig } from './types';
|
|
8
|
+
export declare class AmadeusClient {
|
|
9
|
+
private config;
|
|
10
|
+
private abortController;
|
|
11
|
+
/**
|
|
12
|
+
* Create a new AmadeusClient instance
|
|
13
|
+
*
|
|
14
|
+
* @param config - SDK configuration
|
|
15
|
+
* @throws {AmadeusSDKError} If baseUrl is invalid
|
|
16
|
+
*/
|
|
17
|
+
constructor(config: AmadeusSDKConfig);
|
|
18
|
+
/**
|
|
19
|
+
* Make a GET request
|
|
20
|
+
*
|
|
21
|
+
* @param endpoint - API endpoint path
|
|
22
|
+
* @param params - Optional query parameters
|
|
23
|
+
* @returns Promise resolving to the response data
|
|
24
|
+
*/
|
|
25
|
+
get<T = unknown>(endpoint: string, params?: Record<string, unknown>): Promise<T>;
|
|
26
|
+
/**
|
|
27
|
+
* Make a POST request
|
|
28
|
+
*
|
|
29
|
+
* @param endpoint - API endpoint path
|
|
30
|
+
* @param data - Request body data (Uint8Array for binary, object for JSON)
|
|
31
|
+
* @returns Promise resolving to the response data
|
|
32
|
+
*/
|
|
33
|
+
post<T = unknown>(endpoint: string, data?: unknown): Promise<T>;
|
|
34
|
+
/**
|
|
35
|
+
* Build full URL with query parameters
|
|
36
|
+
*/
|
|
37
|
+
private buildUrl;
|
|
38
|
+
/**
|
|
39
|
+
* Prepare request body and determine Content-Type
|
|
40
|
+
*/
|
|
41
|
+
private prepareBody;
|
|
42
|
+
/**
|
|
43
|
+
* Make HTTP request with timeout
|
|
44
|
+
*/
|
|
45
|
+
private request;
|
|
46
|
+
/**
|
|
47
|
+
* Handle API response and parse errors
|
|
48
|
+
*/
|
|
49
|
+
private handleResponse;
|
|
50
|
+
/**
|
|
51
|
+
* Get current configuration
|
|
52
|
+
*/
|
|
53
|
+
getConfig(): AmadeusSDKConfig;
|
|
54
|
+
/**
|
|
55
|
+
* Update base URL
|
|
56
|
+
*
|
|
57
|
+
* @param url - New base URL
|
|
58
|
+
* @throws {AmadeusSDKError} If URL is invalid
|
|
59
|
+
*/
|
|
60
|
+
setBaseUrl(url: string): void;
|
|
61
|
+
/**
|
|
62
|
+
* Update headers
|
|
63
|
+
*/
|
|
64
|
+
setHeaders(headers: Record<string, string>): void;
|
|
65
|
+
/**
|
|
66
|
+
* Cancel ongoing requests
|
|
67
|
+
*/
|
|
68
|
+
cancel(): void;
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAe,MAAM,SAAS,CAAA;AAkB5D,qBAAa,aAAa;IACzB,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,eAAe,CAA+B;IAEtD;;;;;OAKG;gBACS,MAAM,EAAE,gBAAgB;IAuBpC;;;;;;OAMG;IACG,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAUtF;;;;;;OAMG;IACG,IAAI,CAAC,CAAC,GAAG,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC;IAgBrE;;OAEG;IACH,OAAO,CAAC,QAAQ;IAchB;;OAEG;IACH,OAAO,CAAC,WAAW;IAoCnB;;OAEG;YACW,OAAO;IA2CrB;;OAEG;YACW,cAAc;IA0F5B;;OAEG;IACH,SAAS,IAAI,gBAAgB;IAI7B;;;;;OAKG;IACH,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAO7B;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;IAIjD;;OAEG;IACH,MAAM,IAAI,IAAI;CAMd"}
|
package/dist/client.js
ADDED
|
@@ -0,0 +1,280 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HTTP Client
|
|
3
|
+
*
|
|
4
|
+
* Lightweight HTTP client using native fetch API (no axios dependency)
|
|
5
|
+
* Provides request/response handling, timeout management, and error handling.
|
|
6
|
+
*/
|
|
7
|
+
import { AmadeusSDKError } from './types';
|
|
8
|
+
import { NODE_API_URL, DEFAULT_TIMEOUT, SDK_VERSION } from './constants';
|
|
9
|
+
import { NonEmptyStringSchema } from './schemas';
|
|
10
|
+
import { validate } from './validation';
|
|
11
|
+
/**
|
|
12
|
+
* Validates a URL string
|
|
13
|
+
*/
|
|
14
|
+
function isValidUrl(url) {
|
|
15
|
+
try {
|
|
16
|
+
const parsed = new URL(url);
|
|
17
|
+
return parsed.protocol === 'http:' || parsed.protocol === 'https:';
|
|
18
|
+
}
|
|
19
|
+
catch {
|
|
20
|
+
return false;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
export class AmadeusClient {
|
|
24
|
+
config;
|
|
25
|
+
abortController = null;
|
|
26
|
+
/**
|
|
27
|
+
* Create a new AmadeusClient instance
|
|
28
|
+
*
|
|
29
|
+
* @param config - SDK configuration
|
|
30
|
+
* @throws {AmadeusSDKError} If baseUrl is invalid
|
|
31
|
+
*/
|
|
32
|
+
constructor(config) {
|
|
33
|
+
const baseUrl = config.baseUrl || NODE_API_URL;
|
|
34
|
+
if (!isValidUrl(baseUrl)) {
|
|
35
|
+
throw new AmadeusSDKError(`Invalid baseUrl: ${baseUrl}. Must be a valid HTTP/HTTPS URL.`);
|
|
36
|
+
}
|
|
37
|
+
// Ensure baseUrl doesn't end with a slash
|
|
38
|
+
const normalizedBaseUrl = baseUrl.replace(/\/+$/, '');
|
|
39
|
+
this.config = {
|
|
40
|
+
baseUrl: normalizedBaseUrl,
|
|
41
|
+
timeout: config.timeout && config.timeout > 0 ? config.timeout : DEFAULT_TIMEOUT,
|
|
42
|
+
headers: {
|
|
43
|
+
'Content-Type': 'application/octet-stream',
|
|
44
|
+
'User-Agent': `@amadeus-protocol/sdk/${SDK_VERSION}`,
|
|
45
|
+
...config.headers
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Make a GET request
|
|
51
|
+
*
|
|
52
|
+
* @param endpoint - API endpoint path
|
|
53
|
+
* @param params - Optional query parameters
|
|
54
|
+
* @returns Promise resolving to the response data
|
|
55
|
+
*/
|
|
56
|
+
async get(endpoint, params) {
|
|
57
|
+
validate(NonEmptyStringSchema, endpoint);
|
|
58
|
+
const url = this.buildUrl(endpoint, params);
|
|
59
|
+
const response = await this.request(url, {
|
|
60
|
+
method: 'GET'
|
|
61
|
+
});
|
|
62
|
+
return this.handleResponse(response);
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Make a POST request
|
|
66
|
+
*
|
|
67
|
+
* @param endpoint - API endpoint path
|
|
68
|
+
* @param data - Request body data (Uint8Array for binary, object for JSON)
|
|
69
|
+
* @returns Promise resolving to the response data
|
|
70
|
+
*/
|
|
71
|
+
async post(endpoint, data) {
|
|
72
|
+
validate(NonEmptyStringSchema, endpoint);
|
|
73
|
+
const url = this.buildUrl(endpoint);
|
|
74
|
+
const { body, contentType } = this.prepareBody(data);
|
|
75
|
+
const response = await this.request(url, {
|
|
76
|
+
method: 'POST',
|
|
77
|
+
body,
|
|
78
|
+
headers: {
|
|
79
|
+
'Content-Type': contentType
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
return this.handleResponse(response);
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Build full URL with query parameters
|
|
86
|
+
*/
|
|
87
|
+
buildUrl(endpoint, params) {
|
|
88
|
+
const url = new URL(endpoint, this.config.baseUrl);
|
|
89
|
+
if (params) {
|
|
90
|
+
for (const [key, value] of Object.entries(params)) {
|
|
91
|
+
if (value !== undefined && value !== null) {
|
|
92
|
+
url.searchParams.append(key, String(value));
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
return url.toString();
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Prepare request body and determine Content-Type
|
|
100
|
+
*/
|
|
101
|
+
prepareBody(data) {
|
|
102
|
+
if (!data) {
|
|
103
|
+
return { body: undefined, contentType: 'application/octet-stream' };
|
|
104
|
+
}
|
|
105
|
+
// If it's already a Uint8Array or ArrayBuffer, send as binary
|
|
106
|
+
if (data instanceof Uint8Array) {
|
|
107
|
+
return { body: data, contentType: 'application/octet-stream' };
|
|
108
|
+
}
|
|
109
|
+
if (data instanceof ArrayBuffer) {
|
|
110
|
+
return { body: data, contentType: 'application/octet-stream' };
|
|
111
|
+
}
|
|
112
|
+
// If it's a Buffer (Node.js), convert to Uint8Array
|
|
113
|
+
if (typeof Buffer !== 'undefined' && Buffer.isBuffer(data)) {
|
|
114
|
+
return {
|
|
115
|
+
body: new Uint8Array(data),
|
|
116
|
+
contentType: 'application/octet-stream'
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
// For objects, try to send as binary if it has txPacked or tx_packed
|
|
120
|
+
if (typeof data === 'object' && data !== null) {
|
|
121
|
+
const obj = data;
|
|
122
|
+
if ('txPacked' in obj && obj.txPacked instanceof Uint8Array) {
|
|
123
|
+
return { body: obj.txPacked, contentType: 'application/octet-stream' };
|
|
124
|
+
}
|
|
125
|
+
if ('tx_packed' in obj && obj.tx_packed instanceof Uint8Array) {
|
|
126
|
+
return { body: obj.tx_packed, contentType: 'application/octet-stream' };
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
// Default: send as JSON
|
|
130
|
+
return { body: JSON.stringify(data), contentType: 'application/json' };
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Make HTTP request with timeout
|
|
134
|
+
*/
|
|
135
|
+
async request(url, options) {
|
|
136
|
+
// Cancel previous request if any
|
|
137
|
+
if (this.abortController) {
|
|
138
|
+
this.abortController.abort();
|
|
139
|
+
}
|
|
140
|
+
this.abortController = new AbortController();
|
|
141
|
+
const timeoutId = setTimeout(() => {
|
|
142
|
+
this.abortController?.abort();
|
|
143
|
+
}, this.config.timeout);
|
|
144
|
+
try {
|
|
145
|
+
const response = await fetch(url, {
|
|
146
|
+
...options,
|
|
147
|
+
headers: {
|
|
148
|
+
...this.config.headers,
|
|
149
|
+
...options.headers
|
|
150
|
+
},
|
|
151
|
+
signal: this.abortController.signal
|
|
152
|
+
});
|
|
153
|
+
clearTimeout(timeoutId);
|
|
154
|
+
return response;
|
|
155
|
+
}
|
|
156
|
+
catch (error) {
|
|
157
|
+
clearTimeout(timeoutId);
|
|
158
|
+
if (error instanceof Error) {
|
|
159
|
+
if (error.name === 'AbortError' || error.name === 'TimeoutError') {
|
|
160
|
+
throw new AmadeusSDKError(`Request timeout after ${this.config.timeout}ms`, 408);
|
|
161
|
+
}
|
|
162
|
+
throw new AmadeusSDKError(`Request failed: ${error.message}`, 0, error instanceof Error
|
|
163
|
+
? { message: error.message, name: error.name }
|
|
164
|
+
: { error: String(error) });
|
|
165
|
+
}
|
|
166
|
+
throw new AmadeusSDKError(`Request failed: ${String(error)}`, 0, {
|
|
167
|
+
error: String(error)
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Handle API response and parse errors
|
|
173
|
+
*/
|
|
174
|
+
async handleResponse(response) {
|
|
175
|
+
if (!response.ok) {
|
|
176
|
+
let errorData;
|
|
177
|
+
const contentType = response.headers.get('content-type');
|
|
178
|
+
try {
|
|
179
|
+
if (contentType?.includes('application/json')) {
|
|
180
|
+
errorData = await response.json();
|
|
181
|
+
}
|
|
182
|
+
else {
|
|
183
|
+
const text = await response.text();
|
|
184
|
+
// If it's HTML, try to extract a meaningful error message
|
|
185
|
+
if (contentType?.includes('text/html')) {
|
|
186
|
+
// Try to extract title or error message from HTML
|
|
187
|
+
const titleMatch = text.match(/<title>([^<]+)<\/title>/i);
|
|
188
|
+
const h1Match = text.match(/<h1[^>]*>([^<]+)<\/h1>/i);
|
|
189
|
+
errorData =
|
|
190
|
+
titleMatch?.[1] || h1Match?.[1] || `HTTP ${response.status} Error`;
|
|
191
|
+
}
|
|
192
|
+
else {
|
|
193
|
+
errorData = text;
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
catch (parseError) {
|
|
198
|
+
errorData = `Failed to parse error response: ${parseError instanceof Error ? parseError.message : String(parseError)}`;
|
|
199
|
+
}
|
|
200
|
+
const message = typeof errorData === 'object' && errorData !== null && 'error' in errorData
|
|
201
|
+
? String(errorData.error)
|
|
202
|
+
: typeof errorData === 'string'
|
|
203
|
+
? errorData.length > 500
|
|
204
|
+
? `${errorData.substring(0, 500)}... (truncated)`
|
|
205
|
+
: errorData
|
|
206
|
+
: response.statusText || 'Unknown error';
|
|
207
|
+
throw new AmadeusSDKError(`HTTP ${response.status}: ${message}`, response.status, errorData);
|
|
208
|
+
}
|
|
209
|
+
const contentType = response.headers.get('content-type');
|
|
210
|
+
let data;
|
|
211
|
+
try {
|
|
212
|
+
if (contentType?.includes('application/json')) {
|
|
213
|
+
data = await response.json();
|
|
214
|
+
}
|
|
215
|
+
else {
|
|
216
|
+
// Try JSON first, fallback to text
|
|
217
|
+
const text = await response.text();
|
|
218
|
+
try {
|
|
219
|
+
data = JSON.parse(text);
|
|
220
|
+
}
|
|
221
|
+
catch {
|
|
222
|
+
data = text;
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
catch (parseError) {
|
|
227
|
+
throw new AmadeusSDKError(`Failed to parse response: ${parseError instanceof Error ? parseError.message : String(parseError)}`, response.status);
|
|
228
|
+
}
|
|
229
|
+
// Handle API response format
|
|
230
|
+
if (typeof data === 'object' && data !== null && 'error' in data) {
|
|
231
|
+
const apiResponse = data;
|
|
232
|
+
if (apiResponse.error === 'ok') {
|
|
233
|
+
// Remove error property from response (intentionally unused)
|
|
234
|
+
const { error: _error, ...rest } = apiResponse;
|
|
235
|
+
return rest;
|
|
236
|
+
}
|
|
237
|
+
else if (apiResponse.error === 'not_found') {
|
|
238
|
+
throw new AmadeusSDKError('Resource not found', 404, apiResponse);
|
|
239
|
+
}
|
|
240
|
+
else {
|
|
241
|
+
throw new AmadeusSDKError(apiResponse.error || 'Unknown API error', 400, apiResponse);
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
return data;
|
|
245
|
+
}
|
|
246
|
+
/**
|
|
247
|
+
* Get current configuration
|
|
248
|
+
*/
|
|
249
|
+
getConfig() {
|
|
250
|
+
return { ...this.config };
|
|
251
|
+
}
|
|
252
|
+
/**
|
|
253
|
+
* Update base URL
|
|
254
|
+
*
|
|
255
|
+
* @param url - New base URL
|
|
256
|
+
* @throws {AmadeusSDKError} If URL is invalid
|
|
257
|
+
*/
|
|
258
|
+
setBaseUrl(url) {
|
|
259
|
+
if (!isValidUrl(url)) {
|
|
260
|
+
throw new AmadeusSDKError(`Invalid baseUrl: ${url}. Must be a valid HTTP/HTTPS URL.`);
|
|
261
|
+
}
|
|
262
|
+
this.config.baseUrl = url.replace(/\/+$/, '');
|
|
263
|
+
}
|
|
264
|
+
/**
|
|
265
|
+
* Update headers
|
|
266
|
+
*/
|
|
267
|
+
setHeaders(headers) {
|
|
268
|
+
this.config.headers = { ...this.config.headers, ...headers };
|
|
269
|
+
}
|
|
270
|
+
/**
|
|
271
|
+
* Cancel ongoing requests
|
|
272
|
+
*/
|
|
273
|
+
cancel() {
|
|
274
|
+
if (this.abortController) {
|
|
275
|
+
this.abortController.abort();
|
|
276
|
+
this.abortController = null;
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Amadeus Protocol Constants
|
|
3
|
+
*
|
|
4
|
+
* This module contains all protocol-level constants used throughout the SDK.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* SDK version
|
|
8
|
+
*/
|
|
9
|
+
export declare const SDK_VERSION = "1.0.0";
|
|
10
|
+
/**
|
|
11
|
+
* Byte length of an Amadeus public key (BLS12-381 public key)
|
|
12
|
+
*/
|
|
13
|
+
export declare const AMADEUS_PUBLIC_KEY_BYTE_LENGTH = 48;
|
|
14
|
+
/**
|
|
15
|
+
* Byte length of an Amadeus seed (private key seed)
|
|
16
|
+
*/
|
|
17
|
+
export declare const AMADEUS_SEED_BYTE_LENGTH = 64;
|
|
18
|
+
/**
|
|
19
|
+
* Number of decimal places for AMA token
|
|
20
|
+
*/
|
|
21
|
+
export declare const AMA_TOKEN_DECIMALS = 9;
|
|
22
|
+
/**
|
|
23
|
+
* Multiplier for converting between atomic units and AMA tokens
|
|
24
|
+
*/
|
|
25
|
+
export declare const AMA_TOKEN_DECIMALS_MULTIPLIER: number;
|
|
26
|
+
/**
|
|
27
|
+
* Flat network transfer fee in AMA for standard transfers
|
|
28
|
+
*/
|
|
29
|
+
export declare const AMA_TRANSFER_FEE = 0.02;
|
|
30
|
+
/**
|
|
31
|
+
* Default explorer URL
|
|
32
|
+
*/
|
|
33
|
+
export declare const EXPLORER_URL = "https://explorer.ama.one";
|
|
34
|
+
/**
|
|
35
|
+
* Default node API URL
|
|
36
|
+
*/
|
|
37
|
+
export declare const NODE_API_URL = "https://nodes.amadeus.bot/api";
|
|
38
|
+
/**
|
|
39
|
+
* Default request timeout in milliseconds
|
|
40
|
+
*/
|
|
41
|
+
export declare const DEFAULT_TIMEOUT = 30000;
|
|
42
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,eAAO,MAAM,WAAW,UAAU,CAAA;AAElC;;GAEG;AACH,eAAO,MAAM,8BAA8B,KAAK,CAAA;AAEhD;;GAEG;AACH,eAAO,MAAM,wBAAwB,KAAK,CAAA;AAE1C;;GAEG;AACH,eAAO,MAAM,kBAAkB,IAAI,CAAA;AAEnC;;GAEG;AACH,eAAO,MAAM,6BAA6B,QAA2B,CAAA;AAErE;;GAEG;AACH,eAAO,MAAM,gBAAgB,OAAO,CAAA;AAEpC;;GAEG;AACH,eAAO,MAAM,YAAY,6BAA6B,CAAA;AAEtD;;GAEG;AACH,eAAO,MAAM,YAAY,kCAAkC,CAAA;AAE3D;;GAEG;AACH,eAAO,MAAM,eAAe,QAAQ,CAAA"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Amadeus Protocol Constants
|
|
3
|
+
*
|
|
4
|
+
* This module contains all protocol-level constants used throughout the SDK.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* SDK version
|
|
8
|
+
*/
|
|
9
|
+
export const SDK_VERSION = '1.0.0';
|
|
10
|
+
/**
|
|
11
|
+
* Byte length of an Amadeus public key (BLS12-381 public key)
|
|
12
|
+
*/
|
|
13
|
+
export const AMADEUS_PUBLIC_KEY_BYTE_LENGTH = 48;
|
|
14
|
+
/**
|
|
15
|
+
* Byte length of an Amadeus seed (private key seed)
|
|
16
|
+
*/
|
|
17
|
+
export const AMADEUS_SEED_BYTE_LENGTH = 64;
|
|
18
|
+
/**
|
|
19
|
+
* Number of decimal places for AMA token
|
|
20
|
+
*/
|
|
21
|
+
export const AMA_TOKEN_DECIMALS = 9;
|
|
22
|
+
/**
|
|
23
|
+
* Multiplier for converting between atomic units and AMA tokens
|
|
24
|
+
*/
|
|
25
|
+
export const AMA_TOKEN_DECIMALS_MULTIPLIER = 10 ** AMA_TOKEN_DECIMALS;
|
|
26
|
+
/**
|
|
27
|
+
* Flat network transfer fee in AMA for standard transfers
|
|
28
|
+
*/
|
|
29
|
+
export const AMA_TRANSFER_FEE = 0.02;
|
|
30
|
+
/**
|
|
31
|
+
* Default explorer URL
|
|
32
|
+
*/
|
|
33
|
+
export const EXPLORER_URL = 'https://explorer.ama.one';
|
|
34
|
+
/**
|
|
35
|
+
* Default node API URL
|
|
36
|
+
*/
|
|
37
|
+
export const NODE_API_URL = 'https://nodes.amadeus.bot/api';
|
|
38
|
+
/**
|
|
39
|
+
* Default request timeout in milliseconds
|
|
40
|
+
*/
|
|
41
|
+
export const DEFAULT_TIMEOUT = 30000;
|
|
42
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,OAAO,CAAA;AAElC;;GAEG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,EAAE,CAAA;AAEhD;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,EAAE,CAAA;AAE1C;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAA;AAEnC;;GAEG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,EAAE,IAAI,kBAAkB,CAAA;AAErE;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,CAAA;AAEpC;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,0BAA0B,CAAA;AAEtD;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,+BAA+B,CAAA;AAE3D;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,CAAA"}
|