fibx 0.2.3 → 0.2.6
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 +58 -18
- package/dist/commands/defi/aave.d.ts.map +1 -1
- package/dist/commands/defi/aave.js +6 -6
- package/dist/commands/defi/aave.js.map +1 -1
- package/dist/commands/trade/swap.d.ts.map +1 -1
- package/dist/commands/trade/swap.js +1 -2
- package/dist/commands/trade/swap.js.map +1 -1
- package/dist/commands/wallet/balance.js +1 -1
- package/dist/commands/wallet/balance.js.map +1 -1
- package/dist/commands/wallet/send.d.ts.map +1 -1
- package/dist/commands/wallet/send.js +5 -4
- package/dist/commands/wallet/send.js.map +1 -1
- package/dist/index.js +10 -6
- package/dist/index.js.map +1 -1
- package/dist/lib/errors.d.ts +6 -2
- package/dist/lib/errors.d.ts.map +1 -1
- package/dist/lib/errors.js +4 -2
- package/dist/lib/errors.js.map +1 -1
- package/dist/services/chain/client.d.ts +16 -16
- package/dist/services/chain/constants.d.ts +7 -8
- package/dist/services/chain/constants.d.ts.map +1 -1
- package/dist/services/chain/constants.js +10 -7
- package/dist/services/chain/constants.js.map +1 -1
- package/dist/services/chain/nonceManager.d.ts +0 -1
- package/dist/services/chain/nonceManager.d.ts.map +1 -1
- package/dist/services/chain/nonceManager.js +2 -4
- package/dist/services/chain/nonceManager.js.map +1 -1
- package/dist/services/defi/aave.d.ts +3 -1
- package/dist/services/defi/aave.d.ts.map +1 -1
- package/dist/services/defi/aave.js +25 -26
- package/dist/services/defi/aave.js.map +1 -1
- package/dist/services/defi/constants.d.ts +0 -2
- package/dist/services/defi/constants.d.ts.map +1 -1
- package/dist/services/defi/constants.js +0 -2
- package/dist/services/defi/constants.js.map +1 -1
- package/dist/services/fibrous/abi/citrea.d.ts +772 -63
- package/dist/services/fibrous/abi/citrea.d.ts.map +1 -1
- package/dist/services/fibrous/abi/citrea.js.map +1 -1
- package/dist/services/fibrous/abi/hyperevm.d.ts +772 -63
- package/dist/services/fibrous/abi/hyperevm.d.ts.map +1 -1
- package/dist/services/fibrous/abi/hyperevm.js.map +1 -1
- package/dist/services/fibrous/abi/monad.d.ts +772 -63
- package/dist/services/fibrous/abi/monad.d.ts.map +1 -1
- package/dist/services/fibrous/abi/monad.js.map +1 -1
- package/package.json +1 -1
- package/dist/chain/chains.d.ts +0 -14
- package/dist/chain/chains.d.ts.map +0 -1
- package/dist/chain/chains.js +0 -21
- package/dist/chain/chains.js.map +0 -1
- package/dist/chain/erc20.d.ts +0 -6
- package/dist/chain/erc20.d.ts.map +0 -1
- package/dist/chain/erc20.js +0 -72
- package/dist/chain/erc20.js.map +0 -1
- package/dist/chain/viem.d.ts +0 -24029
- package/dist/chain/viem.d.ts.map +0 -1
- package/dist/chain/viem.js +0 -74
- package/dist/chain/viem.js.map +0 -1
- package/dist/cli.d.ts +0 -3
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js +0 -85
- package/dist/cli.js.map +0 -1
- package/dist/commands/address.d.ts +0 -3
- package/dist/commands/address.d.ts.map +0 -1
- package/dist/commands/address.js +0 -15
- package/dist/commands/address.js.map +0 -1
- package/dist/commands/auth-login.d.ts +0 -3
- package/dist/commands/auth-login.d.ts.map +0 -1
- package/dist/commands/auth-login.js +0 -34
- package/dist/commands/auth-login.js.map +0 -1
- package/dist/commands/auth-verify.d.ts +0 -3
- package/dist/commands/auth-verify.d.ts.map +0 -1
- package/dist/commands/auth-verify.js +0 -64
- package/dist/commands/auth-verify.js.map +0 -1
- package/dist/commands/balance.d.ts +0 -3
- package/dist/commands/balance.d.ts.map +0 -1
- package/dist/commands/balance.js +0 -55
- package/dist/commands/balance.js.map +0 -1
- package/dist/commands/send.d.ts +0 -3
- package/dist/commands/send.d.ts.map +0 -1
- package/dist/commands/send.js +0 -58
- package/dist/commands/send.js.map +0 -1
- package/dist/commands/status.d.ts +0 -3
- package/dist/commands/status.d.ts.map +0 -1
- package/dist/commands/status.js +0 -31
- package/dist/commands/status.js.map +0 -1
- package/dist/commands/trade.d.ts +0 -7
- package/dist/commands/trade.d.ts.map +0 -1
- package/dist/commands/trade.js +0 -69
- package/dist/commands/trade.js.map +0 -1
- package/dist/commands/wallets.d.ts +0 -3
- package/dist/commands/wallets.d.ts.map +0 -1
- package/dist/commands/wallets.js +0 -39
- package/dist/commands/wallets.js.map +0 -1
- package/dist/fibrous/abi/base.d.ts +0 -768
- package/dist/fibrous/abi/base.d.ts.map +0 -1
- package/dist/fibrous/abi/base.js +0 -984
- package/dist/fibrous/abi/base.js.map +0 -1
- package/dist/fibrous/balances.d.ts +0 -14
- package/dist/fibrous/balances.d.ts.map +0 -1
- package/dist/fibrous/balances.js +0 -26
- package/dist/fibrous/balances.js.map +0 -1
- package/dist/fibrous/health.d.ts +0 -11
- package/dist/fibrous/health.d.ts.map +0 -1
- package/dist/fibrous/health.js +0 -18
- package/dist/fibrous/health.js.map +0 -1
- package/dist/fibrous/route.d.ts +0 -47
- package/dist/fibrous/route.d.ts.map +0 -1
- package/dist/fibrous/route.js +0 -60
- package/dist/fibrous/route.js.map +0 -1
- package/dist/fibrous/tokens.d.ts +0 -10
- package/dist/fibrous/tokens.d.ts.map +0 -1
- package/dist/fibrous/tokens.js +0 -37
- package/dist/fibrous/tokens.js.map +0 -1
- package/dist/format/output.d.ts +0 -8
- package/dist/format/output.d.ts.map +0 -1
- package/dist/format/output.js +0 -69
- package/dist/format/output.js.map +0 -1
- package/dist/utils/cache.d.ts +0 -3
- package/dist/utils/cache.d.ts.map +0 -1
- package/dist/utils/cache.js +0 -23
- package/dist/utils/cache.js.map +0 -1
- package/dist/utils/config.d.ts +0 -7
- package/dist/utils/config.d.ts.map +0 -1
- package/dist/utils/config.js +0 -8
- package/dist/utils/config.js.map +0 -1
- package/dist/utils/errors.d.ts +0 -22
- package/dist/utils/errors.d.ts.map +0 -1
- package/dist/utils/errors.js +0 -29
- package/dist/utils/errors.js.map +0 -1
- package/dist/utils/parseAmount.d.ts +0 -3
- package/dist/utils/parseAmount.d.ts.map +0 -1
- package/dist/utils/parseAmount.js +0 -10
- package/dist/utils/parseAmount.js.map +0 -1
- package/dist/utils/validation.d.ts +0 -6
- package/dist/utils/validation.d.ts.map +0 -1
- package/dist/utils/validation.js +0 -24
- package/dist/utils/validation.js.map +0 -1
- package/dist/wallet/policy.d.ts +0 -2
- package/dist/wallet/policy.d.ts.map +0 -1
- package/dist/wallet/policy.js +0 -3
- package/dist/wallet/policy.js.map +0 -1
- package/dist/wallet/privy.d.ts +0 -15
- package/dist/wallet/privy.d.ts.map +0 -1
- package/dist/wallet/privy.js +0 -63
- package/dist/wallet/privy.js.map +0 -1
- package/dist/wallet/session.d.ts +0 -15
- package/dist/wallet/session.d.ts.map +0 -1
- package/dist/wallet/session.js +0 -47
- package/dist/wallet/session.js.map +0 -1
package/dist/wallet/privy.d.ts
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { PrivyClient } from "@privy-io/node";
|
|
2
|
-
export declare function getPrivyClient(): PrivyClient;
|
|
3
|
-
export declare function findExistingWallet(privy: PrivyClient, email: string): Promise<{
|
|
4
|
-
id: string;
|
|
5
|
-
address: string;
|
|
6
|
-
} | null>;
|
|
7
|
-
export declare function createAgentWallet(privy: PrivyClient, owner?: {
|
|
8
|
-
userId?: string;
|
|
9
|
-
publicKey?: string;
|
|
10
|
-
}): Promise<{
|
|
11
|
-
id: string;
|
|
12
|
-
address: string;
|
|
13
|
-
}>;
|
|
14
|
-
export declare function saveWalletIdToUser(privy: PrivyClient, userId: string, walletId: string): Promise<void>;
|
|
15
|
-
//# sourceMappingURL=privy.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"privy.d.ts","sourceRoot":"","sources":["../../src/wallet/privy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAG7C,wBAAgB,cAAc,IAAI,WAAW,CAY5C;AAED,wBAAsB,kBAAkB,CACvC,KAAK,EAAE,WAAW,EAClB,KAAK,EAAE,MAAM,GACX,OAAO,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,CAkBjD;AAED,wBAAsB,iBAAiB,CACtC,KAAK,EAAE,WAAW,EAClB,KAAK,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE;;;GAuB/C;AAED,wBAAsB,kBAAkB,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,iBAa5F"}
|
package/dist/wallet/privy.js
DELETED
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
import { PrivyClient } from "@privy-io/node";
|
|
2
|
-
import { ErrorCode, FibxError } from "../utils/errors.js";
|
|
3
|
-
export function getPrivyClient() {
|
|
4
|
-
const appId = process.env.PRIVY_APP_ID;
|
|
5
|
-
const appSecret = process.env.PRIVY_APP_SECRET;
|
|
6
|
-
if (!appId || !appSecret) {
|
|
7
|
-
throw new FibxError(ErrorCode.PRIVY_ERROR, "PRIVY_APP_ID and PRIVY_APP_SECRET env vars are required");
|
|
8
|
-
}
|
|
9
|
-
return new PrivyClient({ appId, appSecret });
|
|
10
|
-
}
|
|
11
|
-
export async function findExistingWallet(privy, email) {
|
|
12
|
-
try {
|
|
13
|
-
const user = await privy.users().getByEmailAddress({ address: email });
|
|
14
|
-
const serverWalletId = user.custom_metadata?.server_wallet_id;
|
|
15
|
-
if (serverWalletId) {
|
|
16
|
-
try {
|
|
17
|
-
const wallet = await privy.wallets().get(serverWalletId);
|
|
18
|
-
return { id: wallet.id, address: wallet.address };
|
|
19
|
-
}
|
|
20
|
-
catch {
|
|
21
|
-
// Server wallet ID exists in metadata but wallet not found (deleted?)
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
return null;
|
|
25
|
-
}
|
|
26
|
-
catch {
|
|
27
|
-
return null;
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
export async function createAgentWallet(privy, owner) {
|
|
31
|
-
try {
|
|
32
|
-
let walletOwner;
|
|
33
|
-
if (owner) {
|
|
34
|
-
walletOwner = owner.userId
|
|
35
|
-
? { user_id: owner.userId }
|
|
36
|
-
: { public_key: owner.publicKey };
|
|
37
|
-
}
|
|
38
|
-
else {
|
|
39
|
-
walletOwner = null;
|
|
40
|
-
}
|
|
41
|
-
const wallet = await privy.wallets().create({
|
|
42
|
-
chain_type: "ethereum",
|
|
43
|
-
owner: walletOwner,
|
|
44
|
-
});
|
|
45
|
-
return { id: wallet.id, address: wallet.address };
|
|
46
|
-
}
|
|
47
|
-
catch (error) {
|
|
48
|
-
throw new FibxError(ErrorCode.PRIVY_ERROR, `Failed to create wallet: ${error instanceof Error ? error.message : String(error)}`);
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
export async function saveWalletIdToUser(privy, userId, walletId) {
|
|
52
|
-
try {
|
|
53
|
-
await privy.users().setCustomMetadata(userId, {
|
|
54
|
-
custom_metadata: {
|
|
55
|
-
server_wallet_id: walletId,
|
|
56
|
-
},
|
|
57
|
-
});
|
|
58
|
-
}
|
|
59
|
-
catch (error) {
|
|
60
|
-
throw new FibxError(ErrorCode.PRIVY_ERROR, `Failed to save wallet ID to user metadata: ${error instanceof Error ? error.message : String(error)}`);
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
//# sourceMappingURL=privy.js.map
|
package/dist/wallet/privy.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"privy.js","sourceRoot":"","sources":["../../src/wallet/privy.ts"],"names":[],"mappings":"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"}
|
package/dist/wallet/session.d.ts
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { z } from "zod";
|
|
2
|
-
declare const sessionSchema: z.ZodObject<{
|
|
3
|
-
userId: z.ZodOptional<z.ZodString>;
|
|
4
|
-
walletId: z.ZodString;
|
|
5
|
-
walletAddress: z.ZodString;
|
|
6
|
-
userJwt: z.ZodOptional<z.ZodString>;
|
|
7
|
-
createdAt: z.ZodString;
|
|
8
|
-
}, z.core.$strip>;
|
|
9
|
-
export type Session = z.infer<typeof sessionSchema>;
|
|
10
|
-
export declare function loadSession(): Session | null;
|
|
11
|
-
export declare function requireSession(): Session;
|
|
12
|
-
export declare function saveSession(session: Session): void;
|
|
13
|
-
export declare function clearSession(): void;
|
|
14
|
-
export {};
|
|
15
|
-
//# sourceMappingURL=session.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/wallet/session.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,QAAA,MAAM,aAAa;;;;;;iBAMjB,CAAC;AAEH,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAMpD,wBAAgB,WAAW,IAAI,OAAO,GAAG,IAAI,CAQ5C;AAED,wBAAgB,cAAc,IAAI,OAAO,CASxC;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAKlD;AAED,wBAAgB,YAAY,IAAI,IAAI,CAMnC"}
|
package/dist/wallet/session.js
DELETED
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import { readFileSync, writeFileSync, unlinkSync, mkdirSync } from "node:fs";
|
|
2
|
-
import { join, dirname } from "node:path";
|
|
3
|
-
import { z } from "zod";
|
|
4
|
-
import { paths } from "../utils/config.js";
|
|
5
|
-
import { ErrorCode, FibxError } from "../utils/errors.js";
|
|
6
|
-
const sessionSchema = z.object({
|
|
7
|
-
userId: z.string().optional(),
|
|
8
|
-
walletId: z.string(),
|
|
9
|
-
walletAddress: z.string().regex(/^0x[a-fA-F0-9]{40}$/),
|
|
10
|
-
userJwt: z.string().optional(),
|
|
11
|
-
createdAt: z.string(),
|
|
12
|
-
});
|
|
13
|
-
function getSessionPath() {
|
|
14
|
-
return join(paths.config, "session.json");
|
|
15
|
-
}
|
|
16
|
-
export function loadSession() {
|
|
17
|
-
try {
|
|
18
|
-
const raw = readFileSync(getSessionPath(), "utf-8");
|
|
19
|
-
const result = sessionSchema.safeParse(JSON.parse(raw));
|
|
20
|
-
return result.success ? result.data : null;
|
|
21
|
-
}
|
|
22
|
-
catch {
|
|
23
|
-
return null;
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
export function requireSession() {
|
|
27
|
-
const session = loadSession();
|
|
28
|
-
if (!session) {
|
|
29
|
-
throw new FibxError(ErrorCode.NOT_AUTHENTICATED, "Not authenticated. Run `fibx auth login <email>` first.");
|
|
30
|
-
}
|
|
31
|
-
return session;
|
|
32
|
-
}
|
|
33
|
-
export function saveSession(session) {
|
|
34
|
-
const filePath = getSessionPath();
|
|
35
|
-
mkdirSync(dirname(filePath), { recursive: true });
|
|
36
|
-
sessionSchema.parse(session);
|
|
37
|
-
writeFileSync(filePath, JSON.stringify(session, null, 2), "utf-8");
|
|
38
|
-
}
|
|
39
|
-
export function clearSession() {
|
|
40
|
-
try {
|
|
41
|
-
unlinkSync(getSessionPath());
|
|
42
|
-
}
|
|
43
|
-
catch {
|
|
44
|
-
// Already cleared
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
//# sourceMappingURL=session.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/wallet/session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE1D,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,qBAAqB,CAAC;IACtD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;CACrB,CAAC,CAAC;AAIH,SAAS,cAAc;IACtB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,WAAW;IAC1B,IAAI,CAAC;QACJ,MAAM,GAAG,GAAG,YAAY,CAAC,cAAc,EAAE,EAAE,OAAO,CAAC,CAAC;QACpD,MAAM,MAAM,GAAG,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QACxD,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IAC5C,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,IAAI,CAAC;IACb,CAAC;AACF,CAAC;AAED,MAAM,UAAU,cAAc;IAC7B,MAAM,OAAO,GAAG,WAAW,EAAE,CAAC;IAC9B,IAAI,CAAC,OAAO,EAAE,CAAC;QACd,MAAM,IAAI,SAAS,CAClB,SAAS,CAAC,iBAAiB,EAC3B,yDAAyD,CACzD,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,OAAgB;IAC3C,MAAM,QAAQ,GAAG,cAAc,EAAE,CAAC;IAClC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAClD,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC7B,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AACpE,CAAC;AAED,MAAM,UAAU,YAAY;IAC3B,IAAI,CAAC;QACJ,UAAU,CAAC,cAAc,EAAE,CAAC,CAAC;IAC9B,CAAC;IAAC,MAAM,CAAC;QACR,kBAAkB;IACnB,CAAC;AACF,CAAC"}
|