@pushchain/core 1.1.36 → 1.1.38
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/package.json +4 -3
- package/src/lib/constants/abi/erc20.evm.d.ts +36 -0
- package/src/lib/constants/abi/erc20.evm.js +26 -0
- package/src/lib/constants/abi/erc20.evm.js.map +1 -0
- package/src/lib/constants/abi/index.d.ts +2 -0
- package/src/lib/constants/abi/index.js +5 -1
- package/src/lib/constants/abi/index.js.map +1 -1
- package/src/lib/constants/abi/universalGatewayV0.evm.d.ts +31 -0
- package/src/lib/constants/abi/universalGatewayV0.evm.js +141 -0
- package/src/lib/constants/abi/universalGatewayV0.evm.js.map +1 -0
- package/src/lib/constants/chain.js +1 -1
- package/src/lib/constants/index.d.ts +1 -0
- package/src/lib/constants/index.js.map +1 -1
- package/src/lib/constants/tokens.d.ts +64 -0
- package/src/lib/constants/tokens.js +218 -0
- package/src/lib/constants/tokens.js.map +1 -0
- package/src/lib/index.d.ts +1 -0
- package/src/lib/index.js.map +1 -1
- package/src/lib/orchestrator/orchestrator.d.ts +17 -0
- package/src/lib/orchestrator/orchestrator.js +295 -0
- package/src/lib/orchestrator/orchestrator.js.map +1 -1
- package/src/lib/orchestrator/orchestrator.types.d.ts +13 -0
- package/src/lib/progress-hook/progress-hook.js +65 -0
- package/src/lib/progress-hook/progress-hook.js.map +1 -1
- package/src/lib/progress-hook/progress-hook.types.d.ts +9 -0
- package/src/lib/progress-hook/progress-hook.types.js +12 -0
- package/src/lib/progress-hook/progress-hook.types.js.map +1 -1
- package/src/lib/push-chain/push-chain.d.ts +17 -0
- package/src/lib/push-chain/push-chain.js +190 -0
- package/src/lib/push-chain/push-chain.js.map +1 -1
- package/src/lib/utils.d.ts +98 -2
- package/src/lib/utils.js +264 -8
- package/src/lib/utils.js.map +1 -1
|
@@ -4,6 +4,7 @@ import { UniversalAccount, UniversalSigner } from '../universal/universal.types'
|
|
|
4
4
|
import { Utils } from '../utils';
|
|
5
5
|
import { TypedData, TypedDataDomain } from 'viem';
|
|
6
6
|
import { ProgressEvent } from '../progress-hook/progress-hook.types';
|
|
7
|
+
import { MoveableToken, PayableToken, ConversionQuote, MoveableTokenAccessor, PayableTokenAccessor } from '../constants/tokens';
|
|
7
8
|
/**
|
|
8
9
|
* @class PushChain
|
|
9
10
|
*
|
|
@@ -61,6 +62,22 @@ export declare class PushChain {
|
|
|
61
62
|
getTransactionUrl: (txHash: string) => string;
|
|
62
63
|
listUrls: () => string[];
|
|
63
64
|
};
|
|
65
|
+
/**
|
|
66
|
+
* Moveable and payable token registries exposed on the client instance.
|
|
67
|
+
* These are derived from the origin chain and only include tokens available for that chain.
|
|
68
|
+
*/
|
|
69
|
+
moveable: {
|
|
70
|
+
token: MoveableTokenAccessor;
|
|
71
|
+
};
|
|
72
|
+
payable: {
|
|
73
|
+
token: PayableTokenAccessor;
|
|
74
|
+
};
|
|
75
|
+
funds: {
|
|
76
|
+
getConversionQuote: (amountIn: bigint, options: {
|
|
77
|
+
from: PayableToken | undefined;
|
|
78
|
+
to: MoveableToken | undefined;
|
|
79
|
+
}) => Promise<ConversionQuote>;
|
|
80
|
+
};
|
|
64
81
|
private constructor();
|
|
65
82
|
/**
|
|
66
83
|
* @private
|
|
@@ -11,6 +11,8 @@ const signer_1 = require("../universal/signer");
|
|
|
11
11
|
const utils_1 = require("../utils");
|
|
12
12
|
const anchor_1 = require("@coral-xyz/anchor");
|
|
13
13
|
const viem_1 = require("viem");
|
|
14
|
+
const evm_client_1 = require("../vm-client/evm-client");
|
|
15
|
+
const tokens_1 = require("../constants/tokens");
|
|
14
16
|
/**
|
|
15
17
|
* @class PushChain
|
|
16
18
|
*
|
|
@@ -25,6 +27,7 @@ class PushChain {
|
|
|
25
27
|
return !('signMessage' in input) && !('signAndSendTransaction' in input);
|
|
26
28
|
}
|
|
27
29
|
constructor(orchestrator, universalSigner, blockExplorers, isReadMode) {
|
|
30
|
+
var _b, _c, _d, _e, _f, _g;
|
|
28
31
|
this.orchestrator = orchestrator;
|
|
29
32
|
this.universalSigner = universalSigner;
|
|
30
33
|
this.blockExplorers = blockExplorers;
|
|
@@ -97,6 +100,193 @@ class PushChain {
|
|
|
97
100
|
return (_b = blockExplorers[enums_1.CHAIN.PUSH_TESTNET_DONUT]) !== null && _b !== void 0 ? _b : [];
|
|
98
101
|
},
|
|
99
102
|
};
|
|
103
|
+
// Derive moveable/payable tokens for the current origin chain
|
|
104
|
+
const originChain = universalSigner.account.chain;
|
|
105
|
+
const toTokenMap = (arr) => (arr !== null && arr !== void 0 ? arr : []).reduce((acc, t) => {
|
|
106
|
+
acc[t.symbol] = t;
|
|
107
|
+
return acc;
|
|
108
|
+
}, {});
|
|
109
|
+
const moveableList = (_d = (_c = (_b = tokens_1.MOVEABLE_TOKENS[originChain]) !== null && _b !== void 0 ? _b : tokens_1.MOVEABLE_TOKENS[enums_1.CHAIN.ETHEREUM_MAINNET]) !== null && _c !== void 0 ? _c : tokens_1.MOVEABLE_TOKENS[enums_1.CHAIN.ETHEREUM_SEPOLIA]) !== null && _d !== void 0 ? _d : [];
|
|
110
|
+
const payableList = (_g = (_f = (_e = tokens_1.PAYABLE_TOKENS[originChain]) !== null && _e !== void 0 ? _e : tokens_1.PAYABLE_TOKENS[enums_1.CHAIN.ETHEREUM_MAINNET]) !== null && _f !== void 0 ? _f : tokens_1.PAYABLE_TOKENS[enums_1.CHAIN.ETHEREUM_SEPOLIA]) !== null && _g !== void 0 ? _g : [];
|
|
111
|
+
this.moveable = {
|
|
112
|
+
token: new tokens_1.MoveableTokenAccessor(toTokenMap(moveableList)),
|
|
113
|
+
};
|
|
114
|
+
this.payable = {
|
|
115
|
+
token: new tokens_1.PayableTokenAccessor(toTokenMap(payableList)),
|
|
116
|
+
};
|
|
117
|
+
this.funds = {
|
|
118
|
+
getConversionQuote: (amountIn_1, _b) => tslib_1.__awaiter(this, [amountIn_1, _b], void 0, function* (amountIn, { from, to, }) {
|
|
119
|
+
var _c, _d;
|
|
120
|
+
const originChain = universalSigner.account.chain;
|
|
121
|
+
if (originChain !== enums_1.CHAIN.ETHEREUM_MAINNET &&
|
|
122
|
+
originChain !== enums_1.CHAIN.ETHEREUM_SEPOLIA) {
|
|
123
|
+
throw new Error('getConversionQuote is only supported on Ethereum Mainnet and Sepolia for now');
|
|
124
|
+
}
|
|
125
|
+
if (!from) {
|
|
126
|
+
throw new Error('from token is required');
|
|
127
|
+
}
|
|
128
|
+
if (!to) {
|
|
129
|
+
throw new Error('to token is required');
|
|
130
|
+
}
|
|
131
|
+
// Sepolia-only override: if quoting USDT -> WETH, use Chainlink ETH/USD to match UniversalGatewayV0.sol
|
|
132
|
+
if (originChain === enums_1.CHAIN.ETHEREUM_SEPOLIA &&
|
|
133
|
+
from.symbol === 'USDT' &&
|
|
134
|
+
to.symbol === 'WETH') {
|
|
135
|
+
// Resolve RPCs from client config, falling back to defaults
|
|
136
|
+
const rpcUrls = orchestrator.getRpcUrls()[originChain] ||
|
|
137
|
+
chain_1.CHAIN_INFO[originChain].defaultRPC;
|
|
138
|
+
const evm = new evm_client_1.EvmClient({ rpcUrls });
|
|
139
|
+
// Chainlink AggregatorV3Interface (ETH/USD) on Sepolia
|
|
140
|
+
const aggregatorAbi = (0, viem_1.parseAbi)([
|
|
141
|
+
'function latestRoundData() view returns (uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound)',
|
|
142
|
+
'function decimals() view returns (uint8)',
|
|
143
|
+
]);
|
|
144
|
+
const ETH_USD_FEED_SEPOLIA = '0x694AA1769357215DE4FAC081bf1f309aDC325306';
|
|
145
|
+
// Get price and decimals
|
|
146
|
+
const [latest, dec] = yield Promise.all([
|
|
147
|
+
evm.readContract({
|
|
148
|
+
abi: aggregatorAbi,
|
|
149
|
+
address: ETH_USD_FEED_SEPOLIA,
|
|
150
|
+
functionName: 'latestRoundData',
|
|
151
|
+
args: [],
|
|
152
|
+
}),
|
|
153
|
+
evm.readContract({
|
|
154
|
+
abi: aggregatorAbi,
|
|
155
|
+
address: ETH_USD_FEED_SEPOLIA,
|
|
156
|
+
functionName: 'decimals',
|
|
157
|
+
args: [],
|
|
158
|
+
}),
|
|
159
|
+
]);
|
|
160
|
+
const answer = (_c = latest === null || latest === void 0 ? void 0 : latest[1]) !== null && _c !== void 0 ? _c : BigInt(0); // USD price per ETH with "dec" decimals
|
|
161
|
+
if (answer <= BigInt(0)) {
|
|
162
|
+
throw new Error('Chainlink ETH/USD price is invalid');
|
|
163
|
+
}
|
|
164
|
+
// Scale price to 1e18 without using bigint exponent operator (target constraints)
|
|
165
|
+
if (dec > 18) {
|
|
166
|
+
throw new Error('Unexpected Chainlink decimals');
|
|
167
|
+
}
|
|
168
|
+
const pow10 = (exp) => {
|
|
169
|
+
if (exp <= 0)
|
|
170
|
+
return BigInt(1);
|
|
171
|
+
let result = BigInt(1);
|
|
172
|
+
for (let i = 0; i < exp; i++)
|
|
173
|
+
result *= BigInt(10);
|
|
174
|
+
return result;
|
|
175
|
+
};
|
|
176
|
+
const priceScale = pow10(18 - dec);
|
|
177
|
+
const price1e18 = answer * priceScale; // USD(1e18) per 1 ETH
|
|
178
|
+
// Convert USDT amount to USD(1e18) using token decimals (default 6)
|
|
179
|
+
const fromDecimals = typeof from.decimals === 'number' ? from.decimals : 6;
|
|
180
|
+
const usd1e18 = fromDecimals <= 18
|
|
181
|
+
? amountIn * pow10(18 - fromDecimals)
|
|
182
|
+
: amountIn / pow10(fromDecimals - 18);
|
|
183
|
+
// ETH(wei) = (USD(1e18) * 1e18) / price1e18
|
|
184
|
+
const amountOutWei = (usd1e18 * pow10(18)) / price1e18;
|
|
185
|
+
const amountInHuman = parseFloat(utils_1.Utils.helpers.formatUnits(amountIn, { decimals: from.decimals }));
|
|
186
|
+
const amountOutHuman = parseFloat(utils_1.Utils.helpers.formatUnits(amountOutWei, { decimals: to.decimals }));
|
|
187
|
+
const rate = amountInHuman > 0 ? amountOutHuman / amountInHuman : 0;
|
|
188
|
+
return {
|
|
189
|
+
amountIn: amountIn.toString(),
|
|
190
|
+
amountOut: amountOutWei.toString(),
|
|
191
|
+
rate,
|
|
192
|
+
route: [from.symbol, to.symbol],
|
|
193
|
+
timestamp: Date.now(),
|
|
194
|
+
};
|
|
195
|
+
}
|
|
196
|
+
// Resolve RPCs from client config, falling back to defaults
|
|
197
|
+
const rpcUrls = orchestrator.getRpcUrls()[originChain] ||
|
|
198
|
+
chain_1.CHAIN_INFO[originChain].defaultRPC;
|
|
199
|
+
const evm = new evm_client_1.EvmClient({ rpcUrls });
|
|
200
|
+
// Minimal ABIs and known Uniswap V3 addresses (per network)
|
|
201
|
+
const UNISWAP_V3_FACTORY = originChain === enums_1.CHAIN.ETHEREUM_SEPOLIA
|
|
202
|
+
? '0x0227628f3F023bb0B980b67D528571c95c6DaC1c'
|
|
203
|
+
: '0x1F98431c8aD98523631AE4a59f267346ea31F984';
|
|
204
|
+
const UNISWAP_V3_QUOTER_V2 = originChain === enums_1.CHAIN.ETHEREUM_SEPOLIA
|
|
205
|
+
? '0xEd1f6473345F45b75F8179591dd5bA1888cf2FB3'
|
|
206
|
+
: '0x61fFE014bA17989E743c5F6cB21bF9697530B21e';
|
|
207
|
+
const factoryAbi = (0, viem_1.parseAbi)([
|
|
208
|
+
'function getPool(address tokenA, address tokenB, uint24 fee) view returns (address)',
|
|
209
|
+
]);
|
|
210
|
+
const quoterAbi = (0, viem_1.parseAbi)([
|
|
211
|
+
'function quoteExactInputSingle((address tokenIn, address tokenOut, uint256 amountIn, uint24 fee, uint160 sqrtPriceLimitX96) params) returns (uint256 amountOut, uint160 sqrtPriceX96After, uint32 initializedTicksCrossed, uint256 gasEstimate)',
|
|
212
|
+
]);
|
|
213
|
+
const poolAbi = (0, viem_1.parseAbi)([
|
|
214
|
+
'function liquidity() view returns (uint128)',
|
|
215
|
+
]);
|
|
216
|
+
const feeTiers = [100, 500, 3000, 10000];
|
|
217
|
+
let bestAmountOut = BigInt(0);
|
|
218
|
+
let bestFee = null;
|
|
219
|
+
for (const fee of feeTiers) {
|
|
220
|
+
// Find pool address for this fee tier
|
|
221
|
+
const poolAddress = yield evm.readContract({
|
|
222
|
+
abi: factoryAbi,
|
|
223
|
+
address: UNISWAP_V3_FACTORY,
|
|
224
|
+
functionName: 'getPool',
|
|
225
|
+
args: [from.address, to.address, fee],
|
|
226
|
+
});
|
|
227
|
+
const isZero = !poolAddress ||
|
|
228
|
+
poolAddress.toLowerCase() ===
|
|
229
|
+
'0x0000000000000000000000000000000000000000';
|
|
230
|
+
if (isZero)
|
|
231
|
+
continue;
|
|
232
|
+
// Skip uninitialized/empty pools to avoid Quoter reverts
|
|
233
|
+
try {
|
|
234
|
+
const liquidity = yield evm.readContract({
|
|
235
|
+
abi: poolAbi,
|
|
236
|
+
address: poolAddress,
|
|
237
|
+
functionName: 'liquidity',
|
|
238
|
+
args: [],
|
|
239
|
+
});
|
|
240
|
+
if (!liquidity || liquidity === BigInt(0)) {
|
|
241
|
+
continue;
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
catch (_e) {
|
|
245
|
+
// If we can't read liquidity, skip this pool/fee tier
|
|
246
|
+
continue;
|
|
247
|
+
}
|
|
248
|
+
// Quote exact input single for this fee tier; catch reverts due to empty/uninitialized pools
|
|
249
|
+
try {
|
|
250
|
+
const result = yield evm.readContract({
|
|
251
|
+
abi: quoterAbi,
|
|
252
|
+
address: UNISWAP_V3_QUOTER_V2,
|
|
253
|
+
functionName: 'quoteExactInputSingle',
|
|
254
|
+
args: [
|
|
255
|
+
{
|
|
256
|
+
tokenIn: from.address,
|
|
257
|
+
tokenOut: to.address,
|
|
258
|
+
amountIn,
|
|
259
|
+
fee,
|
|
260
|
+
sqrtPriceLimitX96: BigInt(0),
|
|
261
|
+
},
|
|
262
|
+
],
|
|
263
|
+
});
|
|
264
|
+
const amountOut = (_d = result === null || result === void 0 ? void 0 : result[0]) !== null && _d !== void 0 ? _d : BigInt(0);
|
|
265
|
+
if (amountOut > bestAmountOut) {
|
|
266
|
+
bestAmountOut = amountOut;
|
|
267
|
+
bestFee = fee;
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
catch (_f) {
|
|
271
|
+
// try next fee
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
if (!bestFee) {
|
|
275
|
+
throw new Error('No direct Uniswap V3 pool found for the given token pair on common fee tiers');
|
|
276
|
+
}
|
|
277
|
+
// Compute normalized rate: tokenOut per tokenIn
|
|
278
|
+
const amountInHuman = parseFloat(utils_1.Utils.helpers.formatUnits(amountIn, { decimals: from.decimals }));
|
|
279
|
+
const amountOutHuman = parseFloat(utils_1.Utils.helpers.formatUnits(bestAmountOut, { decimals: to.decimals }));
|
|
280
|
+
const rate = amountInHuman > 0 ? amountOutHuman / amountInHuman : 0;
|
|
281
|
+
return {
|
|
282
|
+
amountIn: amountIn.toString(),
|
|
283
|
+
amountOut: bestAmountOut.toString(),
|
|
284
|
+
rate,
|
|
285
|
+
route: [from.symbol, to.symbol],
|
|
286
|
+
timestamp: Date.now(),
|
|
287
|
+
};
|
|
288
|
+
}),
|
|
289
|
+
};
|
|
100
290
|
}
|
|
101
291
|
/**
|
|
102
292
|
* @private
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"push-chain.js","sourceRoot":"","sources":["../../../../../../packages/core/src/lib/push-chain/push-chain.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"push-chain.js","sourceRoot":"","sources":["../../../../../../packages/core/src/lib/push-chain/push-chain.ts"],"names":[],"mappings":"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"}
|
package/src/lib/utils.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { convertOriginToExecutor, fromChainAgnostic, convertExecutorToOriginAccount, toChainAgnostic, toUniversal } from './universal/account';
|
|
2
2
|
import { construct, toUniversal as toUniversalSigner, toUniversalFromKeypair } from './universal/signer';
|
|
3
|
+
import { CHAIN } from './constants/enums';
|
|
4
|
+
import type { PushChain } from './push-chain/push-chain';
|
|
3
5
|
/**
|
|
4
6
|
* @dev - THESE UTILS ARE EXPORTED TO SDK CONSUMER
|
|
5
7
|
* @dev - Make sure each exported fn has good comments to help out sdk consumer
|
|
@@ -55,7 +57,7 @@ export declare class Utils {
|
|
|
55
57
|
* For example, converting "1.5" ETH to wei (18 decimals) would be parseUnits("1.5", 18).
|
|
56
58
|
*
|
|
57
59
|
* @param {string} value - The string representation of the number to multiply.
|
|
58
|
-
* @param {number} exponent - The exponent (number of decimal places).
|
|
60
|
+
* @param {number | {decimals: number}} exponent - The exponent (number of decimal places) or an object with decimals property.
|
|
59
61
|
* @returns {bigint} The result as a bigint.
|
|
60
62
|
*
|
|
61
63
|
* @example
|
|
@@ -65,7 +67,101 @@ export declare class Utils {
|
|
|
65
67
|
* @example
|
|
66
68
|
* Utils.helpers.parseUnits('1.5', 18)
|
|
67
69
|
* // → 1500000000000000000n
|
|
70
|
+
*
|
|
71
|
+
* @example
|
|
72
|
+
* Utils.helpers.parseUnits('1.5', {decimals: 18})
|
|
73
|
+
* // → 1500000000000000000n
|
|
68
74
|
*/
|
|
69
|
-
parseUnits(value: string, exponent: number
|
|
75
|
+
parseUnits(value: string, exponent: number | {
|
|
76
|
+
decimals: number;
|
|
77
|
+
}): bigint;
|
|
78
|
+
/**
|
|
79
|
+
* Formats a value from smallest units to human-readable string.
|
|
80
|
+
*
|
|
81
|
+
* Supports both EVM-style (like ethers/viem) and Push-style (options object) usage patterns.
|
|
82
|
+
* Always returns a string for UI safety.
|
|
83
|
+
*
|
|
84
|
+
* @param {bigint | string} value - The value in smallest units (e.g., "1500000" or 1500000000000000000n).
|
|
85
|
+
* @param {number | {decimals: number; precision?: number}} decimalsOrOptions - Token decimals or options object.
|
|
86
|
+
* @returns {string} Human-readable string (e.g., "1.5").
|
|
87
|
+
*
|
|
88
|
+
* @example
|
|
89
|
+
* // EVM-style usage
|
|
90
|
+
* Utils.helpers.formatUnits(1500000000000000000n, 18)
|
|
91
|
+
* // → "1.5"
|
|
92
|
+
*
|
|
93
|
+
* @example
|
|
94
|
+
* // Push-style usage
|
|
95
|
+
* Utils.helpers.formatUnits("1500000", { decimals: 6 })
|
|
96
|
+
* // → "1.5"
|
|
97
|
+
*
|
|
98
|
+
* @example
|
|
99
|
+
* // With precision (truncate after 2 decimals)
|
|
100
|
+
* Utils.helpers.formatUnits("1234567", { decimals: 6, precision: 2 })
|
|
101
|
+
* // → "1.23"
|
|
102
|
+
*/
|
|
103
|
+
formatUnits(value: bigint | string, decimalsOrOptions: number | {
|
|
104
|
+
decimals: number;
|
|
105
|
+
precision?: number;
|
|
106
|
+
}): string;
|
|
107
|
+
/**
|
|
108
|
+
* Calculates the minimum amount out after applying slippage.
|
|
109
|
+
*
|
|
110
|
+
* Given an input amount and slippage in basis points, returns the minimum amount
|
|
111
|
+
* that should be received after accounting for slippage.
|
|
112
|
+
*
|
|
113
|
+
* @param {string} amount - The input amount in smallest units (e.g., "100000000" for 100 USDC with 6 decimals)
|
|
114
|
+
* @param {object} options - Configuration options
|
|
115
|
+
* @param {number} options.slippageBps - Slippage in basis points (100 = 1%, 50 = 0.5%)
|
|
116
|
+
* @returns {string} The minimum amount out in smallest units
|
|
117
|
+
*
|
|
118
|
+
* @example
|
|
119
|
+
* // Calculate minimum amount for 100 USDC with 1% slippage
|
|
120
|
+
* const amount = PushChain.utils.helpers.parseUnits("100", 6); // "100000000"
|
|
121
|
+
* const minOut = PushChain.utils.helpers.slippageToMinAmount(amount, {
|
|
122
|
+
* slippageBps: 100, // 1%
|
|
123
|
+
* });
|
|
124
|
+
* // => "99000000" (99 USDC in smallest units)
|
|
125
|
+
*
|
|
126
|
+
* @example
|
|
127
|
+
* // Simple case with whole numbers
|
|
128
|
+
* const minOut = PushChain.utils.helpers.slippageToMinAmount("100", {
|
|
129
|
+
* slippageBps: 100, // 1%
|
|
130
|
+
* });
|
|
131
|
+
* // => "99"
|
|
132
|
+
*/
|
|
133
|
+
slippageToMinAmount(amount: string, options: {
|
|
134
|
+
slippageBps: number;
|
|
135
|
+
}): string;
|
|
136
|
+
};
|
|
137
|
+
/**
|
|
138
|
+
* Returns supported moveable tokens as a flat list with chain info.
|
|
139
|
+
* - If a specific chain or a PushChain client is passed, returns only that chain's tokens
|
|
140
|
+
* - Otherwise returns tokens across all chains
|
|
141
|
+
*/
|
|
142
|
+
static getMoveableTokens(chainOrClient?: CHAIN | PushChain): {
|
|
143
|
+
tokens: Array<{
|
|
144
|
+
chain: CHAIN;
|
|
145
|
+
symbol: string;
|
|
146
|
+
decimals: number;
|
|
147
|
+
address: string;
|
|
148
|
+
}>;
|
|
149
|
+
};
|
|
150
|
+
/**
|
|
151
|
+
* Returns supported payable tokens as a flat list with chain info.
|
|
152
|
+
* - If a specific chain or a PushChain client is passed, returns only that chain's tokens
|
|
153
|
+
* - Otherwise returns tokens across all chains
|
|
154
|
+
*/
|
|
155
|
+
static getPayableTokens(chainOrClient?: CHAIN | PushChain): {
|
|
156
|
+
tokens: Array<{
|
|
157
|
+
chain: CHAIN;
|
|
158
|
+
symbol: string;
|
|
159
|
+
decimals: number;
|
|
160
|
+
address: string;
|
|
161
|
+
}>;
|
|
70
162
|
};
|
|
163
|
+
/**
|
|
164
|
+
* Internal: resolves a CHAIN enum from either a CHAIN value or a PushChain client instance.
|
|
165
|
+
*/
|
|
166
|
+
private static resolveChainFromInput;
|
|
71
167
|
}
|