multisigns-sdk 1.0.5 → 1.0.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/dist/chunk-2D7WK6DM.js +168 -0
- package/dist/chunk-2D7WK6DM.js.map +1 -0
- package/dist/chunk-DGUM43GV.js +11 -0
- package/dist/chunk-DGUM43GV.js.map +1 -0
- package/dist/chunk-HPEF3SHJ.js +156 -0
- package/dist/chunk-HPEF3SHJ.js.map +1 -0
- package/dist/chunk-KIJAQV3E.js +577 -0
- package/dist/chunk-KIJAQV3E.js.map +1 -0
- package/dist/chunk-KXIOGAV2.js +156 -0
- package/dist/chunk-KXIOGAV2.js.map +1 -0
- package/dist/chunk-OTW5PZKP.js +122 -0
- package/dist/chunk-OTW5PZKP.js.map +1 -0
- package/dist/chunk-VM6L5X3N.js +217 -0
- package/dist/chunk-VM6L5X3N.js.map +1 -0
- package/dist/chunk-VYJA3QAZ.js +55 -0
- package/dist/chunk-VYJA3QAZ.js.map +1 -0
- package/dist/config-EBLIHXK5.js +34 -0
- package/dist/config-EBLIHXK5.js.map +1 -0
- package/dist/createSolanaMultisigOrder-J2DECM5P.js +11 -0
- package/dist/createSolanaMultisigOrder-J2DECM5P.js.map +1 -0
- package/dist/evm-validation-4UCXBNNX.js +141 -0
- package/dist/evm-validation-4UCXBNNX.js.map +1 -0
- package/dist/index.cjs +8340 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +1183 -0
- package/dist/index.d.ts +1183 -0
- package/dist/index.js +6271 -0
- package/dist/index.js.map +1 -0
- package/dist/order-helpers-2UW3NAAZ.js +418 -0
- package/dist/order-helpers-2UW3NAAZ.js.map +1 -0
- package/dist/shares-RSWRRBK5.js +32 -0
- package/dist/shares-RSWRRBK5.js.map +1 -0
- package/dist/wallet.api-XLEU5W4L.js +9 -0
- package/dist/wallet.api-XLEU5W4L.js.map +1 -0
- package/package.json +3 -2
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
// src/core/config.ts
|
|
2
|
+
var DEFAULT_RPC_ENDPOINTS = {
|
|
3
|
+
mainnet: {
|
|
4
|
+
evm: {
|
|
5
|
+
1: "https://ethereum-rpc.publicnode.com",
|
|
6
|
+
137: "https://polygon-rpc.com",
|
|
7
|
+
8453: "https://mainnet.base.org",
|
|
8
|
+
42161: "https://arb1.arbitrum.io/rpc",
|
|
9
|
+
10: "https://mainnet.optimism.io",
|
|
10
|
+
56: "https://bsc-rpc.publicnode.com",
|
|
11
|
+
43114: "https://api.avax.network/ext/bc/C/rpc"
|
|
12
|
+
},
|
|
13
|
+
solana: "https://public.rpc.solanavibestation.com/",
|
|
14
|
+
tron: "https://api.trongrid.io",
|
|
15
|
+
btc: "https://mempool.space/api"
|
|
16
|
+
},
|
|
17
|
+
testnet: {
|
|
18
|
+
evm: {
|
|
19
|
+
11155111: "https://ethereum-sepolia-rpc.publicnode.com",
|
|
20
|
+
80002: "https://rpc-amoy.polygon.technology",
|
|
21
|
+
84532: "https://sepolia.base.org",
|
|
22
|
+
421614: "https://sepolia-rollup.arbitrum.io/rpc",
|
|
23
|
+
11155420: "https://optimism-sepolia-rpc.publicnode.com",
|
|
24
|
+
97: "https://bsc-testnet-rpc.publicnode.com",
|
|
25
|
+
43113: "https://api.avax-test.network/ext/bc/C/rpc"
|
|
26
|
+
},
|
|
27
|
+
solana: "https://api.devnet.solana.com",
|
|
28
|
+
tron: "https://api.shasta.trongrid.io",
|
|
29
|
+
btc: "https://mempool.space/testnet/api"
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
var TRON_FULL_HOST = {
|
|
33
|
+
mainnet: "https://api.trongrid.io",
|
|
34
|
+
testnet: "https://api.shasta.trongrid.io"
|
|
35
|
+
};
|
|
36
|
+
var EVM_CHAIN_NAMES = {
|
|
37
|
+
1: "Ethereum",
|
|
38
|
+
137: "Polygon",
|
|
39
|
+
8453: "Base",
|
|
40
|
+
42161: "Arbitrum One",
|
|
41
|
+
10: "Optimism",
|
|
42
|
+
56: "BNB Smart Chain",
|
|
43
|
+
11155111: "Ethereum Sepolia",
|
|
44
|
+
80002: "Polygon Amoy",
|
|
45
|
+
84532: "Base Sepolia",
|
|
46
|
+
421614: "Arbitrum Sepolia",
|
|
47
|
+
11155420: "Optimism Sepolia",
|
|
48
|
+
97: "BNB Smart Chain Testnet",
|
|
49
|
+
43114: "Avalanche C-Chain",
|
|
50
|
+
43113: "Avalanche Fuji"
|
|
51
|
+
};
|
|
52
|
+
var DEFAULT_CONFIG = {
|
|
53
|
+
network: "mainnet",
|
|
54
|
+
apiBaseUrl: "https://afridax-backend-production.up.railway.app",
|
|
55
|
+
rpcOverrides: {},
|
|
56
|
+
timeout: 3e4
|
|
57
|
+
};
|
|
58
|
+
function resolveConfig(userConfig) {
|
|
59
|
+
if (!userConfig.apiKey && !userConfig.accessToken) {
|
|
60
|
+
throw new Error("Either apiKey or accessToken must be provided");
|
|
61
|
+
}
|
|
62
|
+
return {
|
|
63
|
+
apiKey: userConfig.apiKey ?? "",
|
|
64
|
+
accessToken: userConfig.accessToken,
|
|
65
|
+
network: userConfig.network ?? DEFAULT_CONFIG.network,
|
|
66
|
+
apiBaseUrl: userConfig.apiBaseUrl ?? DEFAULT_CONFIG.apiBaseUrl,
|
|
67
|
+
rpcOverrides: userConfig.rpcOverrides ?? DEFAULT_CONFIG.rpcOverrides,
|
|
68
|
+
timeout: userConfig.timeout ?? DEFAULT_CONFIG.timeout
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
function resolveRpcEndpoints(network, overrides = {}) {
|
|
72
|
+
const defaults = DEFAULT_RPC_ENDPOINTS[network];
|
|
73
|
+
return {
|
|
74
|
+
evm: {
|
|
75
|
+
...defaults.evm,
|
|
76
|
+
...overrides.evm ?? {}
|
|
77
|
+
},
|
|
78
|
+
solana: overrides.solana ?? defaults.solana,
|
|
79
|
+
tron: overrides.tron ?? defaults.tron,
|
|
80
|
+
btc: overrides.btc ?? defaults.btc
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
function getRpcEndpoint(chain, rpcConfig, chainId) {
|
|
84
|
+
switch (chain) {
|
|
85
|
+
case "EVM":
|
|
86
|
+
if (chainId === void 0) {
|
|
87
|
+
throw new Error("Chain ID is required for EVM chains");
|
|
88
|
+
}
|
|
89
|
+
const evmEndpoint = rpcConfig.evm[chainId];
|
|
90
|
+
if (!evmEndpoint) {
|
|
91
|
+
throw new Error(
|
|
92
|
+
`No RPC endpoint configured for EVM chain ID ${chainId}`
|
|
93
|
+
);
|
|
94
|
+
}
|
|
95
|
+
return evmEndpoint;
|
|
96
|
+
case "SOL":
|
|
97
|
+
return rpcConfig.solana;
|
|
98
|
+
case "TRON":
|
|
99
|
+
return rpcConfig.tron;
|
|
100
|
+
case "BTC":
|
|
101
|
+
case "BTC_T3":
|
|
102
|
+
return rpcConfig.btc;
|
|
103
|
+
default:
|
|
104
|
+
throw new Error(`Unsupported chain type: ${chain}`);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
var SHAMIR_CONFIG = {
|
|
108
|
+
THRESHOLD: 2,
|
|
109
|
+
TOTAL_SHARES: 3
|
|
110
|
+
};
|
|
111
|
+
var KEY_RECONSTRUCTION_CONFIG = {
|
|
112
|
+
MAX_RETRIES: 1,
|
|
113
|
+
RETRY_ON_MISMATCH: true
|
|
114
|
+
};
|
|
115
|
+
var API_TIMEOUTS = {
|
|
116
|
+
DEFAULT: 3e4,
|
|
117
|
+
TRANSACTION: 6e4,
|
|
118
|
+
KEY_RECONSTRUCTION: 45e3
|
|
119
|
+
};
|
|
120
|
+
var MINIMUM_BALANCE_FOR_TX = {
|
|
121
|
+
EVM: "0.001",
|
|
122
|
+
SOL: "0.01",
|
|
123
|
+
TRON: "1",
|
|
124
|
+
BTC: "0.0001",
|
|
125
|
+
BTC_T3: "0.0001"
|
|
126
|
+
};
|
|
127
|
+
var NATIVE_CURRENCY = {
|
|
128
|
+
EVM: { symbol: "ETH", decimals: 18 },
|
|
129
|
+
SOL: { symbol: "SOL", decimals: 9 },
|
|
130
|
+
TRON: { symbol: "TRX", decimals: 6 },
|
|
131
|
+
BTC: { symbol: "BTC", decimals: 8 },
|
|
132
|
+
BTC_T3: { symbol: "BTC", decimals: 8 }
|
|
133
|
+
};
|
|
134
|
+
var SUPPORTED_CHAINS = ["EVM", "SOL", "TRON", "BTC", "BTC_T3"];
|
|
135
|
+
var BTC_NETWORK_CONFIG = {
|
|
136
|
+
mainnet: {
|
|
137
|
+
name: "bitcoin",
|
|
138
|
+
bech32: "bc",
|
|
139
|
+
pubKeyHash: 0,
|
|
140
|
+
scriptHash: 5,
|
|
141
|
+
wif: 128
|
|
142
|
+
},
|
|
143
|
+
testnet: {
|
|
144
|
+
name: "testnet",
|
|
145
|
+
bech32: "tb",
|
|
146
|
+
pubKeyHash: 111,
|
|
147
|
+
scriptHash: 196,
|
|
148
|
+
wif: 239
|
|
149
|
+
}
|
|
150
|
+
};
|
|
151
|
+
|
|
152
|
+
export {
|
|
153
|
+
DEFAULT_RPC_ENDPOINTS,
|
|
154
|
+
TRON_FULL_HOST,
|
|
155
|
+
EVM_CHAIN_NAMES,
|
|
156
|
+
DEFAULT_CONFIG,
|
|
157
|
+
resolveConfig,
|
|
158
|
+
resolveRpcEndpoints,
|
|
159
|
+
getRpcEndpoint,
|
|
160
|
+
SHAMIR_CONFIG,
|
|
161
|
+
KEY_RECONSTRUCTION_CONFIG,
|
|
162
|
+
API_TIMEOUTS,
|
|
163
|
+
MINIMUM_BALANCE_FOR_TX,
|
|
164
|
+
NATIVE_CURRENCY,
|
|
165
|
+
SUPPORTED_CHAINS,
|
|
166
|
+
BTC_NETWORK_CONFIG
|
|
167
|
+
};
|
|
168
|
+
//# sourceMappingURL=chunk-2D7WK6DM.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/core/config.ts"],"sourcesContent":["import type { SDKConfig, RpcOverrides, NetworkMode, ChainType } from \"./types\";\n\n/**\n * Default RPC endpoints for all supported chains across networks\n */\nexport const DEFAULT_RPC_ENDPOINTS: Record<\n NetworkMode,\n {\n evm: Record<number, string>;\n solana: string;\n tron: string;\n btc: string;\n }\n> = {\n mainnet: {\n evm: {\n 1: \"https://ethereum-rpc.publicnode.com\",\n 137: \"https://polygon-rpc.com\",\n 8453: \"https://mainnet.base.org\",\n 42161: \"https://arb1.arbitrum.io/rpc\",\n 10: \"https://mainnet.optimism.io\",\n 56: \"https://bsc-rpc.publicnode.com\",\n 43114: \"https://api.avax.network/ext/bc/C/rpc\",\n },\n solana: \"https://public.rpc.solanavibestation.com/\",\n tron: \"https://api.trongrid.io\",\n btc: \"https://mempool.space/api\",\n },\n testnet: {\n evm: {\n 11155111: \"https://ethereum-sepolia-rpc.publicnode.com\",\n 80002: \"https://rpc-amoy.polygon.technology\",\n 84532: \"https://sepolia.base.org\",\n 421614: \"https://sepolia-rollup.arbitrum.io/rpc\",\n 11155420: \"https://optimism-sepolia-rpc.publicnode.com\",\n 97: \"https://bsc-testnet-rpc.publicnode.com\",\n 43113: \"https://api.avax-test.network/ext/bc/C/rpc\",\n },\n solana: \"https://api.devnet.solana.com\",\n tron: \"https://api.shasta.trongrid.io\",\n btc: \"https://mempool.space/testnet/api\",\n },\n};\n\n\n/**\n * Default Tron full host URLs\n */\nexport const TRON_FULL_HOST: Record<NetworkMode, string> = {\n mainnet: \"https://api.trongrid.io\",\n testnet: \"https://api.shasta.trongrid.io\",\n};\n\n/**\n * Chain ID to network name mapping for EVM chains\n */\nexport const EVM_CHAIN_NAMES: Record<number, string> = {\n 1: \"Ethereum\",\n 137: \"Polygon\",\n 8453: \"Base\",\n 42161: \"Arbitrum One\",\n 10: \"Optimism\",\n 56: \"BNB Smart Chain\",\n 11155111: \"Ethereum Sepolia\",\n 80002: \"Polygon Amoy\",\n 84532: \"Base Sepolia\",\n 421614: \"Arbitrum Sepolia\",\n 11155420: \"Optimism Sepolia\",\n 97: \"BNB Smart Chain Testnet\",\n 43114: \"Avalanche C-Chain\",\n 43113: \"Avalanche Fuji\",\n};\n\n/**\n * Default SDK configuration values\n */\nexport const DEFAULT_CONFIG: Required<\n Omit<SDKConfig, \"apiKey\" | \"accessToken\">\n> = {\n network: \"mainnet\",\n apiBaseUrl: \"https://afridax-backend-production.up.railway.app\",\n rpcOverrides: {},\n timeout: 30000,\n};\n\n/**\n * Resolved configuration with all values populated\n */\nexport interface ResolvedConfig {\n apiKey: string;\n accessToken?: string;\n network: NetworkMode;\n apiBaseUrl: string;\n rpcOverrides: RpcOverrides;\n timeout: number;\n}\n\n/**\n * Resolved RPC configuration with merged overrides\n */\nexport interface ResolvedRpcConfig {\n evm: Record<number, string>;\n solana: string;\n tron: string;\n btc: string;\n}\n\n/**\n * Merges user configuration with defaults to produce a fully resolved config\n *\n * @param userConfig - User-provided SDK configuration\n * @returns Fully resolved configuration with all defaults applied\n */\nexport function resolveConfig(userConfig: SDKConfig): ResolvedConfig {\n if (!userConfig.apiKey && !userConfig.accessToken) {\n throw new Error(\"Either apiKey or accessToken must be provided\");\n }\n return {\n apiKey: userConfig.apiKey ?? \"\",\n accessToken: userConfig.accessToken,\n network: userConfig.network ?? DEFAULT_CONFIG.network,\n apiBaseUrl: userConfig.apiBaseUrl ?? DEFAULT_CONFIG.apiBaseUrl,\n rpcOverrides: userConfig.rpcOverrides ?? DEFAULT_CONFIG.rpcOverrides,\n timeout: userConfig.timeout ?? DEFAULT_CONFIG.timeout,\n };\n}\n\n/**\n * Resolves RPC endpoints by merging defaults with user overrides\n *\n * @param network - Network mode (mainnet or testnet)\n * @param overrides - User-provided RPC overrides\n * @returns Fully resolved RPC configuration\n */\nexport function resolveRpcEndpoints(\n network: NetworkMode,\n overrides: RpcOverrides = {}\n): ResolvedRpcConfig {\n const defaults = DEFAULT_RPC_ENDPOINTS[network];\n\n return {\n evm: {\n ...defaults.evm,\n ...(overrides.evm ?? {}),\n },\n solana: overrides.solana ?? defaults.solana,\n tron: overrides.tron ?? defaults.tron,\n btc: overrides.btc ?? defaults.btc,\n };\n}\n\n/**\n * Gets the RPC endpoint for a specific chain and chain ID\n *\n * @param chain - Chain type\n * @param rpcConfig - Resolved RPC configuration\n * @param chainId - Chain ID (required for EVM)\n * @returns RPC endpoint URL\n * @throws Error if chain ID not found for EVM\n */\nexport function getRpcEndpoint(\n chain: ChainType,\n rpcConfig: ResolvedRpcConfig,\n chainId?: number\n): string {\n switch (chain) {\n case \"EVM\":\n if (chainId === undefined) {\n throw new Error(\"Chain ID is required for EVM chains\");\n }\n const evmEndpoint = rpcConfig.evm[chainId];\n if (!evmEndpoint) {\n throw new Error(\n `No RPC endpoint configured for EVM chain ID ${chainId}`\n );\n }\n return evmEndpoint;\n\n case \"SOL\":\n return rpcConfig.solana;\n\n case \"TRON\":\n return rpcConfig.tron;\n\n case \"BTC\":\n case \"BTC_T3\":\n return rpcConfig.btc;\n\n default:\n throw new Error(`Unsupported chain type: ${chain}`);\n }\n}\n\n/**\n * Shamir secret sharing configuration\n */\nexport const SHAMIR_CONFIG = {\n THRESHOLD: 2,\n TOTAL_SHARES: 3,\n} as const;\n\n/**\n * Key reconstruction retry configuration\n */\nexport const KEY_RECONSTRUCTION_CONFIG = {\n MAX_RETRIES: 1,\n RETRY_ON_MISMATCH: true,\n} as const;\n\n/**\n * API timeout defaults (in milliseconds)\n */\nexport const API_TIMEOUTS = {\n DEFAULT: 30000,\n TRANSACTION: 60000,\n KEY_RECONSTRUCTION: 45000,\n} as const;\n\n/**\n * Minimum balance requirements for transaction fees\n */\nexport const MINIMUM_BALANCE_FOR_TX: Record<ChainType, string> = {\n EVM: \"0.001\",\n SOL: \"0.01\",\n TRON: \"1\",\n BTC: \"0.0001\",\n BTC_T3: \"0.0001\",\n};\n\n/**\n * Native currency symbols per chain\n */\nexport const NATIVE_CURRENCY: Record<\n ChainType,\n { symbol: string; decimals: number }\n> = {\n EVM: { symbol: \"ETH\", decimals: 18 },\n SOL: { symbol: \"SOL\", decimals: 9 },\n TRON: { symbol: \"TRX\", decimals: 6 },\n BTC: { symbol: \"BTC\", decimals: 8 },\n BTC_T3: { symbol: \"BTC\", decimals: 8 },\n};\n\n/**\n * Supported chain types array for validation\n */\nexport const SUPPORTED_CHAINS: ChainType[] = [\"EVM\", \"SOL\", \"TRON\", \"BTC\", \"BTC_T3\"];\n/**\n * BTC network configuration\n */\nexport const BTC_NETWORK_CONFIG = {\n mainnet: {\n name: \"bitcoin\",\n bech32: \"bc\",\n pubKeyHash: 0x00,\n scriptHash: 0x05,\n wif: 0x80,\n },\n testnet: {\n name: \"testnet\",\n bech32: \"tb\",\n pubKeyHash: 0x6f,\n scriptHash: 0xc4,\n wif: 0xef,\n },\n} as const;\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
|
|
2
|
+
get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
|
|
3
|
+
}) : x)(function(x) {
|
|
4
|
+
if (typeof require !== "undefined") return require.apply(this, arguments);
|
|
5
|
+
throw Error('Dynamic require of "' + x + '" is not supported');
|
|
6
|
+
});
|
|
7
|
+
|
|
8
|
+
export {
|
|
9
|
+
__require
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=chunk-DGUM43GV.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
import {
|
|
2
|
+
toBackendChainType
|
|
3
|
+
} from "./chunk-VYJA3QAZ.js";
|
|
4
|
+
|
|
5
|
+
// src/api/wallet.api.ts
|
|
6
|
+
var WalletApi = class {
|
|
7
|
+
client;
|
|
8
|
+
constructor(client) {
|
|
9
|
+
this.client = client;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Creates a new wallet
|
|
13
|
+
*/
|
|
14
|
+
async createWallet(chain) {
|
|
15
|
+
return this.client.post("/sdk/wallets/create", {
|
|
16
|
+
wallets: [{ chain: toBackendChainType(chain) }]
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Imports a wallet with a private key
|
|
21
|
+
*/
|
|
22
|
+
async importWallet(chain, privateKey) {
|
|
23
|
+
return this.client.post("/sdk/wallets/create", {
|
|
24
|
+
wallets: [{ chain: toBackendChainType(chain), key: privateKey }]
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Gets a single wallet by address
|
|
29
|
+
*/
|
|
30
|
+
async getWallet(address) {
|
|
31
|
+
return this.client.get(`/sdk/wallets/${address}`);
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Gets all wallets for the user
|
|
35
|
+
*/
|
|
36
|
+
async getWallets() {
|
|
37
|
+
return this.client.get("/sdk/wallets/all");
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Gets paginated wallets
|
|
41
|
+
*/
|
|
42
|
+
async getPaginatedWallets(page = 1, limit = 10) {
|
|
43
|
+
return this.client.get("/sdk/wallets", {
|
|
44
|
+
params: { page, limit }
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Deletes a wallet
|
|
49
|
+
*/
|
|
50
|
+
async deleteWallet(chain, address) {
|
|
51
|
+
return this.client.delete(`/sdk/wallets/${toBackendChainType(chain)}/${address}`);
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Updates wallet name
|
|
55
|
+
*/
|
|
56
|
+
async updateWalletName(chain, address, name) {
|
|
57
|
+
return this.client.post("/sdk/wallets/update/name", {
|
|
58
|
+
walletAddress: address,
|
|
59
|
+
name,
|
|
60
|
+
chainType: toBackendChainType(chain)
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Fetches server share for key reconstruction
|
|
65
|
+
*/
|
|
66
|
+
async fetchServerShare(chain, address) {
|
|
67
|
+
const response = await this.client.get(
|
|
68
|
+
`/sdk/wallets/share/c/${toBackendChainType(chain)}/${address}`
|
|
69
|
+
);
|
|
70
|
+
return response.share;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Fetches recovery share for key reconstruction
|
|
74
|
+
*/
|
|
75
|
+
async fetchRecoveryShare(chain, address) {
|
|
76
|
+
const response = await this.client.get(
|
|
77
|
+
`/sdk/wallets/share/s/${toBackendChainType(chain)}/${address}`
|
|
78
|
+
);
|
|
79
|
+
return response.share;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Fetches both shares for key reconstruction
|
|
83
|
+
*/
|
|
84
|
+
async fetchShares(chain, address) {
|
|
85
|
+
const [server, recovery] = await Promise.all([
|
|
86
|
+
this.fetchServerShare(chain, address),
|
|
87
|
+
this.fetchRecoveryShare(chain, address)
|
|
88
|
+
]);
|
|
89
|
+
return { server, recovery };
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Fetches public key for share encryption
|
|
93
|
+
*/
|
|
94
|
+
async fetchPublicKey() {
|
|
95
|
+
const response = await this.client.get("/sdk/wallets/pubkey");
|
|
96
|
+
return response.pubkey;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Updates shares on server after rotation
|
|
100
|
+
*/
|
|
101
|
+
async updateShares(address, serverShare, encryptedRecoveryShare) {
|
|
102
|
+
await this.client.post("/sdk/wallets/update", {
|
|
103
|
+
walletAddress: address,
|
|
104
|
+
serverShare,
|
|
105
|
+
encryptedRecoveryShare
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Gets wallet portfolio/balances for multiple wallets (batch request)
|
|
110
|
+
* User constructs the PortfolioRequest array themselves
|
|
111
|
+
*/
|
|
112
|
+
async getWalletsPortfolio(requests) {
|
|
113
|
+
if (requests.length === 0) {
|
|
114
|
+
return [];
|
|
115
|
+
}
|
|
116
|
+
const body = { wallets: requests };
|
|
117
|
+
const response = await this.client.post(
|
|
118
|
+
"/sdk/wallets/protfolio",
|
|
119
|
+
body
|
|
120
|
+
);
|
|
121
|
+
return response;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Gets supported tokens for a chain
|
|
125
|
+
*/
|
|
126
|
+
async getSupportedTokens(chain, chainId, page = 1, limit = 50, search) {
|
|
127
|
+
return this.client.get(
|
|
128
|
+
`/sdk/wallets/supported-tokens/${toBackendChainType(chain)}/${chainId}`,
|
|
129
|
+
{
|
|
130
|
+
params: { page, limit, search }
|
|
131
|
+
}
|
|
132
|
+
);
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Gets total asset value across all wallets
|
|
136
|
+
*/
|
|
137
|
+
async getTotalAssetValue() {
|
|
138
|
+
return this.client.get("/sdk/wallets/total-asset-value");
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Gets wallet transaction history
|
|
142
|
+
*/
|
|
143
|
+
async getHistory(chain, address, page = 1, limit = 20) {
|
|
144
|
+
return this.client.get(
|
|
145
|
+
`/sdk/history/wallet/${toBackendChainType(chain)}/${address}`,
|
|
146
|
+
{
|
|
147
|
+
params: { page, limit }
|
|
148
|
+
}
|
|
149
|
+
);
|
|
150
|
+
}
|
|
151
|
+
};
|
|
152
|
+
|
|
153
|
+
export {
|
|
154
|
+
WalletApi
|
|
155
|
+
};
|
|
156
|
+
//# sourceMappingURL=chunk-HPEF3SHJ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/api/wallet.api.ts"],"sourcesContent":["import type { ApiClient } from './client';\nimport type {\n EChainType,\n ChainIdValue,\n CreateWalletResponse,\n SingleWalletDetailsResponse,\n PaginatedWalletsResponse,\n WalletRenameResponse,\n DeleteResponse,\n SupportedTokensResponse,\n TotalAssetValueResponse,\n HistoryResponse,\n} from '../core/types';\nimport { toBackendChainType } from '../core/types';\n\nexport class WalletApi {\n private readonly client: ApiClient;\n\n constructor(client: ApiClient) {\n this.client = client;\n }\n\n /**\n * Creates a new wallet\n */\n public async createWallet(chain: EChainType): Promise<CreateWalletResponse> {\n return this.client.post<CreateWalletResponse>('/sdk/wallets/create', {\n wallets: [{ chain: toBackendChainType(chain) }],\n });\n }\n\n /**\n * Imports a wallet with a private key\n */\n public async importWallet(\n chain: EChainType,\n privateKey: string\n ): Promise<CreateWalletResponse> {\n return this.client.post<CreateWalletResponse>('/sdk/wallets/create', {\n wallets: [{ chain: toBackendChainType(chain), key: privateKey }],\n });\n }\n\n /**\n * Gets a single wallet by address\n */\n public async getWallet(address: string): Promise<SingleWalletDetailsResponse> {\n return this.client.get<SingleWalletDetailsResponse>(`/sdk/wallets/${address}`);\n }\n\n /**\n * Gets all wallets for the user\n */\n public async getWallets(): Promise<PaginatedWalletsResponse> {\n return this.client.get<PaginatedWalletsResponse>('/sdk/wallets/all');\n }\n\n /**\n * Gets paginated wallets\n */\n public async getPaginatedWallets(\n page: number = 1,\n limit: number = 10\n ): Promise<PaginatedWalletsResponse> {\n return this.client.get<PaginatedWalletsResponse>('/sdk/wallets', {\n params: { page, limit },\n });\n }\n\n /**\n * Deletes a wallet\n */\n public async deleteWallet(\n chain: EChainType,\n address: string\n ): Promise<DeleteResponse> {\n return this.client.delete<DeleteResponse>(`/sdk/wallets/${toBackendChainType(chain)}/${address}`);\n }\n\n /**\n * Updates wallet name\n */\n public async updateWalletName(\n chain: EChainType,\n address: string,\n name: string\n ): Promise<WalletRenameResponse> {\n return this.client.post<WalletRenameResponse>('/sdk/wallets/update/name', {\n walletAddress: address,\n name,\n chainType: toBackendChainType(chain),\n });\n }\n\n /**\n * Fetches server share for key reconstruction\n */\n public async fetchServerShare(\n chain: EChainType,\n address: string\n ): Promise<string> {\n const response = await this.client.get<{ share: string }>(\n `/sdk/wallets/share/c/${toBackendChainType(chain)}/${address}`\n );\n return response.share;\n }\n\n /**\n * Fetches recovery share for key reconstruction\n */\n public async fetchRecoveryShare(\n chain: EChainType,\n address: string\n ): Promise<string> {\n const response = await this.client.get<{ share: string }>(\n `/sdk/wallets/share/s/${toBackendChainType(chain)}/${address}`\n );\n return response.share;\n }\n\n /**\n * Fetches both shares for key reconstruction\n */\n public async fetchShares(\n chain: EChainType,\n address: string\n ): Promise<{ server: string; recovery: string }> {\n const [server, recovery] = await Promise.all([\n this.fetchServerShare(chain, address),\n this.fetchRecoveryShare(chain, address),\n ]);\n return { server, recovery };\n }\n\n /**\n * Fetches public key for share encryption\n */\n public async fetchPublicKey(): Promise<string> {\n const response = await this.client.get<{ pubkey: string }>('/sdk/wallets/pubkey');\n return response.pubkey;\n }\n\n /**\n * Updates shares on server after rotation\n */\n public async updateShares(\n address: string,\n serverShare: string,\n encryptedRecoveryShare: string\n ): Promise<void> {\n await this.client.post('/sdk/wallets/update', {\n walletAddress: address,\n serverShare,\n encryptedRecoveryShare,\n });\n }\n\n /**\n * Gets wallet portfolio/balances for multiple wallets (batch request)\n * User constructs the PortfolioRequest array themselves\n */\n public async getWalletsPortfolio(\n requests: import('../core/types').PortfolioRequest[]\n ): Promise<import('../core/types').WalletPortfolioResponse[]> {\n if (requests.length === 0) {\n return [];\n }\n\n const body = { wallets: requests };\n\n const response = await this.client.post<import('../core/types').WalletPortfolioResponse[]>(\n '/sdk/wallets/protfolio',\n body\n );\n\n return response;\n }\n\n /**\n * Gets supported tokens for a chain\n */\n public async getSupportedTokens(\n chain: EChainType,\n chainId: ChainIdValue,\n page: number = 1,\n limit: number = 50,\n search?: string\n ): Promise<SupportedTokensResponse> {\n return this.client.get<SupportedTokensResponse>(\n `/sdk/wallets/supported-tokens/${toBackendChainType(chain)}/${chainId}`,\n {\n params: { page, limit, search },\n }\n );\n }\n\n /**\n * Gets total asset value across all wallets\n */\n public async getTotalAssetValue(): Promise<TotalAssetValueResponse> {\n return this.client.get<TotalAssetValueResponse>('/sdk/wallets/total-asset-value');\n }\n\n /**\n * Gets wallet transaction history\n */\n public async getHistory(\n chain: EChainType,\n address: string,\n page: number = 1,\n limit: number = 20\n ): Promise<HistoryResponse> {\n return this.client.get<HistoryResponse>(\n `/sdk/history/wallet/${toBackendChainType(chain)}/${address}`,\n {\n params: { page, limit },\n }\n );\n }\n}\n"],"mappings":"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","names":[]}
|