@relayprotocol/relay-sdk 2.4.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/_cjs/package.json +1 -0
- package/_cjs/src/actions/claimAppFees.js +53 -0
- package/_cjs/src/actions/claimAppFees.js.map +1 -0
- package/_cjs/src/actions/execute.js +76 -0
- package/_cjs/src/actions/execute.js.map +1 -0
- package/_cjs/src/actions/getAppFees.js +24 -0
- package/_cjs/src/actions/getAppFees.js.map +1 -0
- package/_cjs/src/actions/getPrice.js +51 -0
- package/_cjs/src/actions/getPrice.js.map +1 -0
- package/_cjs/src/actions/getQuote.js +91 -0
- package/_cjs/src/actions/getQuote.js.map +1 -0
- package/_cjs/src/actions/getSolverCapacity.js +21 -0
- package/_cjs/src/actions/getSolverCapacity.js.map +1 -0
- package/_cjs/src/actions/index.js +10 -0
- package/_cjs/src/actions/index.js.map +1 -0
- package/_cjs/src/client.js +207 -0
- package/_cjs/src/client.js.map +1 -0
- package/_cjs/src/constants/address.js +48 -0
- package/_cjs/src/constants/address.js.map +1 -0
- package/_cjs/src/constants/bvm.js +5 -0
- package/_cjs/src/constants/bvm.js.map +1 -0
- package/_cjs/src/constants/index.js +6 -0
- package/_cjs/src/constants/index.js.map +1 -0
- package/_cjs/src/constants/servers.js +9 -0
- package/_cjs/src/constants/servers.js.map +1 -0
- package/_cjs/src/errors/DepositTransactionTimeoutError.js +18 -0
- package/_cjs/src/errors/DepositTransactionTimeoutError.js.map +1 -0
- package/_cjs/src/errors/SolverStatusTimeoutError.js +18 -0
- package/_cjs/src/errors/SolverStatusTimeoutError.js.map +1 -0
- package/_cjs/src/errors/TransactionConfirmationError.js +25 -0
- package/_cjs/src/errors/TransactionConfirmationError.js.map +1 -0
- package/_cjs/src/errors/index.js +10 -0
- package/_cjs/src/errors/index.js.map +1 -0
- package/_cjs/src/index.js +10 -0
- package/_cjs/src/index.js.map +1 -0
- package/_cjs/src/routes/index.js +46 -0
- package/_cjs/src/routes/index.js.map +1 -0
- package/_cjs/src/types/AdaptedWallet.js +3 -0
- package/_cjs/src/types/AdaptedWallet.js.map +1 -0
- package/_cjs/src/types/Execute.js +3 -0
- package/_cjs/src/types/Execute.js.map +1 -0
- package/_cjs/src/types/Progress.js +3 -0
- package/_cjs/src/types/Progress.js.map +1 -0
- package/_cjs/src/types/RelayChain.js +3 -0
- package/_cjs/src/types/RelayChain.js.map +1 -0
- package/_cjs/src/types/SignatureStepItem.js +3 -0
- package/_cjs/src/types/SignatureStepItem.js.map +1 -0
- package/_cjs/src/types/TransactionStepItem.js +3 -0
- package/_cjs/src/types/TransactionStepItem.js.map +1 -0
- package/_cjs/src/types/api.js +3 -0
- package/_cjs/src/types/api.js.map +1 -0
- package/_cjs/src/types/index.js +11 -0
- package/_cjs/src/types/index.js.map +1 -0
- package/_cjs/src/utils/axios.js +18 -0
- package/_cjs/src/utils/axios.js.map +1 -0
- package/_cjs/src/utils/chain.js +91 -0
- package/_cjs/src/utils/chain.js.map +1 -0
- package/_cjs/src/utils/executeSteps/index.js +298 -0
- package/_cjs/src/utils/executeSteps/index.js.map +1 -0
- package/_cjs/src/utils/executeSteps/signatureStep.js +186 -0
- package/_cjs/src/utils/executeSteps/signatureStep.js.map +1 -0
- package/_cjs/src/utils/executeSteps/transactionStep.js +74 -0
- package/_cjs/src/utils/executeSteps/transactionStep.js.map +1 -0
- package/_cjs/src/utils/executeSteps/websocketHandlers.js +112 -0
- package/_cjs/src/utils/executeSteps/websocketHandlers.js.map +1 -0
- package/_cjs/src/utils/fetchChainConfigs.js +20 -0
- package/_cjs/src/utils/fetchChainConfigs.js.map +1 -0
- package/_cjs/src/utils/getCurrentStepData.js +28 -0
- package/_cjs/src/utils/getCurrentStepData.js.map +1 -0
- package/_cjs/src/utils/getTenderlyDetails.js +24 -0
- package/_cjs/src/utils/getTenderlyDetails.js.map +1 -0
- package/_cjs/src/utils/hyperliquid.js +95 -0
- package/_cjs/src/utils/hyperliquid.js.map +1 -0
- package/_cjs/src/utils/index.js +39 -0
- package/_cjs/src/utils/index.js.map +1 -0
- package/_cjs/src/utils/logger.js +38 -0
- package/_cjs/src/utils/logger.js.map +1 -0
- package/_cjs/src/utils/params.js +21 -0
- package/_cjs/src/utils/params.js.map +1 -0
- package/_cjs/src/utils/pollApi.js +40 -0
- package/_cjs/src/utils/pollApi.js.map +1 -0
- package/_cjs/src/utils/prepareBatchTransaction.js +35 -0
- package/_cjs/src/utils/prepareBatchTransaction.js.map +1 -0
- package/_cjs/src/utils/prepareCallTransaction.js +14 -0
- package/_cjs/src/utils/prepareCallTransaction.js.map +1 -0
- package/_cjs/src/utils/repeatUntilOk.js +19 -0
- package/_cjs/src/utils/repeatUntilOk.js.map +1 -0
- package/_cjs/src/utils/request.js +48 -0
- package/_cjs/src/utils/request.js.map +1 -0
- package/_cjs/src/utils/simulateContract.js +8 -0
- package/_cjs/src/utils/simulateContract.js.map +1 -0
- package/_cjs/src/utils/structuredClone.js +11 -0
- package/_cjs/src/utils/structuredClone.js.map +1 -0
- package/_cjs/src/utils/transaction.js +351 -0
- package/_cjs/src/utils/transaction.js.map +1 -0
- package/_cjs/src/utils/viemWallet.js +211 -0
- package/_cjs/src/utils/viemWallet.js.map +1 -0
- package/_cjs/src/utils/websocket.js +76 -0
- package/_cjs/src/utils/websocket.js.map +1 -0
- package/_cjs/src/version.js +5 -0
- package/_cjs/src/version.js.map +1 -0
- package/_cjs/tsconfig.build.tsbuildinfo +1 -0
- package/_esm/package.json +1 -0
- package/_esm/src/actions/claimAppFees.js +54 -0
- package/_esm/src/actions/claimAppFees.js.map +1 -0
- package/_esm/src/actions/execute.js +83 -0
- package/_esm/src/actions/execute.js.map +1 -0
- package/_esm/src/actions/getAppFees.js +25 -0
- package/_esm/src/actions/getAppFees.js.map +1 -0
- package/_esm/src/actions/getPrice.js +53 -0
- package/_esm/src/actions/getPrice.js.map +1 -0
- package/_esm/src/actions/getQuote.js +92 -0
- package/_esm/src/actions/getQuote.js.map +1 -0
- package/_esm/src/actions/getSolverCapacity.js +18 -0
- package/_esm/src/actions/getSolverCapacity.js.map +1 -0
- package/_esm/src/actions/index.js +7 -0
- package/_esm/src/actions/index.js.map +1 -0
- package/_esm/src/client.js +217 -0
- package/_esm/src/client.js.map +1 -0
- package/_esm/src/constants/address.js +43 -0
- package/_esm/src/constants/address.js.map +1 -0
- package/_esm/src/constants/bvm.js +2 -0
- package/_esm/src/constants/bvm.js.map +1 -0
- package/_esm/src/constants/index.js +3 -0
- package/_esm/src/constants/index.js.map +1 -0
- package/_esm/src/constants/servers.js +7 -0
- package/_esm/src/constants/servers.js.map +1 -0
- package/_esm/src/errors/DepositTransactionTimeoutError.js +14 -0
- package/_esm/src/errors/DepositTransactionTimeoutError.js.map +1 -0
- package/_esm/src/errors/SolverStatusTimeoutError.js +14 -0
- package/_esm/src/errors/SolverStatusTimeoutError.js.map +1 -0
- package/_esm/src/errors/TransactionConfirmationError.js +21 -0
- package/_esm/src/errors/TransactionConfirmationError.js.map +1 -0
- package/_esm/src/errors/index.js +4 -0
- package/_esm/src/errors/index.js.map +1 -0
- package/_esm/src/index.js +7 -0
- package/_esm/src/index.js.map +1 -0
- package/_esm/src/routes/index.js +43 -0
- package/_esm/src/routes/index.js.map +1 -0
- package/_esm/src/types/AdaptedWallet.js +2 -0
- package/_esm/src/types/AdaptedWallet.js.map +1 -0
- package/_esm/src/types/Execute.js +2 -0
- package/_esm/src/types/Execute.js.map +1 -0
- package/_esm/src/types/Progress.js +2 -0
- package/_esm/src/types/Progress.js.map +1 -0
- package/_esm/src/types/RelayChain.js +2 -0
- package/_esm/src/types/RelayChain.js.map +1 -0
- package/_esm/src/types/SignatureStepItem.js +2 -0
- package/_esm/src/types/SignatureStepItem.js.map +1 -0
- package/_esm/src/types/TransactionStepItem.js +2 -0
- package/_esm/src/types/TransactionStepItem.js.map +1 -0
- package/_esm/src/types/api.js +6 -0
- package/_esm/src/types/api.js.map +1 -0
- package/_esm/src/types/index.js +8 -0
- package/_esm/src/types/index.js.map +1 -0
- package/_esm/src/utils/axios.js +15 -0
- package/_esm/src/utils/axios.js.map +1 -0
- package/_esm/src/utils/chain.js +86 -0
- package/_esm/src/utils/chain.js.map +1 -0
- package/_esm/src/utils/executeSteps/index.js +347 -0
- package/_esm/src/utils/executeSteps/index.js.map +1 -0
- package/_esm/src/utils/executeSteps/signatureStep.js +191 -0
- package/_esm/src/utils/executeSteps/signatureStep.js.map +1 -0
- package/_esm/src/utils/executeSteps/transactionStep.js +76 -0
- package/_esm/src/utils/executeSteps/transactionStep.js.map +1 -0
- package/_esm/src/utils/executeSteps/websocketHandlers.js +124 -0
- package/_esm/src/utils/executeSteps/websocketHandlers.js.map +1 -0
- package/_esm/src/utils/fetchChainConfigs.js +16 -0
- package/_esm/src/utils/fetchChainConfigs.js.map +1 -0
- package/_esm/src/utils/getCurrentStepData.js +24 -0
- package/_esm/src/utils/getCurrentStepData.js.map +1 -0
- package/_esm/src/utils/getTenderlyDetails.js +20 -0
- package/_esm/src/utils/getTenderlyDetails.js.map +1 -0
- package/_esm/src/utils/hyperliquid.js +90 -0
- package/_esm/src/utils/hyperliquid.js.map +1 -0
- package/_esm/src/utils/index.js +16 -0
- package/_esm/src/utils/index.js.map +1 -0
- package/_esm/src/utils/logger.js +34 -0
- package/_esm/src/utils/logger.js.map +1 -0
- package/_esm/src/utils/params.js +40 -0
- package/_esm/src/utils/params.js.map +1 -0
- package/_esm/src/utils/pollApi.js +57 -0
- package/_esm/src/utils/pollApi.js.map +1 -0
- package/_esm/src/utils/prepareBatchTransaction.js +31 -0
- package/_esm/src/utils/prepareBatchTransaction.js.map +1 -0
- package/_esm/src/utils/prepareCallTransaction.js +11 -0
- package/_esm/src/utils/prepareCallTransaction.js.map +1 -0
- package/_esm/src/utils/repeatUntilOk.js +23 -0
- package/_esm/src/utils/repeatUntilOk.js.map +1 -0
- package/_esm/src/utils/request.js +42 -0
- package/_esm/src/utils/request.js.map +1 -0
- package/_esm/src/utils/simulateContract.js +5 -0
- package/_esm/src/utils/simulateContract.js.map +1 -0
- package/_esm/src/utils/structuredClone.js +8 -0
- package/_esm/src/utils/structuredClone.js.map +1 -0
- package/_esm/src/utils/transaction.js +374 -0
- package/_esm/src/utils/transaction.js.map +1 -0
- package/_esm/src/utils/viemWallet.js +207 -0
- package/_esm/src/utils/viemWallet.js.map +1 -0
- package/_esm/src/utils/websocket.js +78 -0
- package/_esm/src/utils/websocket.js.map +1 -0
- package/_esm/src/version.js +2 -0
- package/_esm/src/version.js.map +1 -0
- package/_esm/tsconfig.build.tsbuildinfo +1 -0
- package/_types/src/actions/claimAppFees.d.ts +21 -0
- package/_types/src/actions/claimAppFees.d.ts.map +1 -0
- package/_types/src/actions/execute.d.ts +23 -0
- package/_types/src/actions/execute.d.ts.map +1 -0
- package/_types/src/actions/getAppFees.d.ts +12 -0
- package/_types/src/actions/getAppFees.d.ts.map +1 -0
- package/_types/src/actions/getPrice.d.ts +23 -0
- package/_types/src/actions/getPrice.d.ts.map +1 -0
- package/_types/src/actions/getQuote.d.ts +24 -0
- package/_types/src/actions/getQuote.d.ts.map +1 -0
- package/_types/src/actions/getSolverCapacity.d.ts +8 -0
- package/_types/src/actions/getSolverCapacity.d.ts.map +1 -0
- package/_types/src/actions/index.d.ts +7 -0
- package/_types/src/actions/index.d.ts.map +1 -0
- package/_types/src/client.d.ts +8039 -0
- package/_types/src/client.d.ts.map +1 -0
- package/_types/src/constants/address.d.ts +11 -0
- package/_types/src/constants/address.d.ts.map +1 -0
- package/_types/src/constants/bvm.d.ts +2 -0
- package/_types/src/constants/bvm.d.ts.map +1 -0
- package/_types/src/constants/index.d.ts +3 -0
- package/_types/src/constants/index.d.ts.map +1 -0
- package/_types/src/constants/servers.d.ts +6 -0
- package/_types/src/constants/servers.d.ts.map +1 -0
- package/_types/src/errors/DepositTransactionTimeoutError.d.ts +5 -0
- package/_types/src/errors/DepositTransactionTimeoutError.d.ts.map +1 -0
- package/_types/src/errors/SolverStatusTimeoutError.d.ts +5 -0
- package/_types/src/errors/SolverStatusTimeoutError.d.ts.map +1 -0
- package/_types/src/errors/TransactionConfirmationError.d.ts +9 -0
- package/_types/src/errors/TransactionConfirmationError.d.ts.map +1 -0
- package/_types/src/errors/index.d.ts +4 -0
- package/_types/src/errors/index.d.ts.map +1 -0
- package/_types/src/index.d.ts +7 -0
- package/_types/src/index.d.ts.map +1 -0
- package/_types/src/routes/index.d.ts +2 -0
- package/_types/src/routes/index.d.ts.map +1 -0
- package/_types/src/types/AdaptedWallet.d.ts +27 -0
- package/_types/src/types/AdaptedWallet.d.ts.map +1 -0
- package/_types/src/types/Execute.d.ts +64 -0
- package/_types/src/types/Execute.d.ts.map +1 -0
- package/_types/src/types/Progress.d.ts +17 -0
- package/_types/src/types/Progress.d.ts.map +1 -0
- package/_types/src/types/RelayChain.d.ts +47 -0
- package/_types/src/types/RelayChain.d.ts.map +1 -0
- package/_types/src/types/SignatureStepItem.d.ts +21 -0
- package/_types/src/types/SignatureStepItem.d.ts.map +1 -0
- package/_types/src/types/TransactionStepItem.d.ts +25 -0
- package/_types/src/types/TransactionStepItem.d.ts.map +1 -0
- package/_types/src/types/api.d.ts +4911 -0
- package/_types/src/types/api.d.ts.map +1 -0
- package/_types/src/types/index.d.ts +8 -0
- package/_types/src/types/index.d.ts.map +1 -0
- package/_types/src/utils/axios.d.ts +2 -0
- package/_types/src/utils/axios.d.ts.map +1 -0
- package/_types/src/utils/chain.d.ts +7 -0
- package/_types/src/utils/chain.d.ts.map +1 -0
- package/_types/src/utils/executeSteps/index.d.ts +34 -0
- package/_types/src/utils/executeSteps/index.d.ts.map +1 -0
- package/_types/src/utils/executeSteps/signatureStep.d.ts +21 -0
- package/_types/src/utils/executeSteps/signatureStep.d.ts.map +1 -0
- package/_types/src/utils/executeSteps/transactionStep.d.ts +25 -0
- package/_types/src/utils/executeSteps/transactionStep.d.ts.map +1 -0
- package/_types/src/utils/executeSteps/websocketHandlers.d.ts +21 -0
- package/_types/src/utils/executeSteps/websocketHandlers.d.ts.map +1 -0
- package/_types/src/utils/fetchChainConfigs.d.ts +3 -0
- package/_types/src/utils/fetchChainConfigs.d.ts.map +1 -0
- package/_types/src/utils/getCurrentStepData.d.ts +80 -0
- package/_types/src/utils/getCurrentStepData.d.ts.map +1 -0
- package/_types/src/utils/getTenderlyDetails.d.ts +6 -0
- package/_types/src/utils/getTenderlyDetails.d.ts.map +1 -0
- package/_types/src/utils/hyperliquid.d.ts +49 -0
- package/_types/src/utils/hyperliquid.d.ts.map +1 -0
- package/_types/src/utils/index.d.ts +16 -0
- package/_types/src/utils/index.d.ts.map +1 -0
- package/_types/src/utils/logger.d.ts +9 -0
- package/_types/src/utils/logger.d.ts.map +1 -0
- package/_types/src/utils/params.d.ts +27 -0
- package/_types/src/utils/params.d.ts.map +1 -0
- package/_types/src/utils/pollApi.d.ts +22 -0
- package/_types/src/utils/pollApi.d.ts.map +1 -0
- package/_types/src/utils/prepareBatchTransaction.d.ts +41 -0
- package/_types/src/utils/prepareBatchTransaction.d.ts.map +1 -0
- package/_types/src/utils/prepareCallTransaction.d.ts +6 -0
- package/_types/src/utils/prepareCallTransaction.d.ts.map +1 -0
- package/_types/src/utils/repeatUntilOk.d.ts +10 -0
- package/_types/src/utils/repeatUntilOk.d.ts.map +1 -0
- package/_types/src/utils/request.d.ts +11 -0
- package/_types/src/utils/request.d.ts.map +1 -0
- package/_types/src/utils/simulateContract.d.ts +4 -0
- package/_types/src/utils/simulateContract.d.ts.map +1 -0
- package/_types/src/utils/structuredClone.d.ts +2 -0
- package/_types/src/utils/structuredClone.d.ts.map +1 -0
- package/_types/src/utils/transaction.d.ts +12 -0
- package/_types/src/utils/transaction.d.ts.map +1 -0
- package/_types/src/utils/viemWallet.d.ts +5 -0
- package/_types/src/utils/viemWallet.d.ts.map +1 -0
- package/_types/src/utils/websocket.d.ts +30 -0
- package/_types/src/utils/websocket.d.ts.map +1 -0
- package/_types/src/version.d.ts +2 -0
- package/_types/src/version.d.ts.map +1 -0
- package/_types/tsconfig.build.tsbuildinfo +1 -0
- package/package.json +57 -0
- package/readme.md +37 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"type": "module","sideEffects":false}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { getClient } from '../client.js';
|
|
2
|
+
import { executeSteps, adaptViemWallet, safeStructuredClone, APIError } from '../utils/index.js';
|
|
3
|
+
import {} from 'viem';
|
|
4
|
+
import { isViemWalletClient } from '../utils/viemWallet.js';
|
|
5
|
+
/**
|
|
6
|
+
* Claim app fees for a wallet and execute the returned steps
|
|
7
|
+
* @param parameters - {@link ClaimAppFeesParameters}
|
|
8
|
+
*/
|
|
9
|
+
export async function claimAppFees(parameters) {
|
|
10
|
+
const { wallet, chainId, currency, recipient, onProgress } = parameters;
|
|
11
|
+
const client = getClient();
|
|
12
|
+
if (!client.baseApiUrl || !client.baseApiUrl.length) {
|
|
13
|
+
throw new ReferenceError('RelayClient missing api url configuration');
|
|
14
|
+
}
|
|
15
|
+
let adaptedWallet;
|
|
16
|
+
if (wallet) {
|
|
17
|
+
adaptedWallet = isViemWalletClient(wallet)
|
|
18
|
+
? adaptViemWallet(wallet)
|
|
19
|
+
: wallet;
|
|
20
|
+
}
|
|
21
|
+
if (!adaptedWallet) {
|
|
22
|
+
throw new Error('AdaptedWallet is required to execute claim steps');
|
|
23
|
+
}
|
|
24
|
+
const address = await adaptedWallet.address();
|
|
25
|
+
const abortController = new AbortController();
|
|
26
|
+
const request = {
|
|
27
|
+
url: `${client.baseApiUrl}/app-fees/${address}/claim`,
|
|
28
|
+
method: 'post',
|
|
29
|
+
data: { chainId, currency, recipient: recipient || address },
|
|
30
|
+
signal: abortController.signal
|
|
31
|
+
};
|
|
32
|
+
try {
|
|
33
|
+
const res = await client.utils.axios.request(request);
|
|
34
|
+
if (res.status !== 200) {
|
|
35
|
+
throw new APIError(res?.data?.message, res.status, res.data);
|
|
36
|
+
}
|
|
37
|
+
const steps = res.data.steps || [];
|
|
38
|
+
const executeJson = safeStructuredClone({
|
|
39
|
+
steps
|
|
40
|
+
});
|
|
41
|
+
const result = await executeSteps(chainId, request, adaptedWallet, (data) => {
|
|
42
|
+
if (abortController.signal.aborted) {
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
onProgress?.(data);
|
|
46
|
+
}, executeJson);
|
|
47
|
+
return { data: result, abortController };
|
|
48
|
+
}
|
|
49
|
+
catch (err) {
|
|
50
|
+
console.error(err);
|
|
51
|
+
throw err;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=claimAppFees.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claimAppFees.js","sourceRoot":"","sources":["../../../src/actions/claimAppFees.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,OAAO,EACL,YAAY,EACZ,eAAe,EACf,mBAAmB,EACnB,QAAQ,EACT,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAqB,MAAM,MAAM,CAAA;AACxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;AAmB3D;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,UAAkC;IAKlC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,UAAU,CAAA;IACvE,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;IAE1B,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;QACpD,MAAM,IAAI,cAAc,CAAC,2CAA2C,CAAC,CAAA;IACvE,CAAC;IAED,IAAI,aAAwC,CAAA;IAC5C,IAAI,MAAM,EAAE,CAAC;QACX,aAAa,GAAG,kBAAkB,CAAC,MAAM,CAAC;YACxC,CAAC,CAAC,eAAe,CAAC,MAAsB,CAAC;YACzC,CAAC,CAAC,MAAM,CAAA;IACZ,CAAC;IAED,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAA;IACrE,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,OAAO,EAAE,CAAA;IAE7C,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAA;IAE7C,MAAM,OAAO,GAAuB;QAClC,GAAG,EAAE,GAAG,MAAM,CAAC,UAAU,aAAa,OAAO,QAAQ;QACrD,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,IAAI,OAAO,EAAE;QAC5D,MAAM,EAAE,eAAe,CAAC,MAAM;KAC/B,CAAA;IAED,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QACrD,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YACvB,MAAM,IAAI,QAAQ,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,CAAA;QAC9D,CAAC;QACD,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAA;QAClC,MAAM,WAAW,GAAY,mBAAmB,CAAC;YAC/C,KAAK;SACN,CAAC,CAAA;QAEF,MAAM,MAAM,GAAG,MAAM,YAAY,CAC/B,OAAO,EACP,OAAO,EACP,aAAa,EACb,CAAC,IAAI,EAAE,EAAE;YACP,IAAI,eAAe,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnC,OAAM;YACR,CAAC;YACD,UAAU,EAAE,CAAC,IAAI,CAAC,CAAA;QACpB,CAAC,EACD,WAAW,CACZ,CAAA;QACD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,eAAe,EAAE,CAAA;IAC1C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAClB,MAAM,GAAG,CAAA;IACX,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { getClient } from '../client.js';
|
|
2
|
+
import { executeSteps, adaptViemWallet, getCurrentStepData, safeStructuredClone } from '../utils/index.js';
|
|
3
|
+
import {} from 'viem';
|
|
4
|
+
import { isViemWalletClient } from '../utils/viemWallet.js';
|
|
5
|
+
import { isDeadAddress } from '../constants/address.js';
|
|
6
|
+
/**
|
|
7
|
+
* Execute crosschain using Relay
|
|
8
|
+
* @param data.quote A Relay quote retrieved using {@link getQuote}
|
|
9
|
+
* @param data.depositGasLimit A gas limit to use in base units (wei, etc)
|
|
10
|
+
* @param data.wallet Wallet object that adheres to the AdaptedWakket interface or a viem WalletClient
|
|
11
|
+
* @param data.onProgress Callback to update UI state as execution progresses
|
|
12
|
+
* @param abortController Optional AbortController to cancel the execution
|
|
13
|
+
*/
|
|
14
|
+
export function execute(data) {
|
|
15
|
+
const { quote, wallet, depositGasLimit, onProgress } = data;
|
|
16
|
+
const client = getClient();
|
|
17
|
+
if (!client.baseApiUrl || !client.baseApiUrl.length) {
|
|
18
|
+
throw new ReferenceError('RelayClient missing api url configuration');
|
|
19
|
+
}
|
|
20
|
+
let adaptedWallet;
|
|
21
|
+
if (wallet) {
|
|
22
|
+
adaptedWallet = isViemWalletClient(wallet)
|
|
23
|
+
? adaptViemWallet(wallet)
|
|
24
|
+
: wallet;
|
|
25
|
+
}
|
|
26
|
+
try {
|
|
27
|
+
if (!adaptedWallet) {
|
|
28
|
+
throw new Error('AdaptedWallet is required to execute steps');
|
|
29
|
+
}
|
|
30
|
+
// Instantiate a new abort controller
|
|
31
|
+
const abortController = new AbortController();
|
|
32
|
+
const chainId = quote.details?.currencyIn?.currency?.chainId;
|
|
33
|
+
if (chainId === undefined) {
|
|
34
|
+
throw new Error('Missing chainId from quote');
|
|
35
|
+
}
|
|
36
|
+
if (isDeadAddress(quote?.details?.recipient)) {
|
|
37
|
+
throw new Error('Recipient should never be burn address');
|
|
38
|
+
}
|
|
39
|
+
if (isDeadAddress(quote?.details?.sender)) {
|
|
40
|
+
throw new Error('Sender should never be burn address');
|
|
41
|
+
}
|
|
42
|
+
const { request, ...restOfQuote } = quote;
|
|
43
|
+
const _quote = safeStructuredClone(restOfQuote);
|
|
44
|
+
// Build the promise that carries out the execution
|
|
45
|
+
const executionPromise = new Promise((resolve, reject) => {
|
|
46
|
+
executeSteps(chainId, request, adaptedWallet, ({ steps, fees, breakdown, details, refunded, error }) => {
|
|
47
|
+
if (abortController.signal.aborted) {
|
|
48
|
+
console.log('Relay SDK: Execution aborted, skipping progress callback');
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
const { currentStep, currentStepItem, txHashes } = getCurrentStepData(steps);
|
|
52
|
+
onProgress?.({
|
|
53
|
+
steps,
|
|
54
|
+
fees,
|
|
55
|
+
breakdown,
|
|
56
|
+
details,
|
|
57
|
+
currentStep,
|
|
58
|
+
currentStepItem,
|
|
59
|
+
txHashes,
|
|
60
|
+
refunded,
|
|
61
|
+
error
|
|
62
|
+
});
|
|
63
|
+
}, _quote, depositGasLimit
|
|
64
|
+
? {
|
|
65
|
+
deposit: {
|
|
66
|
+
gasLimit: depositGasLimit
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
: undefined)
|
|
70
|
+
.then((data) => {
|
|
71
|
+
resolve({ data, abortController });
|
|
72
|
+
})
|
|
73
|
+
.catch(reject);
|
|
74
|
+
});
|
|
75
|
+
executionPromise.abortController = abortController;
|
|
76
|
+
return executionPromise;
|
|
77
|
+
}
|
|
78
|
+
catch (err) {
|
|
79
|
+
console.error(err);
|
|
80
|
+
throw err;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=execute.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"execute.js","sourceRoot":"","sources":["../../../src/actions/execute.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import {} from 'axios';
|
|
2
|
+
import { axios } from '../utils/axios.js';
|
|
3
|
+
import { getClient } from '../client.js';
|
|
4
|
+
import { APIError } from '../utils/index.js';
|
|
5
|
+
/**
|
|
6
|
+
* Method to get app fee balances for a wallet
|
|
7
|
+
* @param parameters - {@link GetAppFeesParameters}
|
|
8
|
+
*/
|
|
9
|
+
export async function getAppFees(parameters) {
|
|
10
|
+
const { wallet } = parameters;
|
|
11
|
+
const client = getClient();
|
|
12
|
+
if (!client.baseApiUrl || !client.baseApiUrl.length) {
|
|
13
|
+
throw new ReferenceError('RelayClient missing api url configuration');
|
|
14
|
+
}
|
|
15
|
+
const request = {
|
|
16
|
+
url: `${client.baseApiUrl}/app-fees/${wallet}/balances`,
|
|
17
|
+
method: 'get'
|
|
18
|
+
};
|
|
19
|
+
const res = await axios.request(request);
|
|
20
|
+
if (res.status !== 200) {
|
|
21
|
+
throw new APIError(res?.data?.message, res.status, res.data);
|
|
22
|
+
}
|
|
23
|
+
return res.data.balances || [];
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=getAppFees.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getAppFees.js","sourceRoot":"","sources":["../../../src/actions/getAppFees.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,MAAM,OAAO,CAAA;AAC/C,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAe5C;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,UAAgC;IAEhC,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAA;IAC7B,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;IAE1B,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;QACpD,MAAM,IAAI,cAAc,CAAC,2CAA2C,CAAC,CAAA;IACvE,CAAC;IAED,MAAM,OAAO,GAAuB;QAClC,GAAG,EAAE,GAAG,MAAM,CAAC,UAAU,aAAa,MAAM,WAAW;QACvD,MAAM,EAAE,KAAK;KACd,CAAA;IAED,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IACxC,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QACvB,MAAM,IAAI,QAAQ,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,CAAA;IAC9D,CAAC;IACD,OAAO,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAA;AAChC,CAAC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import {} from 'axios';
|
|
2
|
+
import { axios } from '../utils/axios.js';
|
|
3
|
+
import {} from 'viem';
|
|
4
|
+
import prepareCallTransaction from '../utils/prepareCallTransaction.js';
|
|
5
|
+
import { isSimulateContractRequest, APIError } from '../utils/index.js';
|
|
6
|
+
import { getClient } from '../client.js';
|
|
7
|
+
import { getDeadAddress } from '../constants/address.js';
|
|
8
|
+
/**
|
|
9
|
+
* Method to get the price
|
|
10
|
+
* @param data - {@link GetPriceParameters}
|
|
11
|
+
*/
|
|
12
|
+
export async function getPrice(parameters) {
|
|
13
|
+
const { destinationChainId, destinationCurrency, originChainId, originCurrency, tradeType, amount = '0', user, recipient, options, txs } = parameters;
|
|
14
|
+
const client = getClient();
|
|
15
|
+
if (!client.baseApiUrl || !client.baseApiUrl.length) {
|
|
16
|
+
throw new ReferenceError('RelayClient missing api url configuration');
|
|
17
|
+
}
|
|
18
|
+
let preparedTransactions;
|
|
19
|
+
if (txs && txs.length > 0) {
|
|
20
|
+
preparedTransactions = txs.map((tx) => {
|
|
21
|
+
if (isSimulateContractRequest(tx)) {
|
|
22
|
+
return prepareCallTransaction(tx);
|
|
23
|
+
}
|
|
24
|
+
return tx;
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
const originChain = client.chains.find((chain) => chain.id === originChainId);
|
|
28
|
+
const deadAddress = getDeadAddress(originChain?.vmType, originChain?.id);
|
|
29
|
+
const query = {
|
|
30
|
+
user: user ?? deadAddress,
|
|
31
|
+
destinationCurrency,
|
|
32
|
+
destinationChainId,
|
|
33
|
+
originCurrency,
|
|
34
|
+
originChainId,
|
|
35
|
+
amount,
|
|
36
|
+
recipient: recipient ? recipient : user ?? deadAddress,
|
|
37
|
+
tradeType,
|
|
38
|
+
referrer: client.source || undefined,
|
|
39
|
+
txs: preparedTransactions,
|
|
40
|
+
...options
|
|
41
|
+
};
|
|
42
|
+
const request = {
|
|
43
|
+
url: `${client.baseApiUrl}/price`,
|
|
44
|
+
method: 'post',
|
|
45
|
+
data: query
|
|
46
|
+
};
|
|
47
|
+
const res = await axios.request(request);
|
|
48
|
+
if (res.status !== 200) {
|
|
49
|
+
throw new APIError(res?.data?.message, res.status, res.data);
|
|
50
|
+
}
|
|
51
|
+
return { ...res.data, request };
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=getPrice.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getPrice.js","sourceRoot":"","sources":["../../../src/actions/getPrice.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,MAAM,OAAO,CAAA;AAC/C,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AACzC,OAAO,EAAgB,MAAM,MAAM,CAAA;AACnC,OAAO,sBAAsB,MAAM,oCAAoC,CAAA;AACvE,OAAO,EACL,yBAAyB,EACzB,QAAQ,EAET,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAExC,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AA4BxD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,UAA8B;IAE9B,MAAM,EACJ,kBAAkB,EAClB,mBAAmB,EACnB,aAAa,EACb,cAAc,EACd,SAAS,EACT,MAAM,GAAG,GAAG,EACZ,IAAI,EACJ,SAAS,EACT,OAAO,EACP,GAAG,EACJ,GAAG,UAAU,CAAA;IAEd,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;IAE1B,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;QACpD,MAAM,IAAI,cAAc,CAAC,2CAA2C,CAAC,CAAA;IACvE,CAAC;IAED,IAAI,oBAAsC,CAAA;IAC1C,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,oBAAoB,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;YACpC,IAAI,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC;gBAClC,OAAO,sBAAsB,CAC3B,EAAoD,CACrD,CAAA;YACH,CAAC;YACD,OAAO,EAAE,CAAA;QACX,CAAC,CAAC,CAAA;IACJ,CAAC;IACD,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,aAAa,CAAC,CAAA;IAC7E,MAAM,WAAW,GAAG,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,CAAC,CAAA;IAExE,MAAM,KAAK,GAAc;QACvB,IAAI,EAAE,IAAI,IAAI,WAAW;QACzB,mBAAmB;QACnB,kBAAkB;QAClB,cAAc;QACd,aAAa;QACb,MAAM;QACN,SAAS,EAAE,SAAS,CAAC,CAAC,CAAE,SAAoB,CAAC,CAAC,CAAC,IAAI,IAAI,WAAW;QAClE,SAAS;QACT,QAAQ,EAAE,MAAM,CAAC,MAAM,IAAI,SAAS;QACpC,GAAG,EAAE,oBAAoB;QACzB,GAAG,OAAO;KACX,CAAA;IAED,MAAM,OAAO,GAAuB;QAClC,GAAG,EAAE,GAAG,MAAM,CAAC,UAAU,QAAQ;QACjC,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,KAAK;KACZ,CAAA;IAED,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IACxC,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QACvB,MAAM,IAAI,QAAQ,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,CAAA;IAC9D,CAAC;IACD,OAAO,EAAE,GAAG,GAAG,CAAC,IAAI,EAAE,OAAO,EAAa,CAAA;AAC5C,CAAC"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import {} from 'axios';
|
|
2
|
+
import { axios } from '../utils/axios.js';
|
|
3
|
+
import { zeroAddress } from 'viem';
|
|
4
|
+
import prepareCallTransaction from '../utils/prepareCallTransaction.js';
|
|
5
|
+
import { isSimulateContractRequest, APIError, adaptViemWallet } from '../utils/index.js';
|
|
6
|
+
import { isViemWalletClient } from '../utils/viemWallet.js';
|
|
7
|
+
import { getClient, RelayClient } from '../client.js';
|
|
8
|
+
import { getDeadAddress } from '../constants/address.js';
|
|
9
|
+
const getDefaultQuoteParameters = async (client, toChainId, chainId, recipient, adaptedWallet) => {
|
|
10
|
+
const fromChain = client.chains.find((chain) => chain.id === chainId);
|
|
11
|
+
const toChain = client.chains.find((chain) => chain.id === toChainId);
|
|
12
|
+
const originDeadAddress = fromChain
|
|
13
|
+
? getDeadAddress(fromChain.vmType, fromChain.id)
|
|
14
|
+
: undefined;
|
|
15
|
+
const destinationDeadAddress = toChain
|
|
16
|
+
? getDeadAddress(toChain.vmType, toChain.id)
|
|
17
|
+
: undefined;
|
|
18
|
+
let caller;
|
|
19
|
+
if (adaptedWallet) {
|
|
20
|
+
caller = await adaptedWallet.address();
|
|
21
|
+
}
|
|
22
|
+
return {
|
|
23
|
+
user: caller || originDeadAddress || zeroAddress,
|
|
24
|
+
recipient: recipient
|
|
25
|
+
? recipient
|
|
26
|
+
: caller || destinationDeadAddress || zeroAddress
|
|
27
|
+
};
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* Method to get a quote
|
|
31
|
+
* @param data - {@link GetQuoteParameters}
|
|
32
|
+
*/
|
|
33
|
+
export async function getQuote(parameters, includeDefaultParameters) {
|
|
34
|
+
const { toChainId, toCurrency, wallet, chainId, currency, tradeType, amount = '0', recipient, options, txs, user } = parameters;
|
|
35
|
+
const client = getClient();
|
|
36
|
+
if (!client.baseApiUrl || !client.baseApiUrl.length) {
|
|
37
|
+
throw new ReferenceError('RelayClient missing api url configuration');
|
|
38
|
+
}
|
|
39
|
+
let adaptedWallet;
|
|
40
|
+
if (wallet) {
|
|
41
|
+
adaptedWallet = isViemWalletClient(wallet)
|
|
42
|
+
? adaptViemWallet(wallet)
|
|
43
|
+
: wallet;
|
|
44
|
+
}
|
|
45
|
+
let preparedTransactions;
|
|
46
|
+
if (txs && txs.length > 0) {
|
|
47
|
+
preparedTransactions = txs.map((tx) => {
|
|
48
|
+
if (isSimulateContractRequest(tx)) {
|
|
49
|
+
return prepareCallTransaction(tx);
|
|
50
|
+
}
|
|
51
|
+
return tx;
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
let defaultParameters = undefined;
|
|
55
|
+
if (includeDefaultParameters) {
|
|
56
|
+
defaultParameters = await getDefaultQuoteParameters(client, toChainId, chainId, recipient, adaptedWallet);
|
|
57
|
+
}
|
|
58
|
+
if (!user && !defaultParameters?.user) {
|
|
59
|
+
throw new Error('User is required');
|
|
60
|
+
}
|
|
61
|
+
if (!recipient && !defaultParameters?.recipient) {
|
|
62
|
+
throw new Error('Recipient is required');
|
|
63
|
+
}
|
|
64
|
+
const query = {
|
|
65
|
+
user: includeDefaultParameters
|
|
66
|
+
? defaultParameters?.user
|
|
67
|
+
: user,
|
|
68
|
+
destinationCurrency: toCurrency,
|
|
69
|
+
destinationChainId: toChainId,
|
|
70
|
+
originCurrency: currency,
|
|
71
|
+
originChainId: chainId,
|
|
72
|
+
amount,
|
|
73
|
+
recipient: includeDefaultParameters
|
|
74
|
+
? defaultParameters?.recipient
|
|
75
|
+
: recipient,
|
|
76
|
+
tradeType,
|
|
77
|
+
referrer: client.source || undefined,
|
|
78
|
+
txs: preparedTransactions,
|
|
79
|
+
...options
|
|
80
|
+
};
|
|
81
|
+
const request = {
|
|
82
|
+
url: `${client.baseApiUrl}/quote`,
|
|
83
|
+
method: 'post',
|
|
84
|
+
data: query
|
|
85
|
+
};
|
|
86
|
+
const res = await axios.request(request);
|
|
87
|
+
if (res.status !== 200) {
|
|
88
|
+
throw new APIError(res?.data?.message, res.status, res.data);
|
|
89
|
+
}
|
|
90
|
+
return { ...res.data, request };
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=getQuote.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getQuote.js","sourceRoot":"","sources":["../../../src/actions/getQuote.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { axios } from '../utils/axios.js';
|
|
2
|
+
import { getClient } from '../client.js';
|
|
3
|
+
import { zeroAddress } from 'viem';
|
|
4
|
+
export async function getSolverCapacity(data, axiosInstance = axios) {
|
|
5
|
+
const client = getClient();
|
|
6
|
+
if (!client) {
|
|
7
|
+
throw new Error('Client not initialized');
|
|
8
|
+
}
|
|
9
|
+
// Fallback to zero address if user is not provided
|
|
10
|
+
data.user = data.user || zeroAddress;
|
|
11
|
+
data.currency = data.currency;
|
|
12
|
+
const response = await axiosInstance.get(`${client.baseApiUrl}/config/v2`, { params: data });
|
|
13
|
+
if (response.data) {
|
|
14
|
+
return response.data;
|
|
15
|
+
}
|
|
16
|
+
throw 'No solver capacity data';
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=getSolverCapacity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getSolverCapacity.js","sourceRoot":"","sources":["../../../src/actions/getSolverCapacity.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,MAAM,CAAA;AAiBlC,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,IAA0B,EAC1B,gBAA+B,KAAK;IAEpC,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;IAE1B,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAA;IAC3C,CAAC;IAED,mDAAmD;IACnD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,WAAW,CAAA;IACpC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAA;IAE7B,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,GAAG,CACtC,GAAG,MAAM,CAAC,UAAU,YAAY,EAChC,EAAE,MAAM,EAAE,IAAI,EAAE,CACjB,CAAA;IAED,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;QAClB,OAAO,QAAQ,CAAC,IAAI,CAAA;IACtB,CAAC;IACD,MAAM,yBAAyB,CAAA;AACjC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/actions/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,wBAAwB,CAAA;AACtC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,mBAAmB,CAAA"}
|
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
import { arbitrum, arbitrumNova, base, baseGoerli, mainnet, optimism, sepolia, zora } from 'viem/chains';
|
|
2
|
+
import { LogLevel, log as logUtil } from './utils/logger.js';
|
|
3
|
+
import * as actions from './actions/index.js';
|
|
4
|
+
import * as utils from './utils/index.js';
|
|
5
|
+
import { MAINNET_RELAY_API, MAINNET_RELAY_WS } from './constants/servers.js';
|
|
6
|
+
import { SDK_VERSION } from './version.js';
|
|
7
|
+
let _client;
|
|
8
|
+
const _backupChains = [
|
|
9
|
+
mainnet,
|
|
10
|
+
base,
|
|
11
|
+
zora,
|
|
12
|
+
optimism,
|
|
13
|
+
arbitrum,
|
|
14
|
+
arbitrumNova
|
|
15
|
+
].map((chain) => utils.convertViemChainToRelayChain(chain));
|
|
16
|
+
const _backupTestnetChains = [sepolia, baseGoerli].map((chain) => utils.convertViemChainToRelayChain(chain));
|
|
17
|
+
export class RelayClient {
|
|
18
|
+
log(message, level = LogLevel.Info) {
|
|
19
|
+
return logUtil(message, level, this.logLevel);
|
|
20
|
+
}
|
|
21
|
+
constructor(options) {
|
|
22
|
+
Object.defineProperty(this, "version", {
|
|
23
|
+
enumerable: true,
|
|
24
|
+
configurable: true,
|
|
25
|
+
writable: true,
|
|
26
|
+
value: void 0
|
|
27
|
+
});
|
|
28
|
+
Object.defineProperty(this, "uiVersion", {
|
|
29
|
+
enumerable: true,
|
|
30
|
+
configurable: true,
|
|
31
|
+
writable: true,
|
|
32
|
+
value: void 0
|
|
33
|
+
});
|
|
34
|
+
Object.defineProperty(this, "baseApiUrl", {
|
|
35
|
+
enumerable: true,
|
|
36
|
+
configurable: true,
|
|
37
|
+
writable: true,
|
|
38
|
+
value: void 0
|
|
39
|
+
});
|
|
40
|
+
Object.defineProperty(this, "source", {
|
|
41
|
+
enumerable: true,
|
|
42
|
+
configurable: true,
|
|
43
|
+
writable: true,
|
|
44
|
+
value: void 0
|
|
45
|
+
});
|
|
46
|
+
Object.defineProperty(this, "logLevel", {
|
|
47
|
+
enumerable: true,
|
|
48
|
+
configurable: true,
|
|
49
|
+
writable: true,
|
|
50
|
+
value: void 0
|
|
51
|
+
});
|
|
52
|
+
Object.defineProperty(this, "pollingInterval", {
|
|
53
|
+
enumerable: true,
|
|
54
|
+
configurable: true,
|
|
55
|
+
writable: true,
|
|
56
|
+
value: void 0
|
|
57
|
+
});
|
|
58
|
+
Object.defineProperty(this, "confirmationPollingInterval", {
|
|
59
|
+
enumerable: true,
|
|
60
|
+
configurable: true,
|
|
61
|
+
writable: true,
|
|
62
|
+
value: void 0
|
|
63
|
+
});
|
|
64
|
+
Object.defineProperty(this, "maxPollingAttemptsBeforeTimeout", {
|
|
65
|
+
enumerable: true,
|
|
66
|
+
configurable: true,
|
|
67
|
+
writable: true,
|
|
68
|
+
value: void 0
|
|
69
|
+
});
|
|
70
|
+
Object.defineProperty(this, "useGasFeeEstimations", {
|
|
71
|
+
enumerable: true,
|
|
72
|
+
configurable: true,
|
|
73
|
+
writable: true,
|
|
74
|
+
value: void 0
|
|
75
|
+
});
|
|
76
|
+
Object.defineProperty(this, "chains", {
|
|
77
|
+
enumerable: true,
|
|
78
|
+
configurable: true,
|
|
79
|
+
writable: true,
|
|
80
|
+
value: void 0
|
|
81
|
+
});
|
|
82
|
+
Object.defineProperty(this, "websocketEnabled", {
|
|
83
|
+
enumerable: true,
|
|
84
|
+
configurable: true,
|
|
85
|
+
writable: true,
|
|
86
|
+
value: void 0
|
|
87
|
+
});
|
|
88
|
+
Object.defineProperty(this, "websocketUrl", {
|
|
89
|
+
enumerable: true,
|
|
90
|
+
configurable: true,
|
|
91
|
+
writable: true,
|
|
92
|
+
value: void 0
|
|
93
|
+
});
|
|
94
|
+
Object.defineProperty(this, "utils", {
|
|
95
|
+
enumerable: true,
|
|
96
|
+
configurable: true,
|
|
97
|
+
writable: true,
|
|
98
|
+
value: { ...utils }
|
|
99
|
+
});
|
|
100
|
+
Object.defineProperty(this, "actions", {
|
|
101
|
+
enumerable: true,
|
|
102
|
+
configurable: true,
|
|
103
|
+
writable: true,
|
|
104
|
+
value: actions
|
|
105
|
+
});
|
|
106
|
+
this.version = SDK_VERSION;
|
|
107
|
+
this.uiVersion = options.uiVersion;
|
|
108
|
+
this.baseApiUrl = options.baseApiUrl ?? MAINNET_RELAY_API;
|
|
109
|
+
this.logLevel =
|
|
110
|
+
options.logLevel !== undefined ? options.logLevel : LogLevel.None;
|
|
111
|
+
this.pollingInterval = options.pollingInterval;
|
|
112
|
+
this.maxPollingAttemptsBeforeTimeout =
|
|
113
|
+
options.maxPollingAttemptsBeforeTimeout;
|
|
114
|
+
this.useGasFeeEstimations = options.useGasFeeEstimations ?? true;
|
|
115
|
+
this.websocketEnabled = options.websocket?.enabled ?? false;
|
|
116
|
+
this.websocketUrl = options.websocket?.url ?? MAINNET_RELAY_WS;
|
|
117
|
+
if (options.chains) {
|
|
118
|
+
this.chains = options.chains;
|
|
119
|
+
}
|
|
120
|
+
else if (options.baseApiUrl?.includes('testnets')) {
|
|
121
|
+
this.chains = _backupTestnetChains;
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
this.chains = _backupChains;
|
|
125
|
+
}
|
|
126
|
+
if (!options.source) {
|
|
127
|
+
if (typeof window !== 'undefined') {
|
|
128
|
+
let host = location.hostname;
|
|
129
|
+
if (host.indexOf('www.') === 0) {
|
|
130
|
+
host = host.replace('www.', '');
|
|
131
|
+
}
|
|
132
|
+
this.source = host;
|
|
133
|
+
console.warn('RelaySDK automatically generated a source based on the url, we recommend providing a source when initializing the sdk. Refer to our docs for steps on how to do this: https://docs.relay.link/references/sdk/getting-started#configuration');
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
else {
|
|
137
|
+
this.source = options.source;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
configure(options) {
|
|
141
|
+
this.baseApiUrl = options.baseApiUrl ? options.baseApiUrl : this.baseApiUrl;
|
|
142
|
+
this.source = options.source ? options.source : this.source;
|
|
143
|
+
this.logLevel =
|
|
144
|
+
options.logLevel !== undefined ? options.logLevel : LogLevel.None;
|
|
145
|
+
this.pollingInterval = options.pollingInterval
|
|
146
|
+
? options.pollingInterval
|
|
147
|
+
: this.pollingInterval;
|
|
148
|
+
this.confirmationPollingInterval = options.confirmationPollingInterval
|
|
149
|
+
? options.confirmationPollingInterval
|
|
150
|
+
: this.confirmationPollingInterval;
|
|
151
|
+
this.maxPollingAttemptsBeforeTimeout =
|
|
152
|
+
options.maxPollingAttemptsBeforeTimeout
|
|
153
|
+
? options.maxPollingAttemptsBeforeTimeout
|
|
154
|
+
: this.maxPollingAttemptsBeforeTimeout;
|
|
155
|
+
this.useGasFeeEstimations =
|
|
156
|
+
options.useGasFeeEstimations !== undefined
|
|
157
|
+
? options.useGasFeeEstimations
|
|
158
|
+
: this.useGasFeeEstimations;
|
|
159
|
+
this.websocketEnabled =
|
|
160
|
+
options.websocket?.enabled !== undefined
|
|
161
|
+
? options.websocket.enabled
|
|
162
|
+
: this.websocketEnabled;
|
|
163
|
+
this.websocketUrl = options.websocket?.url || this.websocketUrl;
|
|
164
|
+
if (options.logger) {
|
|
165
|
+
this.log = options.logger;
|
|
166
|
+
}
|
|
167
|
+
else {
|
|
168
|
+
this.log = (message, level = LogLevel.Info) => {
|
|
169
|
+
logUtil(message, level, this.logLevel);
|
|
170
|
+
};
|
|
171
|
+
}
|
|
172
|
+
if (options.chains) {
|
|
173
|
+
this.chains = options.chains;
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
export async function configureDynamicChains() {
|
|
178
|
+
try {
|
|
179
|
+
const chains = await utils.fetchChainConfigs(_client.baseApiUrl, _client.source);
|
|
180
|
+
_client.chains = chains;
|
|
181
|
+
return chains;
|
|
182
|
+
}
|
|
183
|
+
catch (e) {
|
|
184
|
+
_client.log(['Failed to fetch remote chain configuration, falling back', e], LogLevel.Error);
|
|
185
|
+
throw e;
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
export function getClient() {
|
|
189
|
+
return _client;
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* Creates a Relay Client
|
|
193
|
+
*
|
|
194
|
+
* - Docs: https://docs.relay.link/references/sdk/createClient
|
|
195
|
+
*
|
|
196
|
+
* @param options - {@link RelayClientOptions}
|
|
197
|
+
* @returns A Relay Client. {@link RelayClient}
|
|
198
|
+
*
|
|
199
|
+
* @example
|
|
200
|
+
* import { createClient, LogLevel, MAINNET_RELAY_API } from '@relayprotocol/relay-sdk'
|
|
201
|
+
*
|
|
202
|
+
* const relayClient = createClient({
|
|
203
|
+
* baseApiUrl: MAINNET_RELAY_API,
|
|
204
|
+
* source: "YOUR-SOURCE",
|
|
205
|
+
* logLevel: LogLevel.Verbose,
|
|
206
|
+
* })
|
|
207
|
+
*/
|
|
208
|
+
export function createClient(options) {
|
|
209
|
+
if (!_client) {
|
|
210
|
+
_client = new RelayClient({ ...options });
|
|
211
|
+
}
|
|
212
|
+
else {
|
|
213
|
+
_client.configure(options);
|
|
214
|
+
}
|
|
215
|
+
return _client;
|
|
216
|
+
}
|
|
217
|
+
//# 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,43 @@
|
|
|
1
|
+
export const evmDeadAddress = '0x000000000000000000000000000000000000dead';
|
|
2
|
+
export const solDeadAddress = 'CbKGgVKLJFb8bBrf58DnAkdryX6ubewVytn7X957YwNr';
|
|
3
|
+
export const eclipseDeadAddress = 'CrfbABN2sSvmoZLu9eDDfXpaC2nHg42R7AXbHs9eg4S9';
|
|
4
|
+
export const bitcoinDeadAddress = 'bc1q4vxn43l44h30nkluqfxd9eckf45vr2awz38lwa';
|
|
5
|
+
export const tronDeadAddress = 'THa7BwoPfacfiELa63pbmm3g5PGKYmtJyt';
|
|
6
|
+
export const zeroDeadAddress = '0x00000000000000000000000000000000000dead0';
|
|
7
|
+
export const suiDeadAddress = '0x000000000000000000000000000000000000000000000000000000000000dead';
|
|
8
|
+
const eclipseId = 9286185;
|
|
9
|
+
const zeroChainId = 543210;
|
|
10
|
+
export const getDeadAddress = (vmType, chainId) => {
|
|
11
|
+
if (vmType === 'svm') {
|
|
12
|
+
return chainId === eclipseId ? eclipseDeadAddress : solDeadAddress;
|
|
13
|
+
}
|
|
14
|
+
else if (vmType === 'bvm') {
|
|
15
|
+
return bitcoinDeadAddress;
|
|
16
|
+
}
|
|
17
|
+
else if (chainId === zeroChainId) {
|
|
18
|
+
return zeroDeadAddress;
|
|
19
|
+
}
|
|
20
|
+
else if (vmType === 'tvm') {
|
|
21
|
+
return tronDeadAddress;
|
|
22
|
+
}
|
|
23
|
+
else if (vmType === 'suivm') {
|
|
24
|
+
return suiDeadAddress;
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
return evmDeadAddress;
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
export const isDeadAddress = (address) => {
|
|
31
|
+
if (!address) {
|
|
32
|
+
return false;
|
|
33
|
+
}
|
|
34
|
+
if (address === eclipseDeadAddress ||
|
|
35
|
+
address === solDeadAddress ||
|
|
36
|
+
address === bitcoinDeadAddress ||
|
|
37
|
+
address === evmDeadAddress ||
|
|
38
|
+
address === suiDeadAddress) {
|
|
39
|
+
return true;
|
|
40
|
+
}
|
|
41
|
+
return false;
|
|
42
|
+
};
|
|
43
|
+
//# sourceMappingURL=address.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"address.js","sourceRoot":"","sources":["../../../src/constants/address.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,cAAc,GACzB,4CAAqD,CAAA;AACvD,MAAM,CAAC,MAAM,cAAc,GACzB,8CAAuD,CAAA;AACzD,MAAM,CAAC,MAAM,kBAAkB,GAC7B,8CAAuD,CAAA;AACzD,MAAM,CAAC,MAAM,kBAAkB,GAAG,4CAA4C,CAAA;AAC9E,MAAM,CAAC,MAAM,eAAe,GAAG,oCAAoC,CAAA;AACnE,MAAM,CAAC,MAAM,eAAe,GAAG,4CAA4C,CAAA;AAC3E,MAAM,CAAC,MAAM,cAAc,GACzB,oEAAoE,CAAA;AAEtE,MAAM,SAAS,GAAG,OAAO,CAAA;AACzB,MAAM,WAAW,GAAG,MAAM,CAAA;AAE1B,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,MAAgB,EAAE,OAAgB,EAAE,EAAE;IACnE,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;QACrB,OAAO,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,cAAc,CAAA;IACpE,CAAC;SAAM,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;QAC5B,OAAO,kBAAkB,CAAA;IAC3B,CAAC;SAAM,IAAI,OAAO,KAAK,WAAW,EAAE,CAAC;QACnC,OAAO,eAAe,CAAA;IACxB,CAAC;SAAM,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;QAC5B,OAAO,eAAe,CAAA;IACxB,CAAC;SAAM,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;QAC9B,OAAO,cAAc,CAAA;IACvB,CAAC;SAAM,CAAC;QACN,OAAO,cAAc,CAAA;IACvB,CAAC;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,OAAgB,EAAE,EAAE;IAChD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,KAAK,CAAA;IACd,CAAC;IAED,IACE,OAAO,KAAK,kBAAkB;QAC9B,OAAO,KAAK,cAAc;QAC1B,OAAO,KAAK,kBAAkB;QAC9B,OAAO,KAAK,cAAc;QAC1B,OAAO,KAAK,cAAc,EAC1B,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAED,OAAO,KAAK,CAAA;AACd,CAAC,CAAA"}
|