@embarkai/ui-kit 0.4.37 → 0.4.39
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/iframe/index.html +1 -1
- package/dist/iframe/main.js +1 -1
- package/dist/index.cjs +325 -292
- package/dist/index.d.cts +8 -124
- package/dist/index.d.ts +8 -124
- package/dist/index.js +263 -226
- package/package.json +2 -2
package/dist/index.cjs
CHANGED
|
@@ -5435,9 +5435,9 @@ var init_en = __esm({
|
|
|
5435
5435
|
confirmBridge: "I confirm bridging {{amount}} {{asset}} to {{destinationChain}}"
|
|
5436
5436
|
},
|
|
5437
5437
|
statuses: {
|
|
5438
|
+
balanceInsufficient: "Insufficient balance",
|
|
5438
5439
|
txPrepare: "Preparing transactions...",
|
|
5439
|
-
|
|
5440
|
-
txSent: "Transactions sent. Delivery to {{destination}}",
|
|
5440
|
+
txExecuting: "Executing transactions...",
|
|
5441
5441
|
txWaitingReceipt: "Waiting for receipt...",
|
|
5442
5442
|
txPatching: "Patching transaction..."
|
|
5443
5443
|
},
|
|
@@ -5754,12 +5754,9 @@ var init_ru = __esm({
|
|
|
5754
5754
|
confirmBridge: "\u041F\u041E\u0414\u0422\u0412\u0415\u0420\u0414\u0418\u0422\u042C \u041F\u0415\u0420\u0415\u041C\u0415\u0429\u0415\u041D\u0418\u0415"
|
|
5755
5755
|
},
|
|
5756
5756
|
statuses: {
|
|
5757
|
-
|
|
5758
|
-
switchingWalletChain: "\u041F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435 \u0441\u0435\u0442\u0438...",
|
|
5757
|
+
balanceInsufficient: "\u041D\u0435\u0434\u043E\u0441\u0442\u0430\u0442\u043E\u0447\u043D\u043E \u0441\u0440\u0435\u0434\u0441\u0442\u0432",
|
|
5759
5758
|
txPrepare: "\u041F\u043E\u0434\u0433\u043E\u0442\u043E\u0432\u043A\u0430 \u0442\u0440\u0430\u043D\u0437\u0430\u043A\u0446\u0438\u0439...",
|
|
5760
|
-
|
|
5761
|
-
txSent: "\u0422\u0440\u0430\u043D\u0437\u0430\u043A\u0446\u0438\u0438 \u043E\u0442\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u044B. \u0414\u043E\u0441\u0442\u0430\u0432\u043A\u0430 \u0432 {{destination}}",
|
|
5762
|
-
txExecuting: "\u0412\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u0435 \u043F\u0435\u0440\u0435\u043C\u0435\u0449\u0435\u043D\u0438\u044F...",
|
|
5759
|
+
txExecuting: "\u0412\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u0435 \u0442\u0440\u0430\u043D\u0437\u0430\u043A\u0446\u0438\u0439...",
|
|
5763
5760
|
txWaitingReceipt: "\u041E\u0436\u0438\u0434\u0430\u043D\u0438\u0435 \u043F\u043E\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043D\u0438\u044F...",
|
|
5764
5761
|
txPatching: "\u041E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u0435 \u0442\u0440\u0430\u043D\u0437\u0430\u043A\u0446\u0438\u0438..."
|
|
5765
5762
|
},
|
|
@@ -6076,12 +6073,9 @@ var init_zh = __esm({
|
|
|
6076
6073
|
confirmBridge: "\u786E\u8BA4\u8DE8\u94FE"
|
|
6077
6074
|
},
|
|
6078
6075
|
statuses: {
|
|
6079
|
-
|
|
6080
|
-
switchingWalletChain: "\u6B63\u5728\u5207\u6362\u94FE...",
|
|
6076
|
+
balanceInsufficient: "\u4F59\u989D\u4E0D\u8DB3",
|
|
6081
6077
|
txPrepare: "\u6B63\u5728\u51C6\u5907\u4EA4\u6613...",
|
|
6082
|
-
|
|
6083
|
-
txSent: "\u4EA4\u6613\u5DF2\u53D1\u9001\u3002\u6B63\u5728\u4F20\u8F93\u81F3 {{destination}}",
|
|
6084
|
-
txExecuting: "\u6B63\u5728\u6267\u884C\u8DE8\u94FE...",
|
|
6078
|
+
txExecuting: "\u6B63\u5728\u6267\u884C\u4EA4\u6613...",
|
|
6085
6079
|
txWaitingReceipt: "\u7B49\u5F85\u6536\u636E...",
|
|
6086
6080
|
txPatching: "\u66F4\u65B0\u4EA4\u6613..."
|
|
6087
6081
|
},
|
|
@@ -19173,7 +19167,6 @@ var init_useBridgeStore = __esm({
|
|
|
19173
19167
|
bridgeStep: "select",
|
|
19174
19168
|
bridgeType: "hyper",
|
|
19175
19169
|
bridgeSender: "embarkai-wallet",
|
|
19176
|
-
bridgeSenders: [],
|
|
19177
19170
|
amount: "",
|
|
19178
19171
|
quote: null,
|
|
19179
19172
|
isQuoteEstimating: false,
|
|
@@ -19182,6 +19175,7 @@ var init_useBridgeStore = __esm({
|
|
|
19182
19175
|
useBridgeStore = (0, import_zustand10.create)()(
|
|
19183
19176
|
(0, import_middleware3.persist)(
|
|
19184
19177
|
(set, get) => ({
|
|
19178
|
+
bridgeSenders: [],
|
|
19185
19179
|
hyperRoute: null,
|
|
19186
19180
|
recipient: null,
|
|
19187
19181
|
originChain: null,
|
|
@@ -19497,7 +19491,6 @@ var init_wallets = __esm({
|
|
|
19497
19491
|
// src/internal/components/SendMenu/hyperbridge/hooks/useAvailableSenders.ts
|
|
19498
19492
|
function useAvailableSenders() {
|
|
19499
19493
|
const address = useSession((st) => st.address);
|
|
19500
|
-
const activeChainId = useSession((st) => st.activeChainId);
|
|
19501
19494
|
const { profiles } = useLinkedProfiles();
|
|
19502
19495
|
const lastCalcedSenders = (0, import_react62.useRef)([]);
|
|
19503
19496
|
(0, import_react62.useEffect)(() => {
|
|
@@ -19505,7 +19498,7 @@ function useAvailableSenders() {
|
|
|
19505
19498
|
{
|
|
19506
19499
|
type: "embarkai-wallet",
|
|
19507
19500
|
name: "embarkAI",
|
|
19508
|
-
chainId:
|
|
19501
|
+
chainId: null,
|
|
19509
19502
|
address,
|
|
19510
19503
|
Icon: TOKENS_ICONS["EMBARKAI"]
|
|
19511
19504
|
}
|
|
@@ -19524,9 +19517,10 @@ function useAvailableSenders() {
|
|
|
19524
19517
|
return;
|
|
19525
19518
|
}
|
|
19526
19519
|
lastCalcedSenders.current = sendersAccumulator.map((s) => `${s.name}-${s.address}`);
|
|
19520
|
+
console.info("[SENDER SELECTOR] setting bridge senders", sendersAccumulator);
|
|
19527
19521
|
useBridgeStore.getState().setBridgeSenders(sendersAccumulator);
|
|
19528
19522
|
useFlowSelectorStore.getState().setRenderKey(`sender-selected-${Date.now()}`);
|
|
19529
|
-
}, [address, profiles
|
|
19523
|
+
}, [address, profiles]);
|
|
19530
19524
|
return {
|
|
19531
19525
|
directWalletProfile: profiles.filter((p) => p.provider === "wallet")[0] || null
|
|
19532
19526
|
};
|
|
@@ -19608,15 +19602,145 @@ var init_api3 = __esm({
|
|
|
19608
19602
|
}
|
|
19609
19603
|
});
|
|
19610
19604
|
|
|
19605
|
+
// src/clients/bundler/getUserOperationByHash.ts
|
|
19606
|
+
async function getUserOperationByHash(userOpHash, chainId) {
|
|
19607
|
+
const targetChainId = chainId ?? requireActiveChainId();
|
|
19608
|
+
const chainConfig = (0, import_read15.getChainConfig)(targetChainId);
|
|
19609
|
+
if (!chainConfig) {
|
|
19610
|
+
throw new Error(`Chain ${targetChainId} is not supported`);
|
|
19611
|
+
}
|
|
19612
|
+
if (!chainConfig.bundlerUrl) {
|
|
19613
|
+
throw new Error(`Chain ${targetChainId} has no bundlerUrl configured`);
|
|
19614
|
+
}
|
|
19615
|
+
if (!userOpHash) {
|
|
19616
|
+
throw new Error("Operation hash is required");
|
|
19617
|
+
}
|
|
19618
|
+
try {
|
|
19619
|
+
const result = await (0, import_core3.bundlerRpc)("eth_getUserOperationByHash", [userOpHash], chainConfig.bundlerUrl);
|
|
19620
|
+
if (!result) {
|
|
19621
|
+
return null;
|
|
19622
|
+
}
|
|
19623
|
+
console.log("[getUserOperationByHash] Receipt:", JSON.stringify(result, null, 2));
|
|
19624
|
+
return {
|
|
19625
|
+
entryPoint: result.entryPoint,
|
|
19626
|
+
userOperation: result.userOperation,
|
|
19627
|
+
transactionHash: result.transactionHash,
|
|
19628
|
+
blockNumber: result.blockNumber,
|
|
19629
|
+
blockHash: result.blockHash
|
|
19630
|
+
};
|
|
19631
|
+
} catch (error) {
|
|
19632
|
+
console.warn("[getUserOperationByHash] Failed to get user operation:", error);
|
|
19633
|
+
return null;
|
|
19634
|
+
}
|
|
19635
|
+
}
|
|
19636
|
+
var import_core3, import_read15;
|
|
19637
|
+
var init_getUserOperationByHash = __esm({
|
|
19638
|
+
"src/clients/bundler/getUserOperationByHash.ts"() {
|
|
19639
|
+
init_SessionContext();
|
|
19640
|
+
import_core3 = require("@embarkai/core");
|
|
19641
|
+
import_read15 = require("@embarkai/core/read");
|
|
19642
|
+
}
|
|
19643
|
+
});
|
|
19644
|
+
|
|
19645
|
+
// src/clients/bundler/getUserOperationReceipt.ts
|
|
19646
|
+
async function getUserOperationReceipt(userOpHash, chainId) {
|
|
19647
|
+
const targetChainId = chainId ?? requireActiveChainId();
|
|
19648
|
+
const chainConfig = (0, import_read16.getChainConfig)(targetChainId);
|
|
19649
|
+
if (!chainConfig) {
|
|
19650
|
+
throw new Error(`Chain ${targetChainId} is not supported`);
|
|
19651
|
+
}
|
|
19652
|
+
if (!chainConfig.bundlerUrl) {
|
|
19653
|
+
throw new Error(`Chain ${targetChainId} has no bundlerUrl configured`);
|
|
19654
|
+
}
|
|
19655
|
+
if (!userOpHash) {
|
|
19656
|
+
throw new Error("Operation hash is required");
|
|
19657
|
+
}
|
|
19658
|
+
try {
|
|
19659
|
+
const result = await (0, import_core4.bundlerRpc)("eth_getUserOperationReceipt", [userOpHash], chainConfig.bundlerUrl);
|
|
19660
|
+
if (!result) {
|
|
19661
|
+
return null;
|
|
19662
|
+
}
|
|
19663
|
+
console.log("[getUserOperationReceipt] Receipt:", JSON.stringify(result, null, 2));
|
|
19664
|
+
return {
|
|
19665
|
+
userOpHash: result.userOpHash,
|
|
19666
|
+
entryPoint: result.entryPoint,
|
|
19667
|
+
sender: result.sender,
|
|
19668
|
+
nonce: result.nonce,
|
|
19669
|
+
success: result.success,
|
|
19670
|
+
actualGasCost: result.actualGasCost,
|
|
19671
|
+
actualGasUsed: result.actualGasUsed,
|
|
19672
|
+
paymaster: result.paymaster,
|
|
19673
|
+
receipt: result.receipt,
|
|
19674
|
+
logs: result.logs,
|
|
19675
|
+
reason: result.reason
|
|
19676
|
+
};
|
|
19677
|
+
} catch (error) {
|
|
19678
|
+
console.warn("[getUserOperationReceipt] Failed to get receipt:", error);
|
|
19679
|
+
return null;
|
|
19680
|
+
}
|
|
19681
|
+
}
|
|
19682
|
+
var import_core4, import_read16;
|
|
19683
|
+
var init_getUserOperationReceipt = __esm({
|
|
19684
|
+
"src/clients/bundler/getUserOperationReceipt.ts"() {
|
|
19685
|
+
init_SessionContext();
|
|
19686
|
+
import_core4 = require("@embarkai/core");
|
|
19687
|
+
import_read16 = require("@embarkai/core/read");
|
|
19688
|
+
}
|
|
19689
|
+
});
|
|
19690
|
+
|
|
19691
|
+
// src/clients/bundler/waitForUserOperationReceipt.ts
|
|
19692
|
+
async function waitForUserOperationReceipt(userOpHash, options) {
|
|
19693
|
+
const pollIntervalMs = options?.pollIntervalMs ?? 1e3;
|
|
19694
|
+
const maxPollTimeMs = options?.maxPollTimeMs ?? 6e4;
|
|
19695
|
+
const targetChainId = options?.chainId ?? requireActiveChainId();
|
|
19696
|
+
const startTime = Date.now();
|
|
19697
|
+
while (true) {
|
|
19698
|
+
const elapsed = Date.now() - startTime;
|
|
19699
|
+
if (elapsed >= maxPollTimeMs) {
|
|
19700
|
+
throw new UserOperationTimeoutError(userOpHash, targetChainId, maxPollTimeMs);
|
|
19701
|
+
}
|
|
19702
|
+
const receipt = await getUserOperationReceipt(userOpHash, targetChainId);
|
|
19703
|
+
if (receipt) {
|
|
19704
|
+
return receipt;
|
|
19705
|
+
}
|
|
19706
|
+
await new Promise((resolve) => setTimeout(resolve, pollIntervalMs));
|
|
19707
|
+
}
|
|
19708
|
+
}
|
|
19709
|
+
var UserOperationTimeoutError;
|
|
19710
|
+
var init_waitForUserOperationReceipt = __esm({
|
|
19711
|
+
"src/clients/bundler/waitForUserOperationReceipt.ts"() {
|
|
19712
|
+
init_SessionContext();
|
|
19713
|
+
init_getUserOperationReceipt();
|
|
19714
|
+
UserOperationTimeoutError = class extends Error {
|
|
19715
|
+
constructor(userOpHash, chainId, timeoutMs) {
|
|
19716
|
+
super(`Timeout waiting for UserOperation receipt after ${timeoutMs}ms (hash: ${userOpHash}, chainId: ${chainId})`);
|
|
19717
|
+
this.name = "UserOperationTimeoutError";
|
|
19718
|
+
this.userOpHash = userOpHash;
|
|
19719
|
+
this.chainId = chainId;
|
|
19720
|
+
this.timeoutMs = timeoutMs;
|
|
19721
|
+
}
|
|
19722
|
+
};
|
|
19723
|
+
}
|
|
19724
|
+
});
|
|
19725
|
+
|
|
19726
|
+
// src/clients/bundler/index.ts
|
|
19727
|
+
var init_bundler = __esm({
|
|
19728
|
+
"src/clients/bundler/index.ts"() {
|
|
19729
|
+
init_getUserOperationByHash();
|
|
19730
|
+
init_getUserOperationReceipt();
|
|
19731
|
+
init_waitForUserOperationReceipt();
|
|
19732
|
+
}
|
|
19733
|
+
});
|
|
19734
|
+
|
|
19611
19735
|
// src/internal/components/SendMenu/hyperbridge/lib/executeWarpTxs.ts
|
|
19612
19736
|
async function executeWarpTransactions(txs, walletClient) {
|
|
19613
19737
|
const originChain = useBridgeStore.getState().originChain;
|
|
19614
19738
|
const session = useSession.getState().session;
|
|
19615
19739
|
const bridgeSender = useBridgeStore.getState().bridgeSender;
|
|
19740
|
+
const externalWalletChain = CHAINS_UI_META[originChain].chain;
|
|
19616
19741
|
const publicClient = bridgeSender === "embarkai-wallet" ? useSession.getState().publicClient : (0, import_viem11.createPublicClient)({
|
|
19617
|
-
chain:
|
|
19618
|
-
|
|
19619
|
-
transport: (0, import_viem11.http)(CHAINS_UI_META[originChain].chain.rpcUrls.default.http[0])
|
|
19742
|
+
chain: externalWalletChain,
|
|
19743
|
+
transport: import_core5.CHAINS_BROWSERS_TRANSPORTS[externalWalletChain.id] || (0, import_viem11.http)(externalWalletChain.rpcUrls.default.http[0])
|
|
19620
19744
|
});
|
|
19621
19745
|
if (!session) {
|
|
19622
19746
|
throw new Error("No active session");
|
|
@@ -19627,6 +19751,9 @@ async function executeWarpTransactions(txs, walletClient) {
|
|
|
19627
19751
|
const hashes = [];
|
|
19628
19752
|
const errorsStack = [];
|
|
19629
19753
|
for (const tx of txs) {
|
|
19754
|
+
if (tx.type !== "ethers-v5" /* EthersV5 */) {
|
|
19755
|
+
throw new Error(`Unsupported transaction provider: ${tx.type}`);
|
|
19756
|
+
}
|
|
19630
19757
|
const populated = tx.transaction;
|
|
19631
19758
|
if (!populated.to) {
|
|
19632
19759
|
throw new Error("Transaction missing `to` address");
|
|
@@ -19639,28 +19766,69 @@ async function executeWarpTransactions(txs, walletClient) {
|
|
|
19639
19766
|
BigInt(rawValue.hex)
|
|
19640
19767
|
) : BigInt(rawValue.toString())
|
|
19641
19768
|
);
|
|
19642
|
-
|
|
19643
|
-
|
|
19644
|
-
|
|
19645
|
-
|
|
19646
|
-
|
|
19647
|
-
|
|
19648
|
-
|
|
19649
|
-
|
|
19650
|
-
|
|
19651
|
-
|
|
19652
|
-
|
|
19653
|
-
|
|
19654
|
-
|
|
19655
|
-
|
|
19656
|
-
|
|
19657
|
-
|
|
19658
|
-
|
|
19659
|
-
|
|
19660
|
-
|
|
19661
|
-
|
|
19662
|
-
|
|
19663
|
-
|
|
19769
|
+
switch (bridgeSender) {
|
|
19770
|
+
case "embarkai-wallet":
|
|
19771
|
+
useBridgeStore.getState().setBridgeTxStatus(`Tx: ${tx.category || ""}...`);
|
|
19772
|
+
const embarkOpHash = await sendUserOperation(session, {
|
|
19773
|
+
to: populated.to,
|
|
19774
|
+
data: populated.data ?? "0x",
|
|
19775
|
+
value: valueBigInt.toString(),
|
|
19776
|
+
chainId: publicClient.chain.id
|
|
19777
|
+
}).catch((error) => {
|
|
19778
|
+
errorsStack.push(error);
|
|
19779
|
+
throw error;
|
|
19780
|
+
});
|
|
19781
|
+
if (TARGET_TX_CATEGORIES.includes(tx.category)) {
|
|
19782
|
+
console.warn("[HYPERLANE] embarkai-wallet tx done", tx.category, embarkOpHash);
|
|
19783
|
+
hashes.push(embarkOpHash);
|
|
19784
|
+
}
|
|
19785
|
+
if (!TARGET_TX_CATEGORIES.includes(tx.category)) {
|
|
19786
|
+
useBridgeStore.getState().setBridgeTxStatus(`Tx receipt: ${tx.category || ""}...`);
|
|
19787
|
+
const embarkNonTransferReceipt = await waitForUserOperationReceipt(embarkOpHash, {
|
|
19788
|
+
chainId: publicClient.chain.id
|
|
19789
|
+
}).catch((error) => {
|
|
19790
|
+
errorsStack.push(error);
|
|
19791
|
+
throw error;
|
|
19792
|
+
});
|
|
19793
|
+
if (!embarkNonTransferReceipt.success) {
|
|
19794
|
+
throw new Error(
|
|
19795
|
+
`Approval transaction failed: ${embarkNonTransferReceipt?.receipt?.transactionHash || "unknown hash"}`
|
|
19796
|
+
);
|
|
19797
|
+
}
|
|
19798
|
+
}
|
|
19799
|
+
break;
|
|
19800
|
+
case "direct-wallet":
|
|
19801
|
+
useBridgeStore.getState().setBridgeTxStatus(`Tx: ${tx.category || ""}...`);
|
|
19802
|
+
const walletOpHash = await walletClient?.sendTransaction?.({
|
|
19803
|
+
to: populated.to,
|
|
19804
|
+
value: valueBigInt.toString(),
|
|
19805
|
+
data: populated.data,
|
|
19806
|
+
chain: walletClient.chain
|
|
19807
|
+
}).catch((error) => {
|
|
19808
|
+
errorsStack.push(error);
|
|
19809
|
+
throw error;
|
|
19810
|
+
});
|
|
19811
|
+
if (TARGET_TX_CATEGORIES.includes(tx.category)) {
|
|
19812
|
+
console.warn("[HYPERLANE] direct-wallet tx done", tx.category, walletOpHash);
|
|
19813
|
+
hashes.push(walletOpHash);
|
|
19814
|
+
}
|
|
19815
|
+
if (!TARGET_TX_CATEGORIES.includes(tx.category)) {
|
|
19816
|
+
useBridgeStore.getState().setBridgeTxStatus(`Tx receipt: ${tx.category || ""}...`);
|
|
19817
|
+
const wagmiNonTransferReceipt = await (0, import_core5.waitForWagmiTransactionReceipt)(import_core5.wagmiConfig, {
|
|
19818
|
+
chainId: publicClient.chain.id,
|
|
19819
|
+
hash: walletOpHash,
|
|
19820
|
+
pollingInterval: 2500
|
|
19821
|
+
}).catch((error) => {
|
|
19822
|
+
errorsStack.push(error);
|
|
19823
|
+
throw error;
|
|
19824
|
+
});
|
|
19825
|
+
if (!wagmiNonTransferReceipt.success) {
|
|
19826
|
+
throw new Error(
|
|
19827
|
+
`Approval transaction failed: ${wagmiNonTransferReceipt?.transactionHash || "unknown hash"}`
|
|
19828
|
+
);
|
|
19829
|
+
}
|
|
19830
|
+
}
|
|
19831
|
+
break;
|
|
19664
19832
|
}
|
|
19665
19833
|
}
|
|
19666
19834
|
if (errorsStack.length > 0) {
|
|
@@ -19669,14 +19837,17 @@ async function executeWarpTransactions(txs, walletClient) {
|
|
|
19669
19837
|
}
|
|
19670
19838
|
return hashes;
|
|
19671
19839
|
}
|
|
19672
|
-
var import_viem11;
|
|
19840
|
+
var import_core5, import_viem11, TARGET_TX_CATEGORIES;
|
|
19673
19841
|
var init_executeWarpTxs = __esm({
|
|
19674
19842
|
"src/internal/components/SendMenu/hyperbridge/lib/executeWarpTxs.ts"() {
|
|
19843
|
+
init_bundler();
|
|
19675
19844
|
init_SessionContext();
|
|
19676
|
-
import_viem11 = require("viem");
|
|
19677
19845
|
init_account2();
|
|
19846
|
+
import_core5 = require("@embarkai/core");
|
|
19847
|
+
import_viem11 = require("viem");
|
|
19678
19848
|
init_useBridgeStore();
|
|
19679
19849
|
init_chains();
|
|
19850
|
+
TARGET_TX_CATEGORIES = ["transfer"];
|
|
19680
19851
|
}
|
|
19681
19852
|
});
|
|
19682
19853
|
|
|
@@ -19863,6 +20034,7 @@ function useBridge() {
|
|
|
19863
20034
|
warpTxs,
|
|
19864
20035
|
bridgeSender.type === "direct-wallet" ? walletClient : null
|
|
19865
20036
|
);
|
|
20037
|
+
setBridgeTxStatus(t("passport:bridgeMenu.statuses.txPatching"));
|
|
19866
20038
|
await Promise.all([
|
|
19867
20039
|
patchInitiatedBridgeTxOpHashes({ txId: hyperlaneDbTx.id, txOpHashes: operationHashes }),
|
|
19868
20040
|
patchInitiatedBridgeTxStatus({ txId: hyperlaneDbTx.id, txStatus: "SENDING" })
|
|
@@ -19870,18 +20042,14 @@ function useBridge() {
|
|
|
19870
20042
|
return operationHashes;
|
|
19871
20043
|
},
|
|
19872
20044
|
onSuccess: (operationHashes) => {
|
|
19873
|
-
const { setBridgeStep, setBridgeTxStatus
|
|
19874
|
-
setBridgeTxStatus(
|
|
19875
|
-
// @ts-expect-error i18n typing
|
|
19876
|
-
t("passport:bridgeMenu.statuses.txSent", { destination: destinationChain })
|
|
19877
|
-
);
|
|
20045
|
+
const { setBridgeStep, setBridgeTxStatus } = useBridgeStore.getState();
|
|
19878
20046
|
useOperationHashesStore.getState().setOperationHashes(operationHashes);
|
|
19879
20047
|
useLayoutStore.getState().setIsDialogForced(false);
|
|
19880
20048
|
useFlowSelectorStore.getState().setIsUiLocked(false);
|
|
20049
|
+
setBridgeTxStatus(null);
|
|
19881
20050
|
setBridgeStep("success");
|
|
19882
20051
|
},
|
|
19883
20052
|
onError: (error) => {
|
|
19884
|
-
const { setBridgeTxStatus } = useBridgeStore.getState();
|
|
19885
20053
|
console.error("[HYPERLANE SDK] Bridge execution error", error);
|
|
19886
20054
|
const hyperlaneDbTx = useOperationHashesStore.getState().hyperlaneDatabaseTx;
|
|
19887
20055
|
if (hyperlaneDbTx?.id) {
|
|
@@ -19889,9 +20057,9 @@ function useBridge() {
|
|
|
19889
20057
|
console.log("[HYPERLANE SDK] initiated tx patched as REJECTED: ", hyperlaneDbTx.id, "ok: ", ok);
|
|
19890
20058
|
});
|
|
19891
20059
|
}
|
|
19892
|
-
setBridgeTxStatus(null);
|
|
19893
20060
|
useLayoutStore.getState().setIsDialogForced(false);
|
|
19894
20061
|
useFlowSelectorStore.getState().setIsUiLocked(false);
|
|
20062
|
+
useBridgeStore.getState().setBridgeTxStatus(null);
|
|
19895
20063
|
useFlowSelectorStore.getState().setError(error instanceof Error ? error.message : String(error));
|
|
19896
20064
|
}
|
|
19897
20065
|
});
|
|
@@ -20069,13 +20237,14 @@ function useBridgeBalance(hyperlaneWarpRoutes) {
|
|
|
20069
20237
|
const originChainMeta = CHAINS_UI_META[originChain];
|
|
20070
20238
|
const isSelectedTokenNative = selectedWarpRoute?.symbol?.toUpperCase() === originChainMeta?.chain?.nativeCurrency?.symbol?.toUpperCase();
|
|
20071
20239
|
const { data: externalBalanceData, isLoading: isExternalBalanceLoading } = (0, import_react_query45.useQuery)({
|
|
20072
|
-
enabled: bridgeSender === "direct-wallet" && !isSelectedTokenNative && !!directWalletAddress && !!routeTokenAddress && !!originChain,
|
|
20073
20240
|
retry: false,
|
|
20241
|
+
enabled: bridgeSender === "direct-wallet" && !isSelectedTokenNative && !!directWalletAddress && !!routeTokenAddress && !!originChain,
|
|
20074
20242
|
queryKey: [EXTERNAL_WALLET_BRIDGING_BALANCE_QUERY, originChain, directWalletAddress, routeTokenAddress],
|
|
20075
20243
|
queryFn: async () => {
|
|
20244
|
+
const chainTransport = import_core6.CHAINS_BROWSERS_TRANSPORTS[originChainMeta.chain.id] || (0, import_viem13.http)(originChainMeta.chain.rpcUrls.default.http[0]);
|
|
20076
20245
|
const client = (0, import_viem13.createPublicClient)({
|
|
20077
20246
|
chain: originChainMeta.chain,
|
|
20078
|
-
transport:
|
|
20247
|
+
transport: chainTransport
|
|
20079
20248
|
});
|
|
20080
20249
|
const [value, decimals, symbol] = await Promise.all([
|
|
20081
20250
|
client.readContract({
|
|
@@ -20168,11 +20337,12 @@ function useBridgeBalance(hyperlaneWarpRoutes) {
|
|
|
20168
20337
|
isRouteTokenBalanceLoading: isAssetsLoading || isExternalBalanceLoading || isExternalNativeBalanceLoading
|
|
20169
20338
|
};
|
|
20170
20339
|
}
|
|
20171
|
-
var import_react_query45, import_react66, import_viem13, import_wagmi4, EXTERNAL_WALLET_BRIDGING_BALANCE_QUERY;
|
|
20340
|
+
var import_core6, import_react_query45, import_react66, import_viem13, import_wagmi4, EXTERNAL_WALLET_BRIDGING_BALANCE_QUERY;
|
|
20172
20341
|
var init_useBridgeBalance = __esm({
|
|
20173
20342
|
"src/internal/components/SendMenu/hyperbridge/hooks/useBridgeBalance.ts"() {
|
|
20174
20343
|
init_SessionContext();
|
|
20175
20344
|
init_i18n();
|
|
20345
|
+
import_core6 = require("@embarkai/core");
|
|
20176
20346
|
import_react_query45 = require("@tanstack/react-query");
|
|
20177
20347
|
import_react66 = require("react");
|
|
20178
20348
|
import_viem13 = require("viem");
|
|
@@ -20192,17 +20362,16 @@ function SelectStep(props) {
|
|
|
20192
20362
|
const { swapChains, hyperlaneWarpRoutes, isLoadingWarpRoutes, handleQuoteEstimation } = props;
|
|
20193
20363
|
const { t } = useT();
|
|
20194
20364
|
const {
|
|
20365
|
+
bridgeSenders,
|
|
20366
|
+
bridgeSender,
|
|
20195
20367
|
originChain,
|
|
20196
20368
|
destinationChain,
|
|
20197
20369
|
hyperRoute,
|
|
20198
20370
|
amount,
|
|
20199
20371
|
isQuoteEstimating,
|
|
20200
|
-
recipient
|
|
20201
|
-
setBridgeStep,
|
|
20202
|
-
setAmount,
|
|
20203
|
-
setRecipient
|
|
20372
|
+
recipient
|
|
20204
20373
|
} = useBridgeStore();
|
|
20205
|
-
const selectedSender =
|
|
20374
|
+
const selectedSender = bridgeSenders?.find((s) => s.type === bridgeSender) || null;
|
|
20206
20375
|
const { routeTokenBalance, isRouteTokenBalanceLoading } = useBridgeBalance(hyperlaneWarpRoutes);
|
|
20207
20376
|
const selectedWarpRoute = hyperlaneWarpRoutes.find((route) => {
|
|
20208
20377
|
const { routeId, chainPair } = route;
|
|
@@ -20214,6 +20383,9 @@ function SelectStep(props) {
|
|
|
20214
20383
|
if (isLoadingWarpRoutes) {
|
|
20215
20384
|
return /* @__PURE__ */ (0, import_jsx_runtime93.jsx)("div", { className: "w-full flex items-center justify-center p-[var(--ui-kit-pd)]", children: /* @__PURE__ */ (0, import_jsx_runtime93.jsx)(import_lucide_react59.LoaderIcon, { className: "w-4 h-4 animate-spin" }) });
|
|
20216
20385
|
}
|
|
20386
|
+
const isBalanceInsufficient = !routeTokenBalance || Number(amount || 0) > Number(routeTokenBalance || 0);
|
|
20387
|
+
const isFalsyAmount = !amount || !Number(amount) || Number(amount) <= 0;
|
|
20388
|
+
const isQuoteEstimationDisabled = isQuoteEstimating || !hyperlaneWarpRoutes.length || !selectedSender || !originChain || !destinationChain || !hyperRoute || isFalsyAmount || isBalanceInsufficient;
|
|
20217
20389
|
return /* @__PURE__ */ (0, import_jsx_runtime93.jsxs)("div", { className: "w-full flex flex-col gap-[var(--ui-kit-gap)] items-center", children: [
|
|
20218
20390
|
/* @__PURE__ */ (0, import_jsx_runtime93.jsxs)("div", { className: "w-full flex flex-col gap-[var(--ui-kit-gap)]", children: [
|
|
20219
20391
|
/* @__PURE__ */ (0, import_jsx_runtime93.jsx)(
|
|
@@ -20234,7 +20406,7 @@ function SelectStep(props) {
|
|
|
20234
20406
|
className: "w-full justify-between",
|
|
20235
20407
|
onClick: () => {
|
|
20236
20408
|
useFlowSelectorStore.getState().setError(null);
|
|
20237
|
-
setBridgeStep("sender-selector");
|
|
20409
|
+
useBridgeStore.getState().setBridgeStep("sender-selector");
|
|
20238
20410
|
},
|
|
20239
20411
|
children: [
|
|
20240
20412
|
/* @__PURE__ */ (0, import_jsx_runtime93.jsxs)("div", { className: "flex items-center gap-[var(--ui-kit-gap)]", children: [
|
|
@@ -20258,7 +20430,7 @@ function SelectStep(props) {
|
|
|
20258
20430
|
": "
|
|
20259
20431
|
] }),
|
|
20260
20432
|
isRouteTokenBalanceLoading && /* @__PURE__ */ (0, import_jsx_runtime93.jsx)(import_lucide_react59.LoaderIcon, { className: "w-4 h-4 animate-spin text-[var(--ui-kit-fg-muted)]" }),
|
|
20261
|
-
!isRouteTokenBalanceLoading && /* @__PURE__ */ (0, import_jsx_runtime93.jsxs)("span", { className: "font-semibold", children: [
|
|
20433
|
+
!isRouteTokenBalanceLoading && /* @__PURE__ */ (0, import_jsx_runtime93.jsxs)("span", { className: cn("font-semibold", { "text-[var(--ui-kit-bg-error)]": isBalanceInsufficient }), children: [
|
|
20262
20434
|
formatPrice(Number(routeTokenBalance || 0)),
|
|
20263
20435
|
" ",
|
|
20264
20436
|
selectedWarpRoute?.symbol
|
|
@@ -20273,7 +20445,7 @@ function SelectStep(props) {
|
|
|
20273
20445
|
className: "w-full justify-between",
|
|
20274
20446
|
onClick: () => {
|
|
20275
20447
|
useFlowSelectorStore.getState().setError(null);
|
|
20276
|
-
setBridgeStep("select-token");
|
|
20448
|
+
useBridgeStore.getState().setBridgeStep("select-token");
|
|
20277
20449
|
},
|
|
20278
20450
|
children: [
|
|
20279
20451
|
selectedWarpRoute ? /* @__PURE__ */ (0, import_jsx_runtime93.jsxs)("div", { className: "flex items-center gap-[var(--ui-kit-gap)]", children: [
|
|
@@ -20357,9 +20529,9 @@ function SelectStep(props) {
|
|
|
20357
20529
|
}
|
|
20358
20530
|
if (regex.test(value) || value === "") {
|
|
20359
20531
|
if (value === "") {
|
|
20360
|
-
setAmount("0");
|
|
20532
|
+
useBridgeStore.getState().setAmount("0");
|
|
20361
20533
|
} else {
|
|
20362
|
-
setAmount(value);
|
|
20534
|
+
useBridgeStore.getState().setAmount(value);
|
|
20363
20535
|
}
|
|
20364
20536
|
}
|
|
20365
20537
|
},
|
|
@@ -20390,7 +20562,7 @@ function SelectStep(props) {
|
|
|
20390
20562
|
Icon: import_lucide_react59.Wallet2Icon,
|
|
20391
20563
|
onChange: (e) => {
|
|
20392
20564
|
useFlowSelectorStore.getState().setError(null);
|
|
20393
|
-
setRecipient(e.target.value);
|
|
20565
|
+
useBridgeStore.getState().setRecipient(e.target.value);
|
|
20394
20566
|
},
|
|
20395
20567
|
element: /* @__PURE__ */ (0, import_jsx_runtime93.jsx)(
|
|
20396
20568
|
Button,
|
|
@@ -20400,7 +20572,7 @@ function SelectStep(props) {
|
|
|
20400
20572
|
variant: "ghost",
|
|
20401
20573
|
onClick: (e) => {
|
|
20402
20574
|
e.stopPropagation();
|
|
20403
|
-
setRecipient(null);
|
|
20575
|
+
useBridgeStore.getState().setRecipient(null);
|
|
20404
20576
|
},
|
|
20405
20577
|
children: /* @__PURE__ */ (0, import_jsx_runtime93.jsx)(import_lucide_react59.XIcon, { className: "w-4 h-4" })
|
|
20406
20578
|
}
|
|
@@ -20418,10 +20590,10 @@ function SelectStep(props) {
|
|
|
20418
20590
|
variant: "default",
|
|
20419
20591
|
className: "w-full",
|
|
20420
20592
|
onClick: () => handleQuoteEstimation(amount),
|
|
20421
|
-
disabled:
|
|
20593
|
+
disabled: isQuoteEstimationDisabled,
|
|
20422
20594
|
children: [
|
|
20423
20595
|
isQuoteEstimating && /* @__PURE__ */ (0, import_jsx_runtime93.jsx)(import_lucide_react59.LoaderIcon, { className: "h-4 w-4 animate-spin" }),
|
|
20424
|
-
/* @__PURE__ */ (0, import_jsx_runtime93.jsx)("span", { children: t("passport:bridgeMenu.actions.estimateQuote") })
|
|
20596
|
+
/* @__PURE__ */ (0, import_jsx_runtime93.jsx)("span", { children: isBalanceInsufficient ? t("passport:bridgeMenu.statuses.balanceInsufficient") : t("passport:bridgeMenu.actions.estimateQuote") })
|
|
20425
20597
|
]
|
|
20426
20598
|
}
|
|
20427
20599
|
)
|
|
@@ -22922,27 +23094,27 @@ function getHistoryUrls(params) {
|
|
|
22922
23094
|
}
|
|
22923
23095
|
return getBlockscoutHistoryUrls(params);
|
|
22924
23096
|
}
|
|
22925
|
-
var
|
|
23097
|
+
var import_read17, ETHERSCAN_V2_API_URL, BLOCKSCOUT_API_URLS, CHAIN_SPECIFIC_API_URLS, ETHERSCAN_CHAINS, UNSUPPORTED_HISTORY_CHAINS, TX_HISTORY_URLS;
|
|
22926
23098
|
var init_txUrls = __esm({
|
|
22927
23099
|
"src/internal/components/TransactionsMenu/txUrls.ts"() {
|
|
22928
|
-
|
|
23100
|
+
import_read17 = require("@embarkai/core/read");
|
|
22929
23101
|
init_base();
|
|
22930
23102
|
ETHERSCAN_V2_API_URL = "https://api.etherscan.io/v2/api";
|
|
22931
23103
|
BLOCKSCOUT_API_URLS = {
|
|
22932
|
-
[
|
|
22933
|
-
[
|
|
23104
|
+
[import_read17.ARBITRUM_SEPOLIA_CHAIN_ID]: "https://arbitrum-sepolia.blockscout.com/api",
|
|
23105
|
+
[import_read17.BASE_SEPOLIA_CHAIN_ID]: "https://base-sepolia.blockscout.com/api"
|
|
22934
23106
|
};
|
|
22935
23107
|
CHAIN_SPECIFIC_API_URLS = {};
|
|
22936
23108
|
ETHERSCAN_CHAINS = /* @__PURE__ */ new Set([
|
|
22937
|
-
|
|
22938
|
-
|
|
22939
|
-
|
|
23109
|
+
import_read17.SEPOLIA_CHAIN_ID,
|
|
23110
|
+
import_read17.ARBITRUM_SEPOLIA_CHAIN_ID,
|
|
23111
|
+
import_read17.BASE_SEPOLIA_CHAIN_ID
|
|
22940
23112
|
]);
|
|
22941
23113
|
UNSUPPORTED_HISTORY_CHAINS = /* @__PURE__ */ new Set([
|
|
22942
|
-
|
|
23114
|
+
import_read17.BSC_TESTNET_CHAIN_ID
|
|
22943
23115
|
]);
|
|
22944
23116
|
TX_HISTORY_URLS = {
|
|
22945
|
-
[
|
|
23117
|
+
[import_read17.LUMIA_TESTNET_CHAIN_ID]: (p) => {
|
|
22946
23118
|
const result = getBlockscoutHistoryUrls(p);
|
|
22947
23119
|
return {
|
|
22948
23120
|
transactionsUrl: result.transactionsUrl,
|
|
@@ -22950,7 +23122,7 @@ var init_txUrls = __esm({
|
|
|
22950
23122
|
tokenTransfersUrl: result.tokenTransfersUrl
|
|
22951
23123
|
};
|
|
22952
23124
|
},
|
|
22953
|
-
[
|
|
23125
|
+
[import_read17.LUMIA_MAINNET_CHAIN_ID]: (p) => {
|
|
22954
23126
|
const result = getBlockscoutHistoryUrls(p);
|
|
22955
23127
|
return {
|
|
22956
23128
|
transactionsUrl: result.transactionsUrl,
|
|
@@ -24115,7 +24287,7 @@ var init_package = __esm({
|
|
|
24115
24287
|
"package.json"() {
|
|
24116
24288
|
package_default = {
|
|
24117
24289
|
name: "@embarkai/ui-kit",
|
|
24118
|
-
version: "0.4.
|
|
24290
|
+
version: "0.4.39",
|
|
24119
24291
|
description: "React UI components and hooks for EmbarkAI authentication and Account Abstraction",
|
|
24120
24292
|
type: "module",
|
|
24121
24293
|
main: "./dist/index.cjs",
|
|
@@ -25128,9 +25300,9 @@ function getChainParams(chainCfg) {
|
|
|
25128
25300
|
return {
|
|
25129
25301
|
activeChainId: chainCfg.id,
|
|
25130
25302
|
chainConfig: chainCfg,
|
|
25131
|
-
publicClient: (0,
|
|
25132
|
-
bundlerClient: (0,
|
|
25133
|
-
viemChain: (0,
|
|
25303
|
+
publicClient: (0, import_read18.createPublicClientForChain)(chainCfg.id),
|
|
25304
|
+
bundlerClient: (0, import_read18.createBundlerClientForChain)(chainCfg.id),
|
|
25305
|
+
viemChain: (0, import_read18.getViemChain)(chainCfg.id)
|
|
25134
25306
|
};
|
|
25135
25307
|
}
|
|
25136
25308
|
function waitForStoreHydration() {
|
|
@@ -25156,10 +25328,10 @@ function SessionProvider({ children }) {
|
|
|
25156
25328
|
/* @__PURE__ */ (0, import_jsx_runtime121.jsx)(Dialog2, {})
|
|
25157
25329
|
] });
|
|
25158
25330
|
}
|
|
25159
|
-
var
|
|
25331
|
+
var import_read18, import_react89, import_zustand13, import_middleware4, import_jsx_runtime121, useSession, requireActiveChainId;
|
|
25160
25332
|
var init_SessionContext = __esm({
|
|
25161
25333
|
"src/context/SessionContext.tsx"() {
|
|
25162
|
-
|
|
25334
|
+
import_read18 = require("@embarkai/core/read");
|
|
25163
25335
|
import_react89 = require("react");
|
|
25164
25336
|
import_zustand13 = require("zustand");
|
|
25165
25337
|
import_middleware4 = require("zustand/middleware");
|
|
@@ -25231,7 +25403,7 @@ var init_SessionContext = __esm({
|
|
|
25231
25403
|
// Set default chainId after hydration if not persisted
|
|
25232
25404
|
onRehydrateStorage: () => (state) => {
|
|
25233
25405
|
if (!state) return;
|
|
25234
|
-
const hydartedChain = getChainParams((0,
|
|
25406
|
+
const hydartedChain = getChainParams((0, import_read18.getChainConfig)(state.activeChainId || import_read18.DEFAULT_CHAIN_ID));
|
|
25235
25407
|
state.activeChainId = hydartedChain.activeChainId;
|
|
25236
25408
|
state.publicClient = hydartedChain.publicClient;
|
|
25237
25409
|
state.bundlerClient = hydartedChain.bundlerClient;
|
|
@@ -25306,31 +25478,31 @@ function getExplorerUrl() {
|
|
|
25306
25478
|
const paramUrl = typeof window !== "undefined" ? new URLSearchParams(window.location.search).get("explorerUrl") || void 0 : void 0;
|
|
25307
25479
|
const net = getSelectedNetwork();
|
|
25308
25480
|
const chainId = requireActiveChainId();
|
|
25309
|
-
const chainConfig = (0,
|
|
25481
|
+
const chainConfig = (0, import_read19.getChainConfig)(chainId);
|
|
25310
25482
|
console.log("[getExplorerUrl] ", paramUrl, chainConfig.blockExplorerUrl);
|
|
25311
25483
|
return paramUrl || chainConfig.blockExplorerUrl;
|
|
25312
25484
|
}
|
|
25313
25485
|
function getBundlerClient() {
|
|
25314
25486
|
const chainId = requireActiveChainId();
|
|
25315
|
-
const chainConfig = (0,
|
|
25316
|
-
const viemChain = (0,
|
|
25487
|
+
const chainConfig = (0, import_read19.getChainConfig)(chainId);
|
|
25488
|
+
const viemChain = (0, import_read19.getViemChain)(chainId);
|
|
25317
25489
|
return (0, import_account_abstraction2.createBundlerClient)({
|
|
25318
25490
|
chain: viemChain,
|
|
25319
25491
|
transport: (0, import_viem19.http)(chainConfig.bundlerUrl, { timeout: 1e4, retryCount: 0, fetchOptions: { mode: "cors" } })
|
|
25320
25492
|
});
|
|
25321
25493
|
}
|
|
25322
|
-
var
|
|
25494
|
+
var import_read19, import_viem19, import_account_abstraction2, BUILD_NETWORK, lumiaBeamTestnet, lumiaPrisma, FUNDER_PK;
|
|
25323
25495
|
var init_base = __esm({
|
|
25324
25496
|
"src/internal/clients/base.ts"() {
|
|
25325
25497
|
init_initial();
|
|
25326
25498
|
init_SessionContext();
|
|
25327
|
-
|
|
25499
|
+
import_read19 = require("@embarkai/core/read");
|
|
25328
25500
|
import_viem19 = require("viem");
|
|
25329
25501
|
import_account_abstraction2 = require("viem/account-abstraction");
|
|
25330
25502
|
init_env();
|
|
25331
25503
|
BUILD_NETWORK = true ? "" : "";
|
|
25332
|
-
lumiaBeamTestnet =
|
|
25333
|
-
lumiaPrisma =
|
|
25504
|
+
lumiaBeamTestnet = import_read19.lumiaTestnetChain;
|
|
25505
|
+
lumiaPrisma = import_read19.lumiaMainnetChain;
|
|
25334
25506
|
FUNDER_PK = getEnvVar("VITE_FUNDER_PK") || "";
|
|
25335
25507
|
}
|
|
25336
25508
|
});
|
|
@@ -27571,10 +27743,10 @@ var init_iframe_manager = __esm({
|
|
|
27571
27743
|
});
|
|
27572
27744
|
|
|
27573
27745
|
// src/config/rainbowkit.ts
|
|
27574
|
-
var
|
|
27746
|
+
var import_read20, import_rainbowkit3, import_wallets2, import_wagmi8, import_chains12, getProjectId2, WALLET_MAP, getWagmiStorageKey, buildRainbowChains, createRainbowConfig, rainbowTheme;
|
|
27575
27747
|
var init_rainbowkit = __esm({
|
|
27576
27748
|
"src/config/rainbowkit.ts"() {
|
|
27577
|
-
|
|
27749
|
+
import_read20 = require("@embarkai/core/read");
|
|
27578
27750
|
import_rainbowkit3 = require("@rainbow-me/rainbowkit");
|
|
27579
27751
|
import_wallets2 = require("@rainbow-me/rainbowkit/wallets");
|
|
27580
27752
|
import_wagmi8 = require("wagmi");
|
|
@@ -27589,8 +27761,9 @@ var init_rainbowkit = __esm({
|
|
|
27589
27761
|
WALLET_MAP = {
|
|
27590
27762
|
walletconnect: import_wallets2.walletConnectWallet,
|
|
27591
27763
|
metamask: import_wallets2.metaMaskWallet,
|
|
27592
|
-
coinbase:
|
|
27593
|
-
rainbow: import_wallets2.rainbowWallet
|
|
27764
|
+
// coinbase: coinbaseWallet,
|
|
27765
|
+
rainbow: import_wallets2.rainbowWallet,
|
|
27766
|
+
binance: import_wallets2.binanceWallet
|
|
27594
27767
|
};
|
|
27595
27768
|
getWagmiStorageKey = (options) => {
|
|
27596
27769
|
const projectId = options?.projectId || "default";
|
|
@@ -27599,8 +27772,8 @@ var init_rainbowkit = __esm({
|
|
|
27599
27772
|
};
|
|
27600
27773
|
buildRainbowChains = (supportedChains, preferredChainId) => {
|
|
27601
27774
|
const availableChains = [
|
|
27602
|
-
|
|
27603
|
-
|
|
27775
|
+
import_read20.lumiaMainnetChain,
|
|
27776
|
+
import_read20.lumiaTestnetChain,
|
|
27604
27777
|
import_chains12.mainnet,
|
|
27605
27778
|
import_chains12.polygon,
|
|
27606
27779
|
import_chains12.bsc,
|
|
@@ -27887,54 +28060,15 @@ var init_utils11 = __esm({
|
|
|
27887
28060
|
}
|
|
27888
28061
|
});
|
|
27889
28062
|
|
|
27890
|
-
// src/config/wagmi.ts
|
|
27891
|
-
function buildTransport(urls) {
|
|
27892
|
-
const transports = urls.map(
|
|
27893
|
-
(url) => (0, import_wagmi10.http)(url, {
|
|
27894
|
-
timeout: 1e4,
|
|
27895
|
-
retryCount: 0,
|
|
27896
|
-
batch: false,
|
|
27897
|
-
// Disable batch requests
|
|
27898
|
-
fetchOptions: { mode: "cors" }
|
|
27899
|
-
})
|
|
27900
|
-
);
|
|
27901
|
-
if (transports.length === 1) {
|
|
27902
|
-
return transports[0];
|
|
27903
|
-
}
|
|
27904
|
-
return (0, import_viem20.fallback)(transports, {
|
|
27905
|
-
rank: false,
|
|
27906
|
-
retryCount: 0
|
|
27907
|
-
});
|
|
27908
|
-
}
|
|
27909
|
-
var import_read19, import_viem20, import_wagmi10, import_chains13, wagmiConfig;
|
|
27910
|
-
var init_wagmi = __esm({
|
|
27911
|
-
"src/config/wagmi.ts"() {
|
|
27912
|
-
import_read19 = require("@embarkai/core/read");
|
|
27913
|
-
import_viem20 = require("viem");
|
|
27914
|
-
import_wagmi10 = require("wagmi");
|
|
27915
|
-
import_chains13 = require("wagmi/chains");
|
|
27916
|
-
wagmiConfig = (0, import_wagmi10.createConfig)({
|
|
27917
|
-
chains: [import_read19.lumiaMainnetChain, import_read19.lumiaTestnetChain, import_chains13.bsc, import_chains13.mainnet],
|
|
27918
|
-
storage: (0, import_wagmi10.createStorage)({ key: "embark-wagmi-static-v2" }),
|
|
27919
|
-
transports: {
|
|
27920
|
-
[import_read19.lumiaTestnetChain.id]: buildTransport(import_read19.lumiaTestnetChain.rpcUrls.default.http),
|
|
27921
|
-
[import_read19.lumiaMainnetChain.id]: buildTransport(import_read19.lumiaMainnetChain.rpcUrls.default.http),
|
|
27922
|
-
[import_chains13.bsc.id]: (0, import_wagmi10.http)(),
|
|
27923
|
-
[import_chains13.mainnet.id]: (0, import_wagmi10.http)()
|
|
27924
|
-
}
|
|
27925
|
-
});
|
|
27926
|
-
}
|
|
27927
|
-
});
|
|
27928
|
-
|
|
27929
28063
|
// src/context/WagmiContext.tsx
|
|
27930
|
-
var
|
|
28064
|
+
var import_core7, import_wagmi10, import_jsx_runtime123, WagmiProvider2;
|
|
27931
28065
|
var init_WagmiContext = __esm({
|
|
27932
28066
|
"src/context/WagmiContext.tsx"() {
|
|
27933
|
-
|
|
27934
|
-
|
|
28067
|
+
import_core7 = require("@embarkai/core");
|
|
28068
|
+
import_wagmi10 = require("wagmi");
|
|
27935
28069
|
import_jsx_runtime123 = require("react/jsx-runtime");
|
|
27936
28070
|
WagmiProvider2 = ({ children }) => {
|
|
27937
|
-
return /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(
|
|
28071
|
+
return /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(import_wagmi10.WagmiProvider, { config: import_core7.wagmiConfig, children });
|
|
27938
28072
|
};
|
|
27939
28073
|
}
|
|
27940
28074
|
});
|
|
@@ -28167,7 +28301,7 @@ __export(index_exports, {
|
|
|
28167
28301
|
useWalletMode: () => useWalletMode,
|
|
28168
28302
|
verifyFingerprint: () => verifyFingerprint,
|
|
28169
28303
|
verifyFingerprintDetailed: () => verifyFingerprintDetailed,
|
|
28170
|
-
wagmiConfig: () => wagmiConfig,
|
|
28304
|
+
wagmiConfig: () => import_core8.wagmiConfig,
|
|
28171
28305
|
waitForStoreHydration: () => waitForStoreHydration,
|
|
28172
28306
|
waitForUserOperationReceipt: () => waitForUserOperationReceipt
|
|
28173
28307
|
});
|
|
@@ -28177,6 +28311,7 @@ module.exports = __toCommonJS(index_exports);
|
|
|
28177
28311
|
var built_default = `.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.embarkai-ui-scope .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.embarkai-ui-scope .pointer-events-none{pointer-events:none}.embarkai-ui-scope .pointer-events-auto{pointer-events:auto}.embarkai-ui-scope .visible{visibility:visible}.embarkai-ui-scope .invisible{visibility:hidden}.embarkai-ui-scope .static{position:static}.embarkai-ui-scope .fixed{position:fixed}.embarkai-ui-scope .absolute{position:absolute}.embarkai-ui-scope .relative{position:relative}.embarkai-ui-scope .sticky{position:sticky}.embarkai-ui-scope .inset-0{inset:0}.embarkai-ui-scope .-right-0\\.5{right:-.125rem}.embarkai-ui-scope .-right-1{right:-.25rem}.embarkai-ui-scope .-right-2{right:-.5rem}.embarkai-ui-scope .-top-0\\.5{top:-.125rem}.embarkai-ui-scope .-top-1{top:-.25rem}.embarkai-ui-scope .-top-2{top:-.5rem}.embarkai-ui-scope .bottom-0{bottom:0}.embarkai-ui-scope .bottom-full{bottom:100%}.embarkai-ui-scope .left-0{left:0}.embarkai-ui-scope .left-1\\/2{left:50%}.embarkai-ui-scope .left-4{left:1rem}.embarkai-ui-scope .right-0{right:0}.embarkai-ui-scope .right-3{right:.75rem}.embarkai-ui-scope .right-4{right:1rem}.embarkai-ui-scope .right-\\[var\\(--ui-kit-pd\\)\\]{right:var(--ui-kit-pd)}.embarkai-ui-scope .right-full{right:100%}.embarkai-ui-scope .top-0{top:0}.embarkai-ui-scope .top-1\\/2{top:50%}.embarkai-ui-scope .top-4{top:1rem}.embarkai-ui-scope .top-\\[var\\(--ui-kit-pd\\)\\]{top:var(--ui-kit-pd)}.embarkai-ui-scope .z-10{z-index:10}.embarkai-ui-scope .z-50{z-index:50}.embarkai-ui-scope .z-\\[9998\\]{z-index:9998}.embarkai-ui-scope .z-\\[9999\\]{z-index:9999}.embarkai-ui-scope .-m-px{margin:-1px}.embarkai-ui-scope .-mx-1{margin-left:-.25rem;margin-right:-.25rem}.embarkai-ui-scope .mx-auto{margin-left:auto;margin-right:auto}.embarkai-ui-scope .my-1{margin-top:.25rem;margin-bottom:.25rem}.embarkai-ui-scope .mb-1{margin-bottom:.25rem}.embarkai-ui-scope .mb-2{margin-bottom:.5rem}.embarkai-ui-scope .mb-3{margin-bottom:.75rem}.embarkai-ui-scope .mb-4{margin-bottom:1rem}.embarkai-ui-scope .ml-1{margin-left:.25rem}.embarkai-ui-scope .ml-2{margin-left:.5rem}.embarkai-ui-scope .ml-auto{margin-left:auto}.embarkai-ui-scope .mr-1{margin-right:.25rem}.embarkai-ui-scope .mt-0\\.5{margin-top:.125rem}.embarkai-ui-scope .mt-1{margin-top:.25rem}.embarkai-ui-scope .mt-2{margin-top:.5rem}.embarkai-ui-scope .mt-4{margin-top:1rem}.embarkai-ui-scope .block{display:block}.embarkai-ui-scope .inline-block{display:inline-block}.embarkai-ui-scope .inline{display:inline}.embarkai-ui-scope .flex{display:flex}.embarkai-ui-scope .inline-flex{display:inline-flex}.embarkai-ui-scope .table{display:table}.embarkai-ui-scope .grid{display:grid}.embarkai-ui-scope .hidden{display:none}.embarkai-ui-scope .aspect-square{aspect-ratio:1/1}.embarkai-ui-scope .size-4{width:1rem;height:1rem}.embarkai-ui-scope .size-8{width:2rem;height:2rem}.embarkai-ui-scope .size-auto{width:auto;height:auto}.embarkai-ui-scope .h-0{height:0}.embarkai-ui-scope .h-1{height:.25rem}.embarkai-ui-scope .h-10{height:2.5rem}.embarkai-ui-scope .h-12{height:3rem}.embarkai-ui-scope .h-16{height:4rem}.embarkai-ui-scope .h-2{height:.5rem}.embarkai-ui-scope .h-3{height:.75rem}.embarkai-ui-scope .h-3\\.5{height:.875rem}.embarkai-ui-scope .h-4{height:1rem}.embarkai-ui-scope .h-48{height:12rem}.embarkai-ui-scope .h-5{height:1.25rem}.embarkai-ui-scope .h-6{height:1.5rem}.embarkai-ui-scope .h-7{height:1.75rem}.embarkai-ui-scope .h-8{height:2rem}.embarkai-ui-scope .h-\\[100dvh\\]{height:100dvh}.embarkai-ui-scope .h-\\[48px\\]{height:48px}.embarkai-ui-scope .h-\\[var\\(--radix-select-trigger-height\\)\\]{height:var(--radix-select-trigger-height)}.embarkai-ui-scope .h-auto{height:auto}.embarkai-ui-scope .h-fit{height:-moz-fit-content;height:fit-content}.embarkai-ui-scope .h-full{height:100%}.embarkai-ui-scope .h-px{height:1px}.embarkai-ui-scope .max-h-64{max-height:16rem}.embarkai-ui-scope .max-h-96{max-height:24rem}.embarkai-ui-scope .max-h-\\[95dvh\\]{max-height:95dvh}.embarkai-ui-scope .min-h-10{min-height:2.5rem}.embarkai-ui-scope .w-1{width:.25rem}.embarkai-ui-scope .w-1\\/2{width:50%}.embarkai-ui-scope .w-10{width:2.5rem}.embarkai-ui-scope .w-12{width:3rem}.embarkai-ui-scope .w-16{width:4rem}.embarkai-ui-scope .w-2{width:.5rem}.embarkai-ui-scope .w-3{width:.75rem}.embarkai-ui-scope .w-3\\.5{width:.875rem}.embarkai-ui-scope .w-4{width:1rem}.embarkai-ui-scope .w-48{width:12rem}.embarkai-ui-scope .w-5{width:1.25rem}.embarkai-ui-scope .w-6{width:1.5rem}.embarkai-ui-scope .w-7{width:1.75rem}.embarkai-ui-scope .w-72{width:18rem}.embarkai-ui-scope .w-8{width:2rem}.embarkai-ui-scope .w-\\[100dvw\\]{width:100dvw}.embarkai-ui-scope .w-\\[40px\\]{width:40px}.embarkai-ui-scope .w-\\[var\\(--ui-kit-maw\\)\\]{width:var(--ui-kit-maw)}.embarkai-ui-scope .w-fit{width:-moz-fit-content;width:fit-content}.embarkai-ui-scope .w-full{width:100%}.embarkai-ui-scope .w-px{width:1px}.embarkai-ui-scope .min-w-0{min-width:0}.embarkai-ui-scope .min-w-10{min-width:2.5rem}.embarkai-ui-scope .min-w-16{min-width:4rem}.embarkai-ui-scope .min-w-\\[256px\\]{min-width:256px}.embarkai-ui-scope .min-w-\\[8rem\\]{min-width:8rem}.embarkai-ui-scope .min-w-\\[var\\(--radix-select-trigger-width\\)\\]{min-width:var(--radix-select-trigger-width)}.embarkai-ui-scope .max-w-\\[100px\\]{max-width:100px}.embarkai-ui-scope .max-w-\\[144px\\]{max-width:144px}.embarkai-ui-scope .max-w-\\[150px\\]{max-width:150px}.embarkai-ui-scope .max-w-\\[160px\\]{max-width:160px}.embarkai-ui-scope .max-w-\\[256px\\]{max-width:256px}.embarkai-ui-scope .max-w-\\[680px\\]{max-width:680px}.embarkai-ui-scope .max-w-\\[80px\\]{max-width:80px}.embarkai-ui-scope .max-w-\\[calc\\(50\\%-8px\\)\\]{max-width:calc(50% - 8px)}.embarkai-ui-scope .max-w-full{max-width:100%}.embarkai-ui-scope .max-w-sm{max-width:24rem}.embarkai-ui-scope .flex-1{flex:1 1 0%}.embarkai-ui-scope .flex-none{flex:none}.embarkai-ui-scope .flex-shrink-0,.embarkai-ui-scope .shrink-0{flex-shrink:0}.embarkai-ui-scope .-translate-x-1\\/2{--tw-translate-x:-50%}.embarkai-ui-scope .-translate-x-1\\/2,.embarkai-ui-scope .-translate-x-\\[var\\(--ui-kit-gap\\)\\]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.embarkai-ui-scope .-translate-x-\\[var\\(--ui-kit-gap\\)\\]{--tw-translate-x:calc(var(--ui-kit-gap)*-1)}.embarkai-ui-scope .-translate-y-1\\/2{--tw-translate-y:-50%}.embarkai-ui-scope .-translate-y-1\\/2,.embarkai-ui-scope .-translate-y-1\\/3{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.embarkai-ui-scope .-translate-y-1\\/3{--tw-translate-y:-33.333333%}.embarkai-ui-scope .rotate-180{--tw-rotate:180deg}.embarkai-ui-scope .rotate-180,.embarkai-ui-scope .transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes glow-warning{0%,to{transform:scale(1);box-shadow:0 0 16px var(--ui-kit-bg-warning)}50%{transform:scale(.97);box-shadow:0 0 4px var(--ui-kit-bg-warning)}}.embarkai-ui-scope .animate-glow-warning{animation:glow-warning 2s ease infinite}@keyframes pulse{50%{opacity:.5}}.embarkai-ui-scope .animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(1turn)}}.embarkai-ui-scope .animate-spin{animation:spin 1s linear infinite}.embarkai-ui-scope .cursor-default{cursor:default}.embarkai-ui-scope .cursor-help{cursor:help}.embarkai-ui-scope .cursor-not-allowed{cursor:not-allowed}.embarkai-ui-scope .cursor-pointer{cursor:pointer}.embarkai-ui-scope .cursor-text{cursor:text}.embarkai-ui-scope .select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.embarkai-ui-scope .select-all{-webkit-user-select:all;-moz-user-select:all;user-select:all}.embarkai-ui-scope .scroll-my-1{scroll-margin-top:.25rem;scroll-margin-bottom:.25rem}.embarkai-ui-scope .list-inside{list-style-position:inside}.embarkai-ui-scope .list-disc{list-style-type:disc}.embarkai-ui-scope .grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.embarkai-ui-scope .grid-cols-10{grid-template-columns:repeat(10,minmax(0,1fr))}.embarkai-ui-scope .grid-cols-11{grid-template-columns:repeat(11,minmax(0,1fr))}.embarkai-ui-scope .grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.embarkai-ui-scope .grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.embarkai-ui-scope .grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.embarkai-ui-scope .grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.embarkai-ui-scope .grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.embarkai-ui-scope .grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.embarkai-ui-scope .grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.embarkai-ui-scope .grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.embarkai-ui-scope .flex-col{flex-direction:column}.embarkai-ui-scope .flex-col-reverse{flex-direction:column-reverse}.embarkai-ui-scope .flex-wrap{flex-wrap:wrap}.embarkai-ui-scope .place-content-center{place-content:center}.embarkai-ui-scope .items-start{align-items:flex-start}.embarkai-ui-scope .items-end{align-items:flex-end}.embarkai-ui-scope .items-center{align-items:center}.embarkai-ui-scope .justify-start{justify-content:flex-start}.embarkai-ui-scope .justify-end{justify-content:flex-end}.embarkai-ui-scope .justify-center{justify-content:center}.embarkai-ui-scope .justify-between{justify-content:space-between}.embarkai-ui-scope .gap-0{gap:0}.embarkai-ui-scope .gap-1{gap:.25rem}.embarkai-ui-scope .gap-1\\.5{gap:.375rem}.embarkai-ui-scope .gap-2{gap:.5rem}.embarkai-ui-scope .gap-3{gap:.75rem}.embarkai-ui-scope .gap-4{gap:1rem}.embarkai-ui-scope .gap-\\[10px\\]{gap:10px}.embarkai-ui-scope .gap-\\[var\\(--ui-kit-gap\\)\\]{gap:var(--ui-kit-gap)}.embarkai-ui-scope :is(.space-x-1>:not([hidden])~:not([hidden])){--tw-space-x-reverse:0;margin-right:calc(.25rem*var(--tw-space-x-reverse));margin-left:calc(.25rem*(1 - var(--tw-space-x-reverse)))}.embarkai-ui-scope :is(.space-x-2>:not([hidden])~:not([hidden])){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)))}.embarkai-ui-scope :is(.space-y-0\\.5>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.125rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem*var(--tw-space-y-reverse))}.embarkai-ui-scope :is(.space-y-1>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem*var(--tw-space-y-reverse))}.embarkai-ui-scope :is(.space-y-1\\.5>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.375rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem*var(--tw-space-y-reverse))}.embarkai-ui-scope :is(.space-y-2>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}.embarkai-ui-scope .overflow-hidden{overflow:hidden}.embarkai-ui-scope .overflow-y-auto{overflow-y:auto}.embarkai-ui-scope .overflow-x-hidden{overflow-x:hidden}.embarkai-ui-scope .truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.embarkai-ui-scope .text-ellipsis{text-overflow:ellipsis}.embarkai-ui-scope .whitespace-nowrap{white-space:nowrap}.embarkai-ui-scope .whitespace-pre-line{white-space:pre-line}.embarkai-ui-scope .whitespace-pre-wrap{white-space:pre-wrap}.embarkai-ui-scope .break-normal{overflow-wrap:normal;word-break:normal}.embarkai-ui-scope .break-words{overflow-wrap:break-word}.embarkai-ui-scope .break-all{word-break:break-all}.embarkai-ui-scope .rounded{border-radius:.25rem}.embarkai-ui-scope .rounded-\\[10px\\]{border-radius:10px}.embarkai-ui-scope .rounded-\\[8px\\]{border-radius:8px}.embarkai-ui-scope .rounded-\\[var\\(--ui-kit-bdrs\\)\\]{border-radius:var(--ui-kit-bdrs)}.embarkai-ui-scope .rounded-\\[var\\(--ui-kit-el-bdrs\\)\\]{border-radius:var(--ui-kit-el-bdrs)}.embarkai-ui-scope .rounded-full{border-radius:9999px}.embarkai-ui-scope .rounded-lg{border-radius:.5rem}.embarkai-ui-scope .rounded-md{border-radius:.375rem}.embarkai-ui-scope .rounded-xl{border-radius:.75rem}.embarkai-ui-scope .border{border-width:1px}.embarkai-ui-scope .border-0{border-width:0}.embarkai-ui-scope .border-2{border-width:2px}.embarkai-ui-scope .border-b{border-bottom-width:1px}.embarkai-ui-scope .border-t{border-top-width:1px}.embarkai-ui-scope .border-dashed{border-style:dashed}.embarkai-ui-scope .border-\\[var\\(--ui-kit-bd\\)\\]{border-color:var(--ui-kit-bd)}.embarkai-ui-scope .border-\\[var\\(--ui-kit-bg-error\\)\\]{border-color:var(--ui-kit-bg-error)}.embarkai-ui-scope .border-\\[var\\(--ui-kit-bg-success\\)\\]{border-color:var(--ui-kit-bg-success)}.embarkai-ui-scope .border-\\[var\\(--ui-kit-bg-warning\\)\\]{border-color:var(--ui-kit-bg-warning)}.embarkai-ui-scope .border-\\[var\\(--ui-kit-error\\)\\]{border-color:var(--ui-kit-error)}.embarkai-ui-scope .border-\\[var\\(--ui-kit-secondary\\)\\]{border-color:var(--ui-kit-secondary)}.embarkai-ui-scope .border-current{border-color:currentColor}.embarkai-ui-scope .border-transparent{border-color:transparent}.embarkai-ui-scope .border-t-transparent{border-top-color:transparent}.embarkai-ui-scope .bg-\\[\\#002c15\\]{--tw-bg-opacity:1;background-color:rgb(0 44 21/var(--tw-bg-opacity,1))}.embarkai-ui-scope .bg-\\[\\#081f2c\\]{--tw-bg-opacity:1;background-color:rgb(8 31 44/var(--tw-bg-opacity,1))}.embarkai-ui-scope .bg-\\[\\#f0f6f8\\]{--tw-bg-opacity:1;background-color:rgb(240 246 248/var(--tw-bg-opacity,1))}.embarkai-ui-scope .bg-\\[\\#f3ba2f\\]{--tw-bg-opacity:1;background-color:rgb(243 186 47/var(--tw-bg-opacity,1))}.embarkai-ui-scope .bg-\\[var\\(--ui-kit-accent\\)\\]{background-color:var(--ui-kit-accent)}.embarkai-ui-scope .bg-\\[var\\(--ui-kit-bg\\)\\]{background-color:var(--ui-kit-bg)}.embarkai-ui-scope .bg-\\[var\\(--ui-kit-bg-error\\)\\]{background-color:var(--ui-kit-bg-error)}.embarkai-ui-scope .bg-\\[var\\(--ui-kit-bg-info\\)\\]{background-color:var(--ui-kit-bg-info)}.embarkai-ui-scope .bg-\\[var\\(--ui-kit-bg-secondary\\)\\]{background-color:var(--ui-kit-bg-secondary)}.embarkai-ui-scope .bg-\\[var\\(--ui-kit-bg-success\\)\\]{background-color:var(--ui-kit-bg-success)}.embarkai-ui-scope .bg-\\[var\\(--ui-kit-bg-warning\\)\\]{background-color:var(--ui-kit-bg-warning)}.embarkai-ui-scope .bg-\\[var\\(--ui-kit-fg\\)\\]{background-color:var(--ui-kit-fg)}.embarkai-ui-scope .bg-\\[var\\(--ui-kit-overlay\\)\\]{background-color:var(--ui-kit-overlay)}.embarkai-ui-scope .bg-\\[var\\(--ui-kit-primary\\)\\]{background-color:var(--ui-kit-primary)}.embarkai-ui-scope .bg-\\[var\\(--ui-kit-secondary\\)\\]{background-color:var(--ui-kit-secondary)}.embarkai-ui-scope .bg-\\[var\\(--ui-kit-secondary-h\\)\\]{background-color:var(--ui-kit-secondary-h)}.embarkai-ui-scope .bg-amber-500{--tw-bg-opacity:1;background-color:rgb(245 158 11/var(--tw-bg-opacity,1))}.embarkai-ui-scope .bg-blue-100{--tw-bg-opacity:1;background-color:rgb(219 234 254/var(--tw-bg-opacity,1))}.embarkai-ui-scope .bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.embarkai-ui-scope .bg-green-100{--tw-bg-opacity:1;background-color:rgb(220 252 231/var(--tw-bg-opacity,1))}.embarkai-ui-scope .bg-red-100{--tw-bg-opacity:1;background-color:rgb(254 226 226/var(--tw-bg-opacity,1))}.embarkai-ui-scope .bg-transparent{background-color:transparent}.embarkai-ui-scope .fill-\\[var\\(--ui-kit-bg-warning\\)\\]{fill:var(--ui-kit-bg-warning)}.embarkai-ui-scope .object-contain{-o-object-fit:contain;object-fit:contain}.embarkai-ui-scope .object-cover{-o-object-fit:cover;object-fit:cover}.embarkai-ui-scope .p-0{padding:0}.embarkai-ui-scope .p-1{padding:.25rem}.embarkai-ui-scope .p-2{padding:.5rem}.embarkai-ui-scope .p-3{padding:.75rem}.embarkai-ui-scope .p-4{padding:1rem}.embarkai-ui-scope .p-5{padding:1.25rem}.embarkai-ui-scope .p-6{padding:1.5rem}.embarkai-ui-scope .p-8{padding:2rem}.embarkai-ui-scope .p-\\[2px\\]{padding:2px}.embarkai-ui-scope .p-\\[var\\(--ui-kit-gap\\)\\]{padding:var(--ui-kit-gap)}.embarkai-ui-scope .p-\\[var\\(--ui-kit-pd\\)\\]{padding:var(--ui-kit-pd)}.embarkai-ui-scope .px-0{padding-left:0;padding-right:0}.embarkai-ui-scope .px-1{padding-left:.25rem;padding-right:.25rem}.embarkai-ui-scope .px-2{padding-left:.5rem;padding-right:.5rem}.embarkai-ui-scope .px-3{padding-left:.75rem;padding-right:.75rem}.embarkai-ui-scope .px-4{padding-left:1rem;padding-right:1rem}.embarkai-ui-scope .px-5{padding-left:1.25rem;padding-right:1.25rem}.embarkai-ui-scope .px-8{padding-left:2rem;padding-right:2rem}.embarkai-ui-scope .px-\\[var\\(--ui-kit-gap\\)\\]{padding-left:var(--ui-kit-gap);padding-right:var(--ui-kit-gap)}.embarkai-ui-scope .px-\\[var\\(--ui-kit-pd\\)\\]{padding-left:var(--ui-kit-pd);padding-right:var(--ui-kit-pd)}.embarkai-ui-scope .py-0{padding-top:0;padding-bottom:0}.embarkai-ui-scope .py-1{padding-top:.25rem;padding-bottom:.25rem}.embarkai-ui-scope .py-1\\.5{padding-top:.375rem;padding-bottom:.375rem}.embarkai-ui-scope .py-2{padding-top:.5rem;padding-bottom:.5rem}.embarkai-ui-scope .py-3{padding-top:.75rem;padding-bottom:.75rem}.embarkai-ui-scope .py-4{padding-top:1rem;padding-bottom:1rem}.embarkai-ui-scope .py-8{padding-top:2rem;padding-bottom:2rem}.embarkai-ui-scope .py-\\[10px\\]{padding-top:10px;padding-bottom:10px}.embarkai-ui-scope .py-\\[var\\(--ui-kit-gap\\)\\]{padding-top:var(--ui-kit-gap);padding-bottom:var(--ui-kit-gap)}.embarkai-ui-scope .py-\\[var\\(--ui-kit-pd\\)\\]{padding-top:var(--ui-kit-pd);padding-bottom:var(--ui-kit-pd)}.embarkai-ui-scope .pb-2{padding-bottom:.5rem}.embarkai-ui-scope .pb-5{padding-bottom:1.25rem}.embarkai-ui-scope .pb-6{padding-bottom:1.5rem}.embarkai-ui-scope .pb-\\[var\\(--ui-kit-pd\\)\\]{padding-bottom:var(--ui-kit-pd)}.embarkai-ui-scope .pl-\\[var\\(--ui-kit-pd\\)\\]{padding-left:var(--ui-kit-pd)}.embarkai-ui-scope .pr-8{padding-right:2rem}.embarkai-ui-scope .pt-3{padding-top:.75rem}.embarkai-ui-scope .pt-4{padding-top:1rem}.embarkai-ui-scope .pt-5{padding-top:1.25rem}.embarkai-ui-scope .text-left{text-align:left}.embarkai-ui-scope .text-center{text-align:center}.embarkai-ui-scope .text-right{text-align:right}.embarkai-ui-scope .font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.embarkai-ui-scope .font-sans{font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.embarkai-ui-scope .text-2xl{font-size:1.5rem;line-height:2rem}.embarkai-ui-scope .text-\\[10px\\]{font-size:10px}.embarkai-ui-scope .text-\\[14px\\]{font-size:14px}.embarkai-ui-scope .text-\\[16px\\]{font-size:16px}.embarkai-ui-scope .text-\\[8px\\]{font-size:8px}.embarkai-ui-scope .text-lg{font-size:1.125rem;line-height:1.75rem}.embarkai-ui-scope .text-sm{font-size:.875rem;line-height:1.25rem}.embarkai-ui-scope .text-xl{font-size:1.25rem;line-height:1.75rem}.embarkai-ui-scope .text-xs{font-size:.75rem;line-height:1rem}.embarkai-ui-scope .font-bold{font-weight:700}.embarkai-ui-scope .font-medium{font-weight:500}.embarkai-ui-scope .font-normal{font-weight:400}.embarkai-ui-scope .font-semibold{font-weight:600}.embarkai-ui-scope .uppercase{text-transform:uppercase}.embarkai-ui-scope .lowercase{text-transform:lowercase}.embarkai-ui-scope .leading-3{line-height:.75rem}.embarkai-ui-scope .leading-4{line-height:1rem}.embarkai-ui-scope .leading-5{line-height:1.25rem}.embarkai-ui-scope .leading-6{line-height:1.5rem}.embarkai-ui-scope .leading-8{line-height:2rem}.embarkai-ui-scope .leading-\\[8px\\]{line-height:8px}.embarkai-ui-scope .leading-none{line-height:1}.embarkai-ui-scope .leading-tight{line-height:1.25}.embarkai-ui-scope .tracking-\\[0\\.3em\\]{letter-spacing:.3em}.embarkai-ui-scope .tracking-tight{letter-spacing:-.025em}.embarkai-ui-scope .tracking-wider{letter-spacing:.05em}.embarkai-ui-scope .text-\\[\\#c3f53c\\]{--tw-text-opacity:1;color:rgb(195 245 60/var(--tw-text-opacity,1))}.embarkai-ui-scope .text-\\[var\\(--ui-kit-bg-error\\)\\]{color:var(--ui-kit-bg-error)}.embarkai-ui-scope .text-\\[var\\(--ui-kit-bg-success\\)\\]{color:var(--ui-kit-bg-success)}.embarkai-ui-scope .text-\\[var\\(--ui-kit-bg-warning\\)\\]{color:var(--ui-kit-bg-warning)}.embarkai-ui-scope .text-\\[var\\(--ui-kit-error\\)\\]{color:var(--ui-kit-error)}.embarkai-ui-scope .text-\\[var\\(--ui-kit-fg\\)\\]{color:var(--ui-kit-fg)}.embarkai-ui-scope .text-\\[var\\(--ui-kit-fg-inverted\\)\\]{color:var(--ui-kit-fg-inverted)}.embarkai-ui-scope .text-\\[var\\(--ui-kit-fg-muted\\)\\]{color:var(--ui-kit-fg-muted)}.embarkai-ui-scope .text-\\[var\\(--ui-kit-info\\)\\]{color:var(--ui-kit-info)}.embarkai-ui-scope .text-\\[var\\(--ui-kit-primary\\)\\]{color:var(--ui-kit-primary)}.embarkai-ui-scope .text-\\[var\\(--ui-kit-success\\)\\]{color:var(--ui-kit-success)}.embarkai-ui-scope .text-\\[var\\(--ui-kit-text-secondary\\)\\]{color:var(--ui-kit-text-secondary)}.embarkai-ui-scope .text-\\[var\\(--ui-kit-warning\\)\\]{color:var(--ui-kit-warning)}.embarkai-ui-scope .text-black{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity,1))}.embarkai-ui-scope .text-blue-600{--tw-text-opacity:1;color:rgb(37 99 235/var(--tw-text-opacity,1))}.embarkai-ui-scope .text-blue-800{--tw-text-opacity:1;color:rgb(30 64 175/var(--tw-text-opacity,1))}.embarkai-ui-scope .text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.embarkai-ui-scope .text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.embarkai-ui-scope .text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.embarkai-ui-scope .text-green-500{--tw-text-opacity:1;color:rgb(34 197 94/var(--tw-text-opacity,1))}.embarkai-ui-scope .text-green-600{--tw-text-opacity:1;color:rgb(22 163 74/var(--tw-text-opacity,1))}.embarkai-ui-scope .text-green-800{--tw-text-opacity:1;color:rgb(22 101 52/var(--tw-text-opacity,1))}.embarkai-ui-scope .text-red-600{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity,1))}.embarkai-ui-scope .text-red-800{--tw-text-opacity:1;color:rgb(153 27 27/var(--tw-text-opacity,1))}.embarkai-ui-scope .text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.embarkai-ui-scope .underline{text-decoration-line:underline}.embarkai-ui-scope .underline-offset-2{text-underline-offset:2px}.embarkai-ui-scope .underline-offset-4{text-underline-offset:4px}.embarkai-ui-scope .antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.embarkai-ui-scope .opacity-0{opacity:0}.embarkai-ui-scope .opacity-100{opacity:1}.embarkai-ui-scope .opacity-50{opacity:.5}.embarkai-ui-scope .opacity-60{opacity:.6}.embarkai-ui-scope .opacity-70{opacity:.7}.embarkai-ui-scope .opacity-90{opacity:.9}.embarkai-ui-scope .shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.embarkai-ui-scope .shadow,.embarkai-ui-scope .shadow-lg{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.embarkai-ui-scope .shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.embarkai-ui-scope .outline-none{outline:2px solid transparent;outline-offset:2px}.embarkai-ui-scope .outline{outline-style:solid}.embarkai-ui-scope .blur{--tw-blur:blur(8px)}.embarkai-ui-scope .blur,.embarkai-ui-scope .grayscale{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.embarkai-ui-scope .grayscale{--tw-grayscale:grayscale(100%)}.embarkai-ui-scope .filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.embarkai-ui-scope .transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.embarkai-ui-scope .transition-\\[color\\2c box-shadow\\]{transition-property:color,box-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.embarkai-ui-scope .transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.embarkai-ui-scope .transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.embarkai-ui-scope .transition-none{transition-property:none}.embarkai-ui-scope .transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.embarkai-ui-scope .transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.embarkai-ui-scope .duration-200{transition-duration:.2s}.embarkai-ui-scope .ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.embarkai-ui-scope{--ui-kit-ff:var(--embark-ui-ff,-apple-system,BlinkMacSystemFont,"Inter",system-ui,sans-serif);--ui-kit-maw:var(--embark-ui-maw,384px);--ui-kit-pd:var(--embark-ui-pd,12px);--ui-kit-gap:var(--embark-ui-gap,10px);--ui-kit-bdrs:var(--embark-ui-bdrs,20px);--ui-kit-el-bdrs:var(--embark-ui-element-bdrs,10px);--ui-kit-backdrop-blur:var(--embark-ui-backdrop-blur,10px)}.embarkai-ui-scope[data-current-theme-mode=light]{--ui-kit-overlay:var(--embark-ui-overlay,hsla(0,0%,100%,.8));--ui-kit-bg:var(--embark-ui-bg,#fff);--ui-kit-fg:var(--embark-ui-fg,#000);--ui-kit-fg-inverted:var(--embark-ui-fg-inverted,#fff);--ui-kit-fg-muted:var(--embark-ui-fg-muted,rgba(0,0,0,.6));--ui-kit-primary:var(--embark-ui-primary,#000);--ui-kit-primary-h:var(--embark-ui-primary-h,rgba(0,0,0,.8));--ui-kit-primary-a:var(--embark-ui-primary-a,rgba(0,0,0,.6));--ui-kit-secondary:var(--embark-ui-secondary,#e4e4e4);--ui-kit-secondary-h:var(--embark-ui-secondary-h,hsla(0,0%,89%,.8));--ui-kit-secondary-a:var(--embark-ui-secondary-a,hsla(0,0%,89%,.6));--ui-kit-bd:var(--embark-ui-bd,#ebebeb);--ui-kit-bd-intense:var(--embark-ui-bd-intense,#a9a9a9);--ui-kit-shadow:var(--embark-ui-shadow,0 0 0 0 transparent);--ui-kit-shadow-c:var(--embark-ui-shadow-c,rgba(0,0,0,.1));--ui-kit-info:var(--embark-ui-info,var(--ui-kit-fg));--ui-kit-bg-info:var(--embark-ui-bg-info,var(--ui-kit-secondary));--ui-kit-success:var(--embark-ui-success,#000);--ui-kit-bg-success:var(--embark-ui-bg-success,#21ff51);--ui-kit-warning:var(--embark-ui-warning,#000);--ui-kit-bg-warning:var(--embark-ui-bg-warning,#e9fa00);--ui-kit-error:var(--embark-ui-error,#fff);--ui-kit-bg-error:var(--embark-ui-bg-error,#d6204e)}.embarkai-ui-scope[data-current-theme-mode=dark]{--ui-kit-overlay:var(--embark-ui-overlay,rgba(0,0,0,.8));--ui-kit-bg:var(--embark-ui-bg,#1a1a1a);--ui-kit-fg:var(--embark-ui-fg,#fff);--ui-kit-fg-inverted:var(--embark-ui-fg-inverted,#000);--ui-kit-fg-muted:var(--embark-ui-fg-muted,hsla(0,0%,100%,.6));--ui-kit-primary:var(--embark-ui-primary,#fff);--ui-kit-primary-h:var(--embark-ui-primary-h,hsla(0,0%,100%,.8));--ui-kit-primary-a:var(--embark-ui-primary-a,hsla(0,0%,100%,.6));--ui-kit-secondary:var(--embark-ui-secondary,#2a2a2a);--ui-kit-secondary-h:var(--embark-ui-secondary-h,rgba(42,42,42,.6));--ui-kit-secondary-a:var(--embark-ui-secondary-a,rgba(42,42,42,.4));--ui-kit-bd:var(--embark-ui-bd,#3a3a3a);--ui-kit-bd-intense:var(--embark-ui-bd-intense,#4a4a4a);--ui-kit-shadow:var(--embark-ui-shadow,0 0 0 0 transparent);--ui-kit-shadow-c:var(--embark-ui-shadow-c,rgba(0,0,0,.1));--ui-kit-info:var(--embark-ui-info,var(--ui-kit-fg));--ui-kit-bg-info:var(--embark-ui-bg-info,var(--ui-kit-secondary));--ui-kit-success:var(--embark-ui-success,#000);--ui-kit-bg-success:var(--embark-ui-bg-success,#21ff51);--ui-kit-warning:var(--embark-ui-warning,#000);--ui-kit-bg-warning:var(--embark-ui-bg-warning,#e9fa00);--ui-kit-error:var(--embark-ui-error,#fff);--ui-kit-bg-error:var(--embark-ui-bg-error,#d6204e)}.embarkai-ui-scope,.embarkai-ui-scope *{margin:0;box-sizing:border-box;font-family:var(--ui-kit-ff);font-optical-sizing:auto;-webkit-tap-highlight-color:transparent;-moz-tap-highlight-color:transparent;-ms-tap-highlight-color:transparent;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.embarkai-ui-scope button,.embarkai-ui-scope h1,.embarkai-ui-scope h2,.embarkai-ui-scope h3,.embarkai-ui-scope h4,.embarkai-ui-scope h5,.embarkai-ui-scope h6,.embarkai-ui-scope input,.embarkai-ui-scope p,.embarkai-ui-scope select,.embarkai-ui-scope textarea{font-family:var(--ui-kit-ff)!important;margin:0}.embarkai-ui-scope button,.embarkai-ui-scope input,.embarkai-ui-scope select,.embarkai-ui-scope textarea{border-style:solid;outline:none!important;appearance:none!important;-webkit-appearance:none;-moz-appearance:none}.embarkai-ui-scope input,.embarkai-ui-scope textarea{font-size:16px!important}.embarkai-ui-scope .account-connect-button{box-shadow:0 4px 20px var(--ui-kit-shadow-c),inset 0 0 0 1px var(--ui-kit-bd);transition:transform .25s ease}.embarkai-ui-scope .account-connect-button:hover{transform:scale(1.02)}.embarkai-ui-scope .account-connect-button:active{transform:scale(1)}@keyframes lumia-mobile-dialog-fade-in{0%{opacity:0;transform:translateY(64px)}to{opacity:1;transform:translateY(0)}}@keyframes lumia-mobile-dialog-fade-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(64px)}}.embarkai-ui-scope .animate-mobile-dialog-in{animation:lumia-mobile-dialog-fade-in 375ms ease}.embarkai-ui-scope .animate-mobile-dialog-out{animation:lumia-mobile-dialog-fade-out 375ms ease}@keyframes lumia-dialog-fade-in{0%{opacity:0}to{opacity:1}}@keyframes lumia-dialog-fade-out{0%{opacity:1}to{opacity:0}}.embarkai-ui-scope .animate-dialog-in{animation:lumia-dialog-fade-in 375ms ease}.embarkai-ui-scope .animate-dialog-out{animation:lumia-dialog-fade-out 375ms ease}.embarkai-ui-scope .list-scrollbar-y{width:100%;padding-right:var(--ui-kit-list-scrollbar-pd-r,0);overflow-y:auto;overflow-x:hidden;max-height:var(--ui-kit-scrollbar-mah,300px)}.embarkai-ui-scope .list-scrollbar-y::-webkit-scrollbar{width:4px;height:4px}.embarkai-ui-scope .list-scrollbar-y::-webkit-scrollbar-thumb{cursor:pointer;width:4px;border-radius:2px;background-color:var(--ui-kit-bd)}.embarkai-ui-scope .list-scrollbar-y::-webkit-scrollbar-track{margin-top:10px;margin-bottom:10px;background-color:transparent}.embarkai-ui-scope .noScrollbars::-webkit-scrollbar{display:none}.embarkai-ui-scope div[data-radix-popper-content-wrapper]{z-index:10000!important}.embarkai-ui-scope .file\\:mr-\\[var\\(--ui-kit-gap\\)\\]::file-selector-button{margin-right:var(--ui-kit-gap)}.embarkai-ui-scope .file\\:h-12::file-selector-button{height:3rem}.embarkai-ui-scope .file\\:cursor-pointer::file-selector-button{cursor:pointer}.embarkai-ui-scope .file\\:rounded-\\[var\\(--ui-kit-el-bdrs\\)\\]::file-selector-button{border-radius:var(--ui-kit-el-bdrs)}.embarkai-ui-scope .file\\:border-0::file-selector-button{border-width:0}.embarkai-ui-scope .file\\:bg-\\[var\\(--ui-kit-primary\\)\\]::file-selector-button{background-color:var(--ui-kit-primary)}.embarkai-ui-scope .file\\:bg-transparent::file-selector-button{background-color:transparent}.embarkai-ui-scope .file\\:px-\\[var\\(--ui-kit-pd\\)\\]::file-selector-button{padding-left:var(--ui-kit-pd);padding-right:var(--ui-kit-pd)}.embarkai-ui-scope .file\\:text-\\[16px\\]::file-selector-button{font-size:16px}.embarkai-ui-scope .file\\:text-base::file-selector-button{font-size:1rem;line-height:1.5rem}.embarkai-ui-scope .file\\:font-medium::file-selector-button{font-weight:500}.embarkai-ui-scope .file\\:text-\\[var\\(--ui-kit-fg-inverted\\)\\]::file-selector-button{color:var(--ui-kit-fg-inverted)}.embarkai-ui-scope .placeholder\\:text-\\[var\\(--ui-kit-fg-muted\\)\\]::-moz-placeholder{color:var(--ui-kit-fg-muted)}.embarkai-ui-scope .placeholder\\:text-\\[var\\(--ui-kit-fg-muted\\)\\]::placeholder{color:var(--ui-kit-fg-muted)}.embarkai-ui-scope .focus-within\\:bg-\\[var\\(--ui-kit-secondary-a\\)\\]:focus-within{background-color:var(--ui-kit-secondary-a)}.embarkai-ui-scope .focus-within\\:outline-none:focus-within{outline:2px solid transparent;outline-offset:2px}.embarkai-ui-scope .hover\\:bg-\\[\\#002c15\\]:hover{--tw-bg-opacity:1;background-color:rgb(0 44 21/var(--tw-bg-opacity,1))}.embarkai-ui-scope .hover\\:bg-\\[\\#081f2c\\]:hover{--tw-bg-opacity:1;background-color:rgb(8 31 44/var(--tw-bg-opacity,1))}.embarkai-ui-scope .hover\\:bg-\\[\\#f0f6f8\\]:hover{--tw-bg-opacity:1;background-color:rgb(240 246 248/var(--tw-bg-opacity,1))}.embarkai-ui-scope .hover\\:bg-\\[\\#f3ba2f\\]:hover{--tw-bg-opacity:1;background-color:rgb(243 186 47/var(--tw-bg-opacity,1))}.embarkai-ui-scope .hover\\:bg-\\[var\\(--ui-kit-bg\\)\\]:hover{background-color:var(--ui-kit-bg)}.embarkai-ui-scope .hover\\:bg-\\[var\\(--ui-kit-bg-secondary\\)\\]:hover{background-color:var(--ui-kit-bg-secondary)}.embarkai-ui-scope .hover\\:bg-\\[var\\(--ui-kit-secondary\\)\\]:hover{background-color:var(--ui-kit-secondary)}.embarkai-ui-scope .hover\\:bg-\\[var\\(--ui-kit-secondary-h\\)\\]:hover{background-color:var(--ui-kit-secondary-h)}.embarkai-ui-scope .hover\\:bg-gray-50:hover{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.embarkai-ui-scope .hover\\:text-\\[\\#c3f53c\\]:hover{--tw-text-opacity:1;color:rgb(195 245 60/var(--tw-text-opacity,1))}.embarkai-ui-scope .hover\\:text-\\[var\\(--ui-kit-fg\\)\\]:hover{color:var(--ui-kit-fg)}.embarkai-ui-scope .hover\\:text-gray-600:hover{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.embarkai-ui-scope .hover\\:text-gray-700:hover{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.embarkai-ui-scope .hover\\:underline:hover{text-decoration-line:underline}.embarkai-ui-scope .hover\\:opacity-100:hover{opacity:1}.embarkai-ui-scope .hover\\:opacity-80:hover{opacity:.8}.embarkai-ui-scope .hover\\:brightness-110:hover{--tw-brightness:brightness(1.1);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.embarkai-ui-scope .file\\:hover\\:opacity-90:hover::file-selector-button{opacity:.9}.embarkai-ui-scope .focus\\:border-\\[var\\(--ui-kit-primary\\)\\]:focus{border-color:var(--ui-kit-primary)}.embarkai-ui-scope .focus\\:bg-\\[var\\(--ui-kit-secondary-a\\)\\]:focus{background-color:var(--ui-kit-secondary-a)}.embarkai-ui-scope .focus\\:bg-transparent:focus{background-color:transparent}.embarkai-ui-scope .focus\\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.embarkai-ui-scope .focus-visible\\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.embarkai-ui-scope .focus-visible\\:ring-0:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.embarkai-ui-scope .focus-visible\\:ring-\\[2px\\]:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.embarkai-ui-scope .focus-visible\\:ring-transparent:focus-visible{--tw-ring-color:transparent}.embarkai-ui-scope .focus-visible\\:ring-offset-0:focus-visible{--tw-ring-offset-width:0px}.embarkai-ui-scope .active\\:bg-\\[\\#f3ba2f\\]:active{--tw-bg-opacity:1;background-color:rgb(243 186 47/var(--tw-bg-opacity,1))}.embarkai-ui-scope .active\\:bg-\\[var\\(--ui-kit-bg\\)\\]:active{background-color:var(--ui-kit-bg)}.embarkai-ui-scope .active\\:bg-\\[var\\(--ui-kit-secondary-a\\)\\]:active{background-color:var(--ui-kit-secondary-a)}.embarkai-ui-scope .active\\:text-\\[\\#c3f53c\\]:active{--tw-text-opacity:1;color:rgb(195 245 60/var(--tw-text-opacity,1))}.embarkai-ui-scope .active\\:opacity-60:active{opacity:.6}.embarkai-ui-scope .file\\:active\\:opacity-80:active::file-selector-button{opacity:.8}.embarkai-ui-scope .disabled\\:cursor-default:disabled{cursor:default}.embarkai-ui-scope .disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.embarkai-ui-scope .disabled\\:opacity-50:disabled{opacity:.5}.embarkai-ui-scope .disabled\\:hover\\:bg-\\[var\\(--ui-kit-bg\\)\\]:hover:disabled{background-color:var(--ui-kit-bg)}.embarkai-ui-scope .disabled\\:hover\\:bg-\\[var\\(--ui-kit-secondary\\)\\]:hover:disabled{background-color:var(--ui-kit-secondary)}.embarkai-ui-scope .disabled\\:hover\\:text-\\[var\\(--ui-kit-bg-error\\)\\]:hover:disabled{color:var(--ui-kit-bg-error)}.embarkai-ui-scope .disabled\\:hover\\:opacity-50:hover:disabled{opacity:.5}.embarkai-ui-scope .disabled\\:active\\:bg-\\[var\\(--ui-kit-bg\\)\\]:active:disabled{background-color:var(--ui-kit-bg)}.embarkai-ui-scope .disabled\\:active\\:text-\\[var\\(--ui-kit-bg-error\\)\\]:active:disabled{color:var(--ui-kit-bg-error)}.embarkai-ui-scope .disabled\\:active\\:opacity-50:active:disabled{opacity:.5}.embarkai-ui-scope :is(.group:hover .group-hover\\:opacity-100){opacity:1}.embarkai-ui-scope .data-\\[disabled\\]\\:pointer-events-none[data-disabled]{pointer-events:none}.embarkai-ui-scope .data-\\[size\\=default\\]\\:h-12[data-size=default]{height:3rem}.embarkai-ui-scope .data-\\[size\\=sm\\]\\:h-10[data-size=sm]{height:2.5rem}.embarkai-ui-scope .data-\\[side\\=bottom\\]\\:translate-y-1[data-side=bottom]{--tw-translate-y:0.25rem}.embarkai-ui-scope .data-\\[side\\=bottom\\]\\:translate-y-1[data-side=bottom],.embarkai-ui-scope .data-\\[side\\=left\\]\\:-translate-x-1[data-side=left]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.embarkai-ui-scope .data-\\[side\\=left\\]\\:-translate-x-1[data-side=left]{--tw-translate-x:-0.25rem}.embarkai-ui-scope .data-\\[side\\=right\\]\\:translate-x-1[data-side=right]{--tw-translate-x:0.25rem}.embarkai-ui-scope .data-\\[side\\=right\\]\\:translate-x-1[data-side=right],.embarkai-ui-scope .data-\\[side\\=top\\]\\:-translate-y-1[data-side=top]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.embarkai-ui-scope .data-\\[side\\=top\\]\\:-translate-y-1[data-side=top]{--tw-translate-y:-0.25rem}.embarkai-ui-scope .data-\\[state\\=checked\\]\\:border-\\[var\\(--ui-kit-bd-intense\\)\\][data-state=checked]{border-color:var(--ui-kit-bd-intense)}.embarkai-ui-scope .data-\\[state\\=checked\\]\\:bg-\\[var\\(--ui-kit-secondary\\)\\][data-state=checked]{background-color:var(--ui-kit-secondary)}.embarkai-ui-scope .data-\\[state\\=checked\\]\\:text-\\[var\\(--ui-kit-fg\\)\\][data-state=checked]{color:var(--ui-kit-fg)}.embarkai-ui-scope .data-\\[disabled\\]\\:opacity-50[data-disabled]{opacity:.5}.embarkai-ui-scope :is(.\\*\\:data-\\[slot\\=select-value\\]\\:line-clamp-1[data-slot=select-value]>*){overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.embarkai-ui-scope :is(.\\*\\:data-\\[slot\\=select-value\\]\\:flex[data-slot=select-value]>*){display:flex}.embarkai-ui-scope :is(.\\*\\:data-\\[slot\\=select-value\\]\\:items-center[data-slot=select-value]>*){align-items:center}.embarkai-ui-scope :is(.\\*\\:data-\\[slot\\=select-value\\]\\:gap-\\[var\\(--ui-kit-gap\\)\\][data-slot=select-value]>*){gap:var(--ui-kit-gap)}@media (min-width:640px){.embarkai-ui-scope .sm\\:flex-row{flex-direction:row}.embarkai-ui-scope .sm\\:justify-end{justify-content:flex-end}.embarkai-ui-scope :is(.sm\\:space-x-2>:not([hidden])~:not([hidden])){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)))}.embarkai-ui-scope .sm\\:text-left{text-align:left}}@media (min-width:768px){.embarkai-ui-scope .md\\:h-8{height:2rem}.embarkai-ui-scope .md\\:w-8{width:2rem}.embarkai-ui-scope .md\\:gap-\\[var\\(--ui-kit-gap\\)\\]{gap:var(--ui-kit-gap)}.embarkai-ui-scope .md\\:py-1{padding-top:.25rem;padding-bottom:.25rem}.embarkai-ui-scope .md\\:text-sm{font-size:.875rem;line-height:1.25rem}.embarkai-ui-scope .md\\:text-xs{font-size:.75rem;line-height:1rem}}.embarkai-ui-scope :is(.\\[\\&_svg\\:not\\(\\[class\\*\\=\\'size-\\'\\]\\)\\]\\:size-4 svg:not([class*=size-])){width:1rem;height:1rem}.embarkai-ui-scope :is(.\\[\\&_svg\\]\\:pointer-events-none svg){pointer-events:none}.embarkai-ui-scope :is(.\\[\\&_svg\\]\\:shrink-0 svg){flex-shrink:0}`;
|
|
28178
28312
|
|
|
28179
28313
|
// src/index.ts
|
|
28314
|
+
var import_core8 = require("@embarkai/core");
|
|
28180
28315
|
init_ProviderContext();
|
|
28181
28316
|
|
|
28182
28317
|
// src/components/ConnectWalletButton.tsx
|
|
@@ -28588,84 +28723,8 @@ init_useLayoutDataStore();
|
|
|
28588
28723
|
// src/internal/components/UserOpStatus.tsx
|
|
28589
28724
|
var import_lucide_react82 = require("lucide-react");
|
|
28590
28725
|
var React11 = __toESM(require("react"), 1);
|
|
28591
|
-
|
|
28592
|
-
|
|
28593
|
-
init_SessionContext();
|
|
28594
|
-
var import_core3 = require("@embarkai/core");
|
|
28595
|
-
var import_read20 = require("@embarkai/core/read");
|
|
28596
|
-
async function getUserOperationByHash(userOpHash, chainId) {
|
|
28597
|
-
const targetChainId = chainId ?? requireActiveChainId();
|
|
28598
|
-
const chainConfig = (0, import_read20.getChainConfig)(targetChainId);
|
|
28599
|
-
if (!chainConfig) {
|
|
28600
|
-
throw new Error(`Chain ${targetChainId} is not supported`);
|
|
28601
|
-
}
|
|
28602
|
-
if (!chainConfig.bundlerUrl) {
|
|
28603
|
-
throw new Error(`Chain ${targetChainId} has no bundlerUrl configured`);
|
|
28604
|
-
}
|
|
28605
|
-
if (!userOpHash) {
|
|
28606
|
-
throw new Error("Operation hash is required");
|
|
28607
|
-
}
|
|
28608
|
-
try {
|
|
28609
|
-
const result = await (0, import_core3.bundlerRpc)("eth_getUserOperationByHash", [userOpHash], chainConfig.bundlerUrl);
|
|
28610
|
-
if (!result) {
|
|
28611
|
-
return null;
|
|
28612
|
-
}
|
|
28613
|
-
console.log("[getUserOperationByHash] Receipt:", JSON.stringify(result, null, 2));
|
|
28614
|
-
return {
|
|
28615
|
-
entryPoint: result.entryPoint,
|
|
28616
|
-
userOperation: result.userOperation,
|
|
28617
|
-
transactionHash: result.transactionHash,
|
|
28618
|
-
blockNumber: result.blockNumber,
|
|
28619
|
-
blockHash: result.blockHash
|
|
28620
|
-
};
|
|
28621
|
-
} catch (error) {
|
|
28622
|
-
console.warn("[getUserOperationByHash] Failed to get user operation:", error);
|
|
28623
|
-
return null;
|
|
28624
|
-
}
|
|
28625
|
-
}
|
|
28626
|
-
|
|
28627
|
-
// src/clients/bundler/getUserOperationReceipt.ts
|
|
28628
|
-
init_SessionContext();
|
|
28629
|
-
var import_core4 = require("@embarkai/core");
|
|
28630
|
-
var import_read21 = require("@embarkai/core/read");
|
|
28631
|
-
async function getUserOperationReceipt(userOpHash, chainId) {
|
|
28632
|
-
const targetChainId = chainId ?? requireActiveChainId();
|
|
28633
|
-
const chainConfig = (0, import_read21.getChainConfig)(targetChainId);
|
|
28634
|
-
if (!chainConfig) {
|
|
28635
|
-
throw new Error(`Chain ${targetChainId} is not supported`);
|
|
28636
|
-
}
|
|
28637
|
-
if (!chainConfig.bundlerUrl) {
|
|
28638
|
-
throw new Error(`Chain ${targetChainId} has no bundlerUrl configured`);
|
|
28639
|
-
}
|
|
28640
|
-
if (!userOpHash) {
|
|
28641
|
-
throw new Error("Operation hash is required");
|
|
28642
|
-
}
|
|
28643
|
-
try {
|
|
28644
|
-
const result = await (0, import_core4.bundlerRpc)("eth_getUserOperationReceipt", [userOpHash], chainConfig.bundlerUrl);
|
|
28645
|
-
if (!result) {
|
|
28646
|
-
return null;
|
|
28647
|
-
}
|
|
28648
|
-
console.log("[getUserOperationReceipt] Receipt:", JSON.stringify(result, null, 2));
|
|
28649
|
-
return {
|
|
28650
|
-
userOpHash: result.userOpHash,
|
|
28651
|
-
entryPoint: result.entryPoint,
|
|
28652
|
-
sender: result.sender,
|
|
28653
|
-
nonce: result.nonce,
|
|
28654
|
-
success: result.success,
|
|
28655
|
-
actualGasCost: result.actualGasCost,
|
|
28656
|
-
actualGasUsed: result.actualGasUsed,
|
|
28657
|
-
paymaster: result.paymaster,
|
|
28658
|
-
receipt: result.receipt,
|
|
28659
|
-
logs: result.logs,
|
|
28660
|
-
reason: result.reason
|
|
28661
|
-
};
|
|
28662
|
-
} catch (error) {
|
|
28663
|
-
console.warn("[getUserOperationReceipt] Failed to get receipt:", error);
|
|
28664
|
-
return null;
|
|
28665
|
-
}
|
|
28666
|
-
}
|
|
28667
|
-
|
|
28668
|
-
// src/internal/components/UserOpStatus.tsx
|
|
28726
|
+
init_getUserOperationByHash();
|
|
28727
|
+
init_getUserOperationReceipt();
|
|
28669
28728
|
init_cn();
|
|
28670
28729
|
|
|
28671
28730
|
// src/internal/components/Address.tsx
|
|
@@ -29185,37 +29244,7 @@ init_useSendTransaction();
|
|
|
29185
29244
|
|
|
29186
29245
|
// src/hooks/useUserOpStatus.ts
|
|
29187
29246
|
var React14 = __toESM(require("react"), 1);
|
|
29188
|
-
|
|
29189
|
-
// src/clients/bundler/waitForUserOperationReceipt.ts
|
|
29190
|
-
init_SessionContext();
|
|
29191
|
-
var UserOperationTimeoutError = class extends Error {
|
|
29192
|
-
constructor(userOpHash, chainId, timeoutMs) {
|
|
29193
|
-
super(`Timeout waiting for UserOperation receipt after ${timeoutMs}ms (hash: ${userOpHash}, chainId: ${chainId})`);
|
|
29194
|
-
this.name = "UserOperationTimeoutError";
|
|
29195
|
-
this.userOpHash = userOpHash;
|
|
29196
|
-
this.chainId = chainId;
|
|
29197
|
-
this.timeoutMs = timeoutMs;
|
|
29198
|
-
}
|
|
29199
|
-
};
|
|
29200
|
-
async function waitForUserOperationReceipt(userOpHash, options) {
|
|
29201
|
-
const pollIntervalMs = options?.pollIntervalMs ?? 1e3;
|
|
29202
|
-
const maxPollTimeMs = options?.maxPollTimeMs ?? 6e4;
|
|
29203
|
-
const targetChainId = options?.chainId ?? requireActiveChainId();
|
|
29204
|
-
const startTime = Date.now();
|
|
29205
|
-
while (true) {
|
|
29206
|
-
const elapsed = Date.now() - startTime;
|
|
29207
|
-
if (elapsed >= maxPollTimeMs) {
|
|
29208
|
-
throw new UserOperationTimeoutError(userOpHash, targetChainId, maxPollTimeMs);
|
|
29209
|
-
}
|
|
29210
|
-
const receipt = await getUserOperationReceipt(userOpHash, targetChainId);
|
|
29211
|
-
if (receipt) {
|
|
29212
|
-
return receipt;
|
|
29213
|
-
}
|
|
29214
|
-
await new Promise((resolve) => setTimeout(resolve, pollIntervalMs));
|
|
29215
|
-
}
|
|
29216
|
-
}
|
|
29217
|
-
|
|
29218
|
-
// src/hooks/useUserOpStatus.ts
|
|
29247
|
+
init_bundler();
|
|
29219
29248
|
function useUserOpStatus(options = {}) {
|
|
29220
29249
|
const {
|
|
29221
29250
|
userOpHash,
|
|
@@ -29405,7 +29434,7 @@ function useWalletMode() {
|
|
|
29405
29434
|
// src/hooks/useDirectWallet.ts
|
|
29406
29435
|
var import_react96 = require("react");
|
|
29407
29436
|
var import_rainbowkit6 = require("@rainbow-me/rainbowkit");
|
|
29408
|
-
var
|
|
29437
|
+
var import_wagmi11 = require("wagmi");
|
|
29409
29438
|
init_useExternalWalletStore();
|
|
29410
29439
|
init_useLayoutDataStore();
|
|
29411
29440
|
function useDirectWallet() {
|
|
@@ -29414,7 +29443,7 @@ function useDirectWallet() {
|
|
|
29414
29443
|
const isConnected = useExternalWalletStore((st) => st.isExternalConnected);
|
|
29415
29444
|
const connectorName = useExternalWalletStore((st) => st.connectorName);
|
|
29416
29445
|
const clearExternalWallet = useExternalWalletStore((st) => st.clearExternalWallet);
|
|
29417
|
-
const { disconnect: wagmiDisconnect } = (0,
|
|
29446
|
+
const { disconnect: wagmiDisconnect } = (0, import_wagmi11.useDisconnect)();
|
|
29418
29447
|
const { openConnectModal } = (0, import_rainbowkit6.useConnectModal)();
|
|
29419
29448
|
const setIsWalletLinking = useLayoutDataStore((st) => st.setIsWalletLinking);
|
|
29420
29449
|
const connect = (0, import_react96.useCallback)(() => {
|
|
@@ -29440,14 +29469,14 @@ function useDirectWallet() {
|
|
|
29440
29469
|
|
|
29441
29470
|
// src/hooks/useSendDirectTransaction.ts
|
|
29442
29471
|
var import_react97 = require("react");
|
|
29443
|
-
var
|
|
29444
|
-
var
|
|
29472
|
+
var import_viem20 = require("viem");
|
|
29473
|
+
var import_wagmi12 = require("wagmi");
|
|
29445
29474
|
init_useExternalWalletStore();
|
|
29446
29475
|
function useSendDirectTransaction() {
|
|
29447
29476
|
const isConnected = useExternalWalletStore((st) => st.isExternalConnected);
|
|
29448
29477
|
const externalChainId = useExternalWalletStore((st) => st.externalChainId);
|
|
29449
|
-
const { sendTransactionAsync } = (0,
|
|
29450
|
-
const { switchChainAsync } = (0,
|
|
29478
|
+
const { sendTransactionAsync } = (0, import_wagmi12.useSendTransaction)();
|
|
29479
|
+
const { switchChainAsync } = (0, import_wagmi12.useSwitchChain)();
|
|
29451
29480
|
const [isPending, setIsPending] = (0, import_react97.useState)(false);
|
|
29452
29481
|
const [error, setError] = (0, import_react97.useState)(null);
|
|
29453
29482
|
const [txHash, setTxHash] = (0, import_react97.useState)(null);
|
|
@@ -29457,7 +29486,7 @@ function useSendDirectTransaction() {
|
|
|
29457
29486
|
setError("No external wallet connected");
|
|
29458
29487
|
return null;
|
|
29459
29488
|
}
|
|
29460
|
-
if (!(0,
|
|
29489
|
+
if (!(0, import_viem20.isAddress)(params.to)) {
|
|
29461
29490
|
setError("Invalid recipient address");
|
|
29462
29491
|
return null;
|
|
29463
29492
|
}
|
|
@@ -29470,7 +29499,7 @@ function useSendDirectTransaction() {
|
|
|
29470
29499
|
}
|
|
29471
29500
|
const hash = await sendTransactionAsync({
|
|
29472
29501
|
to: params.to,
|
|
29473
|
-
value: (0,
|
|
29502
|
+
value: (0, import_viem20.parseEther)(params.value),
|
|
29474
29503
|
data: params.data
|
|
29475
29504
|
});
|
|
29476
29505
|
setTxHash(hash);
|
|
@@ -29495,7 +29524,7 @@ function useSendDirectTransaction() {
|
|
|
29495
29524
|
|
|
29496
29525
|
// src/hooks/useTransferToLinkedWallet.ts
|
|
29497
29526
|
var import_react98 = require("react");
|
|
29498
|
-
var
|
|
29527
|
+
var import_viem21 = require("viem");
|
|
29499
29528
|
init_SessionContext();
|
|
29500
29529
|
init_account2();
|
|
29501
29530
|
init_linkedProfiles();
|
|
@@ -29527,7 +29556,7 @@ function useTransferToLinkedWallet() {
|
|
|
29527
29556
|
return null;
|
|
29528
29557
|
}
|
|
29529
29558
|
const toAddress = params.toAddress || linkedWallets[0];
|
|
29530
|
-
if (!toAddress || !(0,
|
|
29559
|
+
if (!toAddress || !(0, import_viem21.isAddress)(toAddress)) {
|
|
29531
29560
|
setError("No linked wallet address available");
|
|
29532
29561
|
return null;
|
|
29533
29562
|
}
|
|
@@ -29540,16 +29569,16 @@ function useTransferToLinkedWallet() {
|
|
|
29540
29569
|
let data;
|
|
29541
29570
|
if (params.token === "native") {
|
|
29542
29571
|
to = toAddress;
|
|
29543
|
-
value = (0,
|
|
29572
|
+
value = (0, import_viem21.parseEther)(params.amount).toString();
|
|
29544
29573
|
data = "0x";
|
|
29545
29574
|
} else {
|
|
29546
29575
|
const decimals = params.decimals ?? 18;
|
|
29547
29576
|
to = params.token;
|
|
29548
29577
|
value = "0";
|
|
29549
|
-
data = (0,
|
|
29578
|
+
data = (0, import_viem21.encodeFunctionData)({
|
|
29550
29579
|
abi: ERC20_TRANSFER_ABI2,
|
|
29551
29580
|
functionName: "transfer",
|
|
29552
|
-
args: [toAddress, (0,
|
|
29581
|
+
args: [toAddress, (0, import_viem21.parseUnits)(params.amount, decimals)]
|
|
29553
29582
|
});
|
|
29554
29583
|
}
|
|
29555
29584
|
const hash = await sendUserOperation(session, {
|
|
@@ -29580,11 +29609,11 @@ function useTransferToLinkedWallet() {
|
|
|
29580
29609
|
}
|
|
29581
29610
|
|
|
29582
29611
|
// src/hooks/useNativeWalletSignature.ts
|
|
29583
|
-
var
|
|
29612
|
+
var import_wagmi13 = require("wagmi");
|
|
29584
29613
|
init_providers();
|
|
29585
29614
|
function useNativeWalletSignature() {
|
|
29586
|
-
const signMessage = (0,
|
|
29587
|
-
const signTypedMessage = (0,
|
|
29615
|
+
const signMessage = (0, import_wagmi13.useSignMessage)();
|
|
29616
|
+
const signTypedMessage = (0, import_wagmi13.useSignTypedData)();
|
|
29588
29617
|
return {
|
|
29589
29618
|
signMessage,
|
|
29590
29619
|
/** EIP-712 signature */
|
|
@@ -29635,34 +29664,38 @@ function useLogout() {
|
|
|
29635
29664
|
// src/index.ts
|
|
29636
29665
|
init_useNicknameResolve();
|
|
29637
29666
|
init_account2();
|
|
29667
|
+
|
|
29668
|
+
// src/clients/index.ts
|
|
29669
|
+
init_bundler();
|
|
29670
|
+
|
|
29671
|
+
// src/index.ts
|
|
29638
29672
|
init_auth();
|
|
29639
29673
|
init_profile();
|
|
29640
29674
|
init_hooks2();
|
|
29641
29675
|
init_linkedProfiles();
|
|
29642
29676
|
init_nickname_fingerprint();
|
|
29643
29677
|
init_errors();
|
|
29644
|
-
init_wagmi();
|
|
29645
29678
|
init_base();
|
|
29646
29679
|
init_useBlockscoutAssets();
|
|
29647
29680
|
|
|
29648
29681
|
// src/modules/transactions.ts
|
|
29649
29682
|
init_SessionContext();
|
|
29650
|
-
var
|
|
29651
|
-
var
|
|
29652
|
-
var
|
|
29683
|
+
var import_read21 = require("@embarkai/core/read");
|
|
29684
|
+
var import_viem22 = require("viem");
|
|
29685
|
+
var import_wagmi14 = require("wagmi");
|
|
29653
29686
|
function useTransactions() {
|
|
29654
29687
|
const chainId = requireActiveChainId();
|
|
29655
|
-
const viemChain = (0,
|
|
29656
|
-
const publicClient = (0,
|
|
29657
|
-
const { data: walletClient } = (0,
|
|
29658
|
-
const { address } = (0,
|
|
29688
|
+
const viemChain = (0, import_read21.getViemChain)(chainId);
|
|
29689
|
+
const publicClient = (0, import_wagmi14.usePublicClient)({ chainId });
|
|
29690
|
+
const { data: walletClient } = (0, import_wagmi14.useWalletClient)();
|
|
29691
|
+
const { address } = (0, import_wagmi14.useAccount)();
|
|
29659
29692
|
const sendTransaction = async (params) => {
|
|
29660
29693
|
if (!walletClient) {
|
|
29661
29694
|
throw new Error("Wallet not connected");
|
|
29662
29695
|
}
|
|
29663
29696
|
const txParams = {
|
|
29664
29697
|
to: params.to,
|
|
29665
|
-
value: (0,
|
|
29698
|
+
value: (0, import_viem22.parseEther)(params.value),
|
|
29666
29699
|
data: params.data,
|
|
29667
29700
|
chain: viemChain
|
|
29668
29701
|
};
|
|
@@ -29714,8 +29747,8 @@ function useTransactions() {
|
|
|
29714
29747
|
// src/modules/assets.ts
|
|
29715
29748
|
init_SessionContext();
|
|
29716
29749
|
var import_react100 = __toESM(require("react"), 1);
|
|
29717
|
-
var
|
|
29718
|
-
var
|
|
29750
|
+
var import_viem23 = require("viem");
|
|
29751
|
+
var import_wagmi15 = require("wagmi");
|
|
29719
29752
|
var COMMON_TOKENS = [
|
|
29720
29753
|
// Add real token addresses here when available
|
|
29721
29754
|
// {
|
|
@@ -29732,7 +29765,7 @@ function useAssets(address) {
|
|
|
29732
29765
|
data: nativeBalance,
|
|
29733
29766
|
isLoading: nativeBalanceLoading,
|
|
29734
29767
|
refetch: refetchNativeBalance
|
|
29735
|
-
} = (0,
|
|
29768
|
+
} = (0, import_wagmi15.useBalance)({
|
|
29736
29769
|
address,
|
|
29737
29770
|
chainId,
|
|
29738
29771
|
query: {
|
|
@@ -29741,12 +29774,12 @@ function useAssets(address) {
|
|
|
29741
29774
|
});
|
|
29742
29775
|
const tokenContracts = COMMON_TOKENS.map((token) => ({
|
|
29743
29776
|
address: token.address,
|
|
29744
|
-
abi:
|
|
29777
|
+
abi: import_viem23.erc20Abi,
|
|
29745
29778
|
functionName: "balanceOf",
|
|
29746
29779
|
args: [address],
|
|
29747
29780
|
chainId
|
|
29748
29781
|
}));
|
|
29749
|
-
const readContractsResult = (0,
|
|
29782
|
+
const readContractsResult = (0, import_wagmi15.useReadContracts)({
|
|
29750
29783
|
contracts: tokenContracts,
|
|
29751
29784
|
query: {
|
|
29752
29785
|
enabled: !!address && COMMON_TOKENS.length > 0
|
|
@@ -29765,7 +29798,7 @@ function useAssets(address) {
|
|
|
29765
29798
|
name: "Lumia",
|
|
29766
29799
|
symbol: "LUMIA",
|
|
29767
29800
|
balance: nativeBalance.value.toString(),
|
|
29768
|
-
formattedBalance: parseFloat((0,
|
|
29801
|
+
formattedBalance: parseFloat((0, import_viem23.formatUnits)(nativeBalance.value, nativeBalance.decimals)).toFixed(4),
|
|
29769
29802
|
decimals: 18
|
|
29770
29803
|
});
|
|
29771
29804
|
}
|
|
@@ -29774,7 +29807,7 @@ function useAssets(address) {
|
|
|
29774
29807
|
const token = COMMON_TOKENS[index];
|
|
29775
29808
|
if (balance.status === "success" && balance.result) {
|
|
29776
29809
|
const balanceValue = balance.result;
|
|
29777
|
-
const formattedBalance = (0,
|
|
29810
|
+
const formattedBalance = (0, import_viem23.formatUnits)(balanceValue, token.decimals);
|
|
29778
29811
|
assets.push({
|
|
29779
29812
|
type: "erc20",
|
|
29780
29813
|
address: token.address,
|
|
@@ -29799,7 +29832,7 @@ function useAssets(address) {
|
|
|
29799
29832
|
const token = COMMON_TOKENS[tokenIndex];
|
|
29800
29833
|
if (balance.status === "success" && balance.result) {
|
|
29801
29834
|
const balanceValue = balance.result;
|
|
29802
|
-
const formattedBalance = (0,
|
|
29835
|
+
const formattedBalance = (0, import_viem23.formatUnits)(balanceValue, token.decimals);
|
|
29803
29836
|
return {
|
|
29804
29837
|
address: token.address,
|
|
29805
29838
|
name: token.name,
|
|
@@ -29827,11 +29860,11 @@ function useAssets(address) {
|
|
|
29827
29860
|
}
|
|
29828
29861
|
function useTokenInfo(tokenAddress) {
|
|
29829
29862
|
const chainId = requireActiveChainId();
|
|
29830
|
-
const readContractsResult = (0,
|
|
29863
|
+
const readContractsResult = (0, import_wagmi15.useReadContracts)({
|
|
29831
29864
|
contracts: [
|
|
29832
|
-
{ address: tokenAddress, abi:
|
|
29833
|
-
{ address: tokenAddress, abi:
|
|
29834
|
-
{ address: tokenAddress, abi:
|
|
29865
|
+
{ address: tokenAddress, abi: import_viem23.erc20Abi, functionName: "name", chainId },
|
|
29866
|
+
{ address: tokenAddress, abi: import_viem23.erc20Abi, functionName: "symbol", chainId },
|
|
29867
|
+
{ address: tokenAddress, abi: import_viem23.erc20Abi, functionName: "decimals", chainId }
|
|
29835
29868
|
]
|
|
29836
29869
|
});
|
|
29837
29870
|
const { data: tokenData, isLoading } = readContractsResult;
|
|
@@ -29858,9 +29891,9 @@ function useTokenBalance(tokenAddress, userAddress) {
|
|
|
29858
29891
|
data: balance,
|
|
29859
29892
|
isLoading,
|
|
29860
29893
|
refetch
|
|
29861
|
-
} = (0,
|
|
29894
|
+
} = (0, import_wagmi15.useReadContract)({
|
|
29862
29895
|
address: tokenAddress,
|
|
29863
|
-
abi:
|
|
29896
|
+
abi: import_viem23.erc20Abi,
|
|
29864
29897
|
functionName: "balanceOf",
|
|
29865
29898
|
args: userAddress ? [userAddress] : void 0,
|
|
29866
29899
|
chainId,
|
|
@@ -29871,7 +29904,7 @@ function useTokenBalance(tokenAddress, userAddress) {
|
|
|
29871
29904
|
const { tokenInfo } = useTokenInfo(tokenAddress);
|
|
29872
29905
|
const formattedBalance = import_react100.default.useMemo(() => {
|
|
29873
29906
|
if (!balance || !tokenInfo) return "0";
|
|
29874
|
-
return (0,
|
|
29907
|
+
return (0, import_viem23.formatUnits)(balance, tokenInfo.decimals);
|
|
29875
29908
|
}, [balance, tokenInfo]);
|
|
29876
29909
|
return {
|
|
29877
29910
|
balance,
|
|
@@ -29883,9 +29916,9 @@ function useTokenBalance(tokenAddress, userAddress) {
|
|
|
29883
29916
|
}
|
|
29884
29917
|
|
|
29885
29918
|
// src/modules/smartAccountTransactions.ts
|
|
29886
|
-
var
|
|
29919
|
+
var import_viem24 = require("viem");
|
|
29887
29920
|
init_SessionContext();
|
|
29888
|
-
var USER_OP_EVENT = (0,
|
|
29921
|
+
var USER_OP_EVENT = (0, import_viem24.parseAbiItem)(
|
|
29889
29922
|
"event UserOperationEvent(bytes32 indexed userOpHash, address indexed sender, address indexed paymaster, uint256 nonce, bool success, uint256 actualGasCost, uint256 actualGasUsed)"
|
|
29890
29923
|
);
|
|
29891
29924
|
function useSmartAccountTransactions() {
|