0xtrails 0.0.1 → 0.0.2
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 +202 -0
- package/README.md +42 -0
- package/dist/abi.d.ts +37 -0
- package/dist/abi.d.ts.map +1 -0
- package/dist/abi.js +36 -0
- package/dist/apiClient.d.ts +9 -0
- package/dist/apiClient.d.ts.map +1 -0
- package/dist/apiClient.js +18 -0
- package/dist/buffer.d.ts +3 -0
- package/dist/buffer.d.ts.map +1 -0
- package/dist/buffer.js +8 -0
- package/dist/cctp.d.ts +84 -0
- package/dist/cctp.d.ts.map +1 -0
- package/dist/cctp.js +401 -0
- package/dist/chainSwitch.d.ts +7 -0
- package/dist/chainSwitch.d.ts.map +1 -0
- package/dist/chainSwitch.js +33 -0
- package/dist/chains.d.ts +13 -0
- package/dist/chains.d.ts.map +1 -0
- package/dist/chains.js +95 -0
- package/dist/constants.d.ts +11 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +16 -0
- package/dist/encoders.d.ts +7 -0
- package/dist/encoders.d.ts.map +1 -0
- package/dist/encoders.js +8 -0
- package/dist/error.d.ts +2 -0
- package/dist/error.d.ts.map +1 -0
- package/dist/error.js +12 -0
- package/dist/explorer.d.ts +12 -0
- package/dist/explorer.d.ts.map +1 -0
- package/dist/explorer.js +18 -0
- package/dist/gasless.d.ts +116 -0
- package/dist/gasless.d.ts.map +1 -0
- package/dist/gasless.js +297 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +9 -0
- package/dist/indexerClient.d.ts +9 -0
- package/dist/indexerClient.d.ts.map +1 -0
- package/dist/indexerClient.js +18 -0
- package/dist/intents.d.ts +83 -0
- package/dist/intents.d.ts.map +1 -0
- package/dist/intents.js +288 -0
- package/dist/metaTxnMonitor.d.ts +14 -0
- package/dist/metaTxnMonitor.d.ts.map +1 -0
- package/dist/metaTxnMonitor.js +121 -0
- package/dist/metaTxns.d.ts +6 -0
- package/dist/metaTxns.d.ts.map +1 -0
- package/dist/metaTxns.js +4 -0
- package/dist/paymasterSend.d.ts +90 -0
- package/dist/paymasterSend.d.ts.map +1 -0
- package/dist/paymasterSend.js +329 -0
- package/dist/preconditions.d.ts +11 -0
- package/dist/preconditions.d.ts.map +1 -0
- package/dist/preconditions.js +29 -0
- package/dist/prepareSend.d.ts +102 -0
- package/dist/prepareSend.d.ts.map +1 -0
- package/dist/prepareSend.js +1080 -0
- package/dist/prices.d.ts +18 -0
- package/dist/prices.d.ts.map +1 -0
- package/dist/prices.js +142 -0
- package/dist/queryParams.d.ts +9 -0
- package/dist/queryParams.d.ts.map +1 -0
- package/dist/queryParams.js +66 -0
- package/dist/relaySdk.d.ts +65 -0
- package/dist/relaySdk.d.ts.map +1 -0
- package/dist/relaySdk.js +314 -0
- package/dist/relayer.d.ts +23 -0
- package/dist/relayer.d.ts.map +1 -0
- package/dist/relayer.js +230 -0
- package/dist/sendUserOp.d.ts +140 -0
- package/dist/sendUserOp.d.ts.map +1 -0
- package/dist/sendUserOp.js +388 -0
- package/dist/sequenceWallet.d.ts +79 -0
- package/dist/sequenceWallet.d.ts.map +1 -0
- package/dist/sequenceWallet.js +374 -0
- package/dist/theme.d.ts +3 -0
- package/dist/theme.d.ts.map +1 -0
- package/dist/theme.js +1 -0
- package/dist/toSimpleSmartAccount.d.ts +95 -0
- package/dist/toSimpleSmartAccount.d.ts.map +1 -0
- package/dist/toSimpleSmartAccount.js +373 -0
- package/dist/tokenBalances.d.ts +118 -0
- package/dist/tokenBalances.d.ts.map +1 -0
- package/dist/tokenBalances.js +492 -0
- package/dist/tokens.d.ts +50 -0
- package/dist/tokens.d.ts.map +1 -0
- package/dist/tokens.js +356 -0
- package/dist/trails.d.ts +128 -0
- package/dist/trails.d.ts.map +1 -0
- package/dist/trails.js +1031 -0
- package/dist/umd/trails.min.js +12610 -0
- package/dist/umd/trails.min.js.map +1 -0
- package/dist/umd.d.ts +24 -0
- package/dist/umd.d.ts.map +1 -0
- package/dist/utils.d.ts +5 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +9 -0
- package/dist/widget/ConstantsUtil-B-_-u8aQ.js +6 -0
- package/dist/widget/add-hVLs3ldJ.js +20 -0
- package/dist/widget/all-wallets-Cwxnx4BT.js +11 -0
- package/dist/widget/app-store-CAAVQjW0.js +22 -0
- package/dist/widget/apple-C3BSbglw.js +23 -0
- package/dist/widget/arrow-bottom-circle-BGU9MmsZ.js +16 -0
- package/dist/widget/arrow-bottom-hS_SA8Gp.js +13 -0
- package/dist/widget/arrow-left-CJZanWz7.js +13 -0
- package/dist/widget/arrow-right-C1qL8EMd.js +13 -0
- package/dist/widget/arrow-top-CbuCmbQs.js +13 -0
- package/dist/widget/bank-CXBEEGbb.js +19 -0
- package/dist/widget/bin-Dqzv3zCZ.js +9 -0
- package/dist/widget/bitcoin-4y3sovZp.js +18 -0
- package/dist/widget/browser-DyOl4_8m.js +1413 -0
- package/dist/widget/browser-t7Fh0sEU.js +19 -0
- package/dist/widget/card-Bo4CZkTs.js +19 -0
- package/dist/widget/ccip-BynehMIN.js +232 -0
- package/dist/widget/checkmark-DV6OKvnY.js +16 -0
- package/dist/widget/checkmark-bold-CAp1-IQ2.js +13 -0
- package/dist/widget/chevron-bottom-BjzsVzk9.js +13 -0
- package/dist/widget/chevron-left-CQZBDCiR.js +13 -0
- package/dist/widget/chevron-right-Dhg4zeZM.js +13 -0
- package/dist/widget/chevron-top-CDQmfJef.js +13 -0
- package/dist/widget/chrome-store-BNaC_b6w.js +66 -0
- package/dist/widget/circle-BC_GBj91.js +9 -0
- package/dist/widget/clock-BmF8-4a0.js +13 -0
- package/dist/widget/close-Bf61nZ8o.js +13 -0
- package/dist/widget/coinPlaceholder-7cZW2058.js +13 -0
- package/dist/widget/compass-CFC3yhnW.js +13 -0
- package/dist/widget/components/ChainImage.d.ts +8 -0
- package/dist/widget/components/ChainImage.d.ts.map +1 -0
- package/dist/widget/components/ChainImage.js +6 -0
- package/dist/widget/components/ConnectWallet.d.ts +18 -0
- package/dist/widget/components/ConnectWallet.d.ts.map +1 -0
- package/dist/widget/components/ConnectWallet.js +66 -0
- package/dist/widget/components/DebugScreensDropdown.d.ts +9 -0
- package/dist/widget/components/DebugScreensDropdown.d.ts.map +1 -0
- package/dist/widget/components/DebugScreensDropdown.js +40 -0
- package/dist/widget/components/FeeOptions.d.ts +17 -0
- package/dist/widget/components/FeeOptions.d.ts.map +1 -0
- package/dist/widget/components/FeeOptions.js +65 -0
- package/dist/widget/components/Footer.d.ts +9 -0
- package/dist/widget/components/Footer.d.ts.map +1 -0
- package/dist/widget/components/Footer.js +13 -0
- package/dist/widget/components/GreenCheckAnimation.d.ts +2 -0
- package/dist/widget/components/GreenCheckAnimation.d.ts.map +1 -0
- package/dist/widget/components/GreenCheckAnimation.js +74 -0
- package/dist/widget/components/Modal.d.ts +11 -0
- package/dist/widget/components/Modal.d.ts.map +1 -0
- package/dist/widget/components/Modal.js +36 -0
- package/dist/widget/components/Receipt.d.ts +13 -0
- package/dist/widget/components/Receipt.d.ts.map +1 -0
- package/dist/widget/components/Receipt.js +36 -0
- package/dist/widget/components/SendForm.d.ts +44 -0
- package/dist/widget/components/SendForm.d.ts.map +1 -0
- package/dist/widget/components/SendForm.js +177 -0
- package/dist/widget/components/TokenImage.d.ts +10 -0
- package/dist/widget/components/TokenImage.d.ts.map +1 -0
- package/dist/widget/components/TokenImage.js +8 -0
- package/dist/widget/components/TokenList.d.ts +16 -0
- package/dist/widget/components/TokenList.d.ts.map +1 -0
- package/dist/widget/components/TokenList.js +39 -0
- package/dist/widget/components/TransferPending.d.ts +11 -0
- package/dist/widget/components/TransferPending.d.ts.map +1 -0
- package/dist/widget/components/TransferPending.js +77 -0
- package/dist/widget/components/TransferPendingVertical.d.ts +18 -0
- package/dist/widget/components/TransferPendingVertical.d.ts.map +1 -0
- package/dist/widget/components/TransferPendingVertical.js +183 -0
- package/dist/widget/components/WalletConfirmation.d.ts +18 -0
- package/dist/widget/components/WalletConfirmation.d.ts.map +1 -0
- package/dist/widget/components/WalletConfirmation.js +22 -0
- package/dist/widget/config.d.ts +4 -0
- package/dist/widget/config.d.ts.map +1 -0
- package/dist/widget/config.js +3 -0
- package/dist/widget/copy-e0xXvKN0.js +20 -0
- package/dist/widget/cursor-CqM3v0xJ.js +8 -0
- package/dist/widget/cursor-transparent-CUQpdsCG.js +17 -0
- package/dist/widget/desktop-DUDGIRpM.js +14 -0
- package/dist/widget/disconnect-DUFST9QQ.js +13 -0
- package/dist/widget/discord-C1cj365Z.js +22 -0
- package/dist/widget/email-BHhmb_lX.js +703 -0
- package/dist/widget/embedded-wallet-CuuC4eah.js +467 -0
- package/dist/widget/ethereum-CfmBVfeB.js +15 -0
- package/dist/widget/etherscan-BSiynDhW.js +11 -0
- package/dist/widget/exclamation-triangle-DEiFNpHw.js +9 -0
- package/dist/widget/extension-mRmfCDxo.js +13 -0
- package/dist/widget/external-link-B4xMIVnW.js +13 -0
- package/dist/widget/facebook-CBAZStBR.js +31 -0
- package/dist/widget/farcaster-LHDEDf5S.js +17 -0
- package/dist/widget/filters-CBijuvFv.js +13 -0
- package/dist/widget/github-C3ILD420.js +23 -0
- package/dist/widget/google-CSj73POX.js +23 -0
- package/dist/widget/help-circle-2hdG5IdB.js +17 -0
- package/dist/widget/hooks/useAmountUsd.d.ts +13 -0
- package/dist/widget/hooks/useAmountUsd.d.ts.map +1 -0
- package/dist/widget/hooks/useAmountUsd.js +35 -0
- package/dist/widget/hooks/useSendForm.d.ts +125 -0
- package/dist/widget/hooks/useSendForm.d.ts.map +1 -0
- package/dist/widget/hooks/useSendForm.js +450 -0
- package/dist/widget/hooks/useTokenList.d.ts +52 -0
- package/dist/widget/hooks/useTokenList.d.ts.map +1 -0
- package/dist/widget/hooks/useTokenList.js +252 -0
- package/dist/widget/id-ByYSrwsd.js +17 -0
- package/dist/widget/if-defined-DRXJEhv7.js +752 -0
- package/dist/widget/image-C90L4Rf6.js +9 -0
- package/dist/widget/index-B3SlQ9v3.js +46 -0
- package/dist/widget/index-B8LPuLXQ.js +78 -0
- package/dist/widget/index-BDbworWA.js +171 -0
- package/dist/widget/index-BTlDgFSK.js +98 -0
- package/dist/widget/index-BUCcjXbd.js +306 -0
- package/dist/widget/index-BZ34edi2.js +1055 -0
- package/dist/widget/index-BiCU29wK.js +147 -0
- package/dist/widget/index-BlmqIKsY.js +266 -0
- package/dist/widget/index-BlviH5nG.js +55 -0
- package/dist/widget/index-Bwd5X3fS.js +8306 -0
- package/dist/widget/index-C5gmknHK.js +78 -0
- package/dist/widget/index-CD6dBcRj.js +76 -0
- package/dist/widget/index-CDlhy529.js +63 -0
- package/dist/widget/index-CHXa5ke-.js +59 -0
- package/dist/widget/index-CK94R-H7.js +22498 -0
- package/dist/widget/index-CQzo3m3x.js +182 -0
- package/dist/widget/index-CRT8cAwG.js +325 -0
- package/dist/widget/index-CY7Lt2Yu.js +310 -0
- package/dist/widget/index-CiKfAu1E.js +79 -0
- package/dist/widget/index-CkCu6rMi.js +258 -0
- package/dist/widget/index-CngLTu_R.js +517 -0
- package/dist/widget/index-CsMV8-em.js +2577 -0
- package/dist/widget/index-Cu2Wva8v.js +200 -0
- package/dist/widget/index-DKBxLTEF.js +240 -0
- package/dist/widget/index-DQEVT3dx.js +511 -0
- package/dist/widget/index-DU2HcCis.js +200 -0
- package/dist/widget/index-DutZGWNW.js +321 -0
- package/dist/widget/index-O0glArmc.js +182 -0
- package/dist/widget/index-O8FmRjKe.js +63719 -0
- package/dist/widget/index-RtKXrB6I.js +576 -0
- package/dist/widget/index-TIYtS0gE.js +88 -0
- package/dist/widget/index-dQNJvWHs.js +66 -0
- package/dist/widget/index-wmEwdsq7.js +909 -0
- package/dist/widget/index.d.ts +3 -0
- package/dist/widget/index.d.ts.map +1 -0
- package/dist/widget/index.js +2 -0
- package/dist/widget/info-DMPChDjV.js +8 -0
- package/dist/widget/info-circle-DAvS_7nY.js +17 -0
- package/dist/widget/lightbulb-DnZ9mNEs.js +8 -0
- package/dist/widget/lit-html-BRjl1r6K.js +243 -0
- package/dist/widget/mail-DpaVSOP8.js +13 -0
- package/dist/widget/mobile-CRvdyu7I.js +14 -0
- package/dist/widget/more-C5VqW9PR.js +16 -0
- package/dist/widget/network-placeholder-CZ0vApma.js +19 -0
- package/dist/widget/nftPlaceholder-7jjIK2bT.js +13 -0
- package/dist/widget/off-4mHjJLLX.js +9 -0
- package/dist/widget/onramp-Bc0ozVsw.js +929 -0
- package/dist/widget/play-store-Uocul8nC.js +37 -0
- package/dist/widget/plus-DrYF7siO.js +18 -0
- package/dist/widget/prepareSend-BQJmzM5B.js +54987 -0
- package/dist/widget/qr-code-DcnGMUB3.js +11 -0
- package/dist/widget/receive-fvIVd7R_.js +184 -0
- package/dist/widget/recycle-horizontal-DrDwXC4D.js +14 -0
- package/dist/widget/ref-CXNmEjML.js +41 -0
- package/dist/widget/refresh-OK9lIPLS.js +13 -0
- package/dist/widget/reown-logo-C-Qn7mS3.js +17 -0
- package/dist/widget/search-DZqv1oKg.js +13 -0
- package/dist/widget/send-CJlmI-xe.js +1039 -0
- package/dist/widget/send-otoEC8uU.js +20 -0
- package/dist/widget/socials-BJciurWF.js +599 -0
- package/dist/widget/solana-Bv5Hs_0T.js +18 -0
- package/dist/widget/swapHorizontal-BzOPGV37.js +13 -0
- package/dist/widget/swapHorizontalBold-axyHnSmj.js +13 -0
- package/dist/widget/swapHorizontalMedium-C6YOPfPz.js +21 -0
- package/dist/widget/swapHorizontalRoundedBold-yVcLbWNT.js +13 -0
- package/dist/widget/swapVertical-BDjxt9pE.js +13 -0
- package/dist/widget/swaps-DEWNj4kd.js +1637 -0
- package/dist/widget/telegram-BQJD7dlP.js +21 -0
- package/dist/widget/three-dots-DW9jmSMG.js +10 -0
- package/dist/widget/transactions-uCseGQQt.js +38 -0
- package/dist/widget/twitch-XugxDfOE.js +23 -0
- package/dist/widget/twitterIcon-DQVObQUL.js +11 -0
- package/dist/widget/types.d.ts +51 -0
- package/dist/widget/types.d.ts.map +1 -0
- package/dist/widget/types.js +1 -0
- package/dist/widget/verify-DpMYHxLf.js +13 -0
- package/dist/widget/verify-filled-KpEL6ZJ_.js +13 -0
- package/dist/widget/w3m-modal-C8e-6Kba.js +1047 -0
- package/dist/widget/wallet-D8ssEB0o.js +13 -0
- package/dist/widget/wallet-placeholder-HtAy21Wc.js +19 -0
- package/dist/widget/walletconnect-Bp_4XfrY.js +37 -0
- package/dist/widget/warning-circle-FgYS7P7n.js +17 -0
- package/dist/widget/widget/index.js +7 -0
- package/dist/widget/widget.d.ts +47 -0
- package/dist/widget/widget.d.ts.map +1 -0
- package/dist/widget/widget.js +932 -0
- package/dist/widget/x-DlZBoP9k.js +17 -0
- package/dist/widget/x-mark-Ba9pt-_h.js +8 -0
- package/package.json +102 -8
- package/src/abi.ts +38 -0
- package/src/apiClient.ts +32 -0
- package/src/buffer.ts +10 -0
- package/src/cctp.ts +579 -0
- package/src/chainSwitch.ts +55 -0
- package/src/chains.ts +124 -0
- package/src/constants.ts +26 -0
- package/src/encoders.ts +20 -0
- package/src/error.ts +15 -0
- package/src/explorer.ts +37 -0
- package/src/gasless.ts +545 -0
- package/src/index.ts +48 -0
- package/src/indexerClient.ts +36 -0
- package/src/intents.ts +537 -0
- package/src/metaTxnMonitor.ts +163 -0
- package/src/metaTxns.ts +21 -0
- package/src/paymasterSend.ts +503 -0
- package/src/preconditions.ts +52 -0
- package/src/prepareSend.ts +1849 -0
- package/src/prices.ts +186 -0
- package/src/queryParams.ts +80 -0
- package/src/relaySdk.ts +481 -0
- package/src/relayer.ts +255 -0
- package/src/sendUserOp.ts +570 -0
- package/src/sequenceWallet.ts +579 -0
- package/src/theme.ts +2 -0
- package/src/toSimpleSmartAccount.ts +567 -0
- package/src/tokenBalances.ts +760 -0
- package/src/tokens.ts +471 -0
- package/src/trails.ts +1591 -0
- package/src/types.d.ts +11 -0
- package/src/umd.tsx +49 -0
- package/src/utils.ts +16 -0
- package/src/vite-env.d.ts +4 -0
- package/src/widget/assets/MetaMask-icon-fox-with-margins.svg +31 -0
- package/src/widget/assets/MetaMask-icon-fox.svg +26 -0
- package/src/widget/assets/MetaMask-logo-black.svg +3 -0
- package/src/widget/assets/MetaMask-logo-white.svg +16 -0
- package/src/widget/assets/Privy_Brandmark_Black.svg +9 -0
- package/src/widget/assets/Privy_Brandmark_White.svg +9 -0
- package/src/widget/assets/Trails-logo-black.svg +11 -0
- package/src/widget/assets/Trails-logo-white.svg +11 -0
- package/src/widget/components/ChainImage.tsx +28 -0
- package/src/widget/components/ConnectWallet.tsx +206 -0
- package/src/widget/components/DebugScreensDropdown.tsx +88 -0
- package/src/widget/components/FeeOptions.tsx +199 -0
- package/src/widget/components/Footer.tsx +51 -0
- package/src/widget/components/GreenCheckAnimation.tsx +119 -0
- package/src/widget/components/Modal.tsx +97 -0
- package/src/widget/components/Receipt.tsx +237 -0
- package/src/widget/components/SendForm.tsx +695 -0
- package/src/widget/components/TokenImage.tsx +37 -0
- package/src/widget/components/TokenList.tsx +287 -0
- package/src/widget/components/TransferPending.tsx +204 -0
- package/src/widget/components/TransferPendingVertical.tsx +412 -0
- package/src/widget/components/WalletConfirmation.tsx +172 -0
- package/src/widget/config.ts +5 -0
- package/src/widget/hooks/useAmountUsd.ts +59 -0
- package/src/widget/hooks/useSendForm.ts +715 -0
- package/src/widget/hooks/useTokenList.ts +397 -0
- package/src/widget/index.css +2 -0
- package/src/widget/index.tsx +8 -0
- package/src/widget/types/svg.d.ts +8 -0
- package/src/widget/types.ts +59 -0
- package/src/widget/widget.tsx +1438 -0
- package/index.js +0 -1
package/src/chains.ts
ADDED
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import { useQuery } from "@tanstack/react-query"
|
|
2
|
+
import type { Chain } from "viem"
|
|
3
|
+
import * as chains from "viem/chains"
|
|
4
|
+
import { getRelaySupportedChains } from "./relaySdk.js"
|
|
5
|
+
|
|
6
|
+
export const supportedSequenceChains: Record<number, Chain> = {
|
|
7
|
+
[chains.apeChain.id]: chains.mainnet,
|
|
8
|
+
[chains.arbitrum.id]: chains.arbitrum,
|
|
9
|
+
[chains.arbitrumNova.id]: chains.arbitrumNova,
|
|
10
|
+
[chains.avalanche.id]: chains.avalanche,
|
|
11
|
+
[chains.b3.id]: chains.b3,
|
|
12
|
+
[chains.base.id]: chains.base,
|
|
13
|
+
[chains.blast.id]: chains.polygon,
|
|
14
|
+
// [chains.opBNB.id]: chains.opBNB, // Needs chain image
|
|
15
|
+
[chains.mainnet.id]: chains.mainnet,
|
|
16
|
+
[chains.gnosis.id]: chains.gnosis,
|
|
17
|
+
[chains.optimism.id]: chains.optimism,
|
|
18
|
+
[chains.polygon.id]: chains.polygon,
|
|
19
|
+
[chains.soneium.id]: chains.soneium,
|
|
20
|
+
[chains.xai.id]: chains.xai,
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export const supportedSequenceTestnetChains: Record<number, Chain> = {
|
|
24
|
+
[chains.arbitrumSepolia.id]: chains.arbitrumSepolia,
|
|
25
|
+
[chains.avalancheFuji.id]: chains.avalancheFuji,
|
|
26
|
+
[chains.b3Sepolia.id]: chains.b3Sepolia,
|
|
27
|
+
[chains.baseSepolia.id]: chains.baseSepolia,
|
|
28
|
+
[chains.blastSepolia.id]: chains.blastSepolia,
|
|
29
|
+
[chains.opBNBTestnet.id]: chains.opBNBTestnet,
|
|
30
|
+
[chains.sepolia.id]: chains.sepolia,
|
|
31
|
+
[chains.gnosisChiado.id]: chains.gnosisChiado,
|
|
32
|
+
[chains.polygonAmoy.id]: chains.polygonAmoy,
|
|
33
|
+
[chains.optimismSepolia.id]: chains.optimismSepolia,
|
|
34
|
+
[chains.soneiumMinato.id]: chains.soneiumMinato,
|
|
35
|
+
[chains.xaiTestnet.id]: chains.xaiTestnet,
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
// Helper to get chain info
|
|
39
|
+
export function getChainInfo(chainId: number): Chain | null {
|
|
40
|
+
return (
|
|
41
|
+
(Object.values(chains) as Array<Chain>).find(
|
|
42
|
+
(chain: Chain) => chain.id === chainId,
|
|
43
|
+
) || null
|
|
44
|
+
)
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
// Get testnet chain info from mainnet chain as input
|
|
48
|
+
export function getTestnetChainInfo(
|
|
49
|
+
mainnetChain: Chain | number,
|
|
50
|
+
): Chain | null {
|
|
51
|
+
if (typeof mainnetChain === "number") {
|
|
52
|
+
return supportedSequenceTestnetChains[mainnetChain] || null
|
|
53
|
+
}
|
|
54
|
+
return supportedSequenceTestnetChains[mainnetChain.id] || null
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
export async function getSupportedSequenceChains(): Promise<Chain[]> {
|
|
58
|
+
return Object.values(supportedSequenceChains)
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
export async function getSupportedSequenceTestnetChains(): Promise<Chain[]> {
|
|
62
|
+
return Object.values(supportedSequenceTestnetChains)
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
// Priority chains that should appear first in the list
|
|
66
|
+
const PRIORITY_CHAIN_IDS = [1, 8453, 42161, 10, 137]
|
|
67
|
+
|
|
68
|
+
// Sort function for chains with priority order and then by name
|
|
69
|
+
function sortChains(chains: Chain[]): Chain[] {
|
|
70
|
+
return chains.sort((a, b) => {
|
|
71
|
+
// 1. Priority chains first (1, 8453, 42161, 10, 137)
|
|
72
|
+
const aPriority = PRIORITY_CHAIN_IDS.indexOf(a.id)
|
|
73
|
+
const bPriority = PRIORITY_CHAIN_IDS.indexOf(b.id)
|
|
74
|
+
|
|
75
|
+
// If both are priority chains, sort by priority order
|
|
76
|
+
if (aPriority !== -1 && bPriority !== -1) {
|
|
77
|
+
return aPriority - bPriority
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
// If only one is a priority chain, prioritize it
|
|
81
|
+
if (aPriority !== -1) return -1
|
|
82
|
+
if (bPriority !== -1) return 1
|
|
83
|
+
|
|
84
|
+
// 2. Sort by chain name alphabetically
|
|
85
|
+
return a.name.localeCompare(b.name)
|
|
86
|
+
})
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
export async function getSupportedChains(): Promise<Chain[]> {
|
|
90
|
+
const sequenceChains = await getSupportedSequenceChains()
|
|
91
|
+
const relayChains = await getRelaySupportedChains()
|
|
92
|
+
|
|
93
|
+
// Find intersection of sequence chains and relay chains
|
|
94
|
+
const supportedChains = sequenceChains.filter((sequenceChain) =>
|
|
95
|
+
relayChains.some((relayChain) => relayChain.id === sequenceChain.id),
|
|
96
|
+
)
|
|
97
|
+
|
|
98
|
+
// Ensure unique chain IDs by filtering duplicates
|
|
99
|
+
const uniqueChains = supportedChains.filter(
|
|
100
|
+
(chain, index, self) => index === self.findIndex((c) => c.id === chain.id),
|
|
101
|
+
)
|
|
102
|
+
|
|
103
|
+
// Sort chains by priority and then by name
|
|
104
|
+
return sortChains(uniqueChains)
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
export function useSupportedChains(): {
|
|
108
|
+
supportedChains: Chain[]
|
|
109
|
+
isLoadingChains: boolean
|
|
110
|
+
} {
|
|
111
|
+
const { data: supportedChains = [], isLoading: isLoadingChains } = useQuery({
|
|
112
|
+
queryKey: ["supportedChains"],
|
|
113
|
+
queryFn: getSupportedChains,
|
|
114
|
+
staleTime: 60 * 60 * 1000, // 1 hour - chains rarely change
|
|
115
|
+
gcTime: 24 * 60 * 60 * 1000, // 24 hours - keep in cache for a full day
|
|
116
|
+
refetchOnWindowFocus: false, // Don't refetch when window regains focus
|
|
117
|
+
refetchOnReconnect: false, // Don't refetch on network reconnect
|
|
118
|
+
})
|
|
119
|
+
|
|
120
|
+
return {
|
|
121
|
+
supportedChains: supportedChains || [],
|
|
122
|
+
isLoadingChains,
|
|
123
|
+
}
|
|
124
|
+
}
|
package/src/constants.ts
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export const ATTESATION_SIGNER_ADDRESS =
|
|
2
|
+
"0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266"
|
|
3
|
+
|
|
4
|
+
export const TRAILS_LIFI_SAPIENT_SIGNER_ADDRESS =
|
|
5
|
+
"0xd7571bd1e3af468c3a49966c9a92a2e907cdfa52"
|
|
6
|
+
export const TRAILS_RELAY_SAPIENT_SIGNER_ADDRESS =
|
|
7
|
+
"0x9a013e7d186611af36a918ef23d81886e8c256f8"
|
|
8
|
+
export const TRAILS_CCTP_SAPIENT_SIGNER_ADDRESS =
|
|
9
|
+
"0xc1A9B197eBb31Fc2B613C59dAC3f3E5698A429D0"
|
|
10
|
+
|
|
11
|
+
export const DEFAULT_INDEXER_GATEWAY_URL = "https://dev-indexer.sequence.app"
|
|
12
|
+
export const DEFAULT_API_URL = "https://v3-api.sequence.app"
|
|
13
|
+
export const DEFAULT_ENV = "dev"
|
|
14
|
+
|
|
15
|
+
export const intentEntrypoints: Record<number, `0x${string}`> = {
|
|
16
|
+
8453: "0x2bf4c63199eD7D8A737E8DB2cC19E0C0103F6bE3",
|
|
17
|
+
84532: "0xdcd9160492C6D43ABbd28D4d06F68ad77f1A0F2b",
|
|
18
|
+
421614: "0xf18A16E1C778baCA5d6f7F48cC4c9bb913e5e579",
|
|
19
|
+
42161: "0x674827B6BE8780DBdb96DC02c735275e3a982c90",
|
|
20
|
+
137: "0x4dBb20eA3A969F1A44d7653D4Dc8632B853E36DE",
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export const DEFAULT_SEQUENCE_PROJECT_ACCESS_KEY =
|
|
24
|
+
"AQAAAAAAAAaq1E41OU0QxifQgrVBMgfqg7k"
|
|
25
|
+
|
|
26
|
+
export const DEFAULT_USE_V3_RELAYERS = true
|
package/src/encoders.ts
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { AbiFunction, type Address } from "ox"
|
|
2
|
+
import type { Hex } from "viem"
|
|
3
|
+
|
|
4
|
+
export type ERC20TransferParams = {
|
|
5
|
+
recipient: string
|
|
6
|
+
amount: bigint
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export function getERC20TransferData({
|
|
10
|
+
recipient,
|
|
11
|
+
amount,
|
|
12
|
+
}: ERC20TransferParams): Hex {
|
|
13
|
+
const erc20Transfer = AbiFunction.from(
|
|
14
|
+
"function transfer(address,uint256) returns (bool)",
|
|
15
|
+
)
|
|
16
|
+
return AbiFunction.encodeData(erc20Transfer, [
|
|
17
|
+
recipient as Address.Address,
|
|
18
|
+
amount,
|
|
19
|
+
]) as Hex
|
|
20
|
+
}
|
package/src/error.ts
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export function getFullErrorMessage(err: any) {
|
|
2
|
+
const messages = []
|
|
3
|
+
|
|
4
|
+
let current = err
|
|
5
|
+
while (current) {
|
|
6
|
+
if (current.message) {
|
|
7
|
+
messages.push(current.message)
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
// Check for nested error cause
|
|
11
|
+
current = current.cause ?? current.originalError ?? current.error ?? null
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
return messages.join(" | Caused by: ")
|
|
15
|
+
}
|
package/src/explorer.ts
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import * as chains from "viem/chains"
|
|
2
|
+
|
|
3
|
+
export type ExplorerUrlParams = {
|
|
4
|
+
txHash: string
|
|
5
|
+
chainId: number
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
export type ExplorerUrlForAddressParams = {
|
|
9
|
+
address: string
|
|
10
|
+
chainId: number
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export function getBaseExplorerUrl(chainId: number): string {
|
|
14
|
+
const chainsArray = Object.values(chains) as Array<{
|
|
15
|
+
id: number
|
|
16
|
+
blockExplorers: { default: { url: string } }
|
|
17
|
+
}>
|
|
18
|
+
for (const chain of chainsArray) {
|
|
19
|
+
if (chain.id === chainId) {
|
|
20
|
+
return `${chain.blockExplorers?.default?.url}`
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
return ""
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export function getExplorerUrl({ txHash, chainId }: ExplorerUrlParams): string {
|
|
27
|
+
const baseExplorerUrl = getBaseExplorerUrl(chainId)
|
|
28
|
+
return `${baseExplorerUrl}/tx/${txHash}`
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export function getExplorerUrlForAddress({
|
|
32
|
+
address,
|
|
33
|
+
chainId,
|
|
34
|
+
}: ExplorerUrlForAddressParams): string {
|
|
35
|
+
const baseExplorerUrl = getBaseExplorerUrl(chainId)
|
|
36
|
+
return `${baseExplorerUrl}/address/${address}`
|
|
37
|
+
}
|