@metaflux-dex/client 0.0.2 → 0.0.3

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.
@@ -0,0 +1,8 @@
1
+ export interface FaucetResponse {
2
+ address: string;
3
+ usdc: number;
4
+ mtf: number;
5
+ status: string;
6
+ }
7
+ export declare function requestFaucet(faucetBaseUrl: string, address: string, amount?: number): Promise<FaucetResponse>;
8
+ //# sourceMappingURL=faucet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"faucet.d.ts","sourceRoot":"","sources":["../src/faucet.ts"],"names":[],"mappings":"AAkBA,MAAM,WAAW,cAAc;IAE7B,OAAO,EAAE,MAAM,CAAC;IAEhB,IAAI,EAAE,MAAM,CAAC;IAEb,GAAG,EAAE,MAAM,CAAC;IAEZ,MAAM,EAAE,MAAM,CAAC;CAChB;AAkBD,wBAAsB,aAAa,CACjC,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,cAAc,CAAC,CASzB"}
package/dist/faucet.js ADDED
@@ -0,0 +1,40 @@
1
+ // Devnet / testnet faucet helper.
2
+ //
3
+ // The node exposes a faucet at `POST <faucetBaseUrl>/faucet` that credits an
4
+ // address with test USDC + MTF. It runs on its OWN origin (devnet node port 8080;
5
+ // production `https://faucet.devnet.mtf.exchange`), SEPARATE from the trading
6
+ // API base URL — so `requestFaucet` takes a dedicated `faucetBaseUrl` rather
7
+ // than reusing a `Client`'s trading base URL.
8
+ //
9
+ // The grant is staged for the NEXT block: a 200 response carries
10
+ // `status: "queued"` and the credited balance lands after ~1 block, not
11
+ // synchronously. Devnet / testnet only — mainnet refuses (surfaced as a
12
+ // `MetaFluxApiError`).
13
+ import { httpRequest } from './http.js';
14
+ /// Request test USDC from a devnet / testnet faucet.
15
+ ///
16
+ /// POSTs `{ address, amount? }` to `<faucetBaseUrl>/faucet` (grants both USDC and MTF). `amount` is a
17
+ /// whole-USDC integer; omit it for the faucet's full default grant (capped
18
+ /// server-side).
19
+ ///
20
+ /// `faucetBaseUrl` is the faucet's OWN origin (e.g. `http://localhost:8080`
21
+ /// on devnet, `https://faucet.devnet.mtf.exchange` in production) — NOT the
22
+ /// trading API base URL.
23
+ ///
24
+ /// On success the credit is `"queued"` for the next block; the balance updates
25
+ /// after ~1 block, not synchronously.
26
+ ///
27
+ /// Throws `MetaFluxApiError` on a non-2xx status, surfacing the server's
28
+ /// `{ error }` message — notably 429 (rate-limited: per-address once-ever, per-IP
29
+ /// 1/minute), 400 (bad/zero address), 503 (backlog full), or a mainnet refusal.
30
+ export async function requestFaucet(faucetBaseUrl, address, amount) {
31
+ const json = { address };
32
+ if (amount !== undefined) {
33
+ json.amount = amount;
34
+ }
35
+ return httpRequest(faucetBaseUrl, '/faucet', {
36
+ method: 'POST',
37
+ json,
38
+ });
39
+ }
40
+ //# sourceMappingURL=faucet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"faucet.js","sourceRoot":"","sources":["../src/faucet.ts"],"names":[],"mappings":"AAAA,kCAAkC;AAClC,EAAE;AACF,6EAA6E;AAC7E,kFAAkF;AAClF,8EAA8E;AAC9E,6EAA6E;AAC7E,8CAA8C;AAC9C,EAAE;AACF,iEAAiE;AACjE,wEAAwE;AACxE,wEAAwE;AACxE,uBAAuB;AAEvB,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAgBxC,qDAAqD;AACrD,GAAG;AACH,sGAAsG;AACtG,2EAA2E;AAC3E,iBAAiB;AACjB,GAAG;AACH,4EAA4E;AAC5E,4EAA4E;AAC5E,yBAAyB;AACzB,GAAG;AACH,+EAA+E;AAC/E,sCAAsC;AACtC,GAAG;AACH,yEAAyE;AACzE,kFAAkF;AAClF,gFAAgF;AAChF,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,aAAqB,EACrB,OAAe,EACf,MAAe;IAEf,MAAM,IAAI,GAAyC,EAAE,OAAO,EAAE,CAAC;IAC/D,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IACD,OAAO,WAAW,CAAiB,aAAa,EAAE,SAAS,EAAE;QAC3D,MAAM,EAAE,MAAM;QACd,IAAI;KACL,CAAC,CAAC;AACL,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  export { Client, type ClientOpts } from './client.js';
2
2
  export { MetaFluxApiError } from './http.js';
