@0xsquid/react-hooks 7.1.0 → 7.1.1-beta.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/dist/core/client/index.d.ts +2 -0
- package/dist/core/client/index.js +3 -0
- package/dist/core/client/index.js.map +1 -1
- package/dist/core/connectors/bitcoin/index.d.ts +0 -8
- package/dist/core/connectors/bitcoin/wallets/keplr.d.ts +1 -1
- package/dist/core/connectors/bitcoin/wallets/phantom.d.ts +1 -1
- package/dist/core/connectors/bitcoin/wallets/unisat.d.ts +1 -1
- package/dist/core/connectors/xrpl/CrossMark.d.ts +13 -0
- package/dist/core/connectors/xrpl/CrossMark.js +76 -0
- package/dist/core/connectors/xrpl/CrossMark.js.map +1 -0
- package/dist/core/connectors/xrpl/Xaman.d.ts +16 -0
- package/dist/core/connectors/xrpl/Xaman.js +80 -0
- package/dist/core/connectors/xrpl/Xaman.js.map +1 -0
- package/dist/core/connectors/xrpl/XamanQr.d.ts +15 -0
- package/dist/core/connectors/xrpl/XamanQr.js +78 -0
- package/dist/core/connectors/xrpl/XamanQr.js.map +1 -0
- package/dist/core/connectors/xrpl/XrplMetamaskSnap.d.ts +35 -0
- package/dist/core/connectors/xrpl/XrplMetamaskSnap.js +176 -0
- package/dist/core/connectors/xrpl/XrplMetamaskSnap.js.map +1 -0
- package/dist/core/constants.d.ts +9 -2
- package/dist/core/constants.js +15 -2
- package/dist/core/constants.js.map +1 -1
- package/dist/core/index.d.ts +1 -1
- package/dist/core/index.js +1 -1
- package/dist/core/index.js.map +1 -1
- package/dist/core/multicall3.d.ts +5 -1
- package/dist/core/multicall3.js +21 -1
- package/dist/core/multicall3.js.map +1 -1
- package/dist/core/providers/BitcoinProvider.d.ts +17 -0
- package/dist/core/providers/BitcoinProvider.js +15 -0
- package/dist/core/providers/BitcoinProvider.js.map +1 -0
- package/dist/core/providers/EvmProvider.d.ts +20 -0
- package/dist/core/providers/EvmProvider.js +15 -0
- package/dist/core/providers/EvmProvider.js.map +1 -0
- package/dist/core/providers/SolanaProvider.d.ts +10 -15
- package/dist/core/providers/SolanaProvider.js.map +1 -1
- package/dist/core/providers/SuiProvider.d.ts +1 -0
- package/dist/core/providers/SuiProvider.js.map +1 -1
- package/dist/core/providers/XrplProvider.d.ts +17 -0
- package/dist/core/providers/XrplProvider.js +15 -0
- package/dist/core/providers/XrplProvider.js.map +1 -0
- package/dist/core/queries/queries-keys.d.ts +9 -1
- package/dist/core/queries/queries-keys.js +33 -0
- package/dist/core/queries/queries-keys.js.map +1 -1
- package/dist/core/types/bitcoin.d.ts +8 -0
- package/dist/core/types/bitcoin.js +2 -0
- package/dist/core/types/bitcoin.js.map +1 -0
- package/dist/core/types/event.d.ts +7 -0
- package/dist/core/types/evm.d.ts +2 -0
- package/dist/core/types/evm.js +2 -0
- package/dist/core/types/evm.js.map +1 -0
- package/dist/core/types/index.d.ts +2 -1
- package/dist/core/types/index.js +2 -1
- package/dist/core/types/index.js.map +1 -1
- package/dist/core/types/solana.d.ts +2 -0
- package/dist/core/types/solana.js +2 -0
- package/dist/core/types/solana.js.map +1 -0
- package/dist/core/types/sui.d.ts +3 -2
- package/dist/core/types/wallet.d.ts +47 -32
- package/dist/core/types/wallet.js +4 -15
- package/dist/core/types/wallet.js.map +1 -1
- package/dist/core/types/xrpl.d.ts +70 -0
- package/dist/core/types/xrpl.js +20 -0
- package/dist/core/types/xrpl.js.map +1 -0
- package/dist/core/wagmiConfig.js +14 -1
- package/dist/core/wagmiConfig.js.map +1 -1
- package/dist/core/wallets.d.ts +1 -3
- package/dist/core/wallets.js +65 -345
- package/dist/core/wallets.js.map +1 -1
- package/dist/hooks/bitcoin/useBitcoin.d.ts +2 -0
- package/dist/hooks/bitcoin/useBitcoin.js +19 -0
- package/dist/hooks/bitcoin/useBitcoin.js.map +1 -0
- package/dist/hooks/evm/useEvm.d.ts +2 -0
- package/dist/hooks/evm/useEvm.js +77 -0
- package/dist/hooks/evm/useEvm.js.map +1 -0
- package/dist/hooks/evm/useEvmWallets.d.ts +4 -0
- package/dist/hooks/evm/useEvmWallets.js +13 -0
- package/dist/hooks/evm/useEvmWallets.js.map +1 -0
- package/dist/hooks/index.d.ts +2 -0
- package/dist/hooks/index.js +2 -0
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/solana/useSolana.d.ts +2 -9
- package/dist/hooks/solana/useSolana.js +60 -84
- package/dist/hooks/solana/useSolana.js.map +1 -1
- package/dist/hooks/solana/useSolanaWallets.d.ts +4 -0
- package/dist/hooks/solana/useSolanaWallets.js +8 -0
- package/dist/hooks/solana/useSolanaWallets.js.map +1 -0
- package/dist/hooks/store/useAddressBookStore.d.ts +1 -1
- package/dist/hooks/store/useAddressBookStore.js +6 -2
- package/dist/hooks/store/useAddressBookStore.js.map +1 -1
- package/dist/hooks/store/useWalletStore.d.ts +22 -3
- package/dist/hooks/store/useWalletStore.js +20 -2
- package/dist/hooks/store/useWalletStore.js.map +1 -1
- package/dist/hooks/sui/useSui.js +60 -6
- package/dist/hooks/sui/useSui.js.map +1 -1
- package/dist/hooks/sui/useSuiWallets.d.ts +0 -3
- package/dist/hooks/sui/useSuiWallets.js +18 -37
- package/dist/hooks/sui/useSuiWallets.js.map +1 -1
- package/dist/hooks/tokens/useAllConnectedWalletBalances.js +11 -0
- package/dist/hooks/tokens/useAllConnectedWalletBalances.js.map +1 -1
- package/dist/hooks/tokens/useAllTokensWithBalanceForChainType.js +13 -2
- package/dist/hooks/tokens/useAllTokensWithBalanceForChainType.js.map +1 -1
- package/dist/hooks/tokens/useBalance.d.ts +1 -0
- package/dist/hooks/tokens/useBalance.js +22 -1
- package/dist/hooks/tokens/useBalance.js.map +1 -1
- package/dist/hooks/tokens/useMultiChainBalance.js +10 -1
- package/dist/hooks/tokens/useMultiChainBalance.js.map +1 -1
- package/dist/hooks/tokens/useNativeBalance.d.ts +1 -0
- package/dist/hooks/tokens/useNativeBalance.js +33 -1
- package/dist/hooks/tokens/useNativeBalance.js.map +1 -1
- package/dist/hooks/tokens/useNativeTokenForChain.js +3 -1
- package/dist/hooks/tokens/useNativeTokenForChain.js.map +1 -1
- package/dist/hooks/tokens/useSquidTokens.d.ts +1 -0
- package/dist/hooks/tokens/useSquidTokens.js +6 -1
- package/dist/hooks/tokens/useSquidTokens.js.map +1 -1
- package/dist/hooks/transaction/send/useSendTransaction.d.ts +1 -1
- package/dist/hooks/transaction/send/useSendTransaction.js +28 -3
- package/dist/hooks/transaction/send/useSendTransaction.js.map +1 -1
- package/dist/hooks/transaction/useAllTransactionsStatus.js +7 -0
- package/dist/hooks/transaction/useAllTransactionsStatus.js.map +1 -1
- package/dist/hooks/transaction/useExecuteTransaction.d.ts +1 -0
- package/dist/hooks/transaction/useExecuteTransaction.js +60 -6
- package/dist/hooks/transaction/useExecuteTransaction.js.map +1 -1
- package/dist/hooks/transaction/useSendTransactionStatus.js +14 -4
- package/dist/hooks/transaction/useSendTransactionStatus.js.map +1 -1
- package/dist/hooks/wallet/useAutoConnect.js +13 -9
- package/dist/hooks/wallet/useAutoConnect.js.map +1 -1
- package/dist/hooks/wallet/useMultiChainWallet.d.ts +241 -0
- package/dist/hooks/wallet/useMultiChainWallet.js +16 -0
- package/dist/hooks/wallet/useMultiChainWallet.js.map +1 -1
- package/dist/hooks/wallet/useSigner.d.ts +3 -3
- package/dist/hooks/wallet/useSigner.js +9 -19
- package/dist/hooks/wallet/useSigner.js.map +1 -1
- package/dist/hooks/wallet/useStandardWallets.d.ts +9 -0
- package/dist/hooks/wallet/useStandardWallets.js +26 -0
- package/dist/hooks/wallet/useStandardWallets.js.map +1 -0
- package/dist/hooks/wallet/useWallet.d.ts +252 -8
- package/dist/hooks/wallet/useWallet.js +47 -51
- package/dist/hooks/wallet/useWallet.js.map +1 -1
- package/dist/hooks/wallet/useWallets.js +18 -21
- package/dist/hooks/wallet/useWallets.js.map +1 -1
- package/dist/hooks/xrpl/useXrpl.d.ts +2 -0
- package/dist/hooks/xrpl/useXrpl.js +21 -0
- package/dist/hooks/xrpl/useXrpl.js.map +1 -0
- package/dist/hooks/xrpl/useXrplTrustLine.d.ts +17 -0
- package/dist/hooks/xrpl/useXrplTrustLine.js +137 -0
- package/dist/hooks/xrpl/useXrplTrustLine.js.map +1 -0
- package/dist/hooks/xrpl/useXrplWallets.d.ts +43 -0
- package/dist/hooks/xrpl/useXrplWallets.js +46 -0
- package/dist/hooks/xrpl/useXrplWallets.js.map +1 -0
- package/dist/provider/index.js +10 -4
- package/dist/provider/index.js.map +1 -1
- package/dist/services/external/onrampAdapter.js +2 -1
- package/dist/services/external/onrampAdapter.js.map +1 -1
- package/dist/services/external/rpcService.d.ts +2 -0
- package/dist/services/external/rpcService.js +30 -4
- package/dist/services/external/rpcService.js.map +1 -1
- package/dist/services/external/websocket.d.ts +6 -0
- package/dist/services/external/websocket.js +34 -0
- package/dist/services/external/websocket.js.map +1 -0
- package/dist/services/external/xaman.d.ts +30 -0
- package/dist/services/external/xaman.js +46 -0
- package/dist/services/external/xaman.js.map +1 -0
- package/dist/services/external/xrplRpcClient.d.ts +39 -0
- package/dist/services/external/xrplRpcClient.js +167 -0
- package/dist/services/external/xrplRpcClient.js.map +1 -0
- package/dist/services/index.d.ts +1 -0
- package/dist/services/index.js +1 -0
- package/dist/services/index.js.map +1 -1
- package/dist/services/internal/bitcoinService.d.ts +0 -3
- package/dist/services/internal/bitcoinService.js +0 -31
- package/dist/services/internal/bitcoinService.js.map +1 -1
- package/dist/services/internal/errorService.js +1 -1
- package/dist/services/internal/errorService.js.map +1 -1
- package/dist/services/internal/eventService.d.ts +15 -0
- package/dist/services/internal/eventService.js +21 -0
- package/dist/services/internal/eventService.js.map +1 -1
- package/dist/services/internal/evmService.d.ts +8 -7
- package/dist/services/internal/evmService.js +36 -12
- package/dist/services/internal/evmService.js.map +1 -1
- package/dist/services/internal/fiatToCryptoService.js +2 -2
- package/dist/services/internal/fiatToCryptoService.js.map +1 -1
- package/dist/services/internal/sendTransaction.d.ts +9 -3
- package/dist/services/internal/sendTransaction.js +46 -1
- package/dist/services/internal/sendTransaction.js.map +1 -1
- package/dist/services/internal/sendTransactionStatus.js +16 -0
- package/dist/services/internal/sendTransactionStatus.js.map +1 -1
- package/dist/services/internal/solanaService.d.ts +7 -7
- package/dist/services/internal/solanaService.js +42 -9
- package/dist/services/internal/solanaService.js.map +1 -1
- package/dist/services/internal/suiService.d.ts +1 -11
- package/dist/services/internal/suiService.js +20 -58
- package/dist/services/internal/suiService.js.map +1 -1
- package/dist/services/internal/transactionService.js +4 -2
- package/dist/services/internal/transactionService.js.map +1 -1
- package/dist/services/internal/transactionStatusService.js +2 -1
- package/dist/services/internal/transactionStatusService.js.map +1 -1
- package/dist/services/internal/walletService.d.ts +20 -22
- package/dist/services/internal/walletService.js +134 -48
- package/dist/services/internal/walletService.js.map +1 -1
- package/dist/services/internal/walletStandardService.d.ts +24 -0
- package/dist/services/internal/walletStandardService.js +133 -0
- package/dist/services/internal/walletStandardService.js.map +1 -0
- package/dist/services/internal/xrplService.d.ts +17 -0
- package/dist/services/internal/xrplService.js +52 -0
- package/dist/services/internal/xrplService.js.map +1 -0
- package/dist/tests/walletService.test.js +228 -4
- package/dist/tests/walletService.test.js.map +1 -1
- package/package.json +7 -5
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
export function websocket(url, onMessage) {
|
|
2
|
+
let ws;
|
|
3
|
+
let rejectFn;
|
|
4
|
+
const promise = new Promise((resolve, reject) => {
|
|
5
|
+
ws = new WebSocket(url);
|
|
6
|
+
rejectFn = reject;
|
|
7
|
+
ws.onopen = () => {
|
|
8
|
+
console.debug("WebSocket connected:", url);
|
|
9
|
+
};
|
|
10
|
+
ws.onmessage = (event) => {
|
|
11
|
+
onMessage(event, (value) => {
|
|
12
|
+
ws.close();
|
|
13
|
+
resolve(value);
|
|
14
|
+
}, (error) => {
|
|
15
|
+
ws.close();
|
|
16
|
+
reject(error);
|
|
17
|
+
});
|
|
18
|
+
};
|
|
19
|
+
ws.onerror = (error) => {
|
|
20
|
+
console.debug("WebSocket error:", error);
|
|
21
|
+
reject(new Error("WebSocket error"));
|
|
22
|
+
};
|
|
23
|
+
ws.onclose = () => {
|
|
24
|
+
console.debug("WebSocket closed");
|
|
25
|
+
};
|
|
26
|
+
});
|
|
27
|
+
const close = () => {
|
|
28
|
+
console.debug("WebSocket closed manually");
|
|
29
|
+
ws.close();
|
|
30
|
+
rejectFn(new Error("WebSocket closed"));
|
|
31
|
+
};
|
|
32
|
+
return { promise, close };
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=websocket.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"websocket.js","sourceRoot":"","sources":["../../../src/services/external/websocket.ts"],"names":[],"mappings":"AAMA,MAAM,UAAU,SAAS,CACvB,GAAW,EACX,SAAuB;IAKvB,IAAI,EAAa,CAAC;IAClB,IAAI,QAAgC,CAAC;IAErC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACjD,EAAE,GAAG,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC;QACxB,QAAQ,GAAG,MAAM,CAAC;QAElB,EAAE,CAAC,MAAM,GAAG,GAAG,EAAE;YACf,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,GAAG,CAAC,CAAC;QAC7C,CAAC,CAAC;QAEF,EAAE,CAAC,SAAS,GAAG,CAAC,KAAK,EAAE,EAAE;YACvB,SAAS,CACP,KAAK,EACL,CAAC,KAAK,EAAE,EAAE;gBACR,EAAE,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO,CAAC,KAAK,CAAC,CAAC;YACjB,CAAC,EACD,CAAC,KAAK,EAAE,EAAE;gBACR,EAAE,CAAC,KAAK,EAAE,CAAC;gBACX,MAAM,CAAC,KAAK,CAAC,CAAC;YAChB,CAAC,CACF,CAAC;QACJ,CAAC,CAAC;QAEF,EAAE,CAAC,OAAO,GAAG,CAAC,KAAK,EAAE,EAAE;YACrB,OAAO,CAAC,KAAK,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC;YACzC,MAAM,CAAC,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;QACvC,CAAC,CAAC;QAEF,EAAE,CAAC,OAAO,GAAG,GAAG,EAAE;YAChB,OAAO,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;QACpC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,GAAG,EAAE;QACjB,OAAO,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC3C,EAAE,CAAC,KAAK,EAAE,CAAC;QACX,QAAQ,CAAC,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAC1C,CAAC,CAAC;IAEF,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AAC5B,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { XamanXrplNetwork, XrplNetwork, XrplTransaction } from "../../core/types/xrpl";
|
|
2
|
+
/**
|
|
3
|
+
* Client to interact with the Xaman backend through a Squid proxy.
|
|
4
|
+
* Retrieves the QR code data for the following methods:
|
|
5
|
+
* - sign in
|
|
6
|
+
* - get user session
|
|
7
|
+
* - send tx
|
|
8
|
+
*/
|
|
9
|
+
export declare abstract class XamanClient {
|
|
10
|
+
static baseUrl: string;
|
|
11
|
+
static signIn(signal?: AbortSignal): Promise<{
|
|
12
|
+
qrMatrix: boolean[][];
|
|
13
|
+
wsStatusUrl: string;
|
|
14
|
+
}>;
|
|
15
|
+
static userSession(payload: string, signal?: AbortSignal): Promise<{
|
|
16
|
+
response: {
|
|
17
|
+
account: string;
|
|
18
|
+
};
|
|
19
|
+
}>;
|
|
20
|
+
static sendTx({ tx, signal, network, }: {
|
|
21
|
+
tx: XrplTransaction;
|
|
22
|
+
signal?: AbortSignal;
|
|
23
|
+
network: XrplNetwork;
|
|
24
|
+
}): Promise<{
|
|
25
|
+
qrMatrix: boolean[][];
|
|
26
|
+
wsStatusUrl: string;
|
|
27
|
+
}>;
|
|
28
|
+
static fetch<T>(endpoint: string, body?: Record<string, any>, signal?: AbortSignal): Promise<T>;
|
|
29
|
+
static getXamanNetwork(network: XrplNetwork): XamanXrplNetwork;
|
|
30
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { internalSquidXamanApiBaseUrl } from "../../core/constants";
|
|
2
|
+
import { XamanXrplNetwork, XrplNetwork, } from "../../core/types/xrpl";
|
|
3
|
+
/**
|
|
4
|
+
* Client to interact with the Xaman backend through a Squid proxy.
|
|
5
|
+
* Retrieves the QR code data for the following methods:
|
|
6
|
+
* - sign in
|
|
7
|
+
* - get user session
|
|
8
|
+
* - send tx
|
|
9
|
+
*/
|
|
10
|
+
export class XamanClient {
|
|
11
|
+
// TODO: use prod url
|
|
12
|
+
static baseUrl = internalSquidXamanApiBaseUrl;
|
|
13
|
+
static async signIn(signal) {
|
|
14
|
+
return this.fetch("sign-in", undefined, signal);
|
|
15
|
+
}
|
|
16
|
+
static async userSession(payload, signal) {
|
|
17
|
+
return this.fetch("user-session", { payload }, signal);
|
|
18
|
+
}
|
|
19
|
+
static async sendTx({ tx, signal, network, }) {
|
|
20
|
+
const xamanNetwork = this.getXamanNetwork(network);
|
|
21
|
+
return this.fetch("send-tx", { tx, network: xamanNetwork }, signal);
|
|
22
|
+
}
|
|
23
|
+
static async fetch(endpoint, body, signal) {
|
|
24
|
+
const url = new URL(endpoint, this.baseUrl);
|
|
25
|
+
const res = await fetch(url.toString(), {
|
|
26
|
+
method: "POST",
|
|
27
|
+
body: body != null ? JSON.stringify(body) : undefined,
|
|
28
|
+
signal,
|
|
29
|
+
});
|
|
30
|
+
if (!res.ok) {
|
|
31
|
+
throw new Error(`Request failed with status ${res.status}`);
|
|
32
|
+
}
|
|
33
|
+
return res.json();
|
|
34
|
+
}
|
|
35
|
+
static getXamanNetwork(network) {
|
|
36
|
+
switch (network) {
|
|
37
|
+
case XrplNetwork.MAINNET:
|
|
38
|
+
return XamanXrplNetwork.MAINNET;
|
|
39
|
+
case XrplNetwork.TESTNET:
|
|
40
|
+
return XamanXrplNetwork.TESTNET;
|
|
41
|
+
default:
|
|
42
|
+
throw new Error(`Network ${network} is not supported`);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=xaman.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xaman.js","sourceRoot":"","sources":["../../../src/services/external/xaman.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EACL,gBAAgB,EAChB,WAAW,GAEZ,MAAM,uBAAuB,CAAC;AAE/B;;;;;;GAMG;AACH,MAAM,OAAgB,WAAW;IAC/B,qBAAqB;IACrB,MAAM,CAAC,OAAO,GAAG,4BAA4B,CAAC;IAE9C,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAoB;QACtC,OAAO,IAAI,CAAC,KAAK,CAGd,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IACnC,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,OAAe,EAAE,MAAoB;QAC5D,OAAO,IAAI,CAAC,KAAK,CAId,cAAc,EAAE,EAAE,OAAO,EAAE,EAAE,MAAM,CAAC,CAAC;IAC1C,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAClB,EAAE,EACF,MAAM,EACN,OAAO,GAKR;QACC,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAEnD,OAAO,IAAI,CAAC,KAAK,CAGd,SAAS,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,MAAM,CAAC,CAAC;IACvD,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,KAAK,CAChB,QAAgB,EAChB,IAA0B,EAC1B,MAAoB;QAEpB,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAE5C,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE;YACtC,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;YACrD,MAAM;SACP,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE;YACX,MAAM,IAAI,KAAK,CAAC,8BAA8B,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;SAC7D;QAED,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC;IACpB,CAAC;IAED,MAAM,CAAC,eAAe,CAAC,OAAoB;QACzC,QAAQ,OAAO,EAAE;YACf,KAAK,WAAW,CAAC,OAAO;gBACtB,OAAO,gBAAgB,CAAC,OAAO,CAAC;YAClC,KAAK,WAAW,CAAC,OAAO;gBACtB,OAAO,gBAAgB,CAAC,OAAO,CAAC;YAClC;gBACE,MAAM,IAAI,KAAK,CAAC,WAAW,OAAO,mBAAmB,CAAC,CAAC;SAC1D;IACH,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { TrustLine, XrplTokenBalance } from "../../core/types/xrpl";
|
|
2
|
+
type AccountLinesRpcResponse = {
|
|
3
|
+
account: string;
|
|
4
|
+
lines: TrustLine[];
|
|
5
|
+
};
|
|
6
|
+
export declare class XrplRpcClient {
|
|
7
|
+
private rpcUrl;
|
|
8
|
+
constructor(rpcUrl: string);
|
|
9
|
+
getBalance(address: string, tokenAddress: string): Promise<string>;
|
|
10
|
+
getAllBalances(address: string): Promise<XrplTokenBalance[]>;
|
|
11
|
+
getTrustLines(address: string, issuer?: string): Promise<AccountLinesRpcResponse>;
|
|
12
|
+
getTrustLine(address: string, issuer: string, currency: string): Promise<TrustLine | null>;
|
|
13
|
+
accountActivatedInfo(address: string): Promise<{
|
|
14
|
+
isActivated: boolean;
|
|
15
|
+
reserveBaseBn: bigint;
|
|
16
|
+
}>;
|
|
17
|
+
/**
|
|
18
|
+
* Waits for a transaction to be validated and returns its final status.
|
|
19
|
+
* Resolves to 'success' or throws an error with the failed status.
|
|
20
|
+
*/
|
|
21
|
+
waitForTransaction(txHash: string, { interval, timeout }?: {
|
|
22
|
+
interval?: number | undefined;
|
|
23
|
+
timeout?: number | undefined;
|
|
24
|
+
}): Promise<string>;
|
|
25
|
+
private getServerState;
|
|
26
|
+
private getAccountInfo;
|
|
27
|
+
/**
|
|
28
|
+
* Returns the balance of the user in the native XRP token
|
|
29
|
+
* formatted as a string
|
|
30
|
+
*/
|
|
31
|
+
private getNativeBalance;
|
|
32
|
+
/**
|
|
33
|
+
* Returns the balance of the user in the given issued currency (e.g. RLUSD)
|
|
34
|
+
* formatted as a string
|
|
35
|
+
*/
|
|
36
|
+
private getIssuedCurrencyBalance;
|
|
37
|
+
private call;
|
|
38
|
+
}
|
|
39
|
+
export {};
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
import { nativeXrplTokenAddress } from "../../core/constants";
|
|
2
|
+
import { XrplTxStatus, } from "../../core/types/xrpl";
|
|
3
|
+
import { formatBNToReadable } from "../internal/numberService";
|
|
4
|
+
export class XrplRpcClient {
|
|
5
|
+
rpcUrl;
|
|
6
|
+
constructor(rpcUrl) {
|
|
7
|
+
this.rpcUrl = rpcUrl;
|
|
8
|
+
}
|
|
9
|
+
async getBalance(address, tokenAddress) {
|
|
10
|
+
if (tokenAddress.toLowerCase() === nativeXrplTokenAddress.toLowerCase()) {
|
|
11
|
+
return this.getNativeBalance(address);
|
|
12
|
+
}
|
|
13
|
+
return this.getIssuedCurrencyBalance(address, tokenAddress);
|
|
14
|
+
}
|
|
15
|
+
async getAllBalances(address) {
|
|
16
|
+
const [nativeBalance, trustLineBalances] = await Promise.all([
|
|
17
|
+
this.getNativeBalance(address),
|
|
18
|
+
this.getTrustLines(address),
|
|
19
|
+
]);
|
|
20
|
+
return [
|
|
21
|
+
{
|
|
22
|
+
balance: nativeBalance,
|
|
23
|
+
address: nativeXrplTokenAddress,
|
|
24
|
+
},
|
|
25
|
+
...trustLineBalances.lines.map((line) => ({
|
|
26
|
+
balance: line.balance,
|
|
27
|
+
address: `${line.currency}.${line.account}`,
|
|
28
|
+
})),
|
|
29
|
+
];
|
|
30
|
+
}
|
|
31
|
+
async getTrustLines(address, issuer) {
|
|
32
|
+
return this.call("account_lines", [
|
|
33
|
+
{
|
|
34
|
+
account: address,
|
|
35
|
+
ledger_index: "validated",
|
|
36
|
+
peer: issuer,
|
|
37
|
+
},
|
|
38
|
+
]);
|
|
39
|
+
}
|
|
40
|
+
async getTrustLine(address, issuer, currency) {
|
|
41
|
+
const response = await this.getTrustLines(address, issuer);
|
|
42
|
+
const trustLine = response.lines.find((line) => line.currency === currency);
|
|
43
|
+
return trustLine ?? null;
|
|
44
|
+
}
|
|
45
|
+
async accountActivatedInfo(address) {
|
|
46
|
+
const serverState = await this.getServerState();
|
|
47
|
+
const reserveBaseBn = BigInt(serverState.state.validated_ledger.reserve_base);
|
|
48
|
+
try {
|
|
49
|
+
const accountInfo = await this.getAccountInfo(address);
|
|
50
|
+
const balanceBn = BigInt(accountInfo.account_data.Balance);
|
|
51
|
+
return {
|
|
52
|
+
isActivated: balanceBn >= reserveBaseBn,
|
|
53
|
+
reserveBaseBn,
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
catch (error) {
|
|
57
|
+
if (error.message?.includes("actNotFound")) {
|
|
58
|
+
return { isActivated: false, reserveBaseBn };
|
|
59
|
+
}
|
|
60
|
+
throw error;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Waits for a transaction to be validated and returns its final status.
|
|
65
|
+
* Resolves to 'success' or throws an error with the failed status.
|
|
66
|
+
*/
|
|
67
|
+
async waitForTransaction(txHash, { interval = 2_000, timeout = 20_000 } = {}) {
|
|
68
|
+
const startTime = Date.now();
|
|
69
|
+
while (true) {
|
|
70
|
+
try {
|
|
71
|
+
const response = await this.call("tx", [
|
|
72
|
+
{
|
|
73
|
+
transaction: txHash,
|
|
74
|
+
binary: false,
|
|
75
|
+
},
|
|
76
|
+
]);
|
|
77
|
+
if (!response.validated) {
|
|
78
|
+
if (Date.now() - startTime > timeout) {
|
|
79
|
+
throw new Error(`Transaction ${txHash} not validated within timeout`);
|
|
80
|
+
}
|
|
81
|
+
// eslint-disable-next-line @typescript-eslint/no-loop-func
|
|
82
|
+
await new Promise((res) => setTimeout(res, interval));
|
|
83
|
+
continue;
|
|
84
|
+
}
|
|
85
|
+
const status = response.meta?.TransactionResult;
|
|
86
|
+
if (status === XrplTxStatus.SUCCESS) {
|
|
87
|
+
return status;
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
throw new Error(`Transaction failed with status: ${status}`);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
catch (error) {
|
|
94
|
+
// txnNotFound = still pending or non-existent
|
|
95
|
+
if (error?.message?.includes("txnNotFound")) {
|
|
96
|
+
if (Date.now() - startTime > timeout) {
|
|
97
|
+
throw new Error(`Transaction ${txHash} not found within timeout`);
|
|
98
|
+
}
|
|
99
|
+
// eslint-disable-next-line @typescript-eslint/no-loop-func
|
|
100
|
+
await new Promise((res) => setTimeout(res, interval));
|
|
101
|
+
continue;
|
|
102
|
+
}
|
|
103
|
+
throw error;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
async getServerState() {
|
|
108
|
+
return this.call("server_state", [{}]);
|
|
109
|
+
}
|
|
110
|
+
async getAccountInfo(address) {
|
|
111
|
+
return this.call("account_info", [
|
|
112
|
+
{
|
|
113
|
+
account: address,
|
|
114
|
+
ledger_index: "validated",
|
|
115
|
+
},
|
|
116
|
+
]);
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Returns the balance of the user in the native XRP token
|
|
120
|
+
* formatted as a string
|
|
121
|
+
*/
|
|
122
|
+
async getNativeBalance(address) {
|
|
123
|
+
const [accountInfo, serverState] = await Promise.all([
|
|
124
|
+
this.getAccountInfo(address),
|
|
125
|
+
this.getServerState(),
|
|
126
|
+
]);
|
|
127
|
+
const balance = BigInt(accountInfo.account_data.Balance);
|
|
128
|
+
const ownerCount = BigInt(accountInfo.account_data.OwnerCount);
|
|
129
|
+
const reserveBase = BigInt(serverState.state.validated_ledger.reserve_base);
|
|
130
|
+
const reserveIncrement = BigInt(serverState.state.validated_ledger.reserve_inc);
|
|
131
|
+
const reserveBalance = reserveBase + ownerCount * reserveIncrement;
|
|
132
|
+
const spendableBalance = balance - reserveBalance;
|
|
133
|
+
return formatBNToReadable(spendableBalance, 6);
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Returns the balance of the user in the given issued currency (e.g. RLUSD)
|
|
137
|
+
* formatted as a string
|
|
138
|
+
*/
|
|
139
|
+
async getIssuedCurrencyBalance(address, tokenAddress) {
|
|
140
|
+
const response = await this.getTrustLines(address);
|
|
141
|
+
const tokenBalance = response.lines.find((line) => `${line.currency}.${line.account}` === tokenAddress);
|
|
142
|
+
return tokenBalance?.balance || "0";
|
|
143
|
+
}
|
|
144
|
+
async call(method, params) {
|
|
145
|
+
const response = await fetch(this.rpcUrl, {
|
|
146
|
+
method: "POST",
|
|
147
|
+
headers: {
|
|
148
|
+
"Content-Type": "application/json",
|
|
149
|
+
},
|
|
150
|
+
body: JSON.stringify({
|
|
151
|
+
jsonrpc: "2.0",
|
|
152
|
+
id: 1,
|
|
153
|
+
method,
|
|
154
|
+
params,
|
|
155
|
+
}),
|
|
156
|
+
});
|
|
157
|
+
const data = await response.json();
|
|
158
|
+
if (!data.result) {
|
|
159
|
+
throw new Error(`Invalid response from RPC (${method})`);
|
|
160
|
+
}
|
|
161
|
+
if ("error" in data.result) {
|
|
162
|
+
throw new Error(`Error from RPC (${method}): ${data.result.error}`);
|
|
163
|
+
}
|
|
164
|
+
return data.result;
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
//# sourceMappingURL=xrplRpcClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xrplRpcClient.js","sourceRoot":"","sources":["../../../src/services/external/xrplRpcClient.ts"],"names":[],"mappings":"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"}
|
package/dist/services/index.d.ts
CHANGED
package/dist/services/index.js
CHANGED
|
@@ -15,4 +15,5 @@ export * from "./internal/transactionService";
|
|
|
15
15
|
export * from "./internal/transactionStatusService";
|
|
16
16
|
export * from "./internal/walletService";
|
|
17
17
|
export * from "./internal/xionService";
|
|
18
|
+
export * from "./internal/xrplService";
|
|
18
19
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,qCAAqC,CAAC;AACpD,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,qCAAqC,CAAC;AACpD,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC"}
|
|
@@ -1,4 +1 @@
|
|
|
1
|
-
import { ChainType } from "@0xsquid/squid-types";
|
|
2
|
-
import { BitcoinWallet, ConnectWalletResult } from "../../core/types/wallet";
|
|
3
|
-
export declare const connectBitcoinWallet: (wallet: BitcoinWallet) => Promise<ConnectWalletResult<ChainType.BTC> | null>;
|
|
4
1
|
export declare const isBitcoinAddressValid: (address: string) => boolean;
|
|
@@ -1,35 +1,4 @@
|
|
|
1
1
|
import { address as btcAddressLib } from "bitcoinjs-lib";
|
|
2
|
-
import { KeplrConnector, PhantomConnector, UnisatConnector, } from "../../core/connectors/bitcoin/wallets";
|
|
3
|
-
export const connectBitcoinWallet = async (wallet) => {
|
|
4
|
-
switch (wallet.connectorId) {
|
|
5
|
-
case "phantom": {
|
|
6
|
-
const phantom = new PhantomConnector();
|
|
7
|
-
const { address } = await phantom.requestAccount();
|
|
8
|
-
return {
|
|
9
|
-
address,
|
|
10
|
-
wallet,
|
|
11
|
-
};
|
|
12
|
-
}
|
|
13
|
-
case "unisat": {
|
|
14
|
-
const unisat = new UnisatConnector();
|
|
15
|
-
const { address } = await unisat.requestAccount();
|
|
16
|
-
return {
|
|
17
|
-
address,
|
|
18
|
-
wallet,
|
|
19
|
-
};
|
|
20
|
-
}
|
|
21
|
-
case "keplr": {
|
|
22
|
-
const keplr = new KeplrConnector();
|
|
23
|
-
const { address } = await keplr.requestAccount();
|
|
24
|
-
return {
|
|
25
|
-
address,
|
|
26
|
-
wallet,
|
|
27
|
-
};
|
|
28
|
-
}
|
|
29
|
-
default:
|
|
30
|
-
throw new Error("Invalid Bitcoin wallet");
|
|
31
|
-
}
|
|
32
|
-
};
|
|
33
2
|
// Validation taken from Squid API repo
|
|
34
3
|
export const isBitcoinAddressValid = (address) => {
|
|
35
4
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bitcoinService.js","sourceRoot":"","sources":["../../../src/services/internal/bitcoinService.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"bitcoinService.js","sourceRoot":"","sources":["../../../src/services/internal/bitcoinService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,eAAe,CAAC;AAEzD,uCAAuC;AACvC,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,OAAe,EAAW,EAAE;IAChE,IAAI;QACF,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;YAC9B,+FAA+F;YAC/F,0CAA0C;YAC1C,MAAM,OAAO,GAAG,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YAClD,OAAO,OAAO,CAAC,MAAM,KAAK,IAAI,IAAI,OAAO,CAAC,OAAO,KAAK,CAAC,CAAC;SACzD;aAAM;YACL,aAAa,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;YACtC,OAAO,IAAI,CAAC;SACb;KACF;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,KAAK,CAAC;KACd;AACH,CAAC,CAAC"}
|
|
@@ -33,7 +33,7 @@ export const transactionErrorCode = {
|
|
|
33
33
|
internalLabel: "Request rejected",
|
|
34
34
|
message: "Return to the swap page and try again.",
|
|
35
35
|
},
|
|
36
|
-
// Phantom Solana, Cosmostation, Sui Wallet
|
|
36
|
+
// Phantom Solana, Cosmostation, Sui Wallet, Crossmark (XRP)
|
|
37
37
|
"User rejected the request.": {
|
|
38
38
|
type: TransactionErrorType.REJECTED_BY_USER,
|
|
39
39
|
internalLabel: "SOL: User rejected the request",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errorService.js","sourceRoot":"","sources":["../../../src/services/internal/errorService.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAS9C;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAAU,EAAmB,EAAE;IAC5D,qEAAqE;IACrE,IAAI,KAAK,EAAE,KAAK,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,EAAE;QACnD,OAAO;YACL,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI;YACtB,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO;YAC5B,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM;SAC3B,CAAC;KACH;IAED,iCAAiC;IACjC,OAAO;QACL,IAAI,EAAE,KAAK,EAAE,IAAI;QACjB,OAAO,EAAE,KAAK,EAAE,OAAO;QACvB,MAAM,EAAE,KAAK,EAAE,MAAM;KACtB,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAC/B;IACE,WAAW;IACX,eAAe,EAAE;QACf,IAAI,EAAE,oBAAoB,CAAC,gBAAgB;QAC3C,aAAa,EAAE,sBAAsB;QACrC,OAAO,EAAE,wCAAwC;KAClD;IACD,QAAQ;IACR,kBAAkB,EAAE;QAClB,IAAI,EAAE,oBAAoB,CAAC,gBAAgB;QAC3C,aAAa,EAAE,kBAAkB;QACjC,OAAO,EAAE,wCAAwC;KAClD;IACD,
|
|
1
|
+
{"version":3,"file":"errorService.js","sourceRoot":"","sources":["../../../src/services/internal/errorService.ts"],"names":[],"mappings":"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"}
|
|
@@ -127,5 +127,20 @@ export declare class WidgetEvents extends EventTarget {
|
|
|
127
127
|
* @param data Post-send parameters
|
|
128
128
|
*/
|
|
129
129
|
dispatchPostSend(data: WidgetEventMap["postSend"]): void;
|
|
130
|
+
/**
|
|
131
|
+
* Dispatch event when QR code is generated for wallet connection.
|
|
132
|
+
* @param data QR code data
|
|
133
|
+
*/
|
|
134
|
+
dispatchQrCodeGeneratedForConnect(data: WidgetEventMap["qrCodeGeneratedForConnect"]): void;
|
|
135
|
+
/**
|
|
136
|
+
* Dispatch event when QR code is generated for signing a transaction.
|
|
137
|
+
* @param data QR code data
|
|
138
|
+
*/
|
|
139
|
+
dispatchQrCodeGeneratedForSign(data: WidgetEventMap["qrCodeGeneratedForSign"]): void;
|
|
140
|
+
/**
|
|
141
|
+
* Dispatches event after the QR code for signing a transaction is scanned
|
|
142
|
+
* and we're waiting for the user to approve or reject it.
|
|
143
|
+
*/
|
|
144
|
+
dispatchQrTxScannedAwaitingApproval(data: WidgetEventMap["qrTxScannedAwaitingUserApproval"]): void;
|
|
130
145
|
}
|
|
131
146
|
export {};
|
|
@@ -187,5 +187,26 @@ export class WidgetEvents extends EventTarget {
|
|
|
187
187
|
dispatchPostSend(data) {
|
|
188
188
|
this.dispatch("postSend", data);
|
|
189
189
|
}
|
|
190
|
+
/**
|
|
191
|
+
* Dispatch event when QR code is generated for wallet connection.
|
|
192
|
+
* @param data QR code data
|
|
193
|
+
*/
|
|
194
|
+
dispatchQrCodeGeneratedForConnect(data) {
|
|
195
|
+
this.dispatch("qrCodeGeneratedForConnect", data);
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* Dispatch event when QR code is generated for signing a transaction.
|
|
199
|
+
* @param data QR code data
|
|
200
|
+
*/
|
|
201
|
+
dispatchQrCodeGeneratedForSign(data) {
|
|
202
|
+
this.dispatch("qrCodeGeneratedForSign", data);
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Dispatches event after the QR code for signing a transaction is scanned
|
|
206
|
+
* and we're waiting for the user to approve or reject it.
|
|
207
|
+
*/
|
|
208
|
+
dispatchQrTxScannedAwaitingApproval(data) {
|
|
209
|
+
this.dispatch("qrTxScannedAwaitingUserApproval", data);
|
|
210
|
+
}
|
|
190
211
|
}
|
|
191
212
|
//# sourceMappingURL=eventService.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eventService.js","sourceRoot":"","sources":["../../../src/services/internal/eventService.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"eventService.js","sourceRoot":"","sources":["../../../src/services/internal/eventService.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,15 @@
|
|
|
1
|
-
import { ChainData
|
|
1
|
+
import { ChainData } from "@0xsquid/squid-types";
|
|
2
2
|
import { Address as EvmAddress } from "viem";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import { ConnectWalletResult, EvmWallet } from "../../core/types/wallet";
|
|
3
|
+
import { Connector } from "wagmi";
|
|
4
|
+
import { EvmWallet } from "../../core/types/wallet";
|
|
6
5
|
export declare const EvmNetworkNotSupportedErrorCode = 4902;
|
|
7
6
|
export declare function addEthereumChain({ chain, provider, }: {
|
|
8
7
|
chain: ChainData;
|
|
9
8
|
provider: any;
|
|
10
9
|
}): Promise<any>;
|
|
11
|
-
export declare const connectEvmWallet: (wallet: EvmWallet, { connectEvmAsync, }: {
|
|
12
|
-
connectEvmAsync: ConnectMutateAsync<Config, unknown>;
|
|
13
|
-
}) => Promise<ConnectWalletResult<ChainType.EVM> | null>;
|
|
14
10
|
export declare const parseEvmAddress: (address: string | undefined) => EvmAddress | undefined;
|
|
11
|
+
/**
|
|
12
|
+
* Formats a Wagmi connector into a Squid Wallet
|
|
13
|
+
*/
|
|
14
|
+
export declare function formatEvmWallet(connector: Connector): EvmWallet;
|
|
15
|
+
export declare function filterWagmiConnector(connector: Connector): boolean;
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
import { ChainType } from "@0xsquid/squid-types";
|
|
1
2
|
import { isAddress as isEvmAddress, } from "viem";
|
|
3
|
+
import { standardWalletOverrides } from "./walletStandardService";
|
|
2
4
|
export const EvmNetworkNotSupportedErrorCode = 4902;
|
|
3
5
|
export async function addEthereumChain({ chain, provider, }) {
|
|
4
6
|
const chainName = chain.rpc.includes("tenderly")
|
|
@@ -22,21 +24,43 @@ export async function addEthereumChain({ chain, provider, }) {
|
|
|
22
24
|
console.debug("Error adding chain:", error);
|
|
23
25
|
}
|
|
24
26
|
}
|
|
25
|
-
export const connectEvmWallet = async (wallet, { connectEvmAsync, }) => {
|
|
26
|
-
if (!wallet.connector) {
|
|
27
|
-
throw new Error("Wallet connector is undefined");
|
|
28
|
-
}
|
|
29
|
-
const evmConnectionResult = await connectEvmAsync({
|
|
30
|
-
connector: wallet.connector(),
|
|
31
|
-
});
|
|
32
|
-
return {
|
|
33
|
-
wallet,
|
|
34
|
-
address: evmConnectionResult.accounts?.[0] ?? "",
|
|
35
|
-
};
|
|
36
|
-
};
|
|
37
27
|
export const parseEvmAddress = (address) => {
|
|
38
28
|
if (address && isEvmAddress(address)) {
|
|
39
29
|
return address;
|
|
40
30
|
}
|
|
41
31
|
};
|
|
32
|
+
/**
|
|
33
|
+
* Formats a Wagmi connector into a Squid Wallet
|
|
34
|
+
*/
|
|
35
|
+
export function formatEvmWallet(connector) {
|
|
36
|
+
const { icon, name: defaultName, id: wagmiConnectorId } = connector;
|
|
37
|
+
const walletOverrides = standardWalletOverrides[wagmiConnectorId];
|
|
38
|
+
const walletIcon = walletOverrides?.icon || icon;
|
|
39
|
+
const name = walletOverrides?.name || defaultName;
|
|
40
|
+
const connectorId = walletOverrides?.connectorId || wagmiConnectorId;
|
|
41
|
+
const isNonInstallableWallet = [
|
|
42
|
+
"injected",
|
|
43
|
+
"walletConnect",
|
|
44
|
+
"metaMaskSDK",
|
|
45
|
+
"coinbaseWalletSDK",
|
|
46
|
+
].includes(wagmiConnectorId);
|
|
47
|
+
return {
|
|
48
|
+
connectorId,
|
|
49
|
+
name,
|
|
50
|
+
connectorName: name,
|
|
51
|
+
type: ChainType.EVM,
|
|
52
|
+
icon: walletIcon,
|
|
53
|
+
rdns: wagmiConnectorId,
|
|
54
|
+
windowFlag: name,
|
|
55
|
+
// For non-installable wallets, we don't want to show the "Installed" label
|
|
56
|
+
// but still want to allow the user to connect
|
|
57
|
+
skipInstallCheck: isNonInstallableWallet,
|
|
58
|
+
isInstalled: isNonInstallableWallet ? undefined : () => true,
|
|
59
|
+
connector,
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
export function filterWagmiConnector(connector) {
|
|
63
|
+
// Safe is auto-connected when available, should not be listed as an available wallet
|
|
64
|
+
return connector.id !== "safe";
|
|
65
|
+
}
|
|
42
66
|
//# sourceMappingURL=evmService.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evmService.js","sourceRoot":"","sources":["../../../src/services/internal/evmService.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"evmService.js","sourceRoot":"","sources":["../../../src/services/internal/evmService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAGL,SAAS,IAAI,YAAY,GAC1B,MAAM,MAAM,CAAC;AAOd,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAElE,MAAM,CAAC,MAAM,+BAA+B,GAAG,IAAI,CAAC;AAEpD,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,EACrC,KAAK,EACL,QAAQ,GAIT;IACC,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC;QAC9C,CAAC,CAAC,GAAG,KAAK,CAAC,WAAW,gBAAgB;QACtC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC;IACtB,MAAM,eAAe,GAA8B;QACjD,OAAO,EAAE,KAAK,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE;QACxD,SAAS;QACT,cAAc,EAAE,KAAK,CAAC,cAAc;QACpC,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC;QACpB,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;QAC1C,QAAQ,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC;KAC/B,CAAC;IAEF,IAAI;QACF,OAAO,QAAQ,CAAC,OAAO,CAAC;YACtB,MAAM,EAAE,yBAAyB;YACjC,MAAM,EAAE,CAAC,eAAe,CAAC;SAC1B,CAAC,CAAC;KACJ;IAAC,OAAO,KAAK,EAAE;QACd,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAC;KAC7C;AACH,CAAC;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,OAA2B,EACH,EAAE;IAC1B,IAAI,OAAO,IAAI,YAAY,CAAC,OAAO,CAAC,EAAE;QACpC,OAAO,OAAqB,CAAC;KAC9B;AACH,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,SAAoB;IAClD,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,gBAAgB,EAAE,GAAG,SAAS,CAAC;IAEpE,MAAM,eAAe,GAAG,uBAAuB,CAAC,gBAAgB,CAAC,CAAC;IAClE,MAAM,UAAU,GAAG,eAAe,EAAE,IAAI,IAAI,IAAI,CAAC;IACjD,MAAM,IAAI,GAAG,eAAe,EAAE,IAAI,IAAI,WAAW,CAAC;IAClD,MAAM,WAAW,GACf,eAAe,EAAE,WAAW,IAAK,gBAAgC,CAAC;IACpE,MAAM,sBAAsB,GAAG;QAC7B,UAAU;QACV,eAAe;QACf,aAAa;QACb,mBAAmB;KACpB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IAE7B,OAAO;QACL,WAAW;QACX,IAAI;QACJ,aAAa,EAAE,IAAI;QACnB,IAAI,EAAE,SAAS,CAAC,GAAG;QACnB,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,gBAAgB;QACtB,UAAU,EAAE,IAAwB;QACpC,2EAA2E;QAC3E,8CAA8C;QAC9C,gBAAgB,EAAE,sBAAsB;QACxC,WAAW,EAAE,sBAAsB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI;QAC5D,SAAS;KACV,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,SAAoB;IACvD,qFAAqF;IACrF,OAAO,SAAS,CAAC,EAAE,KAAK,MAAM,CAAC;AACjC,CAAC"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import axios from "axios";
|
|
2
2
|
import { countries } from "countries-list";
|
|
3
3
|
import getSymbolFromCurrency from "currency-symbol-map";
|
|
4
|
-
import {
|
|
4
|
+
import { DEFAULT_COUNTRY_CODE, internalSquidApiBaseUrl, } from "../../core/constants";
|
|
5
5
|
import { countryCurrencyMap } from "./countryCurrencyMap";
|
|
6
6
|
export const getUserCountry = async () => {
|
|
7
7
|
try {
|
|
8
|
-
const { data } = await axios.get(`${
|
|
8
|
+
const { data } = await axios.get(`${internalSquidApiBaseUrl}/country`);
|
|
9
9
|
return data;
|
|
10
10
|
}
|
|
11
11
|
catch (error) {
|