3
+ export { requestFaucet, type FaucetResponse } from './faucet.js';
3
4
  export { MTF_CHAIN_ID, MTF_MAINNET_CHAIN_ID, MTF_TESTNET_CHAIN_ID, nativeActionDigest, buildNativeOrderAction, buildNativeCancelAction, signNativeAction, recoverNativeSigner, nativeRequestBody, } from './native.js';
4
5
  export { InfoApi, type AccountRef, } from './info.js';
5
6
  export type { NodeInfo, AccountState, AccountPosition, Balances, Tier, MarginMode, MarketInfo, Funding, VaultState, StakingState, Delegation, PendingUnstake, FeeSchedule, FeeTier, OpenOrders, OpenOrder, L2Book, L2Level, RecentTrades, UserFills, FundingHistory, FundingSample, BlockInfo, Agents, AgentEntry, SubAccounts, SubAccountEntry, Mip3ActiveBids, Mip3Bid, SpotMeta, SpotPair, SpotClearinghouseState, SpotBalance, ExchangeStatus, FrontendOpenOrders, FrontendOpenOrder, OrderTrigger, Liquidatable, LiquidatableAccount, ActiveAssetData, MaxMarketOrderNtls, MaxMarketOrderNtl, VaultSummaries, VaultSummary, UserVaultEquities, VaultEquity, LeadingVaults, UserRateLimit, SpotDeployState, DelegatorSummary, MaxBuilderFee, UserToMultiSigSigners, UserRole, PerpsAtOpenInterestCap, ValidatorL1Votes, ValidatorL1Vote, MarginTable, MarginTier, PerpDexs, PerpDex, ValidatorSummaries, ValidatorSummary, GossipRootIps, WebData2, WebData2Clearinghouse, WebData2Position, } from './info-types.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,MAAM,EAAE,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAGL,YAAY,EACZ,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,sBAAsB,EACtB,uBAAuB,EACvB,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,aAAa,CAAC;AACrB,OAAO,EAEL,OAAO,EACP,KAAK,UAAU,GAChB,MAAM,WAAW,CAAC;AACnB,YAAY,EAKV,QAAQ,EACR,YAAY,EACZ,eAAe,EACf,QAAQ,EACR,IAAI,EACJ,UAAU,EACV,UAAU,EACV,OAAO,EACP,UAAU,EACV,YAAY,EACZ,UAAU,EACV,cAAc,EACd,WAAW,EACX,OAAO,EACP,UAAU,EACV,SAAS,EACT,MAAM,EACN,OAAO,EACP,YAAY,EACZ,SAAS,EACT,cAAc,EACd,aAAa,EACb,SAAS,EACT,MAAM,EACN,UAAU,EACV,WAAW,EACX,eAAe,EACf,cAAc,EACd,OAAO,EAEP,QAAQ,EACR,QAAQ,EACR,sBAAsB,EACtB,WAAW,EACX,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,mBAAmB,EACnB,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,EACd,YAAY,EACZ,iBAAiB,EACjB,WAAW,EACX,aAAa,EACb,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,aAAa,EACb,qBAAqB,EACrB,QAAQ,EACR,sBAAsB,EACtB,gBAAgB,EAChB,eAAe,EACf,WAAW,EACX,UAAU,EACV,QAAQ,EACR,OAAO,EACP,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,EACb,QAAQ,EACR,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAEL,QAAQ,EACR,WAAW,EACX,KAAK,SAAS,EACd,KAAK,cAAc,EACnB,KAAK,OAAO,EACZ,KAAK,gBAAgB,EACrB,KAAK,QAAQ,GACd,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,iBAAiB,EACjB,aAAa,EAIb,SAAS,EACT,aAAa,EACb,aAAa,EACb,mBAAmB,EACnB,gBAAgB,EAChB,uBAAuB,GACxB,MAAM,WAAW,CAAC;AACnB,YAAY,EACV,KAAK,EACL,OAAO,EACP,WAAW,EACX,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,IAAI,EACJ,GAAG,EACH,aAAa,EAEb,WAAW,EACX,YAAY,EACZ,aAAa,EACb,UAAU,EACV,eAAe,EACf,SAAS,EACT,aAAa,EACb,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,MAAM,EAAE,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AACjE,OAAO,EAGL,YAAY,EACZ,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,sBAAsB,EACtB,uBAAuB,EACvB,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,aAAa,CAAC;AACrB,OAAO,EAEL,OAAO,EACP,KAAK,UAAU,GAChB,MAAM,WAAW,CAAC;AACnB,YAAY,EAKV,QAAQ,EACR,YAAY,EACZ,eAAe,EACf,QAAQ,EACR,IAAI,EACJ,UAAU,EACV,UAAU,EACV,OAAO,EACP,UAAU,EACV,YAAY,EACZ,UAAU,EACV,cAAc,EACd,WAAW,EACX,OAAO,EACP,UAAU,EACV,SAAS,EACT,MAAM,EACN,OAAO,EACP,YAAY,EACZ,SAAS,EACT,cAAc,EACd,aAAa,EACb,SAAS,EACT,MAAM,EACN,UAAU,EACV,WAAW,EACX,eAAe,EACf,cAAc,EACd,OAAO,EAEP,QAAQ,EACR,QAAQ,EACR,sBAAsB,EACtB,WAAW,EACX,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,mBAAmB,EACnB,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,EACd,YAAY,EACZ,iBAAiB,EACjB,WAAW,EACX,aAAa,EACb,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,aAAa,EACb,qBAAqB,EACrB,QAAQ,EACR,sBAAsB,EACtB,gBAAgB,EAChB,eAAe,EACf,WAAW,EACX,UAAU,EACV,QAAQ,EACR,OAAO,EACP,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,EACb,QAAQ,EACR,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAEL,QAAQ,EACR,WAAW,EACX,KAAK,SAAS,EACd,KAAK,cAAc,EACnB,KAAK,OAAO,EACZ,KAAK,gBAAgB,EACrB,KAAK,QAAQ,GACd,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,iBAAiB,EACjB,aAAa,EAIb,SAAS,EACT,aAAa,EACb,aAAa,EACb,mBAAmB,EACnB,gBAAgB,EAChB,uBAAuB,GACxB,MAAM,WAAW,CAAC;AACnB,YAAY,EACV,KAAK,EACL,OAAO,EACP,WAAW,EACX,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,IAAI,EACJ,GAAG,EACH,aAAa,EAEb,WAAW,EACX,YAAY,EACZ,aAAa,EACb,UAAU,EACV,eAAe,EACf,SAAS,EACT,aAAa,EACb,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,YAAY,CAAC"}
package/dist/index.js CHANGED
@@ -8,6 +8,7 @@
8
8
  // import { Client, type Order } from '@metaflux-dex/client';
9
9
  export { Client } from './client.js';
10
10
  export { MetaFluxApiError } from './http.js';
11
+ export { requestFaucet } from './faucet.js';
11
12
  export {
12
13
  // MTF-native signed-action surface (the path the server now accepts).
13
14
  // Exported so power users can build / sign / inspect actions out-of-band.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,EAAE;AACF,qEAAqE;AACrE,sEAAsE;AACtE,sEAAsE;AACtE,uCAAuC;AACvC,EAAE;AACF,iEAAiE;AAEjE,OAAO,EAAE,MAAM,EAAmB,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO;AACL,sEAAsE;AACtE,0EAA0E;AAC1E,YAAY,EACZ,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,sBAAsB,EACtB,uBAAuB,EACvB,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,aAAa,CAAC;AACrB,OAAO;AACL,8EAA8E;AAC9E,OAAO,GAER,MAAM,WAAW,CAAC;AA0EnB,OAAO;AACL,4DAA4D;AAC5D,QAAQ,EACR,WAAW,GAMZ,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,iBAAiB,EACjB,aAAa;AACb,gEAAgE;AAChE,+DAA+D;AAC/D,wCAAwC;AACxC,SAAS,EACT,aAAa,EACb,aAAa,EACb,mBAAmB,EACnB,gBAAgB,EAChB,uBAAuB,GACxB,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,EAAE;AACF,qEAAqE;AACrE,sEAAsE;AACtE,sEAAsE;AACtE,uCAAuC;AACvC,EAAE;AACF,iEAAiE;AAEjE,OAAO,EAAE,MAAM,EAAmB,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAuB,MAAM,aAAa,CAAC;AACjE,OAAO;AACL,sEAAsE;AACtE,0EAA0E;AAC1E,YAAY,EACZ,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,sBAAsB,EACtB,uBAAuB,EACvB,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,aAAa,CAAC;AACrB,OAAO;AACL,8EAA8E;AAC9E,OAAO,GAER,MAAM,WAAW,CAAC;AA0EnB,OAAO;AACL,4DAA4D;AAC5D,QAAQ,EACR,WAAW,GAMZ,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,iBAAiB,EACjB,aAAa;AACb,gEAAgE;AAChE,+DAA+D;AAC/D,wCAAwC;AACxC,SAAS,EACT,aAAa,EACb,aAAa,EACb,mBAAmB,EACnB,gBAAgB,EAChB,uBAAuB,GACxB,MAAM,WAAW,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@metaflux-dex/client",
3
- "version": "0.0.2",
3
+ "version": "0.0.3",
4
4
  "description": "MetaFlux (MTF) TypeScript client SDK — WASM-backed crypto + ESM-only fetch wrappers.",
5
5
  "type": "module",
6
6
  "author": "MetaFlux",
package/src/faucet.ts ADDED
@@ -0,0 +1,59 @@
1
+ // Devnet / testnet faucet helper.
2
+ //
3
+ // The node exposes a faucet at `POST <faucetBaseUrl>/faucet` that credits an
4
+ // address with test USDC + MTF. It runs on its OWN origin (devnet node port 8080;
5
+ // production `https://faucet.devnet.mtf.exchange`), SEPARATE from the trading
6
+ // API base URL — so `requestFaucet` takes a dedicated `faucetBaseUrl` rather
7
+ // than reusing a `Client`'s trading base URL.
8
+ //
9
+ // The grant is staged for the NEXT block: a 200 response carries
10
+ // `status: "queued"` and the credited balance lands after ~1 block, not
11
+ // synchronously. Devnet / testnet only — mainnet refuses (surfaced as a
12
+ // `MetaFluxApiError`).
13
+
14
+ import { httpRequest } from './http.js';
15
+
16
+ /// Successful faucet response (200). `status` is `"queued"` — the credit is
17
+ /// staged for the next block, so the balance updates after ~1 block rather
18
+ /// than synchronously.
19
+ export interface FaucetResponse {
20
+ /// Echo of the credited address (`0x`-prefixed 20-byte hex).
21
+ address: string;
22
+ /// Whole-USDC cross-collateral granted (capped server-side, default 3000).
23
+ usdc: number;
24
+ /// MTF spot tokens granted (fixed, default 10).
25
+ mtf: number;
26
+ /// Always `"queued"` — credit staged for the next block.
27
+ status: string;
28
+ }
29
+
30
+ /// Request test USDC from a devnet / testnet faucet.
31
+ ///
32
+ /// POSTs `{ address, amount? }` to `<faucetBaseUrl>/faucet` (grants both USDC and MTF). `amount` is a
33
+ /// whole-USDC integer; omit it for the faucet's full default grant (capped
34
+ /// server-side).
35
+ ///
36
+ /// `faucetBaseUrl` is the faucet's OWN origin (e.g. `http://localhost:8080`
37
+ /// on devnet, `https://faucet.devnet.mtf.exchange` in production) — NOT the
38
+ /// trading API base URL.
39
+ ///
40
+ /// On success the credit is `"queued"` for the next block; the balance updates
41
+ /// after ~1 block, not synchronously.
42
+ ///
43
+ /// Throws `MetaFluxApiError` on a non-2xx status, surfacing the server's
44
+ /// `{ error }` message — notably 429 (rate-limited: per-address once-ever, per-IP
45
+ /// 1/minute), 400 (bad/zero address), 503 (backlog full), or a mainnet refusal.
46
+ export async function requestFaucet(
47
+ faucetBaseUrl: string,
48
+ address: string,
49
+ amount?: number,
50
+ ): Promise<FaucetResponse> {
51
+ const json: { address: string; amount?: number } = { address };
52
+ if (amount !== undefined) {
53
+ json.amount = amount;
54
+ }
55
+ return httpRequest<FaucetResponse>(faucetBaseUrl, '/faucet', {
56
+ method: 'POST',
57
+ json,
58
+ });
59
+ }
package/src/index.ts CHANGED
@@ -9,6 +9,7 @@
9
9
 
10
10
  export { Client, type ClientOpts } from './client.js';
11
11
  export { MetaFluxApiError } from './http.js';
12
+ export { requestFaucet, type FaucetResponse } from './faucet.js';
12
13
  export {
13
14
  // MTF-native signed-action surface (the path the server now accepts).
14
15
  // Exported so power users can build / sign / inspect actions out-of-band.