@embarkai/ui-kit 0.4.30 → 0.4.32
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 +28 -21
- package/dist/index.cjs +1458 -1349
- package/dist/index.d.cts +45 -0
- package/dist/index.d.ts +45 -0
- package/dist/index.js +1138 -1027
- package/dist/styles.css +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -837,31 +837,31 @@ var PageKey, useLayoutDataStore;
|
|
|
837
837
|
var init_useLayoutDataStore = __esm({
|
|
838
838
|
"src/internal/hooks/useLayoutDataStore.ts"() {
|
|
839
839
|
init_constants();
|
|
840
|
-
PageKey = /* @__PURE__ */ ((
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
return
|
|
840
|
+
PageKey = /* @__PURE__ */ ((PageKey3) => {
|
|
841
|
+
PageKey3["AUTH"] = "auth";
|
|
842
|
+
PageKey3["LANGUAGES"] = "languages";
|
|
843
|
+
PageKey3["TERMS_OF_SERVICE"] = "terms-of-service";
|
|
844
|
+
PageKey3["MAIN_MENU"] = "main-menu";
|
|
845
|
+
PageKey3["SETTINGS"] = "settings";
|
|
846
|
+
PageKey3["SEND"] = "send";
|
|
847
|
+
PageKey3["RECEIVE"] = "receive";
|
|
848
|
+
PageKey3["BUY"] = "buy";
|
|
849
|
+
PageKey3["KYC"] = "kyc";
|
|
850
|
+
PageKey3["TRANSACTIONS"] = "transactions";
|
|
851
|
+
PageKey3["ASSETS"] = "assets";
|
|
852
|
+
PageKey3["MANAGE_WALLET"] = "manage-wallet";
|
|
853
|
+
PageKey3["UNLINK_PROVIDER"] = "unlink-provider";
|
|
854
|
+
PageKey3["SECURITY"] = "security";
|
|
855
|
+
PageKey3["KEYSARE_BACKUP"] = "keysare-backup";
|
|
856
|
+
PageKey3["KEYSHARE_RESTORE"] = "keyshare-restore";
|
|
857
|
+
PageKey3["CHAIN"] = "chain";
|
|
858
|
+
PageKey3["CHAIN_SWITCH_REQUEST"] = "chain-switch-request";
|
|
859
|
+
PageKey3["NICKNAME_SETTINGS"] = "nickname-settings";
|
|
860
|
+
PageKey3["DEVICES"] = "devices";
|
|
861
|
+
PageKey3["DEVICE_LINK"] = "device-link";
|
|
862
|
+
PageKey3["DEVICE_MANAGE"] = "device-manage";
|
|
863
|
+
PageKey3["DEVICE_RESTORE"] = "device-restore";
|
|
864
|
+
return PageKey3;
|
|
865
865
|
})(PageKey || {});
|
|
866
866
|
useLayoutDataStore = create((set) => ({
|
|
867
867
|
page: null,
|
|
@@ -5323,6 +5323,7 @@ var init_en = __esm({
|
|
|
5323
5323
|
advanced: "Advanced",
|
|
5324
5324
|
next: "Next",
|
|
5325
5325
|
prev: "Prev",
|
|
5326
|
+
page: "Page",
|
|
5326
5327
|
errors: {
|
|
5327
5328
|
oops: "Oops, something went wrong. Please try again."
|
|
5328
5329
|
}
|
|
@@ -5384,9 +5385,11 @@ var init_en = __esm({
|
|
|
5384
5385
|
labels: {
|
|
5385
5386
|
sender: "Sender",
|
|
5386
5387
|
bridgeAsset: "Bridge {{asset}}",
|
|
5387
|
-
|
|
5388
|
+
selectTokenAndRoute: "Select Token & Route",
|
|
5389
|
+
selectToken: "Select Token",
|
|
5388
5390
|
estimations: "Estimations",
|
|
5389
5391
|
estimatedFee: "Estimated Fee",
|
|
5392
|
+
availableChainPairs: "Available Chain Pairs",
|
|
5390
5393
|
toChain: "To Chain",
|
|
5391
5394
|
fromChain: "From Chain",
|
|
5392
5395
|
optionalRecipient: "Recipient (optional, if empty - destination chain address = sender address on origin chain)",
|
|
@@ -5410,12 +5413,15 @@ var init_en = __esm({
|
|
|
5410
5413
|
bridge: "BRIDGE",
|
|
5411
5414
|
estimateQuote: "ESTIMATE QUOTE",
|
|
5412
5415
|
bridgeAsset: "BRIDGE {{asset}}",
|
|
5416
|
+
selectAsset: "SELECT ASSET",
|
|
5413
5417
|
confirmBridge: "I confirm bridging {{amount}} {{asset}} to {{destinationChain}}"
|
|
5414
5418
|
},
|
|
5415
5419
|
statuses: {
|
|
5416
5420
|
txPrepare: "Preparing transactions...",
|
|
5417
5421
|
txSending: "Sending {{txCount}} transactions...",
|
|
5418
|
-
txSent: "Transactions sent. Delivery to {{destination}}"
|
|
5422
|
+
txSent: "Transactions sent. Delivery to {{destination}}",
|
|
5423
|
+
txWaitingReceipt: "Waiting for receipt...",
|
|
5424
|
+
txPatching: "Patching transaction..."
|
|
5419
5425
|
},
|
|
5420
5426
|
consent: {
|
|
5421
5427
|
recipient: "IMPORTANT! Make sure the address {{address}} exists on the {{destinationChain}} chain and supports receiving bridged {{asset}}!",
|
|
@@ -5423,6 +5429,7 @@ var init_en = __esm({
|
|
|
5423
5429
|
},
|
|
5424
5430
|
errors: {
|
|
5425
5431
|
directWalletWarn: "In order to bridge from your {{originWalletProvider}} wallet, you need to connect it first (since originally it provides embarkAi auth-profile, not a connection). You will be guided through the process in the next steps.",
|
|
5432
|
+
noWarpRoutes: "No bridge routes available",
|
|
5426
5433
|
routeUnavailable: "The route {{originChain}} \u2194 {{destinationChain}} is currently unavailable. Please try again later or select a different route.",
|
|
5427
5434
|
noConnections: "No connections found between {{originChain}} & {{destinationChain}}",
|
|
5428
5435
|
wrongNetwork: " Please switch embarkAi to origin chain to proceed with bridging",
|
|
@@ -5635,6 +5642,7 @@ var init_ru = __esm({
|
|
|
5635
5642
|
advanced: "\u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u043D\u044B\u0439",
|
|
5636
5643
|
next: "\u0421\u043B\u0435\u0434",
|
|
5637
5644
|
prev: "\u041F\u0440\u0435\u0434",
|
|
5645
|
+
page: "\u0421\u0442\u0440\u0430\u043D\u0438\u0446\u0430",
|
|
5638
5646
|
errors: {
|
|
5639
5647
|
oops: "\u0423\u043F\u0441, \u0447\u0442\u043E-\u0442\u043E \u043F\u043E\u0448\u043B\u043E \u043D\u0435 \u0442\u0430\u043A. \u041F\u043E\u0436\u0430\u043B\u0443\u0439\u0441\u0442\u0430, \u043F\u043E\u043F\u0440\u043E\u0431\u0443\u0439\u0442\u0435 \u0441\u043D\u043E\u0432\u0430."
|
|
5640
5648
|
}
|
|
@@ -5694,10 +5702,13 @@ var init_ru = __esm({
|
|
|
5694
5702
|
bridgeMenu: {
|
|
5695
5703
|
title: "\u041F\u0435\u0440\u0435\u043C\u0435\u0441\u0442\u0438\u0442\u044C \u0410\u043A\u0442\u0438\u0432",
|
|
5696
5704
|
labels: {
|
|
5705
|
+
sender: "\u041E\u0442\u043F\u0440\u0430\u0432\u0438\u0442\u0435\u043B\u044C",
|
|
5697
5706
|
bridgeAsset: "\u041F\u0435\u0440\u0435\u043C\u0435\u0441\u0442\u0438\u0442\u044C {{asset}}",
|
|
5707
|
+
selectTokenAndRoute: "\u0412\u044B\u0431\u0440\u0430\u0442\u044C \u0442\u043E\u043A\u0435\u043D \u0438 \u043C\u0430\u0440\u0448\u0440\u0443\u0442",
|
|
5698
5708
|
selectToken: "\u0412\u044B\u0431\u0440\u0430\u0442\u044C \u043C\u0430\u0440\u0448\u0440\u0443\u0442 \u0442\u043E\u043A\u0435\u043D\u0430",
|
|
5699
5709
|
estimations: "\u041E\u0446\u0435\u043D\u043A\u0438",
|
|
5700
5710
|
estimatedFee: "\u041E\u0436\u0438\u0434\u0430\u0435\u043C\u0430\u044F \u043A\u043E\u043C\u0438\u0441\u0441\u0438\u044F",
|
|
5711
|
+
availableChainPairs: "\u0414\u043E\u0441\u0442\u0443\u043F\u043D\u044B\u0435 \u043F\u0430\u0440\u044B \u0441\u0435\u0442\u0435\u0439",
|
|
5701
5712
|
toChain: "\u0412 \u0441\u0435\u0442\u044C",
|
|
5702
5713
|
fromChain: "\u0418\u0437 \u0441\u0435\u0442\u0438",
|
|
5703
5714
|
optionalRecipient: "\u041F\u043E\u043B\u0443\u0447\u0430\u0442\u0435\u043B\u044C (\u043D\u0435\u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u043E, \u0435\u0441\u043B\u0438 \u043F\u0443\u0441\u0442\u043E \u2014 \u0430\u0434\u0440\u0435\u0441 \u0432 \u0446\u0435\u043B\u0435\u0432\u043E\u0439 \u0441\u0435\u0442\u0438 \u0441\u043E\u0432\u043F\u0430\u0434\u0430\u0435\u0442 \u0441 \u0430\u0434\u0440\u0435\u0441\u043E\u043C \u043E\u0442\u043F\u0440\u0430\u0432\u0438\u0442\u0435\u043B\u044F \u0432 \u0438\u0441\u0445\u043E\u0434\u043D\u043E\u0439 \u0441\u0435\u0442\u0438)",
|
|
@@ -5713,11 +5724,15 @@ var init_ru = __esm({
|
|
|
5713
5724
|
localFee: "\u041B\u043E\u043A\u0430\u043B\u044C\u043D\u0430\u044F \u043A\u043E\u043C\u0438\u0441\u0441\u0438\u044F",
|
|
5714
5725
|
tokenFee: "\u041A\u043E\u043C\u0438\u0441\u0441\u0438\u044F \u0442\u043E\u043A\u0435\u043D\u0430",
|
|
5715
5726
|
igpSymbol: "\u0421\u0438\u043C\u0432\u043E\u043B IGP",
|
|
5716
|
-
localSymbol: "\u041B\u043E\u043A\u0430\u043B\u044C\u043D\u044B\u0439 \u0441\u0438\u043C\u0432\u043E\u043B"
|
|
5727
|
+
localSymbol: "\u041B\u043E\u043A\u0430\u043B\u044C\u043D\u044B\u0439 \u0441\u0438\u043C\u0432\u043E\u043B",
|
|
5728
|
+
operationHash: "\u0425\u044D\u0448 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0438"
|
|
5717
5729
|
},
|
|
5718
5730
|
actions: {
|
|
5731
|
+
connectWallet: "\u041F\u041E\u0414\u041A\u041B\u042E\u0427\u0418\u0422\u042C \u041A\u041E\u0428\u0415\u041B\u0401\u041A",
|
|
5719
5732
|
bridge: "\u041F\u0415\u0420\u0415\u041C\u0415\u0421\u0422\u0418\u0422\u042C",
|
|
5733
|
+
estimateQuote: "\u0420\u0410\u0421\u0421\u0427\u0418\u0422\u0410\u0422\u042C \u0421\u0422\u041E\u0418\u041C\u041E\u0421\u0422\u042C",
|
|
5720
5734
|
bridgeAsset: "\u041F\u0415\u0420\u0415\u041C\u0415\u0421\u0422\u0418\u0422\u042C {{asset}}",
|
|
5735
|
+
selectAsset: "\u0412\u042B\u0411\u0420\u0410\u0422\u042C \u0410\u041A\u0422\u0418\u0412",
|
|
5721
5736
|
confirmBridge: "\u041F\u041E\u0414\u0422\u0412\u0415\u0420\u0414\u0418\u0422\u042C \u041F\u0415\u0420\u0415\u041C\u0415\u0429\u0415\u041D\u0418\u0415"
|
|
5722
5737
|
},
|
|
5723
5738
|
statuses: {
|
|
@@ -5726,12 +5741,22 @@ var init_ru = __esm({
|
|
|
5726
5741
|
txPrepare: "\u041F\u043E\u0434\u0433\u043E\u0442\u043E\u0432\u043A\u0430 \u0442\u0440\u0430\u043D\u0437\u0430\u043A\u0446\u0438\u0439...",
|
|
5727
5742
|
txSending: "\u041E\u0442\u043F\u0440\u0430\u0432\u043A\u0430 {{txCount}} \u0442\u0440\u0430\u043D\u0437\u0430\u043A\u0446\u0438\u0439...",
|
|
5728
5743
|
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}}",
|
|
5729
|
-
txExecuting: "\u0412\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u0435 \u043F\u0435\u0440\u0435\u043C\u0435\u0449\u0435\u043D\u0438\u044F..."
|
|
5744
|
+
txExecuting: "\u0412\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u0435 \u043F\u0435\u0440\u0435\u043C\u0435\u0449\u0435\u043D\u0438\u044F...",
|
|
5745
|
+
txWaitingReceipt: "\u041E\u0436\u0438\u0434\u0430\u043D\u0438\u0435 \u043F\u043E\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043D\u0438\u044F...",
|
|
5746
|
+
txPatching: "\u041E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u0435 \u0442\u0440\u0430\u043D\u0437\u0430\u043A\u0446\u0438\u0438..."
|
|
5747
|
+
},
|
|
5748
|
+
consent: {
|
|
5749
|
+
recipient: "\u0412\u041D\u0418\u041C\u0410\u041D\u0418\u0415! \u0423\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044C, \u0447\u0442\u043E \u0430\u0434\u0440\u0435\u0441 {{address}} \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0432 \u0441\u0435\u0442\u0438 {{destinationChain}} \u0438 \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u0438\u0435 \u043F\u0435\u0440\u0435\u043C\u0435\u0449\u0451\u043D\u043D\u044B\u0445 {{asset}}!",
|
|
5750
|
+
lostFunds: "\u0412 \u043F\u0440\u043E\u0442\u0438\u0432\u043D\u043E\u043C \u0441\u043B\u0443\u0447\u0430\u0435 \u0432\u0430\u0448\u0438 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430 \u043C\u043E\u0433\u0443\u0442 \u0431\u044B\u0442\u044C \u043F\u043E\u0442\u0435\u0440\u044F\u043D\u044B."
|
|
5730
5751
|
},
|
|
5731
5752
|
errors: {
|
|
5753
|
+
directWalletWarn: "\u0427\u0442\u043E\u0431\u044B \u043F\u0435\u0440\u0435\u043C\u0435\u0441\u0442\u0438\u0442\u044C \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430 \u0438\u0437 \u0432\u0430\u0448\u0435\u0433\u043E \u043A\u043E\u0448\u0435\u043B\u044C\u043A\u0430 {{originWalletProvider}}, \u043D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C\u043E \u0441\u043D\u0430\u0447\u0430\u043B\u0430 \u043F\u043E\u0434\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0435\u0433\u043E (\u043F\u043E\u0441\u043A\u043E\u043B\u044C\u043A\u0443 \u0438\u0437\u043D\u0430\u0447\u0430\u043B\u044C\u043D\u043E \u043E\u043D \u043F\u0440\u0435\u0434\u043E\u0441\u0442\u0430\u0432\u043B\u044F\u0435\u0442 \u043F\u0440\u043E\u0444\u0438\u043B\u044C \u0430\u0443\u0442\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0446\u0438\u0438 embarkAi, \u0430 \u043D\u0435 \u0441\u043E\u0435\u0434\u0438\u043D\u0435\u043D\u0438\u0435). \u041D\u0430 \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0438\u0445 \u0448\u0430\u0433\u0430\u0445 \u0432\u044B \u043F\u0440\u043E\u0439\u0434\u0451\u0442\u0435 \u044D\u0442\u043E\u0442 \u043F\u0440\u043E\u0446\u0435\u0441\u0441.",
|
|
5754
|
+
noWarpRoutes: "\u041C\u0430\u0440\u0448\u0440\u0443\u0442\u044B \u0434\u043B\u044F \u043F\u0435\u0440\u0435\u043C\u0435\u0449\u0435\u043D\u0438\u044F \u043D\u0435\u0434\u043E\u0441\u0442\u0443\u043F\u043D\u044B",
|
|
5732
5755
|
routeUnavailable: "\u041C\u0430\u0440\u0448\u0440\u0443\u0442 {{originChain}} \u2194 {{destinationChain}} \u0432 \u043D\u0430\u0441\u0442\u043E\u044F\u0449\u0435\u0435 \u0432\u0440\u0435\u043C\u044F \u043D\u0435\u0434\u043E\u0441\u0442\u0443\u043F\u0435\u043D. \u041F\u043E\u0436\u0430\u043B\u0443\u0439\u0441\u0442\u0430, \u043F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u0435 \u043F\u043E\u043F\u044B\u0442\u043A\u0443 \u043F\u043E\u0437\u0436\u0435 \u0438\u043B\u0438 \u0432\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0434\u0440\u0443\u0433\u043E\u0439 \u043C\u0430\u0440\u0448\u0440\u0443\u0442.",
|
|
5733
5756
|
noConnections: "\u0421\u043E\u0435\u0434\u0438\u043D\u0435\u043D\u0438\u0439 \u043C\u0435\u0436\u0434\u0443 {{originChain}} \u0438 {{destinationChain}} \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u043E",
|
|
5734
|
-
wrongNetwork: " \u041F\u043E\u0436\u0430\u043B\u0443\u0439\u0441\u0442\u0430, \u043F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0438\u0442\u0435 EmbarkAI \u043D\u0430 \u0438\u0441\u0445\u043E\u0434\u043D\u0443\u044E \u0441\u0435\u0442\u044C \u0434\u043B\u044F \u043F\u0440\u043E\u0434\u043E\u043B\u0436\u0435\u043D\u0438\u044F \u043F\u0435\u0440\u0435\u043C\u0435\u0449\u0435\u043D\u0438\u044F"
|
|
5757
|
+
wrongNetwork: " \u041F\u043E\u0436\u0430\u043B\u0443\u0439\u0441\u0442\u0430, \u043F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0438\u0442\u0435 EmbarkAI \u043D\u0430 \u0438\u0441\u0445\u043E\u0434\u043D\u0443\u044E \u0441\u0435\u0442\u044C \u0434\u043B\u044F \u043F\u0440\u043E\u0434\u043E\u043B\u0436\u0435\u043D\u0438\u044F \u043F\u0435\u0440\u0435\u043C\u0435\u0449\u0435\u043D\u0438\u044F",
|
|
5758
|
+
noHistory: "\u0418\u0441\u0442\u043E\u0440\u0438\u044F \u043F\u0435\u0440\u0435\u043C\u0435\u0449\u0435\u043D\u0438\u0439 \u043F\u0443\u0441\u0442\u0430. \u041F\u0435\u0440\u0435\u043C\u0435\u0441\u0442\u0438\u0442\u0435 \u0432\u0430\u0448\u0438 \u0430\u043A\u0442\u0438\u0432\u044B, \u0447\u0442\u043E\u0431\u044B \u0443\u0432\u0438\u0434\u0435\u0442\u044C \u0438\u0441\u0442\u043E\u0440\u0438\u044E \u0437\u0434\u0435\u0441\u044C.",
|
|
5759
|
+
unsupportedNetwork: "\u041F\u0435\u0440\u0435\u043C\u0435\u0449\u0435\u043D\u0438\u0435 \u0438\u0437 \u0441\u0435\u0442\u0438 {{originChain}} \u043D\u0435 \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044F \u0434\u043B\u044F {{sender}}. \u041F\u043E\u043C\u0435\u043D\u044F\u0439\u0442\u0435 \u0441\u0435\u0442\u0438 \u043C\u0435\u0441\u0442\u0430\u043C\u0438, \u0432\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0434\u0440\u0443\u0433\u043E\u0439 \u043C\u0430\u0440\u0448\u0440\u0443\u0442 \u0442\u043E\u043A\u0435\u043D\u0430 \u0438\u043B\u0438 \u0441\u043C\u0435\u043D\u0438\u0442\u0435 \u043A\u043E\u0448\u0435\u043B\u0451\u043A \u043E\u0442\u043F\u0440\u0430\u0432\u0438\u0442\u0435\u043B\u044F"
|
|
5735
5760
|
}
|
|
5736
5761
|
},
|
|
5737
5762
|
receiveMenu: {
|
|
@@ -5939,6 +5964,7 @@ var init_zh = __esm({
|
|
|
5939
5964
|
advanced: "\u9AD8\u7EA7",
|
|
5940
5965
|
next: "\u4E0B\u4E00\u6B65",
|
|
5941
5966
|
prev: "\u4E0A\u4E00\u6B65",
|
|
5967
|
+
page: "\u9875\u9762",
|
|
5942
5968
|
errors: {
|
|
5943
5969
|
oops: "\u54CE\u5440\uFF0C\u51FA\u4E86\u70B9\u95EE\u9898\u3002\u8BF7\u518D\u8BD5\u4E00\u6B21\u3002"
|
|
5944
5970
|
}
|
|
@@ -5998,10 +6024,13 @@ var init_zh = __esm({
|
|
|
5998
6024
|
bridgeMenu: {
|
|
5999
6025
|
title: "\u8DE8\u94FE\u8D44\u4EA7",
|
|
6000
6026
|
labels: {
|
|
6027
|
+
sender: "\u53D1\u9001\u65B9",
|
|
6001
6028
|
bridgeAsset: "\u8DE8\u94FE {{asset}}",
|
|
6029
|
+
selectTokenAndRoute: "\u9009\u62E9\u4EE3\u5E01\u548C\u8DEF\u7531",
|
|
6002
6030
|
selectToken: "\u9009\u62E9\u4EE3\u5E01\u8DEF\u7531",
|
|
6003
6031
|
estimations: "\u9884\u4F30",
|
|
6004
6032
|
estimatedFee: "\u9884\u4F30\u624B\u7EED\u8D39",
|
|
6033
|
+
availableChainPairs: "\u53EF\u7528\u94FE\u5BF9",
|
|
6005
6034
|
toChain: "\u76EE\u6807\u94FE",
|
|
6006
6035
|
fromChain: "\u6E90\u94FE",
|
|
6007
6036
|
optionalRecipient: "\u63A5\u6536\u4EBA\uFF08\u53EF\u9009\uFF0C\u82E5\u4E3A\u7A7A\u5219\u76EE\u6807\u94FE\u5730\u5740\u7B49\u4E8E\u6E90\u94FE\u4E0A\u7684\u53D1\u9001\u65B9\u5730\u5740\uFF09",
|
|
@@ -6017,11 +6046,15 @@ var init_zh = __esm({
|
|
|
6017
6046
|
localFee: "\u672C\u5730\u8D39\u7528",
|
|
6018
6047
|
tokenFee: "\u4EE3\u5E01\u8D39\u7528",
|
|
6019
6048
|
igpSymbol: "IGP \u7B26\u53F7",
|
|
6020
|
-
localSymbol: "\u672C\u5730\u7B26\u53F7"
|
|
6049
|
+
localSymbol: "\u672C\u5730\u7B26\u53F7",
|
|
6050
|
+
operationHash: "\u64CD\u4F5C\u54C8\u5E0C"
|
|
6021
6051
|
},
|
|
6022
6052
|
actions: {
|
|
6053
|
+
connectWallet: "\u8FDE\u63A5\u9489\u5305",
|
|
6023
6054
|
bridge: "\u8DE8\u94FE",
|
|
6055
|
+
estimateQuote: "\u4F30\u7B97\u62A5\u4EF7",
|
|
6024
6056
|
bridgeAsset: "\u8DE8\u94FE {{asset}}",
|
|
6057
|
+
selectAsset: "\u9009\u62E9\u8D44\u4EA7",
|
|
6025
6058
|
confirmBridge: "\u786E\u8BA4\u8DE8\u94FE"
|
|
6026
6059
|
},
|
|
6027
6060
|
statuses: {
|
|
@@ -6030,12 +6063,22 @@ var init_zh = __esm({
|
|
|
6030
6063
|
txPrepare: "\u6B63\u5728\u51C6\u5907\u4EA4\u6613...",
|
|
6031
6064
|
txSending: "\u6B63\u5728\u53D1\u9001 {{txCount}} \u7B14\u4EA4\u6613...",
|
|
6032
6065
|
txSent: "\u4EA4\u6613\u5DF2\u53D1\u9001\u3002\u6B63\u5728\u4F20\u8F93\u81F3 {{destination}}",
|
|
6033
|
-
txExecuting: "\u6B63\u5728\u6267\u884C\u8DE8\u94FE..."
|
|
6066
|
+
txExecuting: "\u6B63\u5728\u6267\u884C\u8DE8\u94FE...",
|
|
6067
|
+
txWaitingReceipt: "\u7B49\u5F85\u6536\u636E...",
|
|
6068
|
+
txPatching: "\u66F4\u65B0\u4EA4\u6613..."
|
|
6069
|
+
},
|
|
6070
|
+
consent: {
|
|
6071
|
+
recipient: "\u91CD\u8981\u63D0\u793A\uFF01\u8BF7\u786E\u4FDD {{address}} \u5730\u5740\u5728 {{destinationChain}} \u94FE\u4E0A\u5B58\u5728\uFF0C\u5E76\u652F\u6301\u63A5\u6536\u8DE8\u94FE\u7684 {{asset}}\uFF01",
|
|
6072
|
+
lostFunds: "\u5426\u5219\u60A8\u7684\u8D44\u91D1\u53EF\u80FD\u4E22\u5931\u3002"
|
|
6034
6073
|
},
|
|
6035
6074
|
errors: {
|
|
6075
|
+
directWalletWarn: "\u8981\u4ECE\u60A8\u7684 {{originWalletProvider}} \u9489\u5305\u8FDB\u884C\u8DE8\u94FE\uFF0C\u60A8\u9700\u8981\u5148\u8FDE\u63A5\u5B83\uFF08\u56E0\u4E3A\u5B83\u6700\u521D\u63D0\u4F9B\u7684\u662F embarkAi \u8EAB\u4EFD\u9A8C\u8BC1\u914D\u7F6E\u6587\u4EF6\uFF0C\u800C\u4E0D\u662F\u8FDE\u63A5\uFF09\u3002\u63A5\u4E0B\u6765\u7684\u6B65\u9AA4\u5C06\u5F15\u5BFC\u60A8\u5B8C\u6210\u6B64\u8FC7\u7A0B\u3002",
|
|
6076
|
+
noWarpRoutes: "\u65E0\u53EF\u7528\u6865\u63A5\u8DEF\u7531",
|
|
6036
6077
|
routeUnavailable: "\u8DEF\u7531 {{originChain}} \u2194 {{destinationChain}} \u5F53\u524D\u4E0D\u53EF\u7528\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5\u6216\u9009\u62E9\u5176\u4ED6\u8DEF\u7531\u3002",
|
|
6037
6078
|
noConnections: "\u672A\u627E\u5230 {{originChain}} \u4E0E {{destinationChain}} \u4E4B\u95F4\u7684\u8FDE\u63A5",
|
|
6038
|
-
wrongNetwork: " \u8BF7\u5C06 EmbarkAI \u5207\u6362\u81F3\u6E90\u94FE\u4EE5\u7EE7\u7EED\u8DE8\u94FE\u64CD\u4F5C"
|
|
6079
|
+
wrongNetwork: " \u8BF7\u5C06 EmbarkAI \u5207\u6362\u81F3\u6E90\u94FE\u4EE5\u7EE7\u7EED\u8DE8\u94FE\u64CD\u4F5C",
|
|
6080
|
+
noHistory: "\u6682\u65E0\u8DE8\u94FE\u8BB0\u5F55\u3002\u8DE8\u94FE\u60A8\u7684\u8D44\u4EA7\u540E\uFF0C\u5386\u53F2\u8BB0\u5F55\u5C06\u663E\u793A\u5728\u6B64\u5904\u3002",
|
|
6081
|
+
unsupportedNetwork: "{{sender}} \u5C1A\u4E0D\u652F\u6301\u4ECE {{originChain}} \u8DE8\u94FE\u3002\u8BF7\u5207\u6362\u7F51\u7EDC\u5BF9\u3001\u9009\u62E9\u4E0D\u540C\u7684\u4EE3\u5E01\u8DEF\u7531\u6216\u66F4\u6362\u53D1\u9001\u9489\u5305"
|
|
6039
6082
|
}
|
|
6040
6083
|
},
|
|
6041
6084
|
receiveMenu: {
|
|
@@ -11487,61 +11530,34 @@ var init_BaseIcon = __esm({
|
|
|
11487
11530
|
}
|
|
11488
11531
|
});
|
|
11489
11532
|
|
|
11490
|
-
// src/internal/assets/networks/
|
|
11533
|
+
// src/internal/assets/networks/BscIcon.tsx
|
|
11491
11534
|
import { jsx as jsx46, jsxs as jsxs39 } from "react/jsx-runtime";
|
|
11492
|
-
function
|
|
11535
|
+
function BSCIcon(props) {
|
|
11536
|
+
const { width = 28, height = 28, className } = props;
|
|
11493
11537
|
return /* @__PURE__ */ jsxs39(
|
|
11494
11538
|
"svg",
|
|
11495
11539
|
{
|
|
11496
11540
|
width,
|
|
11497
11541
|
height,
|
|
11498
|
-
viewBox: "0 0
|
|
11542
|
+
viewBox: "0 0 32 32",
|
|
11499
11543
|
fill: "none",
|
|
11500
11544
|
xmlns: "http://www.w3.org/2000/svg",
|
|
11501
11545
|
className,
|
|
11502
11546
|
children: [
|
|
11503
|
-
/* @__PURE__ */ jsx46("circle", { cx: "
|
|
11504
|
-
/* @__PURE__ */ jsx46(
|
|
11505
|
-
"path",
|
|
11506
|
-
{
|
|
11507
|
-
d: "M14 6L11.09 8.91L14 11.82L16.91 8.91L14 6Z",
|
|
11508
|
-
fill: "white"
|
|
11509
|
-
}
|
|
11510
|
-
),
|
|
11511
|
-
/* @__PURE__ */ jsx46(
|
|
11512
|
-
"path",
|
|
11513
|
-
{
|
|
11514
|
-
d: "M8.18 11.82L5.27 14.73L8.18 17.64L11.09 14.73L8.18 11.82Z",
|
|
11515
|
-
fill: "white"
|
|
11516
|
-
}
|
|
11517
|
-
),
|
|
11518
|
-
/* @__PURE__ */ jsx46(
|
|
11519
|
-
"path",
|
|
11520
|
-
{
|
|
11521
|
-
d: "M14 14.73L11.09 17.64L14 20.55L16.91 17.64L14 14.73Z",
|
|
11522
|
-
fill: "white"
|
|
11523
|
-
}
|
|
11524
|
-
),
|
|
11525
|
-
/* @__PURE__ */ jsx46(
|
|
11526
|
-
"path",
|
|
11527
|
-
{
|
|
11528
|
-
d: "M19.82 11.82L16.91 14.73L19.82 17.64L22.73 14.73L19.82 11.82Z",
|
|
11529
|
-
fill: "white"
|
|
11530
|
-
}
|
|
11531
|
-
),
|
|
11547
|
+
/* @__PURE__ */ jsx46("circle", { cx: "16", cy: "16", r: "16", fill: "#F3BA2F" }),
|
|
11532
11548
|
/* @__PURE__ */ jsx46(
|
|
11533
11549
|
"path",
|
|
11534
11550
|
{
|
|
11535
|
-
|
|
11536
|
-
|
|
11551
|
+
fill: "#FFF",
|
|
11552
|
+
d: "M12.116 14.404L16 10.52l3.886 3.886 2.26-2.26L16 6l-6.144 6.144 2.26 2.26zM6 16l2.26-2.26L10.52 16l-2.26 2.26L6 16zm6.116 1.596L16 21.48l3.886-3.886 2.26 2.259L16 26l-6.144-6.144-.003-.003 2.263-2.257zM21.48 16l2.26-2.26L26 16l-2.26 2.26L21.48 16zm-3.188-.002h.002V16L16 18.294l-2.291-2.29-.004-.004.004-.003.401-.402.195-.195L16 13.706l2.293 2.293z"
|
|
11537
11553
|
}
|
|
11538
11554
|
)
|
|
11539
11555
|
]
|
|
11540
11556
|
}
|
|
11541
11557
|
);
|
|
11542
11558
|
}
|
|
11543
|
-
var
|
|
11544
|
-
"src/internal/assets/networks/
|
|
11559
|
+
var init_BscIcon = __esm({
|
|
11560
|
+
"src/internal/assets/networks/BscIcon.tsx"() {
|
|
11545
11561
|
}
|
|
11546
11562
|
});
|
|
11547
11563
|
|
|
@@ -11682,7 +11698,7 @@ var init_networks3 = __esm({
|
|
|
11682
11698
|
"src/config/networks.ts"() {
|
|
11683
11699
|
init_ArbitrumIcon();
|
|
11684
11700
|
init_BaseIcon();
|
|
11685
|
-
|
|
11701
|
+
init_BscIcon();
|
|
11686
11702
|
init_EthereumIcon();
|
|
11687
11703
|
init_LumiaIcon2();
|
|
11688
11704
|
NETWORK_OPTIONS = [
|
|
@@ -11711,7 +11727,7 @@ var init_networks3 = __esm({
|
|
|
11711
11727
|
chainId: BSC_TESTNET_CHAIN_ID3,
|
|
11712
11728
|
name: "BSC Testnet",
|
|
11713
11729
|
badge: "TESTNET",
|
|
11714
|
-
Icon:
|
|
11730
|
+
Icon: BSCIcon,
|
|
11715
11731
|
isActive: true
|
|
11716
11732
|
},
|
|
11717
11733
|
{
|
|
@@ -17553,27 +17569,71 @@ var init_NicknameMenu2 = __esm({
|
|
|
17553
17569
|
}
|
|
17554
17570
|
});
|
|
17555
17571
|
|
|
17572
|
+
// src/internal/hooks/useResolvedPublicClient.ts
|
|
17573
|
+
import { createPublicClientForChain as createPublicClientForChain5, getChainConfig as getChainConfig8 } from "@embarkai/core/read";
|
|
17574
|
+
import { useMemo as useMemo4 } from "react";
|
|
17575
|
+
function getCachedPublicClient(chainId) {
|
|
17576
|
+
const cachedClient = publicClientByChainId.get(chainId);
|
|
17577
|
+
if (cachedClient) return cachedClient;
|
|
17578
|
+
const publicClient = createPublicClientForChain5(chainId);
|
|
17579
|
+
publicClientByChainId.set(chainId, publicClient);
|
|
17580
|
+
return publicClient;
|
|
17581
|
+
}
|
|
17582
|
+
function useResolvedPublicClient(chainId, logScope = "useResolvedPublicClient") {
|
|
17583
|
+
const activePublicClient = useSession((st) => st.publicClient);
|
|
17584
|
+
const activeChainId = useSession((st) => st.activeChainId);
|
|
17585
|
+
const activeChainConfig = useSession((st) => st.chainConfig);
|
|
17586
|
+
const resolvedChainId = chainId ?? activeChainId;
|
|
17587
|
+
const shouldUseActiveClient = !chainId || chainId === activeChainId;
|
|
17588
|
+
const chainConfig = useMemo4(() => {
|
|
17589
|
+
if (shouldUseActiveClient) return activeChainConfig;
|
|
17590
|
+
return getChainConfig8(chainId);
|
|
17591
|
+
}, [activeChainConfig, chainId, shouldUseActiveClient]);
|
|
17592
|
+
const publicClient = useMemo4(() => {
|
|
17593
|
+
if (shouldUseActiveClient) return activePublicClient;
|
|
17594
|
+
if (!chainId) return activePublicClient;
|
|
17595
|
+
try {
|
|
17596
|
+
return getCachedPublicClient(chainId);
|
|
17597
|
+
} catch (error) {
|
|
17598
|
+
console.warn(`[${logScope}] Chain ${chainId} is not supported:`, error);
|
|
17599
|
+
return null;
|
|
17600
|
+
}
|
|
17601
|
+
}, [activePublicClient, chainId, logScope, shouldUseActiveClient]);
|
|
17602
|
+
return {
|
|
17603
|
+
activeChainId,
|
|
17604
|
+
chainConfig,
|
|
17605
|
+
publicClient,
|
|
17606
|
+
resolvedChainId
|
|
17607
|
+
};
|
|
17608
|
+
}
|
|
17609
|
+
var publicClientByChainId;
|
|
17610
|
+
var init_useResolvedPublicClient = __esm({
|
|
17611
|
+
"src/internal/hooks/useResolvedPublicClient.ts"() {
|
|
17612
|
+
init_SessionContext();
|
|
17613
|
+
publicClientByChainId = /* @__PURE__ */ new Map();
|
|
17614
|
+
}
|
|
17615
|
+
});
|
|
17616
|
+
|
|
17556
17617
|
// src/internal/hooks/useWatchTokens.ts
|
|
17557
17618
|
import { useQuery as useQuery15 } from "@tanstack/react-query";
|
|
17558
|
-
import { useMemo as
|
|
17619
|
+
import { useMemo as useMemo5 } from "react";
|
|
17559
17620
|
import { erc20Abi, formatUnits as formatUnits2 } from "viem";
|
|
17560
17621
|
function useWatchTokens(options) {
|
|
17561
|
-
const { address, enabled = true } = options;
|
|
17622
|
+
const { address, chainId, enabled = true } = options;
|
|
17562
17623
|
const { config } = useProviderConfig();
|
|
17563
|
-
const publicClient =
|
|
17564
|
-
const
|
|
17565
|
-
const watchTokens = useMemo4(() => {
|
|
17624
|
+
const { publicClient, resolvedChainId } = useResolvedPublicClient(chainId, "useWatchTokens");
|
|
17625
|
+
const watchTokens = useMemo5(() => {
|
|
17566
17626
|
const allWatchTokens = config.current.watchTokens;
|
|
17567
|
-
const tokensForChain =
|
|
17627
|
+
const tokensForChain = resolvedChainId ? allWatchTokens?.[resolvedChainId] || [] : [];
|
|
17568
17628
|
return tokensForChain;
|
|
17569
|
-
}, [config,
|
|
17629
|
+
}, [config, resolvedChainId]);
|
|
17570
17630
|
const {
|
|
17571
17631
|
data: assets,
|
|
17572
17632
|
isLoading,
|
|
17573
17633
|
error,
|
|
17574
17634
|
refetch
|
|
17575
17635
|
} = useQuery15({
|
|
17576
|
-
queryKey: [WATCH_TOKENS_QUERY_KEY,
|
|
17636
|
+
queryKey: [WATCH_TOKENS_QUERY_KEY, resolvedChainId, address, watchTokens.map((t) => t.address).join(",")],
|
|
17577
17637
|
queryFn: async () => {
|
|
17578
17638
|
if (!publicClient || !address || watchTokens.length === 0) {
|
|
17579
17639
|
return [];
|
|
@@ -17648,7 +17708,7 @@ var WATCH_TOKENS_QUERY_KEY;
|
|
|
17648
17708
|
var init_useWatchTokens = __esm({
|
|
17649
17709
|
"src/internal/hooks/useWatchTokens.ts"() {
|
|
17650
17710
|
init_ProviderContext();
|
|
17651
|
-
|
|
17711
|
+
init_useResolvedPublicClient();
|
|
17652
17712
|
WATCH_TOKENS_QUERY_KEY = "watch-tokens";
|
|
17653
17713
|
}
|
|
17654
17714
|
});
|
|
@@ -17656,7 +17716,7 @@ var init_useWatchTokens = __esm({
|
|
|
17656
17716
|
// src/internal/hooks/useBlockscoutAssets.ts
|
|
17657
17717
|
import { createBlockscoutClient } from "@embarkai/core/clients";
|
|
17658
17718
|
import { useQuery as useQuery16 } from "@tanstack/react-query";
|
|
17659
|
-
import { useCallback as useCallback19, useMemo as
|
|
17719
|
+
import { useCallback as useCallback19, useMemo as useMemo6, useRef as useRef16 } from "react";
|
|
17660
17720
|
import { formatEther, formatUnits as formatUnits3 } from "viem";
|
|
17661
17721
|
function resolveIpfsUri(uri) {
|
|
17662
17722
|
if (!uri) return "";
|
|
@@ -17782,15 +17842,13 @@ function createError(error) {
|
|
|
17782
17842
|
};
|
|
17783
17843
|
}
|
|
17784
17844
|
function useBlockscoutAssets(options) {
|
|
17785
|
-
const { address, enabled = true, detectSecurityTokens = true } = options;
|
|
17786
|
-
const publicClient =
|
|
17787
|
-
const activeChainId = useSession((st) => st.activeChainId);
|
|
17788
|
-
const chainConfig = useSession((st) => st.chainConfig);
|
|
17845
|
+
const { address, chainId, enabled = true, detectSecurityTokens = true } = options;
|
|
17846
|
+
const { chainConfig, publicClient, resolvedChainId } = useResolvedPublicClient(chainId, "useBlockscoutAssets");
|
|
17789
17847
|
const portfolioConfig = useProviderConfig().config.current.portfolio;
|
|
17790
17848
|
const customTokenBalancesQuery = portfolioConfig?.tokenBalancesQuery;
|
|
17791
17849
|
const customTokenBalancesQueryKey = portfolioConfig?.tokenBalancesQueryKey;
|
|
17792
17850
|
const blockscoutApiUrl = getBlockscoutApiUrl(chainConfig);
|
|
17793
|
-
const blockscoutClient =
|
|
17851
|
+
const blockscoutClient = useMemo6(
|
|
17794
17852
|
() => blockscoutApiUrl ? createBlockscoutClient({ baseUrl: blockscoutApiUrl }) : null,
|
|
17795
17853
|
[blockscoutApiUrl]
|
|
17796
17854
|
);
|
|
@@ -17799,13 +17857,13 @@ function useBlockscoutAssets(options) {
|
|
|
17799
17857
|
assets: watchTokenAssets,
|
|
17800
17858
|
isLoading: watchTokensLoading,
|
|
17801
17859
|
refetch: refetchWatchTokens
|
|
17802
|
-
} = useWatchTokens({ address, enabled });
|
|
17860
|
+
} = useWatchTokens({ address, chainId: resolvedChainId, enabled });
|
|
17803
17861
|
const {
|
|
17804
17862
|
data: nativeBalanceData,
|
|
17805
17863
|
isLoading: nativeLoading,
|
|
17806
17864
|
refetch: refetchNative
|
|
17807
17865
|
} = useQuery16({
|
|
17808
|
-
queryKey: ["native-balance",
|
|
17866
|
+
queryKey: ["native-balance", resolvedChainId, address],
|
|
17809
17867
|
queryFn: async () => {
|
|
17810
17868
|
if (!publicClient || !address) return null;
|
|
17811
17869
|
const balance = await publicClient.getBalance({ address });
|
|
@@ -17830,7 +17888,7 @@ function useBlockscoutAssets(options) {
|
|
|
17830
17888
|
refetch: refetchTokens,
|
|
17831
17889
|
dataUpdatedAt
|
|
17832
17890
|
} = useQuery16({
|
|
17833
|
-
queryKey: [BLOCKSCOUT_QUERY_KEY, address, blockscoutApiUrl, customTokenBalancesQueryKey],
|
|
17891
|
+
queryKey: [BLOCKSCOUT_QUERY_KEY, resolvedChainId, address, blockscoutApiUrl, customTokenBalancesQueryKey],
|
|
17834
17892
|
queryFn: async () => {
|
|
17835
17893
|
if (customTokenBalancesQuery) {
|
|
17836
17894
|
try {
|
|
@@ -17854,7 +17912,7 @@ function useBlockscoutAssets(options) {
|
|
|
17854
17912
|
isLoading: nftsLoading,
|
|
17855
17913
|
refetch: refetchNfts
|
|
17856
17914
|
} = useQuery16({
|
|
17857
|
-
queryKey: [BLOCKSCOUT_QUERY_KEY, "nfts", address, blockscoutApiUrl],
|
|
17915
|
+
queryKey: [BLOCKSCOUT_QUERY_KEY, "nfts", resolvedChainId, address, blockscoutApiUrl],
|
|
17858
17916
|
queryFn: () => blockscoutClient.getNfts(address),
|
|
17859
17917
|
enabled: !!address && enabled && !!blockscoutClient,
|
|
17860
17918
|
staleTime: BLOCKSCOUT_QUERY_STALE_TIME,
|
|
@@ -17863,12 +17921,12 @@ function useBlockscoutAssets(options) {
|
|
|
17863
17921
|
retry: 2,
|
|
17864
17922
|
retryDelay: 1e3
|
|
17865
17923
|
});
|
|
17866
|
-
const erc20TokenAddresses =
|
|
17924
|
+
const erc20TokenAddresses = useMemo6(() => {
|
|
17867
17925
|
if (!tokenBalances) return [];
|
|
17868
17926
|
return tokenBalances.filter((tb) => tb.token.type === "ERC-20").map((tb) => tb.token.address_hash);
|
|
17869
17927
|
}, [tokenBalances]);
|
|
17870
17928
|
const { data: erc3643Results } = useQuery16({
|
|
17871
|
-
queryKey: [ERC3643_DETECTION_QUERY_KEY, address, erc20TokenAddresses],
|
|
17929
|
+
queryKey: [ERC3643_DETECTION_QUERY_KEY, resolvedChainId, address, erc20TokenAddresses],
|
|
17872
17930
|
queryFn: async () => {
|
|
17873
17931
|
if (!publicClient || erc20TokenAddresses.length === 0) {
|
|
17874
17932
|
return /* @__PURE__ */ new Map();
|
|
@@ -17907,7 +17965,7 @@ function useBlockscoutAssets(options) {
|
|
|
17907
17965
|
gcTime: BLOCKSCOUT_QUERY_GC_TIME,
|
|
17908
17966
|
retry: 1
|
|
17909
17967
|
});
|
|
17910
|
-
const assets =
|
|
17968
|
+
const assets = useMemo6(() => {
|
|
17911
17969
|
const result = [];
|
|
17912
17970
|
const addedAddresses = /* @__PURE__ */ new Set();
|
|
17913
17971
|
if (nativeBalanceData) {
|
|
@@ -17953,7 +18011,7 @@ function useBlockscoutAssets(options) {
|
|
|
17953
18011
|
}
|
|
17954
18012
|
return result;
|
|
17955
18013
|
}, [nativeBalanceData, tokenBalances, nftItems, erc3643Results, watchTokenAssets, chainConfig]);
|
|
17956
|
-
const nativeBalance =
|
|
18014
|
+
const nativeBalance = useMemo6(() => {
|
|
17957
18015
|
if (!nativeBalanceData) return null;
|
|
17958
18016
|
return {
|
|
17959
18017
|
value: nativeBalanceData.value,
|
|
@@ -17961,7 +18019,7 @@ function useBlockscoutAssets(options) {
|
|
|
17961
18019
|
symbol: nativeBalanceData.symbol
|
|
17962
18020
|
};
|
|
17963
18021
|
}, [nativeBalanceData]);
|
|
17964
|
-
const error =
|
|
18022
|
+
const error = useMemo6(() => {
|
|
17965
18023
|
if (!tokensError) return null;
|
|
17966
18024
|
return createError(tokensError);
|
|
17967
18025
|
}, [tokensError]);
|
|
@@ -17995,9 +18053,9 @@ var BLOCKSCOUT_QUERY_KEY, ERC3643_DETECTION_QUERY_KEY, ERC3643_ABI;
|
|
|
17995
18053
|
var init_useBlockscoutAssets = __esm({
|
|
17996
18054
|
"src/internal/hooks/useBlockscoutAssets.ts"() {
|
|
17997
18055
|
init_ProviderContext();
|
|
17998
|
-
init_SessionContext();
|
|
17999
18056
|
init_initial();
|
|
18000
18057
|
init_constants();
|
|
18058
|
+
init_useResolvedPublicClient();
|
|
18001
18059
|
init_useWatchTokens();
|
|
18002
18060
|
BLOCKSCOUT_QUERY_KEY = "blockscout-token-balances";
|
|
18003
18061
|
ERC3643_DETECTION_QUERY_KEY = "erc3643-detection";
|
|
@@ -18428,7 +18486,7 @@ var init_nickname_fingerprint = __esm({
|
|
|
18428
18486
|
// src/internal/components/ReceiveMenu/ReceiveMenu.tsx
|
|
18429
18487
|
import { ArrowLeft as ArrowLeft17, CheckCircle2 as CheckCircle23, Copy as Copy3, Info as Info5, Loader as Loader28, Shield } from "lucide-react";
|
|
18430
18488
|
import QRCode from "qrcode";
|
|
18431
|
-
import { useCallback as useCallback21, useEffect as useEffect34, useMemo as
|
|
18489
|
+
import { useCallback as useCallback21, useEffect as useEffect34, useMemo as useMemo7, useState as useState23 } from "react";
|
|
18432
18490
|
import { Fragment as Fragment32, jsx as jsx83, jsxs as jsxs76 } from "react/jsx-runtime";
|
|
18433
18491
|
function ReceiveMenu() {
|
|
18434
18492
|
const session = useSession((st) => st.session);
|
|
@@ -18442,7 +18500,7 @@ function ReceiveMenu() {
|
|
|
18442
18500
|
const [qrCodeUrl, setQrCodeUrl] = useState23("");
|
|
18443
18501
|
const [copied, setCopied] = useState23(false);
|
|
18444
18502
|
const [fingerprintCopied, setFingerprintCopied] = useState23(false);
|
|
18445
|
-
const fingerprint =
|
|
18503
|
+
const fingerprint = useMemo7(() => {
|
|
18446
18504
|
if (!session?.ownerAddress) return null;
|
|
18447
18505
|
try {
|
|
18448
18506
|
return generateFingerprint(session.ownerAddress);
|
|
@@ -19266,9 +19324,9 @@ import { bsc, mainnet as ethereum } from "wagmi/chains";
|
|
|
19266
19324
|
var CHAINS_UI_META;
|
|
19267
19325
|
var init_chains = __esm({
|
|
19268
19326
|
"src/internal/components/SendMenu/hyperbridge/lib/chains.ts"() {
|
|
19269
|
-
init_BnbIcon2();
|
|
19270
19327
|
init_EthereumIcon();
|
|
19271
19328
|
init_LumiaIcon2();
|
|
19329
|
+
init_BscIcon();
|
|
19272
19330
|
CHAINS_UI_META = {
|
|
19273
19331
|
lumiaprism: {
|
|
19274
19332
|
chainID: lumiaprism.id,
|
|
@@ -19277,18 +19335,16 @@ var init_chains = __esm({
|
|
|
19277
19335
|
// exact hyperlane registry chain name
|
|
19278
19336
|
Icon: LumiaIcon2,
|
|
19279
19337
|
explorerUrl: lumiaprism.blockExplorers.default.url,
|
|
19280
|
-
chain: lumiaprism
|
|
19281
|
-
nativeCurrency: lumiaprism.nativeCurrency.symbol
|
|
19338
|
+
chain: lumiaprism
|
|
19282
19339
|
},
|
|
19283
19340
|
bsc: {
|
|
19284
19341
|
chainID: bsc.id,
|
|
19285
19342
|
chainLabel: bsc.name,
|
|
19286
19343
|
chainName: "bsc",
|
|
19287
19344
|
// exact hyperlane registry chain name
|
|
19288
|
-
Icon:
|
|
19345
|
+
Icon: BSCIcon,
|
|
19289
19346
|
explorerUrl: bsc.blockExplorers.default.url,
|
|
19290
|
-
chain: bsc
|
|
19291
|
-
nativeCurrency: bsc.nativeCurrency.symbol
|
|
19347
|
+
chain: bsc
|
|
19292
19348
|
},
|
|
19293
19349
|
ethereum: {
|
|
19294
19350
|
chainID: ethereum.id,
|
|
@@ -19297,15 +19353,8 @@ var init_chains = __esm({
|
|
|
19297
19353
|
// exact hyperlane registry chain name
|
|
19298
19354
|
Icon: EthereumIcon,
|
|
19299
19355
|
explorerUrl: ethereum.blockExplorers.default.url,
|
|
19300
|
-
chain: ethereum
|
|
19301
|
-
|
|
19302
|
-
}
|
|
19303
|
-
// base: {
|
|
19304
|
-
// chainID: base.id,
|
|
19305
|
-
// chainLabel: base.name,
|
|
19306
|
-
// chainName: 'ethereum', // exact hyperlane registry chain name
|
|
19307
|
-
// Icon: EthereumIcon
|
|
19308
|
-
// },
|
|
19356
|
+
chain: ethereum
|
|
19357
|
+
}
|
|
19309
19358
|
};
|
|
19310
19359
|
}
|
|
19311
19360
|
});
|
|
@@ -19326,7 +19375,6 @@ var init_useBridgeStore = __esm({
|
|
|
19326
19375
|
amount: "",
|
|
19327
19376
|
quote: null,
|
|
19328
19377
|
isQuoteEstimating: false,
|
|
19329
|
-
lastTxHashes: [],
|
|
19330
19378
|
bridgeHistoryItem: null
|
|
19331
19379
|
};
|
|
19332
19380
|
useBridgeStore = create8()(
|
|
@@ -19336,6 +19384,7 @@ var init_useBridgeStore = __esm({
|
|
|
19336
19384
|
recipient: null,
|
|
19337
19385
|
originChain: null,
|
|
19338
19386
|
destinationChain: null,
|
|
19387
|
+
bridgeAssetSymbol: null,
|
|
19339
19388
|
...RESETABLE_STATES,
|
|
19340
19389
|
setBridgeStep: (bridgeStep) => {
|
|
19341
19390
|
useFlowSelectorStore.getState().setRenderKey(`bridge-${bridgeStep}-${Date.now()}`);
|
|
@@ -19343,6 +19392,7 @@ var init_useBridgeStore = __esm({
|
|
|
19343
19392
|
},
|
|
19344
19393
|
setBridgeSender: (bridgeSender) => set({ bridgeSender }),
|
|
19345
19394
|
setBridgeSenders: (bridgeSenders) => set({ bridgeSenders }),
|
|
19395
|
+
setBridgeAssetSymbol: (bridgeAssetSymbol) => set({ bridgeAssetSymbol }),
|
|
19346
19396
|
setBridgeTxStatus: (bridgeTxStatus) => set({ bridgeTxStatus }),
|
|
19347
19397
|
setOriginChain: (v) => set({ originChain: v }),
|
|
19348
19398
|
setDestinationChain: (v) => set({ destinationChain: v }),
|
|
@@ -19350,7 +19400,6 @@ var init_useBridgeStore = __esm({
|
|
|
19350
19400
|
setAmount: (v) => set({ amount: v }),
|
|
19351
19401
|
setQuote: (quote) => set({ quote }),
|
|
19352
19402
|
setIsQuoteEstimating: (isQuoteEstimating) => set({ isQuoteEstimating }),
|
|
19353
|
-
setLastTxHashes: (lastTxHashes) => set({ lastTxHashes }),
|
|
19354
19403
|
setRecipient: (recipient) => set({ recipient }),
|
|
19355
19404
|
setBridgeHistoryItem: (bridgeHistoryItem) => set({ bridgeHistoryItem }),
|
|
19356
19405
|
// Compound actions
|
|
@@ -19370,6 +19419,7 @@ var init_useBridgeStore = __esm({
|
|
|
19370
19419
|
{
|
|
19371
19420
|
name: "hyperlane-bridge-store",
|
|
19372
19421
|
partialize: (state) => ({
|
|
19422
|
+
bridgeAssetSymbol: state.bridgeAssetSymbol,
|
|
19373
19423
|
hyperRoute: state.hyperRoute,
|
|
19374
19424
|
recipient: state.recipient,
|
|
19375
19425
|
originChain: state.originChain,
|
|
@@ -19393,7 +19443,6 @@ function SenderSelector() {
|
|
|
19393
19443
|
const { signMessageAsync } = useSignMessage();
|
|
19394
19444
|
const { openConnectModal } = useConnectModal();
|
|
19395
19445
|
const directWalletAddress = useExternalWalletStore((st) => st.externalAddress);
|
|
19396
|
-
const directWalletChainId = useExternalWalletStore((st) => st.externalChainId);
|
|
19397
19446
|
const directWalletIsConnected = useExternalWalletStore((st) => st.isExternalConnected);
|
|
19398
19447
|
const pendingWalletRef = useRef17(null);
|
|
19399
19448
|
const { profiles } = useLinkedProfiles();
|
|
@@ -19418,10 +19467,6 @@ function SenderSelector() {
|
|
|
19418
19467
|
setWalletMessage("Invalid wallet profile. Please try connecting your wallet again.");
|
|
19419
19468
|
return;
|
|
19420
19469
|
}
|
|
19421
|
-
const isWalletChainMatchOriginChain = directWalletChainId === CHAINS_UI_META[originChain].chainID;
|
|
19422
|
-
if (!isWalletChainMatchOriginChain) {
|
|
19423
|
-
throw new Error(`External wallet required to be on ${CHAINS_UI_META[originChain].chainLabel} network.`);
|
|
19424
|
-
}
|
|
19425
19470
|
const projectName = config.current?.projectId ? await fetchProjectName(config.current.projectId) : "EmbarkAI";
|
|
19426
19471
|
const signingWalletAddress = walletProfile2?.externalId;
|
|
19427
19472
|
const message = createLoginMessage(signingWalletAddress, projectName);
|
|
@@ -19555,241 +19600,6 @@ var init_SenderSelector = __esm({
|
|
|
19555
19600
|
}
|
|
19556
19601
|
});
|
|
19557
19602
|
|
|
19558
|
-
// src/internal/components/SendMenu/hyperbridge/components/ResolveChainIcon.tsx
|
|
19559
|
-
import { jsx as jsx92 } from "react/jsx-runtime";
|
|
19560
|
-
function ResolveChainIcon(props) {
|
|
19561
|
-
const Icon2 = CHAINS_UI_META[props.chainName]?.Icon || TOKENS_ICONS.EMBARKAI;
|
|
19562
|
-
return /* @__PURE__ */ jsx92(Icon2, { className: props.className || "w-4 h-4" });
|
|
19563
|
-
}
|
|
19564
|
-
var init_ResolveChainIcon = __esm({
|
|
19565
|
-
"src/internal/components/SendMenu/hyperbridge/components/ResolveChainIcon.tsx"() {
|
|
19566
|
-
init_tokens();
|
|
19567
|
-
init_chains();
|
|
19568
|
-
}
|
|
19569
|
-
});
|
|
19570
|
-
|
|
19571
|
-
// src/internal/components/SendMenu/hyperbridge/utils.ts
|
|
19572
|
-
import { formatUnits as formatUnits6 } from "viem";
|
|
19573
|
-
function isNftAsset2(asset) {
|
|
19574
|
-
if (!asset) return false;
|
|
19575
|
-
return asset.type === "erc721" || asset.type === "erc1155";
|
|
19576
|
-
}
|
|
19577
|
-
function getAssetBalance(asset) {
|
|
19578
|
-
if (!asset) return 0;
|
|
19579
|
-
if (isNftAsset2(asset)) return 1;
|
|
19580
|
-
return Number(formatUnits6(BigInt(asset.balance || "0"), asset.decimals || 18));
|
|
19581
|
-
}
|
|
19582
|
-
function isOririnChainEmbarkSupported(originChain) {
|
|
19583
|
-
const supportedChain = NETWORK_OPTIONS.map((c) => c.chainId);
|
|
19584
|
-
return supportedChain.includes(CHAINS_UI_META[originChain].chainID);
|
|
19585
|
-
}
|
|
19586
|
-
var init_utils8 = __esm({
|
|
19587
|
-
"src/internal/components/SendMenu/hyperbridge/utils.ts"() {
|
|
19588
|
-
init_networks3();
|
|
19589
|
-
init_chains();
|
|
19590
|
-
}
|
|
19591
|
-
});
|
|
19592
|
-
|
|
19593
|
-
// src/internal/components/SendMenu/hyperbridge/components/TokenHyperlaneRouteSelector.tsx
|
|
19594
|
-
import { ArrowLeftRightIcon } from "lucide-react";
|
|
19595
|
-
import { Fragment as Fragment36 } from "react";
|
|
19596
|
-
import { jsx as jsx93, jsxs as jsxs85 } from "react/jsx-runtime";
|
|
19597
|
-
function TokenHyperlaneRouteSelector(props) {
|
|
19598
|
-
const { hyperlaneWarpRoutes } = props;
|
|
19599
|
-
const hyperRouteID = useBridgeStore((st) => st.hyperRoute);
|
|
19600
|
-
const originChain = useBridgeStore((st) => st.originChain);
|
|
19601
|
-
const destinationChain = useBridgeStore((st) => st.destinationChain);
|
|
19602
|
-
const activeRoute = hyperlaneWarpRoutes.find((route) => {
|
|
19603
|
-
const { routeId, chainPair } = route;
|
|
19604
|
-
const chainPairNames = chainPair.map((c) => c.chainName);
|
|
19605
|
-
return routeId === hyperRouteID && chainPairNames.includes(originChain) && chainPairNames.includes(destinationChain);
|
|
19606
|
-
});
|
|
19607
|
-
return /* @__PURE__ */ jsx93("div", { className: "w-full flex flex-col gap-[var(--ui-kit-gap)]", children: hyperlaneWarpRoutes.map((hyperRoute, routeIdx) => {
|
|
19608
|
-
const RouteIcon = TOKENS_ICONS[(hyperRoute?.symbol || "null_icon").toUpperCase()] || TOKENS_ICONS.EMBARKAI;
|
|
19609
|
-
return /* @__PURE__ */ jsxs85(
|
|
19610
|
-
Button,
|
|
19611
|
-
{
|
|
19612
|
-
size: "large",
|
|
19613
|
-
variant: activeRoute?.id === hyperRoute.id ? "default" : "outline",
|
|
19614
|
-
className: "justify-between",
|
|
19615
|
-
onClick: () => {
|
|
19616
|
-
const { setHyperRoute, setBridgeStep, setOriginChain, setDestinationChain } = useBridgeStore.getState();
|
|
19617
|
-
let originChainIndex = 0;
|
|
19618
|
-
let destinationChainIndex = 1;
|
|
19619
|
-
if (useBridgeStore.getState().bridgeSender === "embarkai-wallet") {
|
|
19620
|
-
const foundIdx = hyperRoute.chainPair.findIndex(
|
|
19621
|
-
(chain) => isOririnChainEmbarkSupported(chain.chainName)
|
|
19622
|
-
);
|
|
19623
|
-
if (foundIdx !== -1) {
|
|
19624
|
-
originChainIndex = foundIdx;
|
|
19625
|
-
destinationChainIndex = foundIdx === 0 ? 1 : 0;
|
|
19626
|
-
}
|
|
19627
|
-
}
|
|
19628
|
-
setOriginChain(hyperRoute.chainPair[originChainIndex].chainName);
|
|
19629
|
-
setDestinationChain(hyperRoute.chainPair[destinationChainIndex].chainName);
|
|
19630
|
-
setHyperRoute(hyperRoute.routeId);
|
|
19631
|
-
setBridgeStep("select");
|
|
19632
|
-
},
|
|
19633
|
-
children: [
|
|
19634
|
-
/* @__PURE__ */ jsxs85("div", { className: "flex items-center gap-[var(--ui-kit-gap)]", children: [
|
|
19635
|
-
/* @__PURE__ */ jsx93(RouteIcon, { className: "w-6 h-6" }),
|
|
19636
|
-
/* @__PURE__ */ jsx93("span", { children: hyperRoute.symbol.toUpperCase() })
|
|
19637
|
-
] }),
|
|
19638
|
-
/* @__PURE__ */ jsx93("div", { className: "flex items-center gap-[var(--ui-kit-gap)]", children: hyperRoute.chainPair.map((chain, chIdx) => /* @__PURE__ */ jsxs85(Fragment36, { children: [
|
|
19639
|
-
chIdx > 0 && /* @__PURE__ */ jsx93(ArrowLeftRightIcon, { className: "w-4 h-4" }),
|
|
19640
|
-
/* @__PURE__ */ jsx93(ResolveChainIcon, { chainName: chain.chainName, className: "w-4 h-4" })
|
|
19641
|
-
] }, `${hyperRoute.routeId}-icon-${chain.chainID}-${chIdx}`)) })
|
|
19642
|
-
]
|
|
19643
|
-
},
|
|
19644
|
-
`hyperlane-route-${hyperRoute.id}-${routeIdx}`
|
|
19645
|
-
);
|
|
19646
|
-
}) });
|
|
19647
|
-
}
|
|
19648
|
-
var init_TokenHyperlaneRouteSelector = __esm({
|
|
19649
|
-
"src/internal/components/SendMenu/hyperbridge/components/TokenHyperlaneRouteSelector.tsx"() {
|
|
19650
|
-
init_tokens();
|
|
19651
|
-
init_button();
|
|
19652
|
-
init_ResolveChainIcon();
|
|
19653
|
-
init_useBridgeStore();
|
|
19654
|
-
init_utils8();
|
|
19655
|
-
}
|
|
19656
|
-
});
|
|
19657
|
-
|
|
19658
|
-
// src/clients/bundler/getUserOperationByHash.ts
|
|
19659
|
-
import { bundlerRpc } from "@embarkai/core";
|
|
19660
|
-
import { getChainConfig as getChainConfig8 } from "@embarkai/core/read";
|
|
19661
|
-
async function getUserOperationByHash(userOpHash, chainId) {
|
|
19662
|
-
const targetChainId = chainId ?? requireActiveChainId();
|
|
19663
|
-
const chainConfig = getChainConfig8(targetChainId);
|
|
19664
|
-
if (!chainConfig) {
|
|
19665
|
-
throw new Error(`Chain ${targetChainId} is not supported`);
|
|
19666
|
-
}
|
|
19667
|
-
if (!chainConfig.bundlerUrl) {
|
|
19668
|
-
throw new Error(`Chain ${targetChainId} has no bundlerUrl configured`);
|
|
19669
|
-
}
|
|
19670
|
-
if (!userOpHash) {
|
|
19671
|
-
throw new Error("Operation hash is required");
|
|
19672
|
-
}
|
|
19673
|
-
try {
|
|
19674
|
-
const result = await bundlerRpc("eth_getUserOperationByHash", [userOpHash], chainConfig.bundlerUrl);
|
|
19675
|
-
if (!result) {
|
|
19676
|
-
return null;
|
|
19677
|
-
}
|
|
19678
|
-
console.log("[getUserOperationByHash] Receipt:", JSON.stringify(result, null, 2));
|
|
19679
|
-
return {
|
|
19680
|
-
entryPoint: result.entryPoint,
|
|
19681
|
-
userOperation: result.userOperation,
|
|
19682
|
-
transactionHash: result.transactionHash,
|
|
19683
|
-
blockNumber: result.blockNumber,
|
|
19684
|
-
blockHash: result.blockHash
|
|
19685
|
-
};
|
|
19686
|
-
} catch (error) {
|
|
19687
|
-
console.warn("[getUserOperationByHash] Failed to get user operation:", error);
|
|
19688
|
-
return null;
|
|
19689
|
-
}
|
|
19690
|
-
}
|
|
19691
|
-
var init_getUserOperationByHash = __esm({
|
|
19692
|
-
"src/clients/bundler/getUserOperationByHash.ts"() {
|
|
19693
|
-
init_SessionContext();
|
|
19694
|
-
}
|
|
19695
|
-
});
|
|
19696
|
-
|
|
19697
|
-
// src/clients/bundler/getUserOperationReceipt.ts
|
|
19698
|
-
import { bundlerRpc as bundlerRpc2 } from "@embarkai/core";
|
|
19699
|
-
import { getChainConfig as getChainConfig9 } from "@embarkai/core/read";
|
|
19700
|
-
async function getUserOperationReceipt(userOpHash, chainId) {
|
|
19701
|
-
const targetChainId = chainId ?? requireActiveChainId();
|
|
19702
|
-
const chainConfig = getChainConfig9(targetChainId);
|
|
19703
|
-
if (!chainConfig) {
|
|
19704
|
-
throw new Error(`Chain ${targetChainId} is not supported`);
|
|
19705
|
-
}
|
|
19706
|
-
if (!chainConfig.bundlerUrl) {
|
|
19707
|
-
throw new Error(`Chain ${targetChainId} has no bundlerUrl configured`);
|
|
19708
|
-
}
|
|
19709
|
-
if (!userOpHash) {
|
|
19710
|
-
throw new Error("Operation hash is required");
|
|
19711
|
-
}
|
|
19712
|
-
try {
|
|
19713
|
-
const result = await bundlerRpc2("eth_getUserOperationReceipt", [userOpHash], chainConfig.bundlerUrl);
|
|
19714
|
-
if (!result) {
|
|
19715
|
-
return null;
|
|
19716
|
-
}
|
|
19717
|
-
console.log("[getUserOperationReceipt] Receipt:", JSON.stringify(result, null, 2));
|
|
19718
|
-
return {
|
|
19719
|
-
userOpHash: result.userOpHash,
|
|
19720
|
-
entryPoint: result.entryPoint,
|
|
19721
|
-
sender: result.sender,
|
|
19722
|
-
nonce: result.nonce,
|
|
19723
|
-
success: result.success,
|
|
19724
|
-
actualGasCost: result.actualGasCost,
|
|
19725
|
-
actualGasUsed: result.actualGasUsed,
|
|
19726
|
-
paymaster: result.paymaster,
|
|
19727
|
-
receipt: result.receipt,
|
|
19728
|
-
logs: result.logs,
|
|
19729
|
-
reason: result.reason
|
|
19730
|
-
};
|
|
19731
|
-
} catch (error) {
|
|
19732
|
-
console.warn("[getUserOperationReceipt] Failed to get receipt:", error);
|
|
19733
|
-
return null;
|
|
19734
|
-
}
|
|
19735
|
-
}
|
|
19736
|
-
var init_getUserOperationReceipt = __esm({
|
|
19737
|
-
"src/clients/bundler/getUserOperationReceipt.ts"() {
|
|
19738
|
-
init_SessionContext();
|
|
19739
|
-
}
|
|
19740
|
-
});
|
|
19741
|
-
|
|
19742
|
-
// src/clients/bundler/waitForUserOperationReceipt.ts
|
|
19743
|
-
async function waitForUserOperationReceipt(userOpHash, options) {
|
|
19744
|
-
const pollIntervalMs = options?.pollIntervalMs ?? 1e3;
|
|
19745
|
-
const maxPollTimeMs = options?.maxPollTimeMs ?? 6e4;
|
|
19746
|
-
const targetChainId = options?.chainId ?? requireActiveChainId();
|
|
19747
|
-
const startTime = Date.now();
|
|
19748
|
-
while (true) {
|
|
19749
|
-
const elapsed = Date.now() - startTime;
|
|
19750
|
-
if (elapsed >= maxPollTimeMs) {
|
|
19751
|
-
throw new UserOperationTimeoutError(userOpHash, targetChainId, maxPollTimeMs);
|
|
19752
|
-
}
|
|
19753
|
-
const receipt = await getUserOperationReceipt(userOpHash, targetChainId);
|
|
19754
|
-
if (receipt) {
|
|
19755
|
-
return receipt;
|
|
19756
|
-
}
|
|
19757
|
-
await new Promise((resolve) => setTimeout(resolve, pollIntervalMs));
|
|
19758
|
-
}
|
|
19759
|
-
}
|
|
19760
|
-
var UserOperationTimeoutError;
|
|
19761
|
-
var init_waitForUserOperationReceipt = __esm({
|
|
19762
|
-
"src/clients/bundler/waitForUserOperationReceipt.ts"() {
|
|
19763
|
-
init_SessionContext();
|
|
19764
|
-
init_getUserOperationReceipt();
|
|
19765
|
-
UserOperationTimeoutError = class extends Error {
|
|
19766
|
-
constructor(userOpHash, chainId, timeoutMs) {
|
|
19767
|
-
super(`Timeout waiting for UserOperation receipt after ${timeoutMs}ms (hash: ${userOpHash}, chainId: ${chainId})`);
|
|
19768
|
-
this.name = "UserOperationTimeoutError";
|
|
19769
|
-
this.userOpHash = userOpHash;
|
|
19770
|
-
this.chainId = chainId;
|
|
19771
|
-
this.timeoutMs = timeoutMs;
|
|
19772
|
-
}
|
|
19773
|
-
};
|
|
19774
|
-
}
|
|
19775
|
-
});
|
|
19776
|
-
|
|
19777
|
-
// src/clients/bundler/index.ts
|
|
19778
|
-
var init_bundler = __esm({
|
|
19779
|
-
"src/clients/bundler/index.ts"() {
|
|
19780
|
-
init_getUserOperationByHash();
|
|
19781
|
-
init_getUserOperationReceipt();
|
|
19782
|
-
init_waitForUserOperationReceipt();
|
|
19783
|
-
}
|
|
19784
|
-
});
|
|
19785
|
-
|
|
19786
|
-
// src/clients/index.ts
|
|
19787
|
-
var init_clients2 = __esm({
|
|
19788
|
-
"src/clients/index.ts"() {
|
|
19789
|
-
init_bundler();
|
|
19790
|
-
}
|
|
19791
|
-
});
|
|
19792
|
-
|
|
19793
19603
|
// src/internal/components/SendMenu/hyperbridge/api.ts
|
|
19794
19604
|
function iframe3() {
|
|
19795
19605
|
const accessToken = jwtTokenManager2.getAccessToken();
|
|
@@ -19809,6 +19619,9 @@ async function estimateHyperlaneQuote(payload) {
|
|
|
19809
19619
|
accessToken,
|
|
19810
19620
|
payload
|
|
19811
19621
|
});
|
|
19622
|
+
if ("error" in quote && "message" in quote) {
|
|
19623
|
+
throw new Error(quote.message);
|
|
19624
|
+
}
|
|
19812
19625
|
return quote;
|
|
19813
19626
|
}
|
|
19814
19627
|
async function bridgeHyperlaneAsset(payload) {
|
|
@@ -19820,7 +19633,6 @@ async function bridgeHyperlaneAsset(payload) {
|
|
|
19820
19633
|
return response;
|
|
19821
19634
|
}
|
|
19822
19635
|
async function getHyperlaneBridgeHistory(payload) {
|
|
19823
|
-
const { page, pageSize } = payload || {};
|
|
19824
19636
|
const { iframeManager, accessToken } = iframe3();
|
|
19825
19637
|
const history = await iframeManager.sendMessage("HYPERLANE_TRANSACTIONS_HISTORY_QUERY", {
|
|
19826
19638
|
accessToken,
|
|
@@ -19828,25 +19640,33 @@ async function getHyperlaneBridgeHistory(payload) {
|
|
|
19828
19640
|
});
|
|
19829
19641
|
return history;
|
|
19830
19642
|
}
|
|
19831
|
-
var
|
|
19643
|
+
var patchInitiatedBridgeTxStatus, patchInitiatedBridgeTxOpHashes;
|
|
19832
19644
|
var init_api4 = __esm({
|
|
19833
19645
|
"src/internal/components/SendMenu/hyperbridge/api.ts"() {
|
|
19834
19646
|
init_auth();
|
|
19835
19647
|
init_iframe_manager();
|
|
19836
|
-
|
|
19648
|
+
patchInitiatedBridgeTxStatus = async (payload) => {
|
|
19649
|
+
const { iframeManager, accessToken } = iframe3();
|
|
19650
|
+
const response = await iframeManager.sendMessage("HYPERLANE_PATCH_TRANSACTION_STATUS_QUERY", {
|
|
19651
|
+
accessToken,
|
|
19652
|
+
payload
|
|
19653
|
+
});
|
|
19654
|
+
return response;
|
|
19655
|
+
};
|
|
19656
|
+
patchInitiatedBridgeTxOpHashes = async (payload) => {
|
|
19837
19657
|
const { iframeManager, accessToken } = iframe3();
|
|
19838
|
-
const
|
|
19658
|
+
const response = await iframeManager.sendMessage("HYPERLANE_PATCH_TRANSACTION_OP_HASHES_QUERY", {
|
|
19839
19659
|
accessToken,
|
|
19840
19660
|
payload
|
|
19841
19661
|
});
|
|
19842
|
-
return
|
|
19662
|
+
return response;
|
|
19843
19663
|
};
|
|
19844
19664
|
}
|
|
19845
19665
|
});
|
|
19846
19666
|
|
|
19847
19667
|
// src/internal/components/SendMenu/hyperbridge/lib/executeWarpTxs.ts
|
|
19848
19668
|
import { createPublicClient, http as http2 } from "viem";
|
|
19849
|
-
async function executeWarpTransactions(
|
|
19669
|
+
async function executeWarpTransactions(txs, walletClient) {
|
|
19850
19670
|
const originChain = useBridgeStore.getState().originChain;
|
|
19851
19671
|
const session = useSession.getState().session;
|
|
19852
19672
|
const bridgeSender = useBridgeStore.getState().bridgeSender;
|
|
@@ -19901,12 +19721,8 @@ async function executeWarpTransactions(bridgeTxId, txs, walletClient) {
|
|
|
19901
19721
|
}
|
|
19902
19722
|
}
|
|
19903
19723
|
if (errorsStack.length > 0) {
|
|
19904
|
-
console.error("[HYPERLANE] Errors occurred during transaction execution:"
|
|
19905
|
-
|
|
19906
|
-
txId: bridgeTxId,
|
|
19907
|
-
txStatus: "REJECTED",
|
|
19908
|
-
txHashes: hashes
|
|
19909
|
-
});
|
|
19724
|
+
console.error("[HYPERLANE] Errors occurred during transaction execution:");
|
|
19725
|
+
console.table(errorsStack.map((e) => e.message));
|
|
19910
19726
|
}
|
|
19911
19727
|
return hashes;
|
|
19912
19728
|
}
|
|
@@ -19914,41 +19730,30 @@ var init_executeWarpTxs = __esm({
|
|
|
19914
19730
|
"src/internal/components/SendMenu/hyperbridge/lib/executeWarpTxs.ts"() {
|
|
19915
19731
|
init_SessionContext();
|
|
19916
19732
|
init_account2();
|
|
19917
|
-
init_api4();
|
|
19918
19733
|
init_useBridgeStore();
|
|
19919
19734
|
init_chains();
|
|
19920
19735
|
}
|
|
19921
19736
|
});
|
|
19922
19737
|
|
|
19923
|
-
// src/internal/components/SendMenu/hyperbridge/
|
|
19924
|
-
import {
|
|
19925
|
-
|
|
19926
|
-
|
|
19927
|
-
|
|
19928
|
-
const page = useLayoutDataStore((st) => st.page);
|
|
19929
|
-
const flow = useFlowSelectorStore((st) => st.flow);
|
|
19930
|
-
const [currentPage, setCurrentPage] = useState26(1);
|
|
19931
|
-
const query = useQuery20({
|
|
19932
|
-
retry: false,
|
|
19933
|
-
enabled: !!address && page === "send" /* SEND */ && flow === "bridge",
|
|
19934
|
-
queryKey: [HYPERLANE_HISTORY_QUERY_KEY, address, currentPage],
|
|
19935
|
-
queryFn: async () => await getHyperlaneBridgeHistory({ page: currentPage, pageSize: TX_HISTORY_PAGE_SIZE })
|
|
19936
|
-
});
|
|
19937
|
-
return {
|
|
19938
|
-
...query,
|
|
19939
|
-
currentPage,
|
|
19940
|
-
setCurrentPage
|
|
19941
|
-
};
|
|
19738
|
+
// src/internal/components/SendMenu/hyperbridge/utils.ts
|
|
19739
|
+
import { formatUnits as formatUnits6 } from "viem";
|
|
19740
|
+
function isNftAsset2(asset) {
|
|
19741
|
+
if (!asset) return false;
|
|
19742
|
+
return asset.type === "erc721" || asset.type === "erc1155";
|
|
19942
19743
|
}
|
|
19943
|
-
|
|
19944
|
-
|
|
19945
|
-
|
|
19946
|
-
|
|
19947
|
-
|
|
19948
|
-
|
|
19949
|
-
|
|
19950
|
-
|
|
19951
|
-
|
|
19744
|
+
function getAssetBalance(asset) {
|
|
19745
|
+
if (!asset) return 0;
|
|
19746
|
+
if (isNftAsset2(asset)) return 1;
|
|
19747
|
+
return Number(formatUnits6(BigInt(asset.balance || "0"), asset.decimals || 18));
|
|
19748
|
+
}
|
|
19749
|
+
function isOririnChainEmbarkSupported(originChain) {
|
|
19750
|
+
const supportedChain = NETWORK_OPTIONS.map((c) => c.chainId);
|
|
19751
|
+
return supportedChain.includes(CHAINS_UI_META[originChain].chainID);
|
|
19752
|
+
}
|
|
19753
|
+
var init_utils8 = __esm({
|
|
19754
|
+
"src/internal/components/SendMenu/hyperbridge/utils.ts"() {
|
|
19755
|
+
init_networks3();
|
|
19756
|
+
init_chains();
|
|
19952
19757
|
}
|
|
19953
19758
|
});
|
|
19954
19759
|
|
|
@@ -19957,19 +19762,20 @@ import { create as create9 } from "zustand";
|
|
|
19957
19762
|
var useOperationHashesStore;
|
|
19958
19763
|
var init_useOperationHashesStore = __esm({
|
|
19959
19764
|
"src/internal/components/SendMenu/hyperbridge/hooks/useOperationHashesStore.ts"() {
|
|
19960
|
-
useOperationHashesStore = create9(
|
|
19765
|
+
useOperationHashesStore = create9((set) => ({
|
|
19766
|
+
hyperlaneDatabaseTx: null,
|
|
19961
19767
|
operationHashes: [],
|
|
19962
|
-
|
|
19768
|
+
setHyperlaneDatabaseTx: (hyperlaneDatabaseTx) => set({ hyperlaneDatabaseTx }),
|
|
19769
|
+
setOperationHashes: (operationHashes) => set({ operationHashes })
|
|
19963
19770
|
}));
|
|
19964
19771
|
}
|
|
19965
19772
|
});
|
|
19966
19773
|
|
|
19967
19774
|
// src/internal/components/SendMenu/hyperbridge/hooks/useBridge.ts
|
|
19968
|
-
import { useMutation as useMutation19
|
|
19775
|
+
import { useMutation as useMutation19 } from "@tanstack/react-query";
|
|
19969
19776
|
import { useCallback as useCallback22 } from "react";
|
|
19970
19777
|
import { useSwitchChain, useWalletClient } from "wagmi";
|
|
19971
19778
|
function useBridge() {
|
|
19972
|
-
const qc = useQueryClient23();
|
|
19973
19779
|
const { t } = useT();
|
|
19974
19780
|
const address = useSession((st) => st.address);
|
|
19975
19781
|
const { data: walletClient } = useWalletClient();
|
|
@@ -20066,8 +19872,7 @@ function useBridge() {
|
|
|
20066
19872
|
amount,
|
|
20067
19873
|
quote,
|
|
20068
19874
|
recipient,
|
|
20069
|
-
setBridgeTxStatus
|
|
20070
|
-
setLastTxHashes
|
|
19875
|
+
setBridgeTxStatus
|
|
20071
19876
|
} = useBridgeStore.getState();
|
|
20072
19877
|
const bridgeSender = useBridgeStore.getState().bridgeSenders.find((s) => s.type === useBridgeStore.getState().bridgeSender);
|
|
20073
19878
|
const embarkChainId = useSession.getState().activeChainId;
|
|
@@ -20078,7 +19883,9 @@ function useBridge() {
|
|
|
20078
19883
|
case "direct-wallet":
|
|
20079
19884
|
if (directWalletChainId !== CHAINS_UI_META[originChain].chainID) {
|
|
20080
19885
|
console.log("[HYPERLANE SDK] External wallet on wrong chain:", directWalletChainId, "; switching...");
|
|
20081
|
-
switchChainAsync({ chainId: CHAINS_UI_META[originChain].chainID }).
|
|
19886
|
+
await switchChainAsync({ chainId: CHAINS_UI_META[originChain].chainID }).then(() => {
|
|
19887
|
+
console.log("[HYPERLANE SDK] External wallet chain switched to:", CHAINS_UI_META[originChain].chainID);
|
|
19888
|
+
}).catch((err) => {
|
|
20082
19889
|
useFlowSelectorStore.getState().setError(
|
|
20083
19890
|
`Failed switch ${directWalletConnectorName} to ${CHAINS_UI_META[originChain].chainLabel}
|
|
20084
19891
|
${err?.message || "Failed to switch to the correct network"}`
|
|
@@ -20097,9 +19904,9 @@ function useBridge() {
|
|
|
20097
19904
|
useFlowSelectorStore.getState().setError(null);
|
|
20098
19905
|
useOperationHashesStore.getState().setOperationHashes([]);
|
|
20099
19906
|
setBridgeTxStatus(null);
|
|
20100
|
-
setLastTxHashes([]);
|
|
20101
19907
|
setBridgeTxStatus(t("passport:bridgeMenu.statuses.txPrepare"));
|
|
20102
19908
|
const { txs: warpTxs, hyperlaneDbTx } = await bridgeHyperlaneAsset({
|
|
19909
|
+
txSender: bridgeSender.type === "embarkai-wallet" ? "EMBARKAI_WALLET" : "EXTERNAL_WALLET",
|
|
20103
19910
|
warpRouteId: hyperRoute,
|
|
20104
19911
|
address: bridgeSender.address,
|
|
20105
19912
|
originChain,
|
|
@@ -20108,54 +19915,37 @@ function useBridge() {
|
|
|
20108
19915
|
amountToBridge: amount,
|
|
20109
19916
|
quote
|
|
20110
19917
|
});
|
|
19918
|
+
useOperationHashesStore.getState().setHyperlaneDatabaseTx(hyperlaneDbTx);
|
|
20111
19919
|
const operationHashes = await executeWarpTransactions(
|
|
20112
|
-
hyperlaneDbTx.id,
|
|
20113
19920
|
warpTxs,
|
|
20114
19921
|
bridgeSender.type === "direct-wallet" ? walletClient : null
|
|
20115
|
-
)
|
|
20116
|
-
|
|
20117
|
-
|
|
20118
|
-
|
|
20119
|
-
|
|
20120
|
-
|
|
20121
|
-
operationHashes.map(async (opHash) => {
|
|
20122
|
-
switch (bridgeSender.type) {
|
|
20123
|
-
case "embarkai-wallet":
|
|
20124
|
-
return await waitForUserOperationReceipt(opHash, {
|
|
20125
|
-
chainId: CHAINS_UI_META[originChain].chainID
|
|
20126
|
-
}).then((d) => d.receipt.transactionHash);
|
|
20127
|
-
case "direct-wallet":
|
|
20128
|
-
return null;
|
|
20129
|
-
}
|
|
20130
|
-
})
|
|
20131
|
-
).then(async (txHashes) => {
|
|
20132
|
-
const filteredTxHashes = txHashes.filter((hash) => hash !== null);
|
|
20133
|
-
console.log("[HYPERLANE SDK] txHashes received, patching...", hyperlaneDbTx.id, filteredTxHashes);
|
|
20134
|
-
setLastTxHashes(filteredTxHashes);
|
|
20135
|
-
await patchInitiatedBridgeTx({
|
|
20136
|
-
txId: hyperlaneDbTx.id,
|
|
20137
|
-
txStatus: "SENT",
|
|
20138
|
-
txHashes: filteredTxHashes
|
|
20139
|
-
});
|
|
20140
|
-
await qc.invalidateQueries({ queryKey: [HYPERLANE_HISTORY_QUERY_KEY, address, 1] });
|
|
20141
|
-
useFlowSelectorStore.getState().setRenderKey(`bridge-txHashes-patched-${Date.now()}`);
|
|
20142
|
-
}).catch((error) => {
|
|
20143
|
-
console.error("[HYPERLANE SDK] Error while waiting for transaction receipts & patching DB:", error?.message);
|
|
20144
|
-
});
|
|
19922
|
+
);
|
|
19923
|
+
await Promise.all([
|
|
19924
|
+
patchInitiatedBridgeTxOpHashes({ txId: hyperlaneDbTx.id, txOpHashes: operationHashes }),
|
|
19925
|
+
patchInitiatedBridgeTxStatus({ txId: hyperlaneDbTx.id, txStatus: "SENDING" })
|
|
19926
|
+
]);
|
|
19927
|
+
return operationHashes;
|
|
20145
19928
|
},
|
|
20146
|
-
onSuccess: () => {
|
|
19929
|
+
onSuccess: (operationHashes) => {
|
|
20147
19930
|
const { setBridgeStep, setBridgeTxStatus, destinationChain } = useBridgeStore.getState();
|
|
20148
19931
|
setBridgeTxStatus(
|
|
20149
19932
|
// @ts-expect-error i18n typing
|
|
20150
19933
|
t("passport:bridgeMenu.statuses.txSent", { destination: destinationChain })
|
|
20151
19934
|
);
|
|
19935
|
+
useOperationHashesStore.getState().setOperationHashes(operationHashes);
|
|
20152
19936
|
useLayoutStore.getState().setIsDialogForced(false);
|
|
20153
19937
|
useFlowSelectorStore.getState().setIsUiLocked(false);
|
|
20154
19938
|
setBridgeStep("success");
|
|
20155
19939
|
},
|
|
20156
19940
|
onError: (error) => {
|
|
20157
|
-
console.error("[HYPERLANE SDK] Bridge execution error", error);
|
|
20158
19941
|
const { setBridgeTxStatus } = useBridgeStore.getState();
|
|
19942
|
+
console.error("[HYPERLANE SDK] Bridge execution error", error);
|
|
19943
|
+
const hyperlaneDbTx = useOperationHashesStore.getState().hyperlaneDatabaseTx;
|
|
19944
|
+
if (hyperlaneDbTx?.id) {
|
|
19945
|
+
patchInitiatedBridgeTxStatus({ txId: hyperlaneDbTx.id, txStatus: "REJECTED" }).then(({ ok }) => {
|
|
19946
|
+
console.log("[HYPERLANE SDK] initiated tx patched as REJECTED: ", hyperlaneDbTx.id, "ok: ", ok);
|
|
19947
|
+
});
|
|
19948
|
+
}
|
|
20159
19949
|
setBridgeTxStatus(null);
|
|
20160
19950
|
useLayoutStore.getState().setIsDialogForced(false);
|
|
20161
19951
|
useFlowSelectorStore.getState().setIsUiLocked(false);
|
|
@@ -20171,7 +19961,6 @@ function useBridge() {
|
|
|
20171
19961
|
}
|
|
20172
19962
|
var init_useBridge = __esm({
|
|
20173
19963
|
"src/internal/components/SendMenu/hyperbridge/hooks/useBridge.ts"() {
|
|
20174
|
-
init_clients2();
|
|
20175
19964
|
init_SessionContext();
|
|
20176
19965
|
init_i18n();
|
|
20177
19966
|
init_useExternalWalletStore();
|
|
@@ -20182,13 +19971,12 @@ var init_useBridge = __esm({
|
|
|
20182
19971
|
init_executeWarpTxs();
|
|
20183
19972
|
init_useBridgeStore();
|
|
20184
19973
|
init_utils8();
|
|
20185
|
-
init_useHyperlaneHistory();
|
|
20186
19974
|
init_useOperationHashesStore();
|
|
20187
19975
|
}
|
|
20188
19976
|
});
|
|
20189
19977
|
|
|
20190
19978
|
// src/internal/components/SendMenu/hyperbridge/hooks/useHyperlaneRoutes.ts
|
|
20191
|
-
import { useQuery as
|
|
19979
|
+
import { useQuery as useQuery20 } from "@tanstack/react-query";
|
|
20192
19980
|
import { useEffect as useEffect36 } from "react";
|
|
20193
19981
|
function useHyperlaneRoutes() {
|
|
20194
19982
|
const address = useSession((st) => st.address);
|
|
@@ -20199,7 +19987,7 @@ function useHyperlaneRoutes() {
|
|
|
20199
19987
|
data: hyperlaneWarpRoutes = [],
|
|
20200
19988
|
isLoading: isLoadingWarpRoutes,
|
|
20201
19989
|
error: errorWarpRoutes
|
|
20202
|
-
} =
|
|
19990
|
+
} = useQuery20({
|
|
20203
19991
|
retry: false,
|
|
20204
19992
|
enabled: !!address && page === "send" /* SEND */ && flow === "bridge",
|
|
20205
19993
|
queryKey: [HYPERLANE_WARP_ROUTES_QUERY_KEY, address],
|
|
@@ -20252,7 +20040,7 @@ import { useEffect as useEffect37 } from "react";
|
|
|
20252
20040
|
function useMenuTitle(warpRoutes) {
|
|
20253
20041
|
const { t } = useT();
|
|
20254
20042
|
const bridgeStep = useBridgeStore((st) => st.bridgeStep);
|
|
20255
|
-
const hyperRouteMeta = useBridgeStore((st) => (warpRoutes || [])
|
|
20043
|
+
const hyperRouteMeta = useBridgeStore((st) => (warpRoutes || [])?.find((route) => route.routeId === st.hyperRoute)) || null;
|
|
20256
20044
|
useEffect37(() => {
|
|
20257
20045
|
const updateMenuTitle = useFlowSelectorStore.getState().setMenuTitle;
|
|
20258
20046
|
switch (true) {
|
|
@@ -20260,7 +20048,7 @@ function useMenuTitle(warpRoutes) {
|
|
|
20260
20048
|
updateMenuTitle(t("passport:bridgeMenu.labels.sender"));
|
|
20261
20049
|
break;
|
|
20262
20050
|
case bridgeStep === "select-token":
|
|
20263
|
-
updateMenuTitle(t("passport:bridgeMenu.labels.
|
|
20051
|
+
updateMenuTitle(t("passport:bridgeMenu.labels.selectTokenAndRoute"));
|
|
20264
20052
|
break;
|
|
20265
20053
|
case bridgeStep === "confirm":
|
|
20266
20054
|
updateMenuTitle(t("passport:bridgeMenu.labels.confirm"));
|
|
@@ -20289,11 +20077,24 @@ var init_useMenuTitle = __esm({
|
|
|
20289
20077
|
}
|
|
20290
20078
|
});
|
|
20291
20079
|
|
|
20080
|
+
// src/internal/components/SendMenu/hyperbridge/components/ResolveChainIcon.tsx
|
|
20081
|
+
import { jsx as jsx92 } from "react/jsx-runtime";
|
|
20082
|
+
function ResolveChainIcon(props) {
|
|
20083
|
+
const Icon2 = CHAINS_UI_META[props.chainName]?.Icon || TOKENS_ICONS.EMBARKAI;
|
|
20084
|
+
return /* @__PURE__ */ jsx92(Icon2, { className: props.className || "w-4 h-4" });
|
|
20085
|
+
}
|
|
20086
|
+
var init_ResolveChainIcon = __esm({
|
|
20087
|
+
"src/internal/components/SendMenu/hyperbridge/components/ResolveChainIcon.tsx"() {
|
|
20088
|
+
init_tokens();
|
|
20089
|
+
init_chains();
|
|
20090
|
+
}
|
|
20091
|
+
});
|
|
20092
|
+
|
|
20292
20093
|
// src/internal/assets/wallets/MetaMaskIcon.tsx
|
|
20293
|
-
import { jsx as
|
|
20094
|
+
import { jsx as jsx93, jsxs as jsxs85 } from "react/jsx-runtime";
|
|
20294
20095
|
function MetaMaskIcon(props) {
|
|
20295
20096
|
const { width = "24", height = "24", ...svgProps } = props;
|
|
20296
|
-
return /* @__PURE__ */
|
|
20097
|
+
return /* @__PURE__ */ jsxs85(
|
|
20297
20098
|
"svg",
|
|
20298
20099
|
{
|
|
20299
20100
|
...svgProps,
|
|
@@ -20307,49 +20108,49 @@ function MetaMaskIcon(props) {
|
|
|
20307
20108
|
viewBox: "0 0 142 136.878",
|
|
20308
20109
|
xmlSpace: "preserve",
|
|
20309
20110
|
children: [
|
|
20310
|
-
/* @__PURE__ */
|
|
20111
|
+
/* @__PURE__ */ jsx93(
|
|
20311
20112
|
"path",
|
|
20312
20113
|
{
|
|
20313
20114
|
fill: "#FF5C16",
|
|
20314
20115
|
d: "M132.682,132.192l-30.583-9.106l-23.063,13.787l-16.092-0.007l-23.077-13.78l-30.569,9.106L0,100.801\n l9.299-34.839L0,36.507L9.299,0l47.766,28.538h27.85L132.682,0l9.299,36.507l-9.299,29.455l9.299,34.839L132.682,132.192\n L132.682,132.192z"
|
|
20315
20116
|
}
|
|
20316
20117
|
),
|
|
20317
|
-
/* @__PURE__ */
|
|
20118
|
+
/* @__PURE__ */ jsx93(
|
|
20318
20119
|
"path",
|
|
20319
20120
|
{
|
|
20320
20121
|
fill: "#FF5C16",
|
|
20321
20122
|
d: "M9.305,0l47.767,28.558l-1.899,19.599L9.305,0z M39.875,100.814l21.017,16.01l-21.017,6.261\n C39.875,123.085,39.875,100.814,39.875,100.814z M59.212,74.345l-4.039-26.174L29.317,65.97l-0.014-0.007v0.013l0.08,18.321\n l10.485-9.951L59.212,74.345L59.212,74.345z M132.682,0L84.915,28.558l1.893,19.599L132.682,0z M102.113,100.814l-21.018,16.01\n l21.018,6.261V100.814z M112.678,65.975h0.007H112.678v-0.013l-0.006,0.007L86.815,48.171l-4.039,26.174h19.336l10.492,9.95\n C112.604,84.295,112.678,65.975,112.678,65.975z"
|
|
20322
20123
|
}
|
|
20323
20124
|
),
|
|
20324
|
-
/* @__PURE__ */
|
|
20125
|
+
/* @__PURE__ */ jsx93(
|
|
20325
20126
|
"path",
|
|
20326
20127
|
{
|
|
20327
20128
|
fill: "#E34807",
|
|
20328
20129
|
d: "M39.868,123.085l-30.569,9.106L0,100.814h39.868C39.868,100.814,39.868,123.085,39.868,123.085z\n M59.205,74.338l5.839,37.84l-8.093-21.04L29.37,84.295l10.491-9.956h19.344L59.205,74.338z M102.112,123.085l30.57,9.106\n l9.299-31.378h-39.869C102.112,100.814,102.112,123.085,102.112,123.085z M82.776,74.338l-5.839,37.84l8.092-21.04l27.583-6.843\n l-10.498-9.956H82.776V74.338z"
|
|
20329
20130
|
}
|
|
20330
20131
|
),
|
|
20331
|
-
/* @__PURE__ */
|
|
20132
|
+
/* @__PURE__ */ jsx93(
|
|
20332
20133
|
"path",
|
|
20333
20134
|
{
|
|
20334
20135
|
fill: "#FF8D5D",
|
|
20335
20136
|
d: "M0,100.801l9.299-34.839h19.997l0.073,18.327l27.584,6.843l8.092,21.039l-4.16,4.633l-21.017-16.01H0\n V100.801z M141.981,100.801l-9.299-34.839h-19.998l-0.073,18.327l-27.582,6.843l-8.093,21.039l4.159,4.633l21.018-16.01h39.868\n V100.801z M84.915,28.538h-27.85l-1.891,19.599l9.872,64.013h11.891l9.878-64.013L84.915,28.538z"
|
|
20336
20137
|
}
|
|
20337
20138
|
),
|
|
20338
|
-
/* @__PURE__ */
|
|
20139
|
+
/* @__PURE__ */ jsx93(
|
|
20339
20140
|
"path",
|
|
20340
20141
|
{
|
|
20341
20142
|
fill: "#661800",
|
|
20342
20143
|
d: "M9.299,0L0,36.507l9.299,29.455h19.997l25.87-17.804L9.299,0z M53.426,81.938h-9.059l-4.932,4.835\n l17.524,4.344l-3.533-9.186V81.938z M132.682,0l9.299,36.507l-9.299,29.455h-19.998L86.815,48.158L132.682,0z M88.568,81.938h9.072\n l4.932,4.841l-17.544,4.353l3.54-9.201V81.938z M79.029,124.385l2.067-7.567l-4.16-4.633h-11.9l-4.159,4.633l2.066,7.567"
|
|
20343
20144
|
}
|
|
20344
20145
|
),
|
|
20345
|
-
/* @__PURE__ */
|
|
20146
|
+
/* @__PURE__ */ jsx93(
|
|
20346
20147
|
"path",
|
|
20347
20148
|
{
|
|
20348
20149
|
fill: "#C0C4CD",
|
|
20349
20150
|
d: "M79.029,124.384v12.495H62.945v-12.495L79.029,124.384L79.029,124.384z"
|
|
20350
20151
|
}
|
|
20351
20152
|
),
|
|
20352
|
-
/* @__PURE__ */
|
|
20153
|
+
/* @__PURE__ */ jsx93(
|
|
20353
20154
|
"path",
|
|
20354
20155
|
{
|
|
20355
20156
|
fill: "#E7EBF6",
|
|
@@ -20365,13 +20166,16 @@ var init_MetaMaskIcon = __esm({
|
|
|
20365
20166
|
}
|
|
20366
20167
|
});
|
|
20367
20168
|
|
|
20368
|
-
// src/internal/assets/wallets/index.
|
|
20169
|
+
// src/internal/assets/wallets/index.tsx
|
|
20170
|
+
import { Wallet2Icon } from "lucide-react";
|
|
20171
|
+
import { jsx as jsx94 } from "react/jsx-runtime";
|
|
20369
20172
|
var WALLET_ICONS;
|
|
20370
20173
|
var init_wallets = __esm({
|
|
20371
|
-
"src/internal/assets/wallets/index.
|
|
20174
|
+
"src/internal/assets/wallets/index.tsx"() {
|
|
20372
20175
|
init_MetaMaskIcon();
|
|
20373
20176
|
WALLET_ICONS = {
|
|
20374
|
-
metamask: MetaMaskIcon
|
|
20177
|
+
metamask: MetaMaskIcon,
|
|
20178
|
+
default: (props) => /* @__PURE__ */ jsx94(Wallet2Icon, { ...props })
|
|
20375
20179
|
};
|
|
20376
20180
|
}
|
|
20377
20181
|
});
|
|
@@ -20388,7 +20192,7 @@ function useAvailableSenders() {
|
|
|
20388
20192
|
const sendersAccumulator = [
|
|
20389
20193
|
{
|
|
20390
20194
|
type: "embarkai-wallet",
|
|
20391
|
-
name: "
|
|
20195
|
+
name: "embarkAI",
|
|
20392
20196
|
chainId: activeChainId,
|
|
20393
20197
|
address,
|
|
20394
20198
|
Icon: TOKENS_ICONS["EMBARKAI"]
|
|
@@ -20401,7 +20205,7 @@ function useAvailableSenders() {
|
|
|
20401
20205
|
name: wProfile?.meta?.walletName || "External wallet",
|
|
20402
20206
|
chainId: null,
|
|
20403
20207
|
address: wProfile?.externalId,
|
|
20404
|
-
Icon: WALLET_ICONS[wProfile?.meta?.walletName?.toLowerCase()] ||
|
|
20208
|
+
Icon: WALLET_ICONS[wProfile?.meta?.walletName?.toLowerCase()] || WALLET_ICONS["default"]
|
|
20405
20209
|
});
|
|
20406
20210
|
});
|
|
20407
20211
|
}
|
|
@@ -20425,12 +20229,12 @@ var init_useAvailableSenders = __esm({
|
|
|
20425
20229
|
});
|
|
20426
20230
|
|
|
20427
20231
|
// src/internal/components/SendMenu/hyperbridge/hooks/useBridgeBalance.ts
|
|
20428
|
-
import { useQuery as
|
|
20232
|
+
import { useQuery as useQuery21, useQueryClient as useQueryClient23 } from "@tanstack/react-query";
|
|
20429
20233
|
import { useCallback as useCallback23, useEffect as useEffect39 } from "react";
|
|
20430
20234
|
import { createPublicClient as createPublicClient2, erc20Abi as erc20Abi2, formatUnits as formatUnits7, http as http3 } from "viem";
|
|
20431
20235
|
import { useBalance, useSwitchChain as useSwitchChain2 } from "wagmi";
|
|
20432
20236
|
function useBridgeBalance(hyperlaneWarpRoutes) {
|
|
20433
|
-
const qc =
|
|
20237
|
+
const qc = useQueryClient23();
|
|
20434
20238
|
const { t } = useT();
|
|
20435
20239
|
const address = useSession((st) => st.address);
|
|
20436
20240
|
const directWalletAddress = useExternalWalletStore((st) => st.externalAddress);
|
|
@@ -20440,12 +20244,12 @@ function useBridgeBalance(hyperlaneWarpRoutes) {
|
|
|
20440
20244
|
const bridgeSender = useBridgeStore((st) => st.bridgeSender);
|
|
20441
20245
|
const originChain = useBridgeStore((st) => st.originChain);
|
|
20442
20246
|
const isEmbarkSender = bridgeSender === "embarkai-wallet";
|
|
20443
|
-
const selectedWarpRoute = hyperlaneWarpRoutes.find((route) => {
|
|
20247
|
+
const selectedWarpRoute = hyperlaneWarpRoutes.length > 0 ? hyperlaneWarpRoutes.find((route) => {
|
|
20444
20248
|
const { routeId, chainPair } = route;
|
|
20445
20249
|
const chainPairNames = chainPair.map((c) => c.chainName);
|
|
20446
20250
|
return routeId === hyperRoute && chainPairNames.includes(useBridgeStore.getState().originChain) && chainPairNames.includes(useBridgeStore.getState().destinationChain);
|
|
20447
|
-
});
|
|
20448
|
-
const routeTokenAddress = selectedWarpRoute?.chainPair.find((c) => c.chainName === originChain)?.routeTokenAddress;
|
|
20251
|
+
}) : null;
|
|
20252
|
+
const routeTokenAddress = selectedWarpRoute?.chainPair.find((c) => c.chainName === originChain)?.routeTokenAddress || null;
|
|
20449
20253
|
const {
|
|
20450
20254
|
assets = [],
|
|
20451
20255
|
refreshBalances,
|
|
@@ -20456,8 +20260,8 @@ function useBridgeBalance(hyperlaneWarpRoutes) {
|
|
|
20456
20260
|
});
|
|
20457
20261
|
const embarkTokenBalanace = assets.find((a) => a.symbol === selectedWarpRoute?.symbol);
|
|
20458
20262
|
const originChainMeta = CHAINS_UI_META[originChain];
|
|
20459
|
-
const isSelectedTokenNative = selectedWarpRoute?.symbol?.toUpperCase() === originChainMeta
|
|
20460
|
-
const { data: externalBalanceData, isLoading: isExternalBalanceLoading } =
|
|
20263
|
+
const isSelectedTokenNative = selectedWarpRoute?.symbol?.toUpperCase() === originChainMeta?.chain?.nativeCurrency?.symbol?.toUpperCase();
|
|
20264
|
+
const { data: externalBalanceData, isLoading: isExternalBalanceLoading } = useQuery21({
|
|
20461
20265
|
enabled: bridgeSender === "direct-wallet" && !isSelectedTokenNative && !!directWalletAddress && !!routeTokenAddress && !!originChain,
|
|
20462
20266
|
retry: false,
|
|
20463
20267
|
queryKey: [EXTERNAL_WALLET_BRIDGING_BALANCE_QUERY, originChain, directWalletAddress, routeTokenAddress],
|
|
@@ -20573,9 +20377,9 @@ var init_useBridgeBalance = __esm({
|
|
|
20573
20377
|
});
|
|
20574
20378
|
|
|
20575
20379
|
// src/internal/components/SendMenu/hyperbridge/steps/SelectStep.tsx
|
|
20576
|
-
import { ArrowLeftRightIcon
|
|
20577
|
-
import { Fragment as
|
|
20578
|
-
import { Fragment as
|
|
20380
|
+
import { ArrowLeftRightIcon, ArrowRightLeftIcon, LoaderIcon as LoaderIcon10, Wallet2Icon as Wallet2Icon2, XIcon } from "lucide-react";
|
|
20381
|
+
import { Fragment as Fragment36 } from "react";
|
|
20382
|
+
import { Fragment as Fragment37, jsx as jsx95, jsxs as jsxs86 } from "react/jsx-runtime";
|
|
20579
20383
|
function SelectStep(props) {
|
|
20580
20384
|
const { swapChains, hyperlaneWarpRoutes, isLoadingWarpRoutes, handleQuoteEstimation } = props;
|
|
20581
20385
|
const { t } = useT();
|
|
@@ -20584,7 +20388,7 @@ function SelectStep(props) {
|
|
|
20584
20388
|
destinationChain,
|
|
20585
20389
|
hyperRoute,
|
|
20586
20390
|
amount,
|
|
20587
|
-
bridgeSenders,
|
|
20391
|
+
// bridgeSenders,
|
|
20588
20392
|
isQuoteEstimating,
|
|
20589
20393
|
recipient,
|
|
20590
20394
|
setBridgeStep,
|
|
@@ -20604,63 +20408,61 @@ function SelectStep(props) {
|
|
|
20604
20408
|
if (isLoadingWarpRoutes) {
|
|
20605
20409
|
return /* @__PURE__ */ jsx95("div", { className: "w-full flex items-center justify-center p-[var(--ui-kit-pd)]", children: /* @__PURE__ */ jsx95(LoaderIcon10, { className: "w-4 h-4 animate-spin" }) });
|
|
20606
20410
|
}
|
|
20607
|
-
return /* @__PURE__ */
|
|
20608
|
-
/* @__PURE__ */
|
|
20609
|
-
|
|
20610
|
-
|
|
20611
|
-
|
|
20612
|
-
|
|
20613
|
-
|
|
20614
|
-
|
|
20615
|
-
|
|
20616
|
-
|
|
20617
|
-
|
|
20618
|
-
|
|
20619
|
-
|
|
20620
|
-
|
|
20621
|
-
|
|
20622
|
-
|
|
20623
|
-
|
|
20624
|
-
|
|
20625
|
-
|
|
20626
|
-
|
|
20627
|
-
|
|
20628
|
-
|
|
20629
|
-
|
|
20630
|
-
children: [
|
|
20631
|
-
/* @__PURE__ */
|
|
20632
|
-
|
|
20633
|
-
|
|
20634
|
-
|
|
20635
|
-
selectedSender
|
|
20636
|
-
|
|
20637
|
-
|
|
20638
|
-
|
|
20639
|
-
|
|
20640
|
-
|
|
20641
|
-
|
|
20642
|
-
|
|
20643
|
-
] }),
|
|
20644
|
-
/* @__PURE__ */ jsxs87("div", { className: "flex items-center justify-between gap-[var(--ui-kit-gap)] text-[10px]", children: [
|
|
20411
|
+
return /* @__PURE__ */ jsxs86("div", { className: "w-full flex flex-col gap-[var(--ui-kit-gap)] items-center", children: [
|
|
20412
|
+
/* @__PURE__ */ jsxs86("div", { className: "w-full flex flex-col gap-[var(--ui-kit-gap)]", children: [
|
|
20413
|
+
/* @__PURE__ */ jsx95(
|
|
20414
|
+
"div",
|
|
20415
|
+
{
|
|
20416
|
+
className: cn(
|
|
20417
|
+
"flex items-center justify-between gap-[var(--ui-kit-gap)]",
|
|
20418
|
+
"text-[10px] text-[var(--ui-kit-fg-muted)] leading-4"
|
|
20419
|
+
),
|
|
20420
|
+
children: /* @__PURE__ */ jsx95("span", { className: "block text-[10px] text-[var(--ui-kit-fg-muted)]", children: t("passport:bridgeMenu.labels.sender") })
|
|
20421
|
+
}
|
|
20422
|
+
),
|
|
20423
|
+
/* @__PURE__ */ jsxs86(
|
|
20424
|
+
Button,
|
|
20425
|
+
{
|
|
20426
|
+
disabled: !hyperlaneWarpRoutes.length || isQuoteEstimating,
|
|
20427
|
+
variant: "default",
|
|
20428
|
+
className: "w-full justify-between",
|
|
20429
|
+
onClick: () => {
|
|
20430
|
+
useFlowSelectorStore.getState().setError(null);
|
|
20431
|
+
setBridgeStep("sender-selector");
|
|
20432
|
+
},
|
|
20433
|
+
children: [
|
|
20434
|
+
/* @__PURE__ */ jsxs86("div", { className: "flex items-center gap-[var(--ui-kit-gap)]", children: [
|
|
20435
|
+
selectedSender?.Icon && /* @__PURE__ */ jsx95(selectedSender.Icon, { className: "w-6 h-6" }),
|
|
20436
|
+
/* @__PURE__ */ jsx95("span", { children: selectedSender?.name || "N / A" })
|
|
20437
|
+
] }),
|
|
20438
|
+
selectedSender?.address && /* @__PURE__ */ jsxs86("span", { className: "block text-[10px] font-mono!", children: [
|
|
20439
|
+
selectedSender.address.slice(0, 6),
|
|
20440
|
+
"...",
|
|
20441
|
+
selectedSender.address.slice(-4)
|
|
20442
|
+
] })
|
|
20443
|
+
]
|
|
20444
|
+
}
|
|
20445
|
+
),
|
|
20446
|
+
/* @__PURE__ */ jsxs86("div", { className: "flex items-center justify-between gap-[var(--ui-kit-gap)] text-[10px]", children: [
|
|
20645
20447
|
/* @__PURE__ */ jsx95("span", { className: "text-[var(--ui-kit-fg-muted)]", children: t("passport:bridgeMenu.labels.selectToken") }),
|
|
20646
20448
|
/* @__PURE__ */ jsx95("span", { className: "w-4 h-4" }),
|
|
20647
|
-
/* @__PURE__ */
|
|
20648
|
-
|
|
20649
|
-
/* @__PURE__ */ jsxs87("span", { className: "text-[var(--ui-kit-fg-muted)]", children: [
|
|
20449
|
+
/* @__PURE__ */ jsxs86("span", { className: "flex items-center gap-[var(--ui-kit-gap)] leading-4", children: [
|
|
20450
|
+
/* @__PURE__ */ jsxs86("span", { className: "text-[var(--ui-kit-fg-muted)]", children: [
|
|
20650
20451
|
t("passport:common.balance"),
|
|
20651
20452
|
": "
|
|
20652
20453
|
] }),
|
|
20653
|
-
|
|
20454
|
+
isRouteTokenBalanceLoading && /* @__PURE__ */ jsx95(LoaderIcon10, { className: "w-4 h-4 animate-spin text-[var(--ui-kit-fg-muted)]" }),
|
|
20455
|
+
!isRouteTokenBalanceLoading && /* @__PURE__ */ jsxs86("span", { className: "font-semibold", children: [
|
|
20654
20456
|
formatPrice(Number(routeTokenBalance || 0)),
|
|
20655
20457
|
" ",
|
|
20656
20458
|
selectedWarpRoute?.symbol
|
|
20657
20459
|
] })
|
|
20658
20460
|
] })
|
|
20659
20461
|
] }),
|
|
20660
|
-
/* @__PURE__ */
|
|
20462
|
+
/* @__PURE__ */ jsxs86(
|
|
20661
20463
|
Button,
|
|
20662
20464
|
{
|
|
20663
|
-
disabled: isQuoteEstimating,
|
|
20465
|
+
disabled: !hyperlaneWarpRoutes.length || isQuoteEstimating,
|
|
20664
20466
|
variant: "default",
|
|
20665
20467
|
className: "w-full justify-between",
|
|
20666
20468
|
onClick: () => {
|
|
@@ -20668,18 +20470,29 @@ function SelectStep(props) {
|
|
|
20668
20470
|
setBridgeStep("select-token");
|
|
20669
20471
|
},
|
|
20670
20472
|
children: [
|
|
20671
|
-
selectedWarpRoute
|
|
20473
|
+
selectedWarpRoute ? /* @__PURE__ */ jsxs86("div", { className: "flex items-center gap-[var(--ui-kit-gap)]", children: [
|
|
20672
20474
|
/* @__PURE__ */ jsx95(SelectedWarpRoteIcon, { className: "w-6 h-6" }),
|
|
20673
20475
|
/* @__PURE__ */ jsx95("span", { children: selectedWarpRoute.symbol })
|
|
20476
|
+
] }) : /* @__PURE__ */ jsxs86("div", { className: "flex items-center gap-[var(--ui-kit-gap)]", children: [
|
|
20477
|
+
/* @__PURE__ */ jsx95(ArrowLeftRightIcon, { className: "w-6 h-6" }),
|
|
20478
|
+
/* @__PURE__ */ jsx95("span", { children: hyperlaneWarpRoutes.length ? t("passport:bridgeMenu.labels.selectToken") : t("passport:bridgeMenu.errors.noWarpRoutes") })
|
|
20674
20479
|
] }),
|
|
20675
|
-
|
|
20676
|
-
|
|
20677
|
-
|
|
20678
|
-
|
|
20480
|
+
!!selectedWarpRoute?.chainPair && /* @__PURE__ */ jsx95(
|
|
20481
|
+
Badge,
|
|
20482
|
+
{
|
|
20483
|
+
variant: "outline",
|
|
20484
|
+
size: "medium",
|
|
20485
|
+
className: "bg-[var(--ui-kit-bg)] flex items-center gap-[var(--ui-kit-gap)]",
|
|
20486
|
+
children: selectedWarpRoute.chainPair.map((chain, chIdx) => /* @__PURE__ */ jsxs86(Fragment36, { children: [
|
|
20487
|
+
chIdx > 0 && /* @__PURE__ */ jsx95(ArrowLeftRightIcon, { className: "w-4 h-4 " }),
|
|
20488
|
+
/* @__PURE__ */ jsx95(ResolveChainIcon, { chainName: chain.chainName, className: "w-4 h-4" })
|
|
20489
|
+
] }, `${selectedWarpRoute.id}-icon-${chain.chainID}-${chIdx}`))
|
|
20490
|
+
}
|
|
20491
|
+
)
|
|
20679
20492
|
]
|
|
20680
20493
|
}
|
|
20681
20494
|
),
|
|
20682
|
-
/* @__PURE__ */
|
|
20495
|
+
/* @__PURE__ */ jsxs86(
|
|
20683
20496
|
"div",
|
|
20684
20497
|
{
|
|
20685
20498
|
className: cn(
|
|
@@ -20692,27 +20505,27 @@ function SelectStep(props) {
|
|
|
20692
20505
|
]
|
|
20693
20506
|
}
|
|
20694
20507
|
),
|
|
20695
|
-
/* @__PURE__ */
|
|
20696
|
-
/* @__PURE__ */
|
|
20697
|
-
|
|
20698
|
-
|
|
20699
|
-
] }),
|
|
20508
|
+
/* @__PURE__ */ jsxs86("div", { className: "w-full flex items-center justify-center", children: [
|
|
20509
|
+
/* @__PURE__ */ jsx95(Badge, { variant: "outline", size: "large", className: "block flex-1 flex gap-[var(--ui-kit-gap)] justify-center", children: originChain ? /* @__PURE__ */ jsxs86(Fragment37, { children: [
|
|
20510
|
+
/* @__PURE__ */ jsx95(ResolveChainIcon, { chainName: originChain, className: "w-6 h-6" }),
|
|
20511
|
+
/* @__PURE__ */ jsx95("span", { className: "block max-w-[100px] truncate", children: CHAINS_UI_META[originChain]?.chainLabel })
|
|
20512
|
+
] }) : /* @__PURE__ */ jsx95("span", { className: "text-[var(--ui-kit-fg-muted)]", children: "N/A" }) }),
|
|
20700
20513
|
/* @__PURE__ */ jsx95(
|
|
20701
20514
|
Button,
|
|
20702
20515
|
{
|
|
20703
20516
|
size: "icon",
|
|
20704
|
-
disabled: isQuoteEstimating,
|
|
20517
|
+
disabled: !hyperlaneWarpRoutes.length || isQuoteEstimating,
|
|
20705
20518
|
variant: "ghost",
|
|
20706
20519
|
onClick: swapChains,
|
|
20707
20520
|
children: /* @__PURE__ */ jsx95(ArrowRightLeftIcon, { className: "w-4 h-4 " })
|
|
20708
20521
|
}
|
|
20709
20522
|
),
|
|
20710
|
-
/* @__PURE__ */
|
|
20711
|
-
|
|
20712
|
-
|
|
20713
|
-
] })
|
|
20523
|
+
/* @__PURE__ */ jsx95(Badge, { variant: "outline", size: "large", className: "block flex-1 flex gap-[var(--ui-kit-gap)] justify-center", children: destinationChain ? /* @__PURE__ */ jsxs86(Fragment37, { children: [
|
|
20524
|
+
/* @__PURE__ */ jsx95(ResolveChainIcon, { chainName: destinationChain, className: "w-6 h-6" }),
|
|
20525
|
+
/* @__PURE__ */ jsx95("span", { className: "block max-w-[100px] truncate", children: CHAINS_UI_META[destinationChain]?.chainLabel })
|
|
20526
|
+
] }) : /* @__PURE__ */ jsx95("span", { className: "text-[var(--ui-kit-fg-muted)]", children: "N/A" }) })
|
|
20714
20527
|
] }),
|
|
20715
|
-
/* @__PURE__ */
|
|
20528
|
+
/* @__PURE__ */ jsxs86(
|
|
20716
20529
|
"div",
|
|
20717
20530
|
{
|
|
20718
20531
|
className: cn(
|
|
@@ -20750,7 +20563,7 @@ function SelectStep(props) {
|
|
|
20750
20563
|
]
|
|
20751
20564
|
}
|
|
20752
20565
|
),
|
|
20753
|
-
/* @__PURE__ */
|
|
20566
|
+
/* @__PURE__ */ jsxs86(
|
|
20754
20567
|
"div",
|
|
20755
20568
|
{
|
|
20756
20569
|
className: cn(
|
|
@@ -20768,7 +20581,7 @@ function SelectStep(props) {
|
|
|
20768
20581
|
disabled: isQuoteEstimating || !originChain || !destinationChain || !hyperRoute,
|
|
20769
20582
|
placeholder: t("passport:bridgeMenu.labels.optionalRecipient") + " (ex: 0x...)",
|
|
20770
20583
|
value: recipient || "",
|
|
20771
|
-
Icon:
|
|
20584
|
+
Icon: Wallet2Icon2,
|
|
20772
20585
|
onChange: (e) => {
|
|
20773
20586
|
useFlowSelectorStore.getState().setError(null);
|
|
20774
20587
|
setRecipient(e.target.value);
|
|
@@ -20777,7 +20590,7 @@ function SelectStep(props) {
|
|
|
20777
20590
|
Button,
|
|
20778
20591
|
{
|
|
20779
20592
|
size: "icon",
|
|
20780
|
-
disabled: isQuoteEstimating,
|
|
20593
|
+
disabled: !hyperlaneWarpRoutes.length || isQuoteEstimating,
|
|
20781
20594
|
variant: "ghost",
|
|
20782
20595
|
onClick: (e) => {
|
|
20783
20596
|
e.stopPropagation();
|
|
@@ -20792,14 +20605,14 @@ function SelectStep(props) {
|
|
|
20792
20605
|
}
|
|
20793
20606
|
)
|
|
20794
20607
|
] }),
|
|
20795
|
-
!isError && /* @__PURE__ */
|
|
20608
|
+
!isError && /* @__PURE__ */ jsxs86(
|
|
20796
20609
|
Button,
|
|
20797
20610
|
{
|
|
20798
20611
|
size: "large",
|
|
20799
20612
|
variant: "default",
|
|
20800
20613
|
className: "w-full",
|
|
20801
20614
|
onClick: () => handleQuoteEstimation(amount),
|
|
20802
|
-
disabled: isQuoteEstimating || !selectedSender || !amount || !Number(amount) || !originChain || !destinationChain || !hyperRoute,
|
|
20615
|
+
disabled: isQuoteEstimating || !hyperlaneWarpRoutes.length || !selectedSender || !amount || !Number(amount) || !originChain || !destinationChain || !hyperRoute,
|
|
20803
20616
|
children: [
|
|
20804
20617
|
isQuoteEstimating && /* @__PURE__ */ jsx95(LoaderIcon10, { className: "h-4 w-4 animate-spin" }),
|
|
20805
20618
|
/* @__PURE__ */ jsx95("span", { children: t("passport:bridgeMenu.actions.estimateQuote") })
|
|
@@ -20858,11 +20671,11 @@ var init_checkbox = __esm({
|
|
|
20858
20671
|
|
|
20859
20672
|
// src/internal/components/SendMenu/hyperbridge/steps/ConfirmStep.tsx
|
|
20860
20673
|
import { LoaderIcon as LoaderIcon11 } from "lucide-react";
|
|
20861
|
-
import { useState as
|
|
20862
|
-
import { jsx as jsx97, jsxs as
|
|
20674
|
+
import { useState as useState26 } from "react";
|
|
20675
|
+
import { jsx as jsx97, jsxs as jsxs87 } from "react/jsx-runtime";
|
|
20863
20676
|
function ConfirmStep(props) {
|
|
20864
20677
|
const { isAssetBridging, bridgeAsset, hyperlaneWarpRoutes } = props;
|
|
20865
|
-
const [userConsent, setUserConsent] =
|
|
20678
|
+
const [userConsent, setUserConsent] = useState26(false);
|
|
20866
20679
|
const { t } = useT();
|
|
20867
20680
|
const address = useSession((st) => st.address);
|
|
20868
20681
|
const bridgeSender = useBridgeStore((st) => st.bridgeSenders.find((s) => s.type === st.bridgeSender));
|
|
@@ -20878,54 +20691,54 @@ function ConfirmStep(props) {
|
|
|
20878
20691
|
const chainPairNames = chainPair.map((c) => c.chainName);
|
|
20879
20692
|
return routeId === hyperRoute && chainPairNames.includes(originChain) && chainPairNames.includes(destinationChain);
|
|
20880
20693
|
});
|
|
20881
|
-
return /* @__PURE__ */
|
|
20882
|
-
/* @__PURE__ */
|
|
20883
|
-
/* @__PURE__ */
|
|
20694
|
+
return /* @__PURE__ */ jsxs87("div", { className: "flex flex-col gap-[var(--ui-kit-gap)] w-full", children: [
|
|
20695
|
+
/* @__PURE__ */ jsxs87(Highlight, { type: "info", className: "flex flex-col gap-[var(--ui-kit-gap)] w-full", children: [
|
|
20696
|
+
/* @__PURE__ */ jsxs87("p", { className: P_CN, children: [
|
|
20884
20697
|
/* @__PURE__ */ jsx97("span", { children: t("passport:common.asset") }),
|
|
20885
20698
|
/* @__PURE__ */ jsx97("strong", { children: selectedWarpRoute.symbol })
|
|
20886
20699
|
] }),
|
|
20887
|
-
/* @__PURE__ */
|
|
20700
|
+
/* @__PURE__ */ jsxs87("p", { className: P_CN, children: [
|
|
20888
20701
|
/* @__PURE__ */ jsx97("span", { children: t("passport:bridgeMenu.quote.sender") }),
|
|
20889
20702
|
/* @__PURE__ */ jsx97("strong", { children: bridgeSender.name + " (" + (bridgeSender?.address || "").slice(0, 6) + "..." + (bridgeSender?.address || "").slice(-4) + ")" })
|
|
20890
20703
|
] }),
|
|
20891
|
-
/* @__PURE__ */
|
|
20704
|
+
/* @__PURE__ */ jsxs87("p", { className: P_CN, children: [
|
|
20892
20705
|
/* @__PURE__ */ jsx97("span", { children: t("passport:bridgeMenu.labels.fromChain") }),
|
|
20893
20706
|
/* @__PURE__ */ jsx97("strong", { children: CHAINS_UI_META[originChain].chainLabel })
|
|
20894
20707
|
] }),
|
|
20895
|
-
/* @__PURE__ */
|
|
20708
|
+
/* @__PURE__ */ jsxs87("p", { className: P_CN, children: [
|
|
20896
20709
|
/* @__PURE__ */ jsx97("span", { children: t("passport:bridgeMenu.labels.toChain") }),
|
|
20897
20710
|
/* @__PURE__ */ jsx97("strong", { children: CHAINS_UI_META[destinationChain].chainLabel })
|
|
20898
20711
|
] }),
|
|
20899
|
-
/* @__PURE__ */
|
|
20712
|
+
/* @__PURE__ */ jsxs87("p", { className: P_CN, children: [
|
|
20900
20713
|
/* @__PURE__ */ jsx97("span", { children: t("passport:bridgeMenu.quote.amount") }),
|
|
20901
20714
|
/* @__PURE__ */ jsx97("strong", { children: formatPrice(Number(quote.amount)) })
|
|
20902
20715
|
] }),
|
|
20903
|
-
/* @__PURE__ */
|
|
20716
|
+
/* @__PURE__ */ jsxs87("p", { className: "flex-1 flex items-center justify-between gap-[var(--ui-kit-gap)]", children: [
|
|
20904
20717
|
/* @__PURE__ */ jsx97("span", { children: t("passport:bridgeMenu.quote.igpFee") }),
|
|
20905
|
-
/* @__PURE__ */
|
|
20718
|
+
/* @__PURE__ */ jsxs87("strong", { children: [
|
|
20906
20719
|
/* @__PURE__ */ jsx97("span", { children: formatPrice(Number(quote.igpFee)) }),
|
|
20907
|
-
/* @__PURE__ */
|
|
20720
|
+
/* @__PURE__ */ jsxs87("span", { children: [
|
|
20908
20721
|
" ",
|
|
20909
20722
|
quote.igpSymbol
|
|
20910
20723
|
] })
|
|
20911
20724
|
] })
|
|
20912
20725
|
] }),
|
|
20913
|
-
/* @__PURE__ */
|
|
20726
|
+
/* @__PURE__ */ jsxs87("p", { className: "flex-1 flex items-center justify-between gap-[var(--ui-kit-gap)]", children: [
|
|
20914
20727
|
/* @__PURE__ */ jsx97("span", { children: t("passport:bridgeMenu.quote.localFee") }),
|
|
20915
|
-
/* @__PURE__ */
|
|
20728
|
+
/* @__PURE__ */ jsxs87("strong", { children: [
|
|
20916
20729
|
/* @__PURE__ */ jsx97("span", { children: formatPrice(Number(quote.localFee)) }),
|
|
20917
|
-
/* @__PURE__ */
|
|
20730
|
+
/* @__PURE__ */ jsxs87("span", { children: [
|
|
20918
20731
|
" ",
|
|
20919
20732
|
quote.localSymbol
|
|
20920
20733
|
] })
|
|
20921
20734
|
] })
|
|
20922
20735
|
] }),
|
|
20923
|
-
quote.tokenFee && /* @__PURE__ */
|
|
20736
|
+
quote.tokenFee && /* @__PURE__ */ jsxs87("p", { className: P_CN, children: [
|
|
20924
20737
|
/* @__PURE__ */ jsx97("span", { children: t("passport:bridgeMenu.quote.tokenFee") }),
|
|
20925
20738
|
/* @__PURE__ */ jsx97("strong", { children: formatPrice(Number(quote.tokenFee)) })
|
|
20926
20739
|
] })
|
|
20927
20740
|
] }),
|
|
20928
|
-
/* @__PURE__ */
|
|
20741
|
+
/* @__PURE__ */ jsxs87(Highlight, { type: "warning", className: "flex flex-col gap-[var(--ui-kit-gap)] w-full", children: [
|
|
20929
20742
|
/* @__PURE__ */ jsx97("strong", { className: "text-xs", children: t("passport:bridgeMenu.quote.recipient") }),
|
|
20930
20743
|
/* @__PURE__ */ jsx97(
|
|
20931
20744
|
"span",
|
|
@@ -20945,7 +20758,7 @@ function ConfirmStep(props) {
|
|
|
20945
20758
|
asset: selectedWarpRoute.symbol
|
|
20946
20759
|
}) }),
|
|
20947
20760
|
/* @__PURE__ */ jsx97("strong", { className: "text-xs text-[var(--ui-kit-bg-error)]", children: t("passport:bridgeMenu.consent.lostFunds") }),
|
|
20948
|
-
/* @__PURE__ */
|
|
20761
|
+
/* @__PURE__ */ jsxs87("label", { className: "flex items-center gap-[var(--ui-kit-gap)] text-xs cursor-pointer", children: [
|
|
20949
20762
|
/* @__PURE__ */ jsx97(Checkbox, { checked: userConsent, onCheckedChange: () => setUserConsent((prev) => !prev) }),
|
|
20950
20763
|
/* @__PURE__ */ jsx97("strong", { children: t("passport:bridgeMenu.actions.confirmBridge", {
|
|
20951
20764
|
amount: quote.amount,
|
|
@@ -20954,7 +20767,7 @@ function ConfirmStep(props) {
|
|
|
20954
20767
|
}) })
|
|
20955
20768
|
] })
|
|
20956
20769
|
] }),
|
|
20957
|
-
!isError && /* @__PURE__ */
|
|
20770
|
+
!isError && /* @__PURE__ */ jsxs87(
|
|
20958
20771
|
Button,
|
|
20959
20772
|
{
|
|
20960
20773
|
size: "large",
|
|
@@ -20988,42 +20801,58 @@ var init_ConfirmStep = __esm({
|
|
|
20988
20801
|
});
|
|
20989
20802
|
|
|
20990
20803
|
// src/internal/components/SendMenu/hyperbridge/steps/SuccessStep.tsx
|
|
20991
|
-
import {
|
|
20804
|
+
import { jsx as jsx98, jsxs as jsxs88 } from "react/jsx-runtime";
|
|
20992
20805
|
function SuccessStep() {
|
|
20993
20806
|
const { t } = useT();
|
|
20994
20807
|
const address = useSession((st) => st.address);
|
|
20808
|
+
const operationHashes = useOperationHashesStore((st) => st.operationHashes);
|
|
20809
|
+
const bridgeSender = useBridgeStore((st) => st.bridgeSenders.find((s) => s.type === st.bridgeSender));
|
|
20995
20810
|
const amount = useBridgeStore((st) => st.amount);
|
|
20996
20811
|
const originChain = useBridgeStore((st) => st.originChain);
|
|
20997
20812
|
const destinationChain = useBridgeStore((st) => st.destinationChain);
|
|
20998
20813
|
const recipient = useBridgeStore((st) => st.recipient);
|
|
20999
|
-
const lastTxHashes = useBridgeStore((st) => st.lastTxHashes);
|
|
21000
20814
|
const bridgeTxStatus = useBridgeStore((st) => st.bridgeTxStatus);
|
|
21001
20815
|
const recipientAddress = (recipient || address).slice(0, 6) + "..." + (recipient || address).slice(-4);
|
|
21002
|
-
return /* @__PURE__ */
|
|
21003
|
-
/* @__PURE__ */
|
|
21004
|
-
/* @__PURE__ */
|
|
21005
|
-
|
|
21006
|
-
|
|
21007
|
-
|
|
21008
|
-
/* @__PURE__ */
|
|
21009
|
-
|
|
21010
|
-
|
|
21011
|
-
|
|
21012
|
-
/* @__PURE__ */
|
|
21013
|
-
|
|
21014
|
-
|
|
21015
|
-
|
|
21016
|
-
/* @__PURE__ */
|
|
21017
|
-
|
|
21018
|
-
|
|
21019
|
-
|
|
21020
|
-
/* @__PURE__ */
|
|
21021
|
-
|
|
21022
|
-
/* @__PURE__ */ jsx98("strong", { children: formatPrice(Number(amount)) })
|
|
21023
|
-
] }),
|
|
21024
|
-
/* @__PURE__ */ jsx98("p", { className: "mt-[var(--ui-kit-gap)]", children: t("passport:bridgeMenu.labels.bridgeTransactions") + ":" }),
|
|
21025
|
-
lastTxHashes.map((hash) => /* @__PURE__ */ jsx98("p", { className: "truncate max-w-full font-mono! text-sm", children: hash }, hash))
|
|
20816
|
+
return /* @__PURE__ */ jsxs88(Highlight, { className: "flex flex-col gap-1 text-xs leading-4", children: [
|
|
20817
|
+
/* @__PURE__ */ jsxs88("p", { className: P_CN2, children: [
|
|
20818
|
+
/* @__PURE__ */ jsx98("span", { children: t("passport:bridgeMenu.quote.status") }),
|
|
20819
|
+
/* @__PURE__ */ jsx98("strong", { children: bridgeTxStatus })
|
|
20820
|
+
] }),
|
|
20821
|
+
/* @__PURE__ */ jsxs88("p", { className: P_CN2, children: [
|
|
20822
|
+
/* @__PURE__ */ jsx98("span", { children: t("passport:bridgeMenu.quote.sender") }),
|
|
20823
|
+
/* @__PURE__ */ jsx98("strong", { children: bridgeSender.name + " (" + (bridgeSender?.address || "").slice(0, 6) + "..." + (bridgeSender?.address || "").slice(-4) + ")" })
|
|
20824
|
+
] }),
|
|
20825
|
+
/* @__PURE__ */ jsxs88("p", { className: P_CN2, children: [
|
|
20826
|
+
/* @__PURE__ */ jsx98("span", { children: t("passport:bridgeMenu.quote.recipient") }),
|
|
20827
|
+
/* @__PURE__ */ jsx98("strong", { children: recipientAddress })
|
|
20828
|
+
] }),
|
|
20829
|
+
/* @__PURE__ */ jsxs88("p", { className: P_CN2, children: [
|
|
20830
|
+
/* @__PURE__ */ jsx98("span", { children: t("passport:bridgeMenu.labels.fromChain") }),
|
|
20831
|
+
/* @__PURE__ */ jsx98("strong", { children: CHAINS_UI_META[originChain].chainLabel })
|
|
20832
|
+
] }),
|
|
20833
|
+
/* @__PURE__ */ jsxs88("p", { className: P_CN2, children: [
|
|
20834
|
+
/* @__PURE__ */ jsx98("span", { children: t("passport:bridgeMenu.labels.toChain") }),
|
|
20835
|
+
/* @__PURE__ */ jsx98("strong", { children: CHAINS_UI_META[destinationChain].chainLabel })
|
|
21026
20836
|
] }),
|
|
20837
|
+
/* @__PURE__ */ jsxs88("p", { className: P_CN2, children: [
|
|
20838
|
+
/* @__PURE__ */ jsx98("span", { children: t("passport:bridgeMenu.quote.amount") }),
|
|
20839
|
+
/* @__PURE__ */ jsx98("strong", { children: formatPrice(Number(amount)) })
|
|
20840
|
+
] }),
|
|
20841
|
+
operationHashes.length && /* @__PURE__ */ jsxs88(
|
|
20842
|
+
"div",
|
|
20843
|
+
{
|
|
20844
|
+
className: cn(
|
|
20845
|
+
"w-full",
|
|
20846
|
+
"flex flex-col items-end",
|
|
20847
|
+
"p-[var(--ui-kit-pd)] bg-[var(--ui-kit-bg)]",
|
|
20848
|
+
"rounded-[var(--ui-kit-el-bdrs)]"
|
|
20849
|
+
),
|
|
20850
|
+
children: [
|
|
20851
|
+
/* @__PURE__ */ jsx98("p", { className: "w-full text-left", children: t("passport:bridgeMenu.labels.bridgeTransactions") + ":" }),
|
|
20852
|
+
operationHashes.map((hash) => /* @__PURE__ */ jsx98("p", { className: "flex-none font-mono! text-xs leading-5 w-fit", children: hash.slice(0, 8) + "..." + hash.slice(-8) }, hash))
|
|
20853
|
+
]
|
|
20854
|
+
}
|
|
20855
|
+
),
|
|
21027
20856
|
/* @__PURE__ */ jsx98(
|
|
21028
20857
|
Button,
|
|
21029
20858
|
{
|
|
@@ -21032,8 +20861,11 @@ function SuccessStep() {
|
|
|
21032
20861
|
className: "w-full",
|
|
21033
20862
|
onClick: () => {
|
|
21034
20863
|
useFlowSelectorStore.getState().setError(null);
|
|
20864
|
+
useOperationHashesStore.getState().setOperationHashes([]);
|
|
20865
|
+
useOperationHashesStore.getState().setHyperlaneDatabaseTx(null);
|
|
21035
20866
|
useBridgeStore.getState().setBridgeTxStatus(null);
|
|
21036
|
-
useBridgeStore.getState().
|
|
20867
|
+
useBridgeStore.getState().setQuote(null);
|
|
20868
|
+
useBridgeStore.getState().setAmount("");
|
|
21037
20869
|
useBridgeStore.getState().setBridgeStep("select");
|
|
21038
20870
|
},
|
|
21039
20871
|
children: /* @__PURE__ */ jsx98("span", { children: `${t("passport:common.continue")}`.toUpperCase() })
|
|
@@ -21044,77 +20876,115 @@ function SuccessStep() {
|
|
|
21044
20876
|
var P_CN2;
|
|
21045
20877
|
var init_SuccessStep = __esm({
|
|
21046
20878
|
"src/internal/components/SendMenu/hyperbridge/steps/SuccessStep.tsx"() {
|
|
20879
|
+
init_utils2();
|
|
21047
20880
|
init_SessionContext();
|
|
21048
20881
|
init_i18n();
|
|
21049
20882
|
init_priceFormatter();
|
|
21050
20883
|
init_button();
|
|
21051
20884
|
init_highlight();
|
|
21052
20885
|
init_useFlowSelector();
|
|
20886
|
+
init_useOperationHashesStore();
|
|
21053
20887
|
init_chains();
|
|
21054
20888
|
init_useBridgeStore();
|
|
21055
|
-
P_CN2 = "w-full flex-1 flex items-center justify-between gap-[var(--ui-kit-gap)]";
|
|
20889
|
+
P_CN2 = "w-full flex-1 flex items-center justify-between gap-[var(--ui-kit-gap)] leading-4";
|
|
20890
|
+
}
|
|
20891
|
+
});
|
|
20892
|
+
|
|
20893
|
+
// src/internal/components/SendMenu/hyperbridge/hooks/useHyperlaneHistory.ts
|
|
20894
|
+
import { useQuery as useQuery22 } from "@tanstack/react-query";
|
|
20895
|
+
import { useState as useState27 } from "react";
|
|
20896
|
+
function useHyperlaneHistory() {
|
|
20897
|
+
const address = useSession((st) => st.address);
|
|
20898
|
+
const page = useLayoutDataStore((st) => st.page);
|
|
20899
|
+
const flow = useFlowSelectorStore((st) => st.flow);
|
|
20900
|
+
const bridgeStep = useBridgeStore((st) => st.bridgeStep);
|
|
20901
|
+
const [currentPage, setCurrentPage] = useState27(1);
|
|
20902
|
+
const query = useQuery22({
|
|
20903
|
+
retry: false,
|
|
20904
|
+
refetchInterval: TX_HISTORY_POLLING_INTERVAL,
|
|
20905
|
+
enabled: bridgeStep === "tx-history" && !!address && page === "send" /* SEND */ && flow === "bridge",
|
|
20906
|
+
queryKey: [HYPERLANE_HISTORY_QUERY_KEY, address, currentPage],
|
|
20907
|
+
queryFn: async () => await getHyperlaneBridgeHistory({ page: currentPage, pageSize: TX_HISTORY_PAGE_SIZE })
|
|
20908
|
+
});
|
|
20909
|
+
return {
|
|
20910
|
+
...query,
|
|
20911
|
+
currentPage,
|
|
20912
|
+
setCurrentPage
|
|
20913
|
+
};
|
|
20914
|
+
}
|
|
20915
|
+
var HYPERLANE_HISTORY_QUERY_KEY, TX_HISTORY_PAGE_SIZE, TX_HISTORY_POLLING_INTERVAL;
|
|
20916
|
+
var init_useHyperlaneHistory = __esm({
|
|
20917
|
+
"src/internal/components/SendMenu/hyperbridge/hooks/useHyperlaneHistory.ts"() {
|
|
20918
|
+
init_SessionContext();
|
|
20919
|
+
init_useLayoutDataStore();
|
|
20920
|
+
init_useFlowSelector();
|
|
20921
|
+
init_api4();
|
|
20922
|
+
init_useBridgeStore();
|
|
20923
|
+
HYPERLANE_HISTORY_QUERY_KEY = "hyperlane-tx-history-query-key";
|
|
20924
|
+
TX_HISTORY_PAGE_SIZE = 3;
|
|
20925
|
+
TX_HISTORY_POLLING_INTERVAL = 1e3 * 45;
|
|
21056
20926
|
}
|
|
21057
20927
|
});
|
|
21058
20928
|
|
|
21059
20929
|
// src/internal/components/SendMenu/hyperbridge/steps/HistoryStep.tsx
|
|
21060
|
-
import { useQueryClient as
|
|
20930
|
+
import { useQueryClient as useQueryClient24 } from "@tanstack/react-query";
|
|
21061
20931
|
import dayjs7 from "dayjs";
|
|
21062
|
-
import { ArrowRightIcon, ExternalLinkIcon as ExternalLinkIcon2 } from "lucide-react";
|
|
21063
|
-
import { jsx as jsx99, jsxs as
|
|
20932
|
+
import { ArrowRightIcon, ExternalLinkIcon as ExternalLinkIcon2, LoaderIcon as LoaderIcon12 } from "lucide-react";
|
|
20933
|
+
import { jsx as jsx99, jsxs as jsxs89 } from "react/jsx-runtime";
|
|
21064
20934
|
function HistoryDetailsStep() {
|
|
21065
20935
|
const { t } = useT();
|
|
21066
20936
|
const item = useBridgeStore((st) => st.bridgeHistoryItem);
|
|
21067
20937
|
const destinationAdress = item.recipient || item.address;
|
|
21068
|
-
return /* @__PURE__ */
|
|
21069
|
-
/* @__PURE__ */
|
|
20938
|
+
return /* @__PURE__ */ jsxs89(Highlight, { type: "info", className: "flex flex-col gap-[var(--ui-kit-gap)] w-full", children: [
|
|
20939
|
+
/* @__PURE__ */ jsxs89("p", { className: P_CN3, children: [
|
|
21070
20940
|
/* @__PURE__ */ jsx99("span", { children: t("passport:bridgeMenu.quote.sender") }),
|
|
21071
|
-
/* @__PURE__ */
|
|
20941
|
+
/* @__PURE__ */ jsxs89("strong", { children: [
|
|
21072
20942
|
item.address.slice(0, 6),
|
|
21073
20943
|
"...",
|
|
21074
20944
|
item.address.slice(-4)
|
|
21075
20945
|
] })
|
|
21076
20946
|
] }),
|
|
21077
|
-
/* @__PURE__ */
|
|
20947
|
+
/* @__PURE__ */ jsxs89("p", { className: P_CN3, children: [
|
|
21078
20948
|
/* @__PURE__ */ jsx99("span", { children: t("passport:bridgeMenu.quote.recipient") }),
|
|
21079
|
-
/* @__PURE__ */
|
|
20949
|
+
/* @__PURE__ */ jsxs89("strong", { children: [
|
|
21080
20950
|
destinationAdress.slice(0, 6),
|
|
21081
20951
|
"...",
|
|
21082
20952
|
destinationAdress.slice(-4)
|
|
21083
20953
|
] })
|
|
21084
20954
|
] }),
|
|
21085
|
-
/* @__PURE__ */
|
|
20955
|
+
/* @__PURE__ */ jsxs89("p", { className: P_CN3, children: [
|
|
21086
20956
|
/* @__PURE__ */ jsx99("span", { children: t("passport:bridgeMenu.labels.fromChain") }),
|
|
21087
20957
|
/* @__PURE__ */ jsx99("strong", { children: CHAINS_UI_META[item.originChain].chainLabel })
|
|
21088
20958
|
] }),
|
|
21089
|
-
/* @__PURE__ */
|
|
20959
|
+
/* @__PURE__ */ jsxs89("p", { className: P_CN3, children: [
|
|
21090
20960
|
/* @__PURE__ */ jsx99("span", { children: t("passport:bridgeMenu.labels.toChain") }),
|
|
21091
20961
|
/* @__PURE__ */ jsx99("strong", { children: CHAINS_UI_META[item.destinationChain].chainLabel })
|
|
21092
20962
|
] }),
|
|
21093
|
-
/* @__PURE__ */
|
|
20963
|
+
/* @__PURE__ */ jsxs89("p", { className: P_CN3, children: [
|
|
21094
20964
|
/* @__PURE__ */ jsx99("span", { children: t("passport:bridgeMenu.quote.amount") }),
|
|
21095
20965
|
/* @__PURE__ */ jsx99("strong", { children: formatPrice(Number(item.quote.amount)) })
|
|
21096
20966
|
] }),
|
|
21097
|
-
/* @__PURE__ */
|
|
20967
|
+
/* @__PURE__ */ jsxs89("p", { className: "flex-1 flex items-center justify-between gap-[var(--ui-kit-gap)]", children: [
|
|
21098
20968
|
/* @__PURE__ */ jsx99("span", { children: t("passport:bridgeMenu.quote.igpFee") }),
|
|
21099
|
-
/* @__PURE__ */
|
|
20969
|
+
/* @__PURE__ */ jsxs89("strong", { children: [
|
|
21100
20970
|
/* @__PURE__ */ jsx99("span", { children: formatPrice(Number(item.quote.igpFee)) }),
|
|
21101
|
-
/* @__PURE__ */
|
|
20971
|
+
/* @__PURE__ */ jsxs89("span", { children: [
|
|
21102
20972
|
" ",
|
|
21103
20973
|
item.quote.igpSymbol
|
|
21104
20974
|
] })
|
|
21105
20975
|
] })
|
|
21106
20976
|
] }),
|
|
21107
|
-
/* @__PURE__ */
|
|
20977
|
+
/* @__PURE__ */ jsxs89("p", { className: "flex-1 flex items-center justify-between gap-[var(--ui-kit-gap)]", children: [
|
|
21108
20978
|
/* @__PURE__ */ jsx99("span", { children: t("passport:bridgeMenu.quote.localFee") }),
|
|
21109
|
-
/* @__PURE__ */
|
|
20979
|
+
/* @__PURE__ */ jsxs89("strong", { children: [
|
|
21110
20980
|
/* @__PURE__ */ jsx99("span", { children: formatPrice(Number(item.quote.localFee)) }),
|
|
21111
|
-
/* @__PURE__ */
|
|
20981
|
+
/* @__PURE__ */ jsxs89("span", { children: [
|
|
21112
20982
|
" ",
|
|
21113
20983
|
item.quote.localSymbol
|
|
21114
20984
|
] })
|
|
21115
20985
|
] })
|
|
21116
20986
|
] }),
|
|
21117
|
-
item.quote.tokenFee && /* @__PURE__ */
|
|
20987
|
+
item.quote.tokenFee && /* @__PURE__ */ jsxs89("p", { className: P_CN3, children: [
|
|
21118
20988
|
/* @__PURE__ */ jsx99("span", { children: t("passport:bridgeMenu.quote.tokenFee") }),
|
|
21119
20989
|
/* @__PURE__ */ jsx99("strong", { children: formatPrice(Number(item.quote.tokenFee)) })
|
|
21120
20990
|
] }),
|
|
@@ -21125,7 +20995,7 @@ function HistoryDetailsStep() {
|
|
|
21125
20995
|
target: "_blank",
|
|
21126
20996
|
rel: "noopener noreferrer",
|
|
21127
20997
|
className: "w-full block",
|
|
21128
|
-
children: /* @__PURE__ */
|
|
20998
|
+
children: /* @__PURE__ */ jsxs89(Badge, { variant: "outline", size: "default", className: "block flex-1 flex gap-[var(--ui-kit-gap)] justify-center", children: [
|
|
21129
20999
|
/* @__PURE__ */ jsx99(ExternalLinkIcon2, { className: "w-4 h-4" }),
|
|
21130
21000
|
txHash ? `${txHash.slice(0, 10)}...${txHash.slice(-4)}` : "N/A"
|
|
21131
21001
|
] })
|
|
@@ -21174,7 +21044,7 @@ function HistoryItem(props) {
|
|
|
21174
21044
|
updatedAt,
|
|
21175
21045
|
txStatus
|
|
21176
21046
|
} = props;
|
|
21177
|
-
const qc =
|
|
21047
|
+
const qc = useQueryClient24();
|
|
21178
21048
|
const address = useSession((st) => st.address);
|
|
21179
21049
|
const warpRoutes = qc.getQueryData([HYPERLANE_WARP_ROUTES_QUERY_KEY, address]);
|
|
21180
21050
|
const assetWarpRoute = warpRoutes?.find((route) => {
|
|
@@ -21184,7 +21054,7 @@ function HistoryItem(props) {
|
|
|
21184
21054
|
});
|
|
21185
21055
|
const AssetIcon = TOKENS_ICONS[(assetWarpRoute?.symbol || "n/a").toUpperCase()] || TOKENS_ICONS["DEFAULT"];
|
|
21186
21056
|
const destinationAdress = recipient || fromAddress;
|
|
21187
|
-
return /* @__PURE__ */
|
|
21057
|
+
return /* @__PURE__ */ jsxs89(
|
|
21188
21058
|
"div",
|
|
21189
21059
|
{
|
|
21190
21060
|
onClick: () => {
|
|
@@ -21194,38 +21064,39 @@ function HistoryItem(props) {
|
|
|
21194
21064
|
},
|
|
21195
21065
|
className: cn(
|
|
21196
21066
|
"w-full cursor-pointer",
|
|
21197
|
-
// 'flex items-start',
|
|
21198
21067
|
"flex flex-col gap-1",
|
|
21068
|
+
// gap-[var(--ui-kit-gap)]
|
|
21199
21069
|
"bg-[var(--ui-kit-secondary)]",
|
|
21200
21070
|
"border border-[var(--ui-kit-bd)]",
|
|
21201
|
-
"
|
|
21071
|
+
"p-2 rounded-[var(--ui-kit-el-bdrs)]",
|
|
21072
|
+
// p-[var(--ui-kit-pd)]
|
|
21202
21073
|
"hover:bg-[var(--ui-kit-secondary-h)] active:bg-[var(--ui-kit-secondary-a)]",
|
|
21203
21074
|
"transition-colors duration-200"
|
|
21204
21075
|
),
|
|
21205
21076
|
children: [
|
|
21206
|
-
/* @__PURE__ */
|
|
21207
|
-
/* @__PURE__ */
|
|
21077
|
+
/* @__PURE__ */ jsxs89("div", { className: "flex items-center gap-[var(--ui-kit-gap)] justify-between", children: [
|
|
21078
|
+
/* @__PURE__ */ jsxs89("span", { className: "font-bold text-lg leading-6 flex items-center gap-[var(--ui-kit-gap)]", children: [
|
|
21208
21079
|
/* @__PURE__ */ jsx99(AssetIcon, { className: "w-6 h-6 flex-none" }),
|
|
21209
21080
|
/* @__PURE__ */ jsx99("span", { children: formatPrice(Number(quote.amount)) }),
|
|
21210
21081
|
/* @__PURE__ */ jsx99("span", { children: assetWarpRoute?.symbol || "" })
|
|
21211
21082
|
] }),
|
|
21212
21083
|
/* @__PURE__ */ jsx99(Badge, { variant: resolveStatusBadgeVariant(txStatus), children: resolveStatusBadgeCaptions(txStatus) })
|
|
21213
21084
|
] }),
|
|
21214
|
-
/* @__PURE__ */
|
|
21215
|
-
/* @__PURE__ */
|
|
21085
|
+
/* @__PURE__ */ jsxs89("div", { className: "w-full flex items-center justify-center", children: [
|
|
21086
|
+
/* @__PURE__ */ jsxs89(
|
|
21216
21087
|
"div",
|
|
21217
21088
|
{
|
|
21218
21089
|
className: cn(
|
|
21219
|
-
"max-w-[calc(50%-
|
|
21090
|
+
"max-w-[calc(50%-8px)]",
|
|
21220
21091
|
"flex flex-col flex-1 items-end p-2 bg-[var(--ui-kit-bg)]",
|
|
21221
21092
|
"border border-[var(--ui-kit-bd)] rounded-[var(--ui-kit-el-bdrs)]"
|
|
21222
21093
|
),
|
|
21223
21094
|
children: [
|
|
21224
|
-
/* @__PURE__ */
|
|
21095
|
+
/* @__PURE__ */ jsxs89("div", { className: "flex w-full items-center justify-between gap-[var(--ui-kit-gap)] leading-5", children: [
|
|
21225
21096
|
/* @__PURE__ */ jsx99(ResolveChainIcon, { chainName: originChain, className: "w-6 h-6 flex-none" }),
|
|
21226
21097
|
/* @__PURE__ */ jsx99("span", { className: "block flex-1 text-xs truncate", children: CHAINS_UI_META[originChain]?.chainLabel || "N/A" })
|
|
21227
21098
|
] }),
|
|
21228
|
-
/* @__PURE__ */
|
|
21099
|
+
/* @__PURE__ */ jsxs89("strong", { className: "text-[10px] leading-5", children: [
|
|
21229
21100
|
fromAddress.slice(0, 6),
|
|
21230
21101
|
"...",
|
|
21231
21102
|
fromAddress.slice(-4)
|
|
@@ -21234,20 +21105,20 @@ function HistoryItem(props) {
|
|
|
21234
21105
|
}
|
|
21235
21106
|
),
|
|
21236
21107
|
/* @__PURE__ */ jsx99(ArrowRightIcon, { className: "w-4 h-4 flex-none" }),
|
|
21237
|
-
/* @__PURE__ */
|
|
21108
|
+
/* @__PURE__ */ jsxs89(
|
|
21238
21109
|
"div",
|
|
21239
21110
|
{
|
|
21240
21111
|
className: cn(
|
|
21241
|
-
"max-w-[calc(50%-
|
|
21112
|
+
"max-w-[calc(50%-8px)]",
|
|
21242
21113
|
"flex flex-col flex-1 items-start p-2 bg-[var(--ui-kit-bg)]",
|
|
21243
21114
|
"border border-[var(--ui-kit-bd)] rounded-[var(--ui-kit-el-bdrs)]"
|
|
21244
21115
|
),
|
|
21245
21116
|
children: [
|
|
21246
|
-
/* @__PURE__ */
|
|
21117
|
+
/* @__PURE__ */ jsxs89("div", { className: "flex w-full items-center justify-between gap-[var(--ui-kit-gap)] leading-5", children: [
|
|
21247
21118
|
/* @__PURE__ */ jsx99("span", { className: "block flex-1 text-xs truncate", children: CHAINS_UI_META[destinationChain]?.chainLabel || "N/A" }),
|
|
21248
21119
|
/* @__PURE__ */ jsx99(ResolveChainIcon, { chainName: destinationChain, className: "w-6 h-6 flex-none" })
|
|
21249
21120
|
] }),
|
|
21250
|
-
/* @__PURE__ */
|
|
21121
|
+
/* @__PURE__ */ jsxs89("strong", { className: "text-[10px] leading-5", children: [
|
|
21251
21122
|
destinationAdress.slice(0, 6),
|
|
21252
21123
|
"...",
|
|
21253
21124
|
destinationAdress.slice(-4)
|
|
@@ -21256,19 +21127,34 @@ function HistoryItem(props) {
|
|
|
21256
21127
|
}
|
|
21257
21128
|
)
|
|
21258
21129
|
] }),
|
|
21259
|
-
/* @__PURE__ */ jsx99("span", { className: "block w-full text-[10px] text-[var(--ui-kit-fg-muted)]", children: dayjs7(updatedAt).format("MMMM D, YYYY [at] HH:mm") })
|
|
21130
|
+
/* @__PURE__ */ jsx99("span", { className: "block w-full text-[10px] text-[var(--ui-kit-fg-muted)] leading-4", children: dayjs7(updatedAt).format("MMMM D, YYYY [at] HH:mm") })
|
|
21260
21131
|
]
|
|
21261
21132
|
}
|
|
21262
21133
|
);
|
|
21263
21134
|
}
|
|
21264
|
-
function HistoryStep(
|
|
21265
|
-
const { historyQuery } = props;
|
|
21135
|
+
function HistoryStep() {
|
|
21266
21136
|
const { t } = useT();
|
|
21267
|
-
const {
|
|
21268
|
-
|
|
21269
|
-
|
|
21270
|
-
|
|
21271
|
-
|
|
21137
|
+
const { setCurrentPage, ...historyQuery } = useHyperlaneHistory();
|
|
21138
|
+
const { data: historyItemsData, isLoading: isHistoryLoading } = historyQuery || {};
|
|
21139
|
+
const { data: historyItems = [], page, pageCount } = historyItemsData || {};
|
|
21140
|
+
if (!isHistoryLoading && historyItems.length === 0) {
|
|
21141
|
+
return /* @__PURE__ */ jsx99(Highlight, { type: "info", className: "w-full text-center text-[10px] text-[var(--ui-kit-fg-muted)] leading-4", children: t("passport:bridgeMenu.errors.noHistory") });
|
|
21142
|
+
}
|
|
21143
|
+
return /* @__PURE__ */ jsxs89("div", { className: "w-full flex flex-col gap-[var(--ui-kit-gap)]", children: [
|
|
21144
|
+
isHistoryLoading && /* @__PURE__ */ jsx99("div", { className: "w-full flex items-center justify-center p-[var(--ui-kit-pd)]", children: /* @__PURE__ */ jsx99(LoaderIcon12, { className: "w-4 h-4 animate-spin" }) }),
|
|
21145
|
+
!isHistoryLoading && !!historyItems.length && /* @__PURE__ */ jsxs89("div", { className: "w-full flex items-center justify-between px-[var(--ui-kit-pd)]", children: [
|
|
21146
|
+
/* @__PURE__ */ jsx99(Button, { variant: "outline", size: "medium", onClick: () => setCurrentPage(page - 1), disabled: page <= 1, children: t("passport:common.prev") }),
|
|
21147
|
+
/* @__PURE__ */ jsxs89("span", { className: "text-xs white-space-nowrap leading-4", children: [
|
|
21148
|
+
/* @__PURE__ */ jsx99("span", { className: " text-[var(--ui-kit-fg-muted)]", children: t("passport:common.page") }),
|
|
21149
|
+
/* @__PURE__ */ jsx99("span", { children: ": " }),
|
|
21150
|
+
/* @__PURE__ */ jsx99("strong", { children: page }),
|
|
21151
|
+
/* @__PURE__ */ jsx99("span", { children: " / " }),
|
|
21152
|
+
/* @__PURE__ */ jsx99("span", { className: " text-[var(--ui-kit-fg-muted)]", children: pageCount })
|
|
21153
|
+
] }),
|
|
21154
|
+
/* @__PURE__ */ jsx99(Button, { variant: "outline", size: "medium", onClick: () => setCurrentPage(page + 1), disabled: page >= pageCount, children: t("passport:common.next") })
|
|
21155
|
+
] }),
|
|
21156
|
+
!isHistoryLoading && historyItems.map((item) => /* @__PURE__ */ jsx99(HistoryItem, { ...item }, item.id))
|
|
21157
|
+
] });
|
|
21272
21158
|
}
|
|
21273
21159
|
var P_CN3;
|
|
21274
21160
|
var init_HistoryStep = __esm({
|
|
@@ -21279,8 +21165,10 @@ var init_HistoryStep = __esm({
|
|
|
21279
21165
|
init_priceFormatter();
|
|
21280
21166
|
init_utils2();
|
|
21281
21167
|
init_badge();
|
|
21168
|
+
init_button();
|
|
21282
21169
|
init_highlight();
|
|
21283
21170
|
init_ResolveChainIcon();
|
|
21171
|
+
init_useHyperlaneHistory();
|
|
21284
21172
|
init_useHyperlaneRoutes();
|
|
21285
21173
|
init_chains();
|
|
21286
21174
|
init_useBridgeStore();
|
|
@@ -21288,6 +21176,124 @@ var init_HistoryStep = __esm({
|
|
|
21288
21176
|
}
|
|
21289
21177
|
});
|
|
21290
21178
|
|
|
21179
|
+
// src/internal/components/SendMenu/hyperbridge/steps/SelectAssetRoute.tsx
|
|
21180
|
+
import { ArrowLeftRightIcon as ArrowLeftRightIcon2 } from "lucide-react";
|
|
21181
|
+
import { useMemo as useMemo8, useState as useState28 } from "react";
|
|
21182
|
+
import { Fragment as Fragment38, jsx as jsx100, jsxs as jsxs90 } from "react/jsx-runtime";
|
|
21183
|
+
function SelectAssetRoute(props) {
|
|
21184
|
+
const { hyperlaneWarpRoutes } = props;
|
|
21185
|
+
const { t } = useT();
|
|
21186
|
+
const [isTokenSymbolSelector, setIsTokenSymbolSelector] = useState28(false);
|
|
21187
|
+
const selectedAssetSymbol = useBridgeStore((st) => st.bridgeAssetSymbol);
|
|
21188
|
+
const tokenList = useMemo8(() => {
|
|
21189
|
+
const tokens = hyperlaneWarpRoutes.map((route) => route.symbol);
|
|
21190
|
+
const uniqueTokens = Array.from(new Set(tokens));
|
|
21191
|
+
return uniqueTokens.map((symbol) => ({
|
|
21192
|
+
symbol: symbol.toUpperCase(),
|
|
21193
|
+
Icon: TOKENS_ICONS[symbol.toUpperCase()] || TOKENS_ICONS.EMBARKAI
|
|
21194
|
+
}));
|
|
21195
|
+
}, [hyperlaneWarpRoutes]);
|
|
21196
|
+
if (isTokenSymbolSelector) {
|
|
21197
|
+
return /* @__PURE__ */ jsx100("div", { className: "w-full flex flex-col gap-[var(--ui-kit-gap)]", children: tokenList.map((asset, assetIdx) => /* @__PURE__ */ jsxs90(
|
|
21198
|
+
Button,
|
|
21199
|
+
{
|
|
21200
|
+
variant: selectedAssetSymbol === asset.symbol ? "default" : "outline",
|
|
21201
|
+
className: "w-full",
|
|
21202
|
+
onClick: () => {
|
|
21203
|
+
useBridgeStore.getState().setBridgeAssetSymbol(asset.symbol);
|
|
21204
|
+
setIsTokenSymbolSelector(false);
|
|
21205
|
+
useFlowSelectorStore.getState().setRenderKey(`hyperlane-route-token-${asset.symbol}-${Date.now()}`);
|
|
21206
|
+
},
|
|
21207
|
+
children: [
|
|
21208
|
+
/* @__PURE__ */ jsx100(asset.Icon, { className: "w-6 h-6" }),
|
|
21209
|
+
asset.symbol
|
|
21210
|
+
]
|
|
21211
|
+
},
|
|
21212
|
+
`hyperlane-route-token-${asset.symbol}-${assetIdx}`
|
|
21213
|
+
)) });
|
|
21214
|
+
}
|
|
21215
|
+
const selectedAsset = tokenList.find((t2) => t2.symbol === selectedAssetSymbol);
|
|
21216
|
+
const availableChainPairs = hyperlaneWarpRoutes.filter((route) => route.symbol.toUpperCase() === selectedAssetSymbol).map((route) => route.chainPair);
|
|
21217
|
+
return /* @__PURE__ */ jsxs90("div", { className: "w-full flex flex-col gap-[var(--ui-kit-gap)]", children: [
|
|
21218
|
+
/* @__PURE__ */ jsx100("span", { className: "block text-[10px] text-[var(--ui-kit-fg-muted)]", children: t("passport:bridgeMenu.labels.selectToken") }),
|
|
21219
|
+
/* @__PURE__ */ jsx100(
|
|
21220
|
+
Button,
|
|
21221
|
+
{
|
|
21222
|
+
variant: "default",
|
|
21223
|
+
className: "w-full",
|
|
21224
|
+
onClick: () => {
|
|
21225
|
+
setIsTokenSymbolSelector(true);
|
|
21226
|
+
useFlowSelectorStore.getState().setRenderKey(`hyperlane-route-asset-selector-${Date.now()}`);
|
|
21227
|
+
},
|
|
21228
|
+
children: selectedAsset ? /* @__PURE__ */ jsxs90(Fragment38, { children: [
|
|
21229
|
+
/* @__PURE__ */ jsx100(selectedAsset.Icon, { className: "w-6 h-6" }),
|
|
21230
|
+
selectedAsset.symbol
|
|
21231
|
+
] }) : t("passport:bridgeMenu.actions.selectAsset")
|
|
21232
|
+
}
|
|
21233
|
+
),
|
|
21234
|
+
availableChainPairs.length > 0 && /* @__PURE__ */ jsxs90(Fragment38, { children: [
|
|
21235
|
+
/* @__PURE__ */ jsx100("span", { className: "block text-[10px] text-[var(--ui-kit-fg-muted)]", children: t("passport:bridgeMenu.labels.availableChainPairs") }),
|
|
21236
|
+
/* @__PURE__ */ jsx100("div", { className: "w-full flex flex-col gap-[var(--ui-kit-gap)]", children: availableChainPairs.map(([fromChain, toChain]) => /* @__PURE__ */ jsxs90(
|
|
21237
|
+
Button,
|
|
21238
|
+
{
|
|
21239
|
+
variant: "outline",
|
|
21240
|
+
className: "w-full",
|
|
21241
|
+
onClick: () => {
|
|
21242
|
+
const targetWarpRoute = hyperlaneWarpRoutes.find((route) => {
|
|
21243
|
+
const { symbol, chainPair } = route;
|
|
21244
|
+
const chainPairNames = chainPair.map((c) => c.chainName);
|
|
21245
|
+
return symbol === selectedAssetSymbol && chainPairNames.includes(fromChain.chainName) && chainPairNames.includes(toChain.chainName);
|
|
21246
|
+
});
|
|
21247
|
+
if (!targetWarpRoute) {
|
|
21248
|
+
console.error("No matching warp route found for selected asset and chain pair");
|
|
21249
|
+
return;
|
|
21250
|
+
}
|
|
21251
|
+
const { setOriginChain, setDestinationChain, setHyperRoute, setBridgeStep } = useBridgeStore.getState();
|
|
21252
|
+
let originChainIndex = 0;
|
|
21253
|
+
let destinationChainIndex = 1;
|
|
21254
|
+
if (useBridgeStore.getState().bridgeSender === "embarkai-wallet") {
|
|
21255
|
+
const foundIdx = targetWarpRoute.chainPair.findIndex(
|
|
21256
|
+
(chain) => isOririnChainEmbarkSupported(chain.chainName)
|
|
21257
|
+
);
|
|
21258
|
+
if (foundIdx !== -1) {
|
|
21259
|
+
originChainIndex = foundIdx;
|
|
21260
|
+
destinationChainIndex = foundIdx === 0 ? 1 : 0;
|
|
21261
|
+
}
|
|
21262
|
+
}
|
|
21263
|
+
setOriginChain(targetWarpRoute.chainPair[originChainIndex].chainName);
|
|
21264
|
+
setDestinationChain(targetWarpRoute.chainPair[destinationChainIndex].chainName);
|
|
21265
|
+
setHyperRoute(targetWarpRoute.routeId);
|
|
21266
|
+
setBridgeStep("select");
|
|
21267
|
+
},
|
|
21268
|
+
children: [
|
|
21269
|
+
/* @__PURE__ */ jsxs90("span", { className: "flex items-center flex-1 gap-[var(--ui-kit-gap)] justify-between", children: [
|
|
21270
|
+
/* @__PURE__ */ jsx100(ResolveChainIcon, { chainName: fromChain.chainName, className: "w-6 h-6 flex-none" }),
|
|
21271
|
+
/* @__PURE__ */ jsx100("span", { className: "max-w-[100px] truncate", children: fromChain.chainLabel })
|
|
21272
|
+
] }),
|
|
21273
|
+
/* @__PURE__ */ jsx100(ArrowLeftRightIcon2, { className: "w-4 h-4 flex-none" }),
|
|
21274
|
+
/* @__PURE__ */ jsxs90("span", { className: "flex items-center flex-1 gap-[var(--ui-kit-gap)] justify-between", children: [
|
|
21275
|
+
/* @__PURE__ */ jsx100("span", { className: "max-w-[100px] truncate", children: toChain.chainLabel }),
|
|
21276
|
+
/* @__PURE__ */ jsx100(ResolveChainIcon, { chainName: toChain.chainName, className: "w-6 h-6 flex-none" })
|
|
21277
|
+
] })
|
|
21278
|
+
]
|
|
21279
|
+
},
|
|
21280
|
+
`hyperlane-route-chain-pair-${fromChain.chainName}-${toChain.chainName}`
|
|
21281
|
+
)) })
|
|
21282
|
+
] })
|
|
21283
|
+
] });
|
|
21284
|
+
}
|
|
21285
|
+
var init_SelectAssetRoute = __esm({
|
|
21286
|
+
"src/internal/components/SendMenu/hyperbridge/steps/SelectAssetRoute.tsx"() {
|
|
21287
|
+
init_tokens();
|
|
21288
|
+
init_i18n();
|
|
21289
|
+
init_button();
|
|
21290
|
+
init_useFlowSelector();
|
|
21291
|
+
init_ResolveChainIcon();
|
|
21292
|
+
init_useBridgeStore();
|
|
21293
|
+
init_utils8();
|
|
21294
|
+
}
|
|
21295
|
+
});
|
|
21296
|
+
|
|
21291
21297
|
// src/internal/components/SendMenu/hyperbridge/steps/index.ts
|
|
21292
21298
|
var init_steps = __esm({
|
|
21293
21299
|
"src/internal/components/SendMenu/hyperbridge/steps/index.ts"() {
|
|
@@ -21295,28 +21301,27 @@ var init_steps = __esm({
|
|
|
21295
21301
|
init_ConfirmStep();
|
|
21296
21302
|
init_SuccessStep();
|
|
21297
21303
|
init_HistoryStep();
|
|
21304
|
+
init_SelectAssetRoute();
|
|
21298
21305
|
}
|
|
21299
21306
|
});
|
|
21300
21307
|
|
|
21301
21308
|
// src/internal/components/SendMenu/hyperbridge/HyperlaneBridge.tsx
|
|
21302
21309
|
import { useEffect as useEffect40 } from "react";
|
|
21303
|
-
import { Fragment as
|
|
21310
|
+
import { Fragment as Fragment39, jsx as jsx101, jsxs as jsxs91 } from "react/jsx-runtime";
|
|
21304
21311
|
function HyperlaneBridge() {
|
|
21305
21312
|
const bridgeStep = useBridgeStore((st) => st.bridgeStep);
|
|
21306
21313
|
const { swapDirection, handleQuoteEstimation, bridgeAsset, isAssetBridging } = useBridge();
|
|
21307
21314
|
const { hyperlaneWarpRoutes, isLoadingWarpRoutes } = useHyperlaneRoutes();
|
|
21308
|
-
const { setCurrentPage, ...historyQuery } = useHyperlaneHistory();
|
|
21309
21315
|
useMenuTitle(hyperlaneWarpRoutes);
|
|
21310
21316
|
useEffect40(
|
|
21311
21317
|
() => () => {
|
|
21312
21318
|
useBridgeStore.getState().resetSelections();
|
|
21313
|
-
setCurrentPage(1);
|
|
21314
21319
|
},
|
|
21315
21320
|
[]
|
|
21316
21321
|
);
|
|
21317
|
-
return /* @__PURE__ */ jsxs91(
|
|
21318
|
-
bridgeStep === "sender-selector" && /* @__PURE__ */
|
|
21319
|
-
bridgeStep === "select" && /* @__PURE__ */
|
|
21322
|
+
return /* @__PURE__ */ jsxs91(Fragment39, { children: [
|
|
21323
|
+
bridgeStep === "sender-selector" && /* @__PURE__ */ jsx101(SenderSelector, {}),
|
|
21324
|
+
bridgeStep === "select" && /* @__PURE__ */ jsx101(
|
|
21320
21325
|
SelectStep,
|
|
21321
21326
|
{
|
|
21322
21327
|
isLoadingWarpRoutes,
|
|
@@ -21325,8 +21330,8 @@ function HyperlaneBridge() {
|
|
|
21325
21330
|
handleQuoteEstimation
|
|
21326
21331
|
}
|
|
21327
21332
|
),
|
|
21328
|
-
bridgeStep === "select-token" && /* @__PURE__ */
|
|
21329
|
-
bridgeStep === "confirm" && /* @__PURE__ */
|
|
21333
|
+
bridgeStep === "select-token" && /* @__PURE__ */ jsx101(SelectAssetRoute, { hyperlaneWarpRoutes }),
|
|
21334
|
+
bridgeStep === "confirm" && /* @__PURE__ */ jsx101(
|
|
21330
21335
|
ConfirmStep,
|
|
21331
21336
|
{
|
|
21332
21337
|
isAssetBridging,
|
|
@@ -21334,17 +21339,18 @@ function HyperlaneBridge() {
|
|
|
21334
21339
|
bridgeAsset
|
|
21335
21340
|
}
|
|
21336
21341
|
),
|
|
21337
|
-
bridgeStep === "success" && /* @__PURE__ */
|
|
21338
|
-
bridgeStep === "tx-history" && /* @__PURE__ */
|
|
21339
|
-
|
|
21342
|
+
bridgeStep === "success" && /* @__PURE__ */ jsx101(SuccessStep, {}),
|
|
21343
|
+
bridgeStep === "tx-history" && /* @__PURE__ */ jsx101(
|
|
21344
|
+
HistoryStep,
|
|
21345
|
+
{}
|
|
21346
|
+
),
|
|
21347
|
+
bridgeStep === "tx-history-details" && /* @__PURE__ */ jsx101(HistoryDetailsStep, {})
|
|
21340
21348
|
] });
|
|
21341
21349
|
}
|
|
21342
21350
|
var init_HyperlaneBridge = __esm({
|
|
21343
21351
|
"src/internal/components/SendMenu/hyperbridge/HyperlaneBridge.tsx"() {
|
|
21344
21352
|
init_SenderSelector();
|
|
21345
|
-
init_TokenHyperlaneRouteSelector();
|
|
21346
21353
|
init_useBridge();
|
|
21347
|
-
init_useHyperlaneHistory();
|
|
21348
21354
|
init_useHyperlaneRoutes();
|
|
21349
21355
|
init_useMenuTitle();
|
|
21350
21356
|
init_steps();
|
|
@@ -21354,7 +21360,7 @@ var init_HyperlaneBridge = __esm({
|
|
|
21354
21360
|
|
|
21355
21361
|
// src/internal/components/SendMenu/hyperbridge/components/HistorySwitch.tsx
|
|
21356
21362
|
import { useRef as useRef19 } from "react";
|
|
21357
|
-
import { jsx as
|
|
21363
|
+
import { jsx as jsx102 } from "react/jsx-runtime";
|
|
21358
21364
|
function BridgeHistorySwitch(props) {
|
|
21359
21365
|
const { disabled } = props;
|
|
21360
21366
|
const selectorFlow = useFlowSelectorStore((st) => st.flow);
|
|
@@ -21364,7 +21370,7 @@ function BridgeHistorySwitch(props) {
|
|
|
21364
21370
|
if (selectorFlow !== "bridge" || bridgeStep === "confirm" || bridgeStep === "success" || bridgeStep === "sender-selector" || bridgeStep === "select-token" || bridgeStep === "tx-history-details") {
|
|
21365
21371
|
return null;
|
|
21366
21372
|
}
|
|
21367
|
-
return /* @__PURE__ */
|
|
21373
|
+
return /* @__PURE__ */ jsx102(
|
|
21368
21374
|
Switch,
|
|
21369
21375
|
{
|
|
21370
21376
|
labels: { checked: "BRIDGE", unchecked: "HISTORY" },
|
|
@@ -21461,7 +21467,7 @@ var init_useErc3643Compliance = __esm({
|
|
|
21461
21467
|
|
|
21462
21468
|
// src/hooks/useNicknameResolve.ts
|
|
21463
21469
|
import { useQuery as useQuery23 } from "@tanstack/react-query";
|
|
21464
|
-
import { useState as
|
|
21470
|
+
import { useState as useState29, useEffect as useEffect41, useMemo as useMemo9 } from "react";
|
|
21465
21471
|
function looksLikeNickname(input) {
|
|
21466
21472
|
if (!input) return false;
|
|
21467
21473
|
if (input.startsWith("0x")) return false;
|
|
@@ -21471,8 +21477,8 @@ function looksLikeNickname(input) {
|
|
|
21471
21477
|
}
|
|
21472
21478
|
function useNicknameResolve(input, options) {
|
|
21473
21479
|
const { enabled = true, chainId } = options;
|
|
21474
|
-
const [debouncedInput, setDebouncedInput] =
|
|
21475
|
-
const [isDebouncing, setIsDebouncing] =
|
|
21480
|
+
const [debouncedInput, setDebouncedInput] = useState29("");
|
|
21481
|
+
const [isDebouncing, setIsDebouncing] = useState29(false);
|
|
21476
21482
|
const normalized = normalizeNickname(input);
|
|
21477
21483
|
const isNicknameInput = looksLikeNickname(input) && normalized.length >= 3;
|
|
21478
21484
|
useEffect41(() => {
|
|
@@ -21501,7 +21507,7 @@ function useNicknameResolve(input, options) {
|
|
|
21501
21507
|
const isNotFound = query.isError && query.error?.code === "NICKNAME_NOT_FOUND";
|
|
21502
21508
|
const isWalletNotSetup = !!query.data && query.data.resolvedTarget === null;
|
|
21503
21509
|
const isFrozen = query.data?.isFrozen ?? false;
|
|
21504
|
-
const fingerprintVerification =
|
|
21510
|
+
const fingerprintVerification = useMemo9(() => {
|
|
21505
21511
|
if (!query.data?.owner || !query.data?.fingerprint) {
|
|
21506
21512
|
return null;
|
|
21507
21513
|
}
|
|
@@ -21535,14 +21541,14 @@ var init_useNicknameResolve = __esm({
|
|
|
21535
21541
|
});
|
|
21536
21542
|
|
|
21537
21543
|
// src/hooks/useSendTransaction.ts
|
|
21538
|
-
import { useCallback as useCallback24, useState as
|
|
21544
|
+
import { useCallback as useCallback24, useState as useState30 } from "react";
|
|
21539
21545
|
import { encodeFunctionData as encodeFunctionData2, isAddress, parseEther as parseEther2, parseUnits } from "viem";
|
|
21540
21546
|
function useSendTransaction() {
|
|
21541
21547
|
const session = useSession((st) => st.session);
|
|
21542
21548
|
const address = useSession((st) => st.address);
|
|
21543
|
-
const [isLoading, setIsLoading] =
|
|
21544
|
-
const [error, setError] =
|
|
21545
|
-
const [userOpHash, setUserOpHash] =
|
|
21549
|
+
const [isLoading, setIsLoading] = useState30(false);
|
|
21550
|
+
const [error, setError] = useState30(null);
|
|
21551
|
+
const [userOpHash, setUserOpHash] = useState30(null);
|
|
21546
21552
|
const sendTransaction = useCallback24(
|
|
21547
21553
|
async (params) => {
|
|
21548
21554
|
if (!session || !address) {
|
|
@@ -21731,15 +21737,15 @@ var init_fallbackAssetImage = __esm({
|
|
|
21731
21737
|
|
|
21732
21738
|
// src/internal/components/SendMenu/send/components/AssetInputIcon.tsx
|
|
21733
21739
|
import { Coins, Image as ImageIcon2, ShieldCheck, Sparkles as Sparkles2 } from "lucide-react";
|
|
21734
|
-
import { jsx as
|
|
21740
|
+
import { jsx as jsx103, jsxs as jsxs92 } from "react/jsx-runtime";
|
|
21735
21741
|
function AssetInputIcon({ asset, size = "small" }) {
|
|
21736
21742
|
const iconSizeClass = size === "small" ? "w-6 h-6" : "w-12 h-12";
|
|
21737
21743
|
const subiconSizeClass = size === "small" ? "w-4 h-4" : "w-5 h-5";
|
|
21738
|
-
if (!asset) return /* @__PURE__ */
|
|
21744
|
+
if (!asset) return /* @__PURE__ */ jsx103(Coins, { className: iconSizeClass, strokeWidth: 1 });
|
|
21739
21745
|
const isNft = isNftAsset3(asset);
|
|
21740
21746
|
if (isNft) {
|
|
21741
21747
|
return asset.image || asset.nftMetadata?.image ? /* @__PURE__ */ jsxs92("div", { className: cn(iconSizeClass, "flex-none relative"), children: [
|
|
21742
|
-
/* @__PURE__ */
|
|
21748
|
+
/* @__PURE__ */ jsx103(
|
|
21743
21749
|
"img",
|
|
21744
21750
|
{
|
|
21745
21751
|
src: asset.image || asset.nftMetadata?.image,
|
|
@@ -21752,15 +21758,15 @@ function AssetInputIcon({ asset, size = "small" }) {
|
|
|
21752
21758
|
}
|
|
21753
21759
|
}
|
|
21754
21760
|
),
|
|
21755
|
-
/* @__PURE__ */
|
|
21761
|
+
/* @__PURE__ */ jsx103(Sparkles2, { className: cn(subiconSizeClass, "absolute -top-1 -right-1") })
|
|
21756
21762
|
] }) : /* @__PURE__ */ jsxs92("div", { className: cn(iconSizeClass, "relative flex-none"), children: [
|
|
21757
|
-
/* @__PURE__ */
|
|
21758
|
-
/* @__PURE__ */
|
|
21763
|
+
/* @__PURE__ */ jsx103(ImageIcon2, { className: cn(iconSizeClass, "flex-none") }),
|
|
21764
|
+
/* @__PURE__ */ jsx103(Sparkles2, { className: cn(subiconSizeClass, "absolute -top-1 -right-1 text-[var(--ui-kit-bg-success)]") })
|
|
21759
21765
|
] });
|
|
21760
21766
|
}
|
|
21761
21767
|
const isSecurity = isSecurityToken2(asset);
|
|
21762
21768
|
const CommonAssetIcon = TOKENS_ICONS[asset.symbol] || null;
|
|
21763
|
-
const targetAssetIcon = !!asset.logo ? /* @__PURE__ */
|
|
21769
|
+
const targetAssetIcon = !!asset.logo ? /* @__PURE__ */ jsx103(
|
|
21764
21770
|
"img",
|
|
21765
21771
|
{
|
|
21766
21772
|
src: asset.logo,
|
|
@@ -21771,7 +21777,7 @@ function AssetInputIcon({ asset, size = "small" }) {
|
|
|
21771
21777
|
e.currentTarget.src = fallbackAssetImage_default;
|
|
21772
21778
|
}
|
|
21773
21779
|
}
|
|
21774
|
-
) : /* @__PURE__ */
|
|
21780
|
+
) : /* @__PURE__ */ jsx103("span", { className: "text-[var(--ui-kit-fg-inverted)] font-bold text-xs", children: asset.symbol.charAt(0) });
|
|
21775
21781
|
return /* @__PURE__ */ jsxs92(
|
|
21776
21782
|
"div",
|
|
21777
21783
|
{
|
|
@@ -21780,8 +21786,8 @@ function AssetInputIcon({ asset, size = "small" }) {
|
|
|
21780
21786
|
"flex items-center justify-center bg-[var(--ui-kit-fg)] rounded-full": !asset.logo
|
|
21781
21787
|
}),
|
|
21782
21788
|
children: [
|
|
21783
|
-
!!CommonAssetIcon ? /* @__PURE__ */
|
|
21784
|
-
isSecurity && /* @__PURE__ */
|
|
21789
|
+
!!CommonAssetIcon ? /* @__PURE__ */ jsx103(CommonAssetIcon, { className: iconSizeClass }) : targetAssetIcon,
|
|
21790
|
+
isSecurity && /* @__PURE__ */ jsx103(
|
|
21785
21791
|
ShieldCheck,
|
|
21786
21792
|
{
|
|
21787
21793
|
style: { fill: "var(--ui-kit-bg-warning)" },
|
|
@@ -21803,13 +21809,13 @@ var init_AssetInputIcon = __esm({
|
|
|
21803
21809
|
|
|
21804
21810
|
// src/internal/components/SendMenu/send/components/NftDisplayCard.tsx
|
|
21805
21811
|
import { Image as ImageIcon3, Sparkles as Sparkles3 } from "lucide-react";
|
|
21806
|
-
import { useState as
|
|
21807
|
-
import { jsx as
|
|
21812
|
+
import { useState as useState31 } from "react";
|
|
21813
|
+
import { jsx as jsx104, jsxs as jsxs93 } from "react/jsx-runtime";
|
|
21808
21814
|
function NftDisplayCard({ asset }) {
|
|
21809
|
-
const [imageError, setImageError] =
|
|
21815
|
+
const [imageError, setImageError] = useState31(false);
|
|
21810
21816
|
const nftImage = asset.image || asset.nftMetadata?.image;
|
|
21811
21817
|
return /* @__PURE__ */ jsxs93("div", { className: "flex items-center gap-3 p-3 rounded-[var(--ui-kit-el-bdrs)] bg-[var(--ui-kit-bg-secondary)]", children: [
|
|
21812
|
-
nftImage && !imageError ? /* @__PURE__ */
|
|
21818
|
+
nftImage && !imageError ? /* @__PURE__ */ jsx104(
|
|
21813
21819
|
"img",
|
|
21814
21820
|
{
|
|
21815
21821
|
src: nftImage,
|
|
@@ -21817,9 +21823,9 @@ function NftDisplayCard({ asset }) {
|
|
|
21817
21823
|
className: "w-16 h-16 rounded-[var(--ui-kit-el-bdrs)] object-cover",
|
|
21818
21824
|
onError: () => setImageError(true)
|
|
21819
21825
|
}
|
|
21820
|
-
) : /* @__PURE__ */
|
|
21826
|
+
) : /* @__PURE__ */ jsx104("div", { className: "w-16 h-16 rounded-[var(--ui-kit-el-bdrs)] bg-[var(--ui-kit-fg)] flex items-center justify-center", children: /* @__PURE__ */ jsx104(ImageIcon3, { className: "w-8 h-8 text-[var(--ui-kit-fg-inverted)]" }) }),
|
|
21821
21827
|
/* @__PURE__ */ jsxs93("div", { className: "flex-1 min-w-0", children: [
|
|
21822
|
-
/* @__PURE__ */
|
|
21828
|
+
/* @__PURE__ */ jsx104("div", { className: "font-semibold text-[var(--ui-kit-fg)] truncate", children: asset.nftMetadata?.name || asset.name }),
|
|
21823
21829
|
/* @__PURE__ */ jsxs93("div", { className: "text-sm text-[var(--ui-kit-fg-muted)]", children: [
|
|
21824
21830
|
asset.symbol,
|
|
21825
21831
|
asset.tokenId && /* @__PURE__ */ jsxs93("span", { className: "ml-1", children: [
|
|
@@ -21828,8 +21834,8 @@ function NftDisplayCard({ asset }) {
|
|
|
21828
21834
|
] })
|
|
21829
21835
|
] }),
|
|
21830
21836
|
/* @__PURE__ */ jsxs93("div", { className: "text-xs text-[var(--ui-kit-fg-muted)] mt-1 flex items-center gap-1", children: [
|
|
21831
|
-
/* @__PURE__ */
|
|
21832
|
-
/* @__PURE__ */
|
|
21837
|
+
/* @__PURE__ */ jsx104(Sparkles3, { className: "w-3 h-3" }),
|
|
21838
|
+
/* @__PURE__ */ jsx104("span", { children: asset.type === "erc721" ? "ERC-721" : "ERC-1155" })
|
|
21833
21839
|
] })
|
|
21834
21840
|
] })
|
|
21835
21841
|
] });
|
|
@@ -21880,7 +21886,7 @@ var init_useSendStore = __esm({
|
|
|
21880
21886
|
|
|
21881
21887
|
// src/internal/components/SendMenu/send/components/AssetList.tsx
|
|
21882
21888
|
import { formatUnits as formatUnits9 } from "viem";
|
|
21883
|
-
import { Fragment as
|
|
21889
|
+
import { Fragment as Fragment40, jsx as jsx105, jsxs as jsxs94 } from "react/jsx-runtime";
|
|
21884
21890
|
function getAssetBalance3(asset) {
|
|
21885
21891
|
if (isNftAsset3(asset)) return "1";
|
|
21886
21892
|
const balance = Number(formatUnits9(BigInt(asset?.balance || "0"), asset?.decimals || 18));
|
|
@@ -21909,23 +21915,23 @@ function AssetListItem(props) {
|
|
|
21909
21915
|
isSelected && "bg-[var(--ui-kit-secondary)]"
|
|
21910
21916
|
),
|
|
21911
21917
|
children: [
|
|
21912
|
-
/* @__PURE__ */
|
|
21918
|
+
/* @__PURE__ */ jsx105(AssetInputIcon, { asset, size: "large" }),
|
|
21913
21919
|
/* @__PURE__ */ jsxs94("div", { className: "flex-1 flex flex-col items-start", children: [
|
|
21914
|
-
/* @__PURE__ */
|
|
21920
|
+
/* @__PURE__ */ jsx105("div", { className: "text-[10px] truncate leading-4", children: isNft ? asset.nftMetadata?.name || asset.name : asset.name }),
|
|
21915
21921
|
!isNft && asset.address && /* @__PURE__ */ jsxs94("div", { className: "text-[10px] text-[var(--ui-kit-fg-muted)] font-mono truncate leading-4", title: asset.address, children: [
|
|
21916
21922
|
asset.symbol,
|
|
21917
21923
|
" \xB7 ",
|
|
21918
21924
|
truncateMiddle(asset.address, 6, 4)
|
|
21919
21925
|
] }),
|
|
21920
|
-
/* @__PURE__ */
|
|
21926
|
+
/* @__PURE__ */ jsx105("span", { className: "block text-lg font-bold", children: isNft ? /* @__PURE__ */ jsxs94(Fragment40, { children: [
|
|
21921
21927
|
asset.symbol,
|
|
21922
21928
|
asset.tokenId && /* @__PURE__ */ jsxs94("span", { className: "ml-1", children: [
|
|
21923
21929
|
"#",
|
|
21924
21930
|
asset.tokenId.length > 6 ? `${asset.tokenId.slice(0, 4)}...` : asset.tokenId
|
|
21925
21931
|
] })
|
|
21926
|
-
] }) : /* @__PURE__ */ jsxs94(
|
|
21932
|
+
] }) : /* @__PURE__ */ jsxs94(Fragment40, { children: [
|
|
21927
21933
|
BALANCE_PREFIXES[asset.symbol] || null,
|
|
21928
|
-
/* @__PURE__ */
|
|
21934
|
+
/* @__PURE__ */ jsx105("span", { children: getAssetBalance3(asset) }),
|
|
21929
21935
|
" ",
|
|
21930
21936
|
!BALANCE_PREFIXES[asset.symbol] && /* @__PURE__ */ jsxs94("span", { children: [
|
|
21931
21937
|
" ",
|
|
@@ -21948,24 +21954,24 @@ function AssetList(props) {
|
|
|
21948
21954
|
const tokenAssets = transferableAssets.filter((a) => a.type === "erc20");
|
|
21949
21955
|
const securityAssets = transferableAssets.filter((a) => a.type === "erc3643");
|
|
21950
21956
|
const nftAssets = transferableAssets.filter((a) => a.type === "erc721" || a.type === "erc1155");
|
|
21951
|
-
return /* @__PURE__ */ jsxs94(
|
|
21952
|
-
nativeAssets.length > 0 && /* @__PURE__ */ jsxs94(
|
|
21953
|
-
/* @__PURE__ */
|
|
21954
|
-
nativeAssets.map((asset) => /* @__PURE__ */
|
|
21957
|
+
return /* @__PURE__ */ jsxs94(Fragment40, { children: [
|
|
21958
|
+
nativeAssets.length > 0 && /* @__PURE__ */ jsxs94(Fragment40, { children: [
|
|
21959
|
+
/* @__PURE__ */ jsx105("div", { className: "text-[10px] text-[var(--ui-kit-fg-muted)] uppercase", children: "Crypto" }),
|
|
21960
|
+
nativeAssets.map((asset) => /* @__PURE__ */ jsx105(AssetListItem, { asset }, `native-${asset.symbol}`))
|
|
21955
21961
|
] }),
|
|
21956
|
-
tokenAssets.length > 0 && /* @__PURE__ */ jsxs94(
|
|
21957
|
-
/* @__PURE__ */
|
|
21958
|
-
tokenAssets.map((asset) => /* @__PURE__ */
|
|
21962
|
+
tokenAssets.length > 0 && /* @__PURE__ */ jsxs94(Fragment40, { children: [
|
|
21963
|
+
/* @__PURE__ */ jsx105("div", { className: "text-[10px] text-[var(--ui-kit-fg-muted)] uppercase", children: "Tokens" }),
|
|
21964
|
+
tokenAssets.map((asset) => /* @__PURE__ */ jsx105(AssetListItem, { asset }, `token-${asset.address}`))
|
|
21959
21965
|
] }),
|
|
21960
|
-
securityAssets.length > 0 && /* @__PURE__ */ jsxs94(
|
|
21961
|
-
/* @__PURE__ */
|
|
21962
|
-
securityAssets.map((asset) => /* @__PURE__ */
|
|
21966
|
+
securityAssets.length > 0 && /* @__PURE__ */ jsxs94(Fragment40, { children: [
|
|
21967
|
+
/* @__PURE__ */ jsx105("div", { className: "text-[10px] text-[var(--ui-kit-fg-muted)] uppercase", children: "Security Tokens" }),
|
|
21968
|
+
securityAssets.map((asset) => /* @__PURE__ */ jsx105(AssetListItem, { asset }, `security-${asset.address}`))
|
|
21963
21969
|
] }),
|
|
21964
|
-
nftAssets.length > 0 && /* @__PURE__ */ jsxs94(
|
|
21965
|
-
/* @__PURE__ */
|
|
21966
|
-
nftAssets.map((asset) => /* @__PURE__ */
|
|
21970
|
+
nftAssets.length > 0 && /* @__PURE__ */ jsxs94(Fragment40, { children: [
|
|
21971
|
+
/* @__PURE__ */ jsx105("div", { className: "text-[10px] text-[var(--ui-kit-fg-muted)] uppercase", children: "NFTs" }),
|
|
21972
|
+
nftAssets.map((asset) => /* @__PURE__ */ jsx105(AssetListItem, { asset }, `nft-${asset.address}-${asset.tokenId}`))
|
|
21967
21973
|
] }),
|
|
21968
|
-
transferableAssets.length === 0 && /* @__PURE__ */
|
|
21974
|
+
transferableAssets.length === 0 && /* @__PURE__ */ jsx105("div", { className: "p-4 text-center text-[10px] text-[var(--ui-kit-fg-muted)]", children: "No assets available" })
|
|
21969
21975
|
] });
|
|
21970
21976
|
}
|
|
21971
21977
|
var init_AssetList = __esm({
|
|
@@ -21982,7 +21988,7 @@ var init_AssetList = __esm({
|
|
|
21982
21988
|
|
|
21983
21989
|
// src/internal/components/SendMenu/send/components/NicknameData.tsx
|
|
21984
21990
|
import { AlertCircle as AlertCircle5, AlertTriangle as AlertTriangle6, AtSign as AtSign2, CheckCircle2 as CheckCircle24, ShieldAlert as ShieldAlert2, ShieldCheck as ShieldCheck2 } from "lucide-react";
|
|
21985
|
-
import { jsx as
|
|
21991
|
+
import { jsx as jsx106, jsxs as jsxs95 } from "react/jsx-runtime";
|
|
21986
21992
|
function NicknameData(props) {
|
|
21987
21993
|
const { resolvedNicknameData, isNicknameInput } = props;
|
|
21988
21994
|
const {
|
|
@@ -21997,7 +22003,7 @@ function NicknameData(props) {
|
|
|
21997
22003
|
if (!isNicknameInput) return null;
|
|
21998
22004
|
if (resolvedAddress && !isResolving && nicknameData)
|
|
21999
22005
|
return /* @__PURE__ */ jsxs95("div", { className: "flex items-center gap-[var(--ui-kit-gap)] rounded-[var(--ui-kit-el-bdrs)] px-[var(--ui-kit-gap)]", children: [
|
|
22000
|
-
nicknameData.avatarSvg ? /* @__PURE__ */
|
|
22006
|
+
nicknameData.avatarSvg ? /* @__PURE__ */ jsx106(
|
|
22001
22007
|
"img",
|
|
22002
22008
|
{
|
|
22003
22009
|
src: nicknameData.avatarSvg,
|
|
@@ -22008,11 +22014,11 @@ function NicknameData(props) {
|
|
|
22008
22014
|
e.currentTarget.src = fallbackAssetImage_default;
|
|
22009
22015
|
}
|
|
22010
22016
|
}
|
|
22011
|
-
) : /* @__PURE__ */
|
|
22017
|
+
) : /* @__PURE__ */ jsx106("div", { className: "w-12 h-12 rounded-full bg-[var(--ui-kit-secondary)] flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ jsx106(AtSign2, { className: "w-5 h-5" }) }),
|
|
22012
22018
|
/* @__PURE__ */ jsxs95("div", { className: "flex flex-col gap-1", children: [
|
|
22013
22019
|
/* @__PURE__ */ jsxs95("div", { className: "flex items-center gap-[var(--ui-kit-gap)] text-[10px] text-[var(--ui-kit-bg-success)]", children: [
|
|
22014
|
-
/* @__PURE__ */
|
|
22015
|
-
/* @__PURE__ */
|
|
22020
|
+
/* @__PURE__ */ jsx106(CheckCircle24, { className: "w-4 h-4 flex-shrink-0" }),
|
|
22021
|
+
/* @__PURE__ */ jsx106("span", { children: nicknameData.handle })
|
|
22016
22022
|
] }),
|
|
22017
22023
|
nicknameData.fingerprint && /* @__PURE__ */ jsxs95(
|
|
22018
22024
|
"div",
|
|
@@ -22022,9 +22028,9 @@ function NicknameData(props) {
|
|
|
22022
22028
|
isFingerprintVerified ? "text-[var(--ui-kit-bg-success)]" : "text-[var(--ui-kit-bg-error)]"
|
|
22023
22029
|
),
|
|
22024
22030
|
children: [
|
|
22025
|
-
isFingerprintVerified ? /* @__PURE__ */
|
|
22026
|
-
/* @__PURE__ */
|
|
22027
|
-
/* @__PURE__ */
|
|
22031
|
+
isFingerprintVerified ? /* @__PURE__ */ jsx106(ShieldCheck2, { className: "w-4 h-4 flex-shrink-0" }) : /* @__PURE__ */ jsx106(ShieldAlert2, { className: "w-4 h-4 flex-shrink-0" }),
|
|
22032
|
+
/* @__PURE__ */ jsx106("span", { children: `${resolvedAddress.slice(0, 6)}...${resolvedAddress.slice(-4)} : ` }),
|
|
22033
|
+
/* @__PURE__ */ jsx106("span", { children: isFingerprintVerified ? "Verified" : "FAILED" })
|
|
22028
22034
|
]
|
|
22029
22035
|
}
|
|
22030
22036
|
)
|
|
@@ -22032,20 +22038,20 @@ function NicknameData(props) {
|
|
|
22032
22038
|
] });
|
|
22033
22039
|
if (isFrozen && !isResolving) {
|
|
22034
22040
|
return /* @__PURE__ */ jsxs95(Highlight, { type: "warning", className: "flex gap-[var(--ui-kit-gap)]", children: [
|
|
22035
|
-
/* @__PURE__ */
|
|
22036
|
-
/* @__PURE__ */
|
|
22041
|
+
/* @__PURE__ */ jsx106(AlertTriangle6, { className: "w-4 h-4" }),
|
|
22042
|
+
/* @__PURE__ */ jsx106("span", { children: "This handle is frozen. Proceed with caution." })
|
|
22037
22043
|
] });
|
|
22038
22044
|
}
|
|
22039
22045
|
if (isWalletNotSetup && !isResolving) {
|
|
22040
22046
|
return /* @__PURE__ */ jsxs95(Highlight, { type: "error", className: "flex gap-[var(--ui-kit-gap)]", children: [
|
|
22041
|
-
/* @__PURE__ */
|
|
22042
|
-
/* @__PURE__ */
|
|
22047
|
+
/* @__PURE__ */ jsx106(AlertCircle5, { className: "w-4 h-4" }),
|
|
22048
|
+
/* @__PURE__ */ jsx106("span", { children: "This user has not set up wallet yet" })
|
|
22043
22049
|
] });
|
|
22044
22050
|
}
|
|
22045
22051
|
if (isNotFound && !isResolving) {
|
|
22046
22052
|
return /* @__PURE__ */ jsxs95(Highlight, { type: "error", className: "flex gap-[var(--ui-kit-gap)]", children: [
|
|
22047
|
-
/* @__PURE__ */
|
|
22048
|
-
/* @__PURE__ */
|
|
22053
|
+
/* @__PURE__ */ jsx106(AlertCircle5, { className: "w-4 h-4" }),
|
|
22054
|
+
/* @__PURE__ */ jsx106("span", { children: "Nickname not found" })
|
|
22049
22055
|
] });
|
|
22050
22056
|
}
|
|
22051
22057
|
}
|
|
@@ -22070,7 +22076,7 @@ var init_components3 = __esm({
|
|
|
22070
22076
|
// src/internal/components/SendMenu/send/sendSteps/InputSendStep.tsx
|
|
22071
22077
|
import { AlertCircle as AlertCircle6, AtSign as AtSign3, CheckCircle2 as CheckCircle25, Loader as Loader31, Wallet2 as Wallet24 } from "lucide-react";
|
|
22072
22078
|
import { formatUnits as formatUnits10, isAddress as isAddress2 } from "viem";
|
|
22073
|
-
import { Fragment as
|
|
22079
|
+
import { Fragment as Fragment41, jsx as jsx107, jsxs as jsxs96 } from "react/jsx-runtime";
|
|
22074
22080
|
function InputSendStep(props) {
|
|
22075
22081
|
const {
|
|
22076
22082
|
erc3643Compliance,
|
|
@@ -22176,27 +22182,27 @@ function InputSendStep(props) {
|
|
|
22176
22182
|
setError(null);
|
|
22177
22183
|
return true;
|
|
22178
22184
|
};
|
|
22179
|
-
return /* @__PURE__ */ jsxs96(
|
|
22180
|
-
/* @__PURE__ */
|
|
22185
|
+
return /* @__PURE__ */ jsxs96(Fragment41, { children: [
|
|
22186
|
+
/* @__PURE__ */ jsx107("span", { className: "block text-[10px] text-[var(--ui-kit-fg-muted)]", children: t("passport:sendMenu.selectAsset") }),
|
|
22181
22187
|
/* @__PURE__ */ jsxs96(
|
|
22182
22188
|
Button,
|
|
22183
22189
|
{
|
|
22184
22190
|
disabled: isAssetsLoading,
|
|
22185
|
-
variant: "
|
|
22191
|
+
variant: "default",
|
|
22186
22192
|
size: "large",
|
|
22187
22193
|
onClick: () => setTxStep("select-asset"),
|
|
22188
22194
|
className: "justify-between",
|
|
22189
22195
|
children: [
|
|
22190
22196
|
selectedAsset ? /* @__PURE__ */ jsxs96("span", { className: "flex items-center gap-[var(--ui-kit-gap)]", children: [
|
|
22191
|
-
/* @__PURE__ */
|
|
22192
|
-
/* @__PURE__ */
|
|
22193
|
-
] }) : /* @__PURE__ */
|
|
22194
|
-
isAssetsLoading && /* @__PURE__ */
|
|
22197
|
+
/* @__PURE__ */ jsx107(AssetInputIcon, { asset: selectedAsset }),
|
|
22198
|
+
/* @__PURE__ */ jsx107("span", { children: (isNft ? selectedAsset.nftMetadata?.name || selectedAsset.symbol : selectedAsset.name).toUpperCase() })
|
|
22199
|
+
] }) : /* @__PURE__ */ jsx107("span", { className: "text-[var(--ui-kit-fg-muted)]", children: "No Asset Selected" }),
|
|
22200
|
+
isAssetsLoading && /* @__PURE__ */ jsx107(Loader31, { className: "w-4 h-4 animate-spin" })
|
|
22195
22201
|
]
|
|
22196
22202
|
}
|
|
22197
22203
|
),
|
|
22198
|
-
/* @__PURE__ */
|
|
22199
|
-
/* @__PURE__ */
|
|
22204
|
+
/* @__PURE__ */ jsx107("span", { className: "block text-[10px] text-[var(--ui-kit-fg-muted)]", children: t("passport:sendMenu.recipient") }),
|
|
22205
|
+
/* @__PURE__ */ jsx107(
|
|
22200
22206
|
Input,
|
|
22201
22207
|
{
|
|
22202
22208
|
Icon: isNicknameInput ? AtSign3 : Wallet24,
|
|
@@ -22205,12 +22211,12 @@ function InputSendStep(props) {
|
|
|
22205
22211
|
disabled: isAssetsLoading,
|
|
22206
22212
|
onChange: (e) => setRecipient(e.target.value),
|
|
22207
22213
|
placeholder: "0x... or @nickname",
|
|
22208
|
-
element: isNicknameInput && isResolving ? /* @__PURE__ */
|
|
22214
|
+
element: isNicknameInput && isResolving ? /* @__PURE__ */ jsx107(Loader31, { className: "w-4 h-4 animate-spin text-[var(--ui-kit-fg-muted)]" }) : null
|
|
22209
22215
|
}
|
|
22210
22216
|
),
|
|
22211
|
-
/* @__PURE__ */
|
|
22217
|
+
/* @__PURE__ */ jsx107(NicknameData, { resolvedNicknameData, isNicknameInput }),
|
|
22212
22218
|
/* @__PURE__ */ jsxs96("div", { className: "flex justify-between items-center text-[10px] text-[var(--ui-kit-fg-muted)]", children: [
|
|
22213
|
-
/* @__PURE__ */
|
|
22219
|
+
/* @__PURE__ */ jsx107("span", { className: "block ", children: isNft ? t("passport:common.asset") : t("passport:common.amount") }),
|
|
22214
22220
|
!isNft && selectedAsset && /* @__PURE__ */ jsxs96("span", { className: "block text-[10px]", children: [
|
|
22215
22221
|
t("passport:common.balance"),
|
|
22216
22222
|
" ",
|
|
@@ -22221,8 +22227,8 @@ function InputSendStep(props) {
|
|
|
22221
22227
|
] })
|
|
22222
22228
|
] })
|
|
22223
22229
|
] }),
|
|
22224
|
-
isNft && selectedAsset && /* @__PURE__ */
|
|
22225
|
-
!isNft && /* @__PURE__ */
|
|
22230
|
+
isNft && selectedAsset && /* @__PURE__ */ jsx107(NftDisplayCard, { asset: selectedAsset }),
|
|
22231
|
+
!isNft && /* @__PURE__ */ jsx107(
|
|
22226
22232
|
Input,
|
|
22227
22233
|
{
|
|
22228
22234
|
type: "number",
|
|
@@ -22230,29 +22236,29 @@ function InputSendStep(props) {
|
|
|
22230
22236
|
onChange: (e) => setAmount(e.target.value),
|
|
22231
22237
|
placeholder: "0.0",
|
|
22232
22238
|
step: "0.000001",
|
|
22233
|
-
Icon: () => /* @__PURE__ */
|
|
22239
|
+
Icon: () => /* @__PURE__ */ jsx107(AssetInputIcon, { asset: selectedAsset }),
|
|
22234
22240
|
className: "pb-[var(--ui-kit-pd)]",
|
|
22235
|
-
element: /* @__PURE__ */
|
|
22241
|
+
element: /* @__PURE__ */ jsx107(Button, { onClick: handleMaxAmount, variant: "ghost", size: "medium", className: "px-2", children: "MAX" })
|
|
22236
22242
|
}
|
|
22237
22243
|
),
|
|
22238
|
-
isSecurity && effectiveAddress && amount && /* @__PURE__ */
|
|
22244
|
+
isSecurity && effectiveAddress && amount && /* @__PURE__ */ jsx107(
|
|
22239
22245
|
Highlight,
|
|
22240
22246
|
{
|
|
22241
22247
|
type: isComplianceLoading ? "info" : erc3643CanTransfer ? "success" : "error",
|
|
22242
22248
|
className: "flex gap-[var(--ui-kit-gap)]",
|
|
22243
|
-
children: isComplianceLoading ? /* @__PURE__ */ jsxs96(
|
|
22244
|
-
/* @__PURE__ */
|
|
22245
|
-
/* @__PURE__ */
|
|
22246
|
-
] }) : erc3643CanTransfer ? /* @__PURE__ */ jsxs96(
|
|
22247
|
-
/* @__PURE__ */
|
|
22248
|
-
/* @__PURE__ */
|
|
22249
|
-
] }) : /* @__PURE__ */ jsxs96(
|
|
22250
|
-
/* @__PURE__ */
|
|
22251
|
-
/* @__PURE__ */
|
|
22249
|
+
children: isComplianceLoading ? /* @__PURE__ */ jsxs96(Fragment41, { children: [
|
|
22250
|
+
/* @__PURE__ */ jsx107(Loader31, { className: "h-4 w-4 animate-spin" }),
|
|
22251
|
+
/* @__PURE__ */ jsx107("span", { children: "Checking compliance..." })
|
|
22252
|
+
] }) : erc3643CanTransfer ? /* @__PURE__ */ jsxs96(Fragment41, { children: [
|
|
22253
|
+
/* @__PURE__ */ jsx107(CheckCircle25, { className: "h-4 w-4" }),
|
|
22254
|
+
/* @__PURE__ */ jsx107("span", { children: "Transfer compliant" })
|
|
22255
|
+
] }) : /* @__PURE__ */ jsxs96(Fragment41, { children: [
|
|
22256
|
+
/* @__PURE__ */ jsx107(AlertCircle6, { className: "h-4 w-4" }),
|
|
22257
|
+
/* @__PURE__ */ jsx107("span", { children: complianceError || "Transfer not allowed" })
|
|
22252
22258
|
] })
|
|
22253
22259
|
}
|
|
22254
22260
|
),
|
|
22255
|
-
/* @__PURE__ */
|
|
22261
|
+
/* @__PURE__ */ jsx107(
|
|
22256
22262
|
Button,
|
|
22257
22263
|
{
|
|
22258
22264
|
size: "large",
|
|
@@ -22284,7 +22290,7 @@ var init_InputSendStep = __esm({
|
|
|
22284
22290
|
|
|
22285
22291
|
// src/internal/components/SendMenu/send/sendSteps/ConfirmSendStep.tsx
|
|
22286
22292
|
import { AlertTriangle as AlertTriangle7, AtSign as AtSign4, Loader as Loader32, Shield as Shield2, ShieldAlert as ShieldAlert3, ShieldCheck as ShieldCheck3 } from "lucide-react";
|
|
22287
|
-
import { Fragment as
|
|
22293
|
+
import { Fragment as Fragment42, jsx as jsx108, jsxs as jsxs97 } from "react/jsx-runtime";
|
|
22288
22294
|
function ConfirmSendStep(props) {
|
|
22289
22295
|
const {
|
|
22290
22296
|
sendTransaction,
|
|
@@ -22321,14 +22327,14 @@ function ConfirmSendStep(props) {
|
|
|
22321
22327
|
setTxStep("input");
|
|
22322
22328
|
}
|
|
22323
22329
|
};
|
|
22324
|
-
return /* @__PURE__ */ jsxs97(
|
|
22330
|
+
return /* @__PURE__ */ jsxs97(Fragment42, { children: [
|
|
22325
22331
|
isNicknameInput && isFrozen && /* @__PURE__ */ jsxs97(Highlight, { type: "warning", className: "flex gap-[var(--ui-kit-gap)]", children: [
|
|
22326
|
-
/* @__PURE__ */
|
|
22327
|
-
/* @__PURE__ */
|
|
22332
|
+
/* @__PURE__ */ jsx108(AlertTriangle7, { className: "h-4 w-4" }),
|
|
22333
|
+
/* @__PURE__ */ jsx108("span", { children: "This handle is frozen. Proceed with caution." })
|
|
22328
22334
|
] }),
|
|
22329
22335
|
isSecurity && erc3643CanTransfer && /* @__PURE__ */ jsxs97(Highlight, { type: "success", className: "flex gap-[var(--ui-kit-gap)]", children: [
|
|
22330
|
-
/* @__PURE__ */
|
|
22331
|
-
/* @__PURE__ */
|
|
22336
|
+
/* @__PURE__ */ jsx108(Shield2, { className: "h-4 w-4 flex-shrink-0" }),
|
|
22337
|
+
/* @__PURE__ */ jsx108("span", { children: "Security token compliance verified" })
|
|
22332
22338
|
] }),
|
|
22333
22339
|
!isNft && /* @__PURE__ */ jsxs97("div", { className: "flex justify-between leading-5", children: [
|
|
22334
22340
|
/* @__PURE__ */ jsxs97("span", { className: "text-[10px] text-[var(--ui-kit-fg-muted)]", children: [
|
|
@@ -22341,18 +22347,18 @@ function ConfirmSendStep(props) {
|
|
|
22341
22347
|
selectedAsset.symbol
|
|
22342
22348
|
] })
|
|
22343
22349
|
] }),
|
|
22344
|
-
/* @__PURE__ */
|
|
22350
|
+
/* @__PURE__ */ jsx108(Highlight, { type: "info", className: "flex flex-col gap-[var(--ui-kit-gap)]", children: isNicknameInput && nicknameData ? /* @__PURE__ */ jsxs97(Fragment42, { children: [
|
|
22345
22351
|
/* @__PURE__ */ jsxs97("div", { className: "flex items-start gap-[var(--ui-kit-gap)]", children: [
|
|
22346
|
-
nicknameData.avatarSvg ? /* @__PURE__ */
|
|
22352
|
+
nicknameData.avatarSvg ? /* @__PURE__ */ jsx108(
|
|
22347
22353
|
"img",
|
|
22348
22354
|
{
|
|
22349
22355
|
src: nicknameData.avatarSvg,
|
|
22350
22356
|
alt: nicknameData.handle,
|
|
22351
22357
|
className: "w-12 h-12 rounded-full object-cover flex-shrink-0"
|
|
22352
22358
|
}
|
|
22353
|
-
) : /* @__PURE__ */
|
|
22359
|
+
) : /* @__PURE__ */ jsx108("div", { className: "w-12 h-12 rounded-full bg-[var(--ui-kit-secondary)] flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ jsx108(AtSign4, { className: "w-6 h-6" }) }),
|
|
22354
22360
|
/* @__PURE__ */ jsxs97("div", { className: "flex flex-1 flex-col gap-1", children: [
|
|
22355
|
-
/* @__PURE__ */
|
|
22361
|
+
/* @__PURE__ */ jsx108("span", { className: "font-medium text-[14px] leading-4 truncate", children: nicknameData.handle }),
|
|
22356
22362
|
nicknameData.fingerprint && /* @__PURE__ */ jsxs97(
|
|
22357
22363
|
"span",
|
|
22358
22364
|
{
|
|
@@ -22361,23 +22367,23 @@ function ConfirmSendStep(props) {
|
|
|
22361
22367
|
isFingerprintVerified ? "text-[var(--ui-kit-bg-success)]" : "text-[var(--ui-kit-bg-error)]"
|
|
22362
22368
|
),
|
|
22363
22369
|
children: [
|
|
22364
|
-
isFingerprintVerified ? /* @__PURE__ */
|
|
22370
|
+
isFingerprintVerified ? /* @__PURE__ */ jsx108(ShieldCheck3, { className: "w-4 h-4 flex-shrink-0" }) : /* @__PURE__ */ jsx108(ShieldAlert3, { className: "w-4 h-4 flex-shrink-0" }),
|
|
22365
22371
|
/* @__PURE__ */ jsxs97("span", { children: [
|
|
22366
22372
|
"Fingerprint: ",
|
|
22367
22373
|
nicknameData.fingerprint
|
|
22368
22374
|
] }),
|
|
22369
|
-
/* @__PURE__ */
|
|
22375
|
+
/* @__PURE__ */ jsx108("span", { children: isFingerprintVerified ? "Verified" : "FAILED" })
|
|
22370
22376
|
]
|
|
22371
22377
|
}
|
|
22372
22378
|
),
|
|
22373
|
-
/* @__PURE__ */
|
|
22379
|
+
/* @__PURE__ */ jsx108("span", { className: "text-[10px] text-[var(--ui-kit-fg-muted)]", children: `${resolvedAddress.slice(0, 6)}...${resolvedAddress.slice(-4)} : ` })
|
|
22374
22380
|
] })
|
|
22375
22381
|
] }),
|
|
22376
22382
|
/* @__PURE__ */ jsxs97("div", { className: "border-t border-[var(--ui-kit-bd)] py-[var(--ui-kit-pd)] text-[10px]", children: [
|
|
22377
22383
|
isNft ? /* @__PURE__ */ jsxs97("div", { className: "flex justify-between items-start", children: [
|
|
22378
|
-
/* @__PURE__ */
|
|
22384
|
+
/* @__PURE__ */ jsx108("span", { className: "text-[var(--ui-kit-fg-muted)]", children: "NFT:" }),
|
|
22379
22385
|
/* @__PURE__ */ jsxs97("div", { className: "text-right", children: [
|
|
22380
|
-
/* @__PURE__ */
|
|
22386
|
+
/* @__PURE__ */ jsx108("span", { className: "font-semibold block", children: selectedAsset.nftMetadata?.name || selectedAsset.name }),
|
|
22381
22387
|
selectedAsset.tokenId && /* @__PURE__ */ jsxs97("span", { className: "text-[10px] text-[var(--ui-kit-fg-muted)]", children: [
|
|
22382
22388
|
"#",
|
|
22383
22389
|
selectedAsset.tokenId.length > 10 ? `${selectedAsset.tokenId.slice(0, 8)}...` : selectedAsset.tokenId
|
|
@@ -22386,7 +22392,7 @@ function ConfirmSendStep(props) {
|
|
|
22386
22392
|
] }) : (
|
|
22387
22393
|
// Fungible token details
|
|
22388
22394
|
/* @__PURE__ */ jsxs97("div", { className: "flex justify-between leading-5 gap-[var(--ui-kit-gap)]", children: [
|
|
22389
|
-
/* @__PURE__ */
|
|
22395
|
+
/* @__PURE__ */ jsx108("span", { className: "text-[10px] text-[var(--ui-kit-fg-muted)]", children: "Amount:" }),
|
|
22390
22396
|
/* @__PURE__ */ jsxs97("span", { className: "text-sm font-bold", children: [
|
|
22391
22397
|
amount,
|
|
22392
22398
|
" ",
|
|
@@ -22395,23 +22401,23 @@ function ConfirmSendStep(props) {
|
|
|
22395
22401
|
] })
|
|
22396
22402
|
),
|
|
22397
22403
|
/* @__PURE__ */ jsxs97("div", { className: "flex justify-between leading-5 gap-[var(--ui-kit-gap)]", children: [
|
|
22398
|
-
/* @__PURE__ */
|
|
22399
|
-
/* @__PURE__ */
|
|
22404
|
+
/* @__PURE__ */ jsx108("span", { className: "text-[10px] text-[var(--ui-kit-fg-muted)]", children: "Network:" }),
|
|
22405
|
+
/* @__PURE__ */ jsx108("span", { className: "text-sm font-bold", children: chainConfig.name })
|
|
22400
22406
|
] })
|
|
22401
22407
|
] })
|
|
22402
|
-
] }) : /* @__PURE__ */ jsxs97(
|
|
22403
|
-
/* @__PURE__ */
|
|
22408
|
+
] }) : /* @__PURE__ */ jsxs97(Fragment42, { children: [
|
|
22409
|
+
/* @__PURE__ */ jsx108("h3", { className: "font-medium mb-3 text-[var(--ui-kit-fg)]", children: "Transaction Details" }),
|
|
22404
22410
|
/* @__PURE__ */ jsxs97("div", { className: "space-y-2 text-sm text-[var(--ui-kit-fg)]", children: [
|
|
22405
22411
|
/* @__PURE__ */ jsxs97("div", { className: "flex justify-between", children: [
|
|
22406
|
-
/* @__PURE__ */
|
|
22407
|
-
/* @__PURE__ */
|
|
22412
|
+
/* @__PURE__ */ jsx108("span", { className: "text-[var(--ui-kit-fg-muted)]", children: "To:" }),
|
|
22413
|
+
/* @__PURE__ */ jsx108("span", { className: "font-mono text-xs", children: `${effectiveAddress.slice(0, 6)}...${effectiveAddress.slice(-4)}` })
|
|
22408
22414
|
] }),
|
|
22409
22415
|
isNft ? (
|
|
22410
22416
|
// NFT details
|
|
22411
|
-
/* @__PURE__ */
|
|
22412
|
-
/* @__PURE__ */
|
|
22417
|
+
/* @__PURE__ */ jsx108(Fragment42, { children: /* @__PURE__ */ jsxs97("div", { className: "flex justify-between items-start", children: [
|
|
22418
|
+
/* @__PURE__ */ jsx108("span", { className: "text-[var(--ui-kit-fg-muted)]", children: "NFT:" }),
|
|
22413
22419
|
/* @__PURE__ */ jsxs97("div", { className: "text-right", children: [
|
|
22414
|
-
/* @__PURE__ */
|
|
22420
|
+
/* @__PURE__ */ jsx108("span", { className: "font-semibold block", children: selectedAsset.nftMetadata?.name || selectedAsset.name }),
|
|
22415
22421
|
selectedAsset.tokenId && /* @__PURE__ */ jsxs97("span", { className: "text-xs text-[var(--ui-kit-fg-muted)]", children: [
|
|
22416
22422
|
"#",
|
|
22417
22423
|
selectedAsset.tokenId.length > 10 ? `${selectedAsset.tokenId.slice(0, 8)}...` : selectedAsset.tokenId
|
|
@@ -22421,7 +22427,7 @@ function ConfirmSendStep(props) {
|
|
|
22421
22427
|
) : (
|
|
22422
22428
|
// Fungible token details
|
|
22423
22429
|
/* @__PURE__ */ jsxs97("div", { className: "flex justify-between leading-5 gap-[var(--ui-kit-gap)]", children: [
|
|
22424
|
-
/* @__PURE__ */
|
|
22430
|
+
/* @__PURE__ */ jsx108("span", { className: "text-[var(--ui-kit-fg-muted)]", children: "Amount:" }),
|
|
22425
22431
|
/* @__PURE__ */ jsxs97("span", { className: "font-semibold", children: [
|
|
22426
22432
|
amount,
|
|
22427
22433
|
" ",
|
|
@@ -22430,13 +22436,13 @@ function ConfirmSendStep(props) {
|
|
|
22430
22436
|
] })
|
|
22431
22437
|
),
|
|
22432
22438
|
/* @__PURE__ */ jsxs97("div", { className: "flex justify-between leading-5 gap-[var(--ui-kit-gap)]", children: [
|
|
22433
|
-
/* @__PURE__ */
|
|
22434
|
-
/* @__PURE__ */
|
|
22439
|
+
/* @__PURE__ */ jsx108("span", { className: "text-[var(--ui-kit-fg-muted)]", children: "Network:" }),
|
|
22440
|
+
/* @__PURE__ */ jsx108("span", { children: chainConfig.name })
|
|
22435
22441
|
] })
|
|
22436
22442
|
] })
|
|
22437
22443
|
] }) }),
|
|
22438
22444
|
/* @__PURE__ */ jsxs97(Button, { onClick: handleConfirm, disabled: isTransactionPending, className: "w-full", size: "large", children: [
|
|
22439
|
-
isTransactionPending && /* @__PURE__ */
|
|
22445
|
+
isTransactionPending && /* @__PURE__ */ jsx108(Loader32, { className: "h-4 w-4 animate-spin" }),
|
|
22440
22446
|
"CONFIRM"
|
|
22441
22447
|
] })
|
|
22442
22448
|
] });
|
|
@@ -22463,9 +22469,9 @@ var init_sendSteps = __esm({
|
|
|
22463
22469
|
|
|
22464
22470
|
// src/internal/components/SendMenu/send/SendMenu.tsx
|
|
22465
22471
|
import { CheckCircle2 as CheckCircle26, Loader as Loader33 } from "lucide-react";
|
|
22466
|
-
import { useEffect as useEffect42, useMemo as
|
|
22472
|
+
import { useEffect as useEffect42, useMemo as useMemo10 } from "react";
|
|
22467
22473
|
import { parseUnits as parseUnits2 } from "viem";
|
|
22468
|
-
import { Fragment as
|
|
22474
|
+
import { Fragment as Fragment43, jsx as jsx109, jsxs as jsxs98 } from "react/jsx-runtime";
|
|
22469
22475
|
function SendMenu() {
|
|
22470
22476
|
const address = useSession((st) => st.address);
|
|
22471
22477
|
const activeChainId = useSession((st) => st.activeChainId);
|
|
@@ -22524,7 +22530,7 @@ function SendMenu() {
|
|
|
22524
22530
|
const isNicknameInput = looksLikeNickname(recipient);
|
|
22525
22531
|
const resolvedNicknameData = useNicknameResolve(recipient, { enabled: isNicknameInput, chainId: activeChainId });
|
|
22526
22532
|
const effectiveAddress = isNicknameInput ? resolvedNicknameData?.resolvedAddress : recipient;
|
|
22527
|
-
const complianceAmount =
|
|
22533
|
+
const complianceAmount = useMemo10(() => {
|
|
22528
22534
|
if (!isSecurity || !amount || !selectedAsset) return void 0;
|
|
22529
22535
|
try {
|
|
22530
22536
|
return parseUnits2(amount, selectedAsset.decimals || 18);
|
|
@@ -22562,9 +22568,9 @@ function SendMenu() {
|
|
|
22562
22568
|
break;
|
|
22563
22569
|
}
|
|
22564
22570
|
}, [txStep, selectedAsset, isNft, t]);
|
|
22565
|
-
return /* @__PURE__ */ jsxs98(
|
|
22566
|
-
txStep === "select-asset" && /* @__PURE__ */
|
|
22567
|
-
txStep === "input" && /* @__PURE__ */
|
|
22571
|
+
return /* @__PURE__ */ jsxs98(Fragment43, { children: [
|
|
22572
|
+
txStep === "select-asset" && /* @__PURE__ */ jsx109(AssetList, { assets }),
|
|
22573
|
+
txStep === "input" && /* @__PURE__ */ jsx109(
|
|
22568
22574
|
InputSendStep,
|
|
22569
22575
|
{
|
|
22570
22576
|
erc3643Compliance,
|
|
@@ -22573,7 +22579,7 @@ function SendMenu() {
|
|
|
22573
22579
|
isAssetsLoading
|
|
22574
22580
|
}
|
|
22575
22581
|
),
|
|
22576
|
-
txStep === "confirm" && effectiveAddress && selectedAsset && /* @__PURE__ */
|
|
22582
|
+
txStep === "confirm" && effectiveAddress && selectedAsset && /* @__PURE__ */ jsx109(
|
|
22577
22583
|
ConfirmSendStep,
|
|
22578
22584
|
{
|
|
22579
22585
|
sendTransaction,
|
|
@@ -22585,21 +22591,21 @@ function SendMenu() {
|
|
|
22585
22591
|
}
|
|
22586
22592
|
),
|
|
22587
22593
|
txStep === "pending" && /* @__PURE__ */ jsxs98(Highlight, { type: "info", className: "flex gap-[var(--ui-kit-gap)]", children: [
|
|
22588
|
-
/* @__PURE__ */
|
|
22594
|
+
/* @__PURE__ */ jsx109(Loader33, { className: "h-4 w-4 animate-spin" }),
|
|
22589
22595
|
/* @__PURE__ */ jsxs98("span", { className: "flex-1", children: [
|
|
22590
|
-
/* @__PURE__ */
|
|
22591
|
-
/* @__PURE__ */
|
|
22596
|
+
/* @__PURE__ */ jsx109("span", { className: "block leading-4 font-semibold", children: t("passport:sendMenu.pendingStep") }),
|
|
22597
|
+
/* @__PURE__ */ jsx109("span", { children: t("passport:sendMenu.pendingStepMsg") })
|
|
22592
22598
|
] })
|
|
22593
22599
|
] }),
|
|
22594
|
-
txStep === "success" && userOpHash && /* @__PURE__ */ jsxs98(
|
|
22600
|
+
txStep === "success" && userOpHash && /* @__PURE__ */ jsxs98(Fragment43, { children: [
|
|
22595
22601
|
/* @__PURE__ */ jsxs98(Highlight, { type: "success", className: "flex gap-[var(--ui-kit-gap)]", children: [
|
|
22596
|
-
/* @__PURE__ */
|
|
22602
|
+
/* @__PURE__ */ jsx109(CheckCircle26, { className: "h-4 w-4" }),
|
|
22597
22603
|
/* @__PURE__ */ jsxs98("span", { className: "flex-1", children: [
|
|
22598
|
-
/* @__PURE__ */
|
|
22599
|
-
/* @__PURE__ */
|
|
22604
|
+
/* @__PURE__ */ jsx109("span", { className: "block leading-4 font-semibold", children: "Transaction Initiated" }),
|
|
22605
|
+
/* @__PURE__ */ jsx109("span", { children: "Your transaction is being processed and might take some time to accomplish. Visit your transaction history for details." })
|
|
22600
22606
|
] })
|
|
22601
22607
|
] }),
|
|
22602
|
-
/* @__PURE__ */
|
|
22608
|
+
/* @__PURE__ */ jsx109(Button, { onClick: () => setPage("transactions" /* TRANSACTIONS */), className: "w-full", size: "large", children: "TRANSACTION HISTORY" })
|
|
22603
22609
|
] })
|
|
22604
22610
|
] });
|
|
22605
22611
|
}
|
|
@@ -22633,7 +22639,7 @@ var init_send = __esm({
|
|
|
22633
22639
|
// src/internal/components/SendMenu/SendFlowSelector.tsx
|
|
22634
22640
|
import { ArrowLeft as ArrowLeft19, ArrowRightIcon as ArrowRightIcon2, ArrowRightLeftIcon as ArrowRightLeftIcon2, InfoIcon as InfoIcon4 } from "lucide-react";
|
|
22635
22641
|
import { useEffect as useEffect43 } from "react";
|
|
22636
|
-
import { jsx as
|
|
22642
|
+
import { jsx as jsx110, jsxs as jsxs99 } from "react/jsx-runtime";
|
|
22637
22643
|
function SelectorFlowButtons() {
|
|
22638
22644
|
const { t } = useT();
|
|
22639
22645
|
const selectorFlow = useFlowSelectorStore((st) => st.flow);
|
|
@@ -22654,14 +22660,14 @@ function SelectorFlowButtons() {
|
|
|
22654
22660
|
Button,
|
|
22655
22661
|
{
|
|
22656
22662
|
size: "medium",
|
|
22657
|
-
variant: selectorFlow === "send" ? "
|
|
22663
|
+
variant: selectorFlow === "send" ? "default" : "ghost",
|
|
22658
22664
|
className: "flex-1 uppercase",
|
|
22659
22665
|
onClick: () => {
|
|
22660
22666
|
useFlowSelectorStore.getState().setError(null);
|
|
22661
22667
|
useFlowSelectorStore.getState().setFlow("send");
|
|
22662
22668
|
},
|
|
22663
22669
|
children: [
|
|
22664
|
-
/* @__PURE__ */
|
|
22670
|
+
/* @__PURE__ */ jsx110(ArrowRightIcon2, { className: "h-4 w-4" }),
|
|
22665
22671
|
t("passport:sendMenu.actions.send")
|
|
22666
22672
|
]
|
|
22667
22673
|
}
|
|
@@ -22670,14 +22676,14 @@ function SelectorFlowButtons() {
|
|
|
22670
22676
|
Button,
|
|
22671
22677
|
{
|
|
22672
22678
|
size: "medium",
|
|
22673
|
-
variant: selectorFlow === "bridge" ? "
|
|
22679
|
+
variant: selectorFlow === "bridge" ? "default" : "ghost",
|
|
22674
22680
|
className: "flex-1 uppercase",
|
|
22675
22681
|
onClick: () => {
|
|
22676
22682
|
useFlowSelectorStore.getState().setError(null);
|
|
22677
22683
|
useFlowSelectorStore.getState().setFlow("bridge");
|
|
22678
22684
|
},
|
|
22679
22685
|
children: [
|
|
22680
|
-
/* @__PURE__ */
|
|
22686
|
+
/* @__PURE__ */ jsx110(ArrowRightLeftIcon2, { className: "h-4 w-4" }),
|
|
22681
22687
|
t("passport:bridgeMenu.actions.bridge")
|
|
22682
22688
|
]
|
|
22683
22689
|
}
|
|
@@ -22701,7 +22707,7 @@ function SendFlowSelector() {
|
|
|
22701
22707
|
},
|
|
22702
22708
|
[]
|
|
22703
22709
|
);
|
|
22704
|
-
return /* @__PURE__ */
|
|
22710
|
+
return /* @__PURE__ */ jsx110(
|
|
22705
22711
|
"div",
|
|
22706
22712
|
{
|
|
22707
22713
|
style: {
|
|
@@ -22712,7 +22718,7 @@ function SendFlowSelector() {
|
|
|
22712
22718
|
children: /* @__PURE__ */ jsxs99(Expandable, { isExpanded: true, contentClassName: "w-full flex flex-col gap-[var(--ui-kit-gap)]", children: [
|
|
22713
22719
|
/* @__PURE__ */ jsxs99("div", { className: "flex items-center justify-between", children: [
|
|
22714
22720
|
/* @__PURE__ */ jsxs99("div", { className: "flex items-center gap-[var(--ui-kit-gap)]", children: [
|
|
22715
|
-
/* @__PURE__ */
|
|
22721
|
+
/* @__PURE__ */ jsx110(
|
|
22716
22722
|
Button,
|
|
22717
22723
|
{
|
|
22718
22724
|
variant: "ghost",
|
|
@@ -22725,7 +22731,7 @@ function SendFlowSelector() {
|
|
|
22725
22731
|
switch (bridgeStep) {
|
|
22726
22732
|
case "select":
|
|
22727
22733
|
return setPage("main-menu" /* MAIN_MENU */);
|
|
22728
|
-
//
|
|
22734
|
+
// case ''
|
|
22729
22735
|
case "tx-history-details":
|
|
22730
22736
|
return setBridgeStep("tx-history");
|
|
22731
22737
|
default:
|
|
@@ -22742,21 +22748,21 @@ function SendFlowSelector() {
|
|
|
22742
22748
|
}
|
|
22743
22749
|
}
|
|
22744
22750
|
},
|
|
22745
|
-
children: /* @__PURE__ */
|
|
22751
|
+
children: /* @__PURE__ */ jsx110(ArrowLeft19, { className: "h-4 w-4" })
|
|
22746
22752
|
}
|
|
22747
22753
|
),
|
|
22748
|
-
/* @__PURE__ */
|
|
22754
|
+
/* @__PURE__ */ jsx110("span", { className: "text-xl font-semibold", children: menuTitle })
|
|
22749
22755
|
] }),
|
|
22750
|
-
/* @__PURE__ */
|
|
22756
|
+
/* @__PURE__ */ jsx110(BridgeHistorySwitch, {})
|
|
22751
22757
|
] }),
|
|
22752
|
-
/* @__PURE__ */
|
|
22758
|
+
/* @__PURE__ */ jsx110(SelectorFlowButtons, {}),
|
|
22753
22759
|
SELECTOR_FLOW[selectorFlow],
|
|
22754
22760
|
error && /* @__PURE__ */ jsxs99(Highlight, { type: "error", className: "w-full flex flex-col gap-[var(--ui-kit-gap)]", children: [
|
|
22755
22761
|
/* @__PURE__ */ jsxs99("div", { className: "w-full flex gap-[var(--ui-kit-gap)]", children: [
|
|
22756
|
-
/* @__PURE__ */
|
|
22757
|
-
/* @__PURE__ */
|
|
22762
|
+
/* @__PURE__ */ jsx110(InfoIcon4, { className: "h-4 w-4 flex-none" }),
|
|
22763
|
+
/* @__PURE__ */ jsx110("span", { children: error })
|
|
22758
22764
|
] }),
|
|
22759
|
-
/* @__PURE__ */
|
|
22765
|
+
/* @__PURE__ */ jsx110(
|
|
22760
22766
|
Button,
|
|
22761
22767
|
{
|
|
22762
22768
|
variant: "default",
|
|
@@ -22767,7 +22773,7 @@ function SendFlowSelector() {
|
|
|
22767
22773
|
}
|
|
22768
22774
|
)
|
|
22769
22775
|
] }),
|
|
22770
|
-
/* @__PURE__ */
|
|
22776
|
+
/* @__PURE__ */ jsx110("div", {}, renderKey)
|
|
22771
22777
|
] })
|
|
22772
22778
|
}
|
|
22773
22779
|
);
|
|
@@ -22786,8 +22792,8 @@ var init_SendFlowSelector = __esm({
|
|
|
22786
22792
|
init_send();
|
|
22787
22793
|
init_useFlowSelector();
|
|
22788
22794
|
SELECTOR_FLOW = {
|
|
22789
|
-
send: /* @__PURE__ */
|
|
22790
|
-
bridge: /* @__PURE__ */
|
|
22795
|
+
send: /* @__PURE__ */ jsx110(SendMenu, {}),
|
|
22796
|
+
bridge: /* @__PURE__ */ jsx110(HyperlaneBridge, {})
|
|
22791
22797
|
};
|
|
22792
22798
|
}
|
|
22793
22799
|
});
|
|
@@ -22841,10 +22847,10 @@ var init_pro_mode = __esm({
|
|
|
22841
22847
|
});
|
|
22842
22848
|
|
|
22843
22849
|
// src/internal/assets/KycIcon.tsx
|
|
22844
|
-
import { jsx as
|
|
22850
|
+
import { jsx as jsx111 } from "react/jsx-runtime";
|
|
22845
22851
|
function KycIcon(props) {
|
|
22846
22852
|
const { width = "24", height = "24", ...rest } = props;
|
|
22847
|
-
return /* @__PURE__ */
|
|
22853
|
+
return /* @__PURE__ */ jsx111("svg", { ...rest, width, height, viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ jsx111(
|
|
22848
22854
|
"path",
|
|
22849
22855
|
{
|
|
22850
22856
|
d: "M12 18.5455C10.1727 18.5455 8.625 17.9114 7.35682 16.6432C6.08864 15.375 5.45455 13.8273 5.45455 12C5.45455 10.1727 6.08864 8.625 7.35682 7.35682C8.625 6.08864 10.1727 5.45455 12 5.45455C13.8273 5.45455 15.375 6.08864 16.6432 7.35682C17.9114 8.625 18.5455 10.1727 18.5455 12C18.5455 13.8273 17.9114 15.375 16.6432 16.6432C15.375 17.9114 13.8273 18.5455 12 18.5455ZM12 16.9091C13.3636 16.9091 14.5227 16.4318 15.4773 15.4773C16.4318 14.5227 16.9091 13.3636 16.9091 12C16.9091 11.7682 16.892 11.5398 16.858 11.3148C16.8239 11.0898 16.7727 10.8682 16.7045 10.65C16.5 10.6909 16.2955 10.7216 16.0909 10.742C15.8864 10.7625 15.6818 10.7727 15.4773 10.7727C14.6182 10.7727 13.8 10.6091 13.0227 10.2818C12.2455 9.95455 11.55 9.47727 10.9364 8.85C10.5545 9.62727 10.0295 10.3023 9.36136 10.875C8.69318 11.4477 7.93636 11.8636 7.09091 12.1227C7.13182 13.4591 7.62614 14.5909 8.57386 15.5182C9.52159 16.4455 10.6636 16.9091 12 16.9091ZM7.41818 10.2409C8.01818 9.92727 8.475 9.5625 8.78864 9.14659C9.10227 8.73068 9.40909 8.23636 9.70909 7.66364C9.19091 7.93636 8.73409 8.29432 8.33864 8.7375C7.94318 9.18068 7.63636 9.68182 7.41818 10.2409ZM9.95455 13.6364C9.72273 13.6364 9.52841 13.558 9.37159 13.4011C9.21477 13.2443 9.13636 13.05 9.13636 12.8182C9.13636 12.5864 9.21477 12.392 9.37159 12.2352C9.52841 12.0784 9.72273 12 9.95455 12C10.1864 12 10.3807 12.0784 10.5375 12.2352C10.6943 12.392 10.7727 12.5864 10.7727 12.8182C10.7727 13.05 10.6943 13.2443 10.5375 13.4011C10.3807 13.558 10.1864 13.6364 9.95455 13.6364ZM15.4773 9.13636H15.7227C15.8045 9.13636 15.8864 9.12955 15.9682 9.11591C15.5182 8.50227 14.9489 8.01136 14.2602 7.64318C13.5716 7.275 12.8182 7.09091 12 7.09091H11.7545C11.6727 7.09091 11.5977 7.09773 11.5295 7.11136C12.0614 7.725 12.6239 8.21591 13.217 8.58409C13.8102 8.95227 14.5636 9.13636 15.4773 9.13636ZM14.0455 13.6364C13.8136 13.6364 13.6193 13.558 13.4625 13.4011C13.3057 13.2443 13.2273 13.05 13.2273 12.8182C13.2273 12.5864 13.3057 12.392 13.4625 12.2352C13.6193 12.0784 13.8136 12 14.0455 12C14.2773 12 14.4716 12.0784 14.6284 12.2352C14.7852 12.392 14.8636 12.5864 14.8636 12.8182C14.8636 13.05 14.7852 13.2443 14.6284 13.4011C14.4716 13.558 14.2773 13.6364 14.0455 13.6364ZM3 7.09091V4.63636C3 4.18636 3.16023 3.80114 3.48068 3.48068C3.80114 3.16023 4.18636 3 4.63636 3H7.09091V4.63636H4.63636V7.09091H3ZM7.09091 21H4.63636C4.18636 21 3.80114 20.8398 3.48068 20.5193C3.16023 20.1989 3 19.8136 3 19.3636V16.9091H4.63636V19.3636H7.09091V21ZM16.9091 21V19.3636H19.3636V16.9091H21V19.3636C21 19.8136 20.8398 20.1989 20.5193 20.5193C20.1989 20.8398 19.8136 21 19.3636 21H16.9091ZM19.3636 7.09091V4.63636H16.9091V3H19.3636C19.8136 3 20.1989 3.16023 20.5193 3.48068C20.8398 3.80114 21 4.18636 21 4.63636V7.09091H19.3636Z",
|
|
@@ -22879,7 +22885,7 @@ var init_constants7 = __esm({
|
|
|
22879
22885
|
import { useQuery as useQuery24 } from "@tanstack/react-query";
|
|
22880
22886
|
import { ArrowLeft as ArrowLeft20, HardDrive as HardDrive3 } from "lucide-react";
|
|
22881
22887
|
import { useEffect as useEffect44 } from "react";
|
|
22882
|
-
import { jsx as
|
|
22888
|
+
import { jsx as jsx112, jsxs as jsxs100 } from "react/jsx-runtime";
|
|
22883
22889
|
function useSettingsButtons() {
|
|
22884
22890
|
const config = useProviderConfig().config;
|
|
22885
22891
|
const maxScrollHeight = useLayoutStore((st) => st.maxScrollHeight);
|
|
@@ -22936,10 +22942,10 @@ function SettingsMenu() {
|
|
|
22936
22942
|
className: "list-scrollbar-y w-full p-[var(--ui-kit-pd)] flex flex-col gap-[var(--ui-kit-gap)]",
|
|
22937
22943
|
children: [
|
|
22938
22944
|
/* @__PURE__ */ jsxs100("div", { className: "flex items-center gap-[var(--ui-kit-gap)]", children: [
|
|
22939
|
-
/* @__PURE__ */
|
|
22940
|
-
/* @__PURE__ */
|
|
22945
|
+
/* @__PURE__ */ jsx112(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage("main-menu" /* MAIN_MENU */), children: /* @__PURE__ */ jsx112(ArrowLeft20, { className: "h-4 w-4" }) }),
|
|
22946
|
+
/* @__PURE__ */ jsx112("span", { className: "text-xl font-semibold", children: t("passport:common.settings") })
|
|
22941
22947
|
] }),
|
|
22942
|
-
/* @__PURE__ */
|
|
22948
|
+
/* @__PURE__ */ jsx112("div", { className: "w-full flex flex-col gap-[var(--ui-kit-gap)]", children: settingsButtons.map((el) => ({ ...el, onClick: () => setPage(el.id) })).map(({ id, name, Icon: Icon2, onClick }) => /* @__PURE__ */ jsxs100(
|
|
22943
22949
|
Button,
|
|
22944
22950
|
{
|
|
22945
22951
|
variant: "outline",
|
|
@@ -22951,8 +22957,8 @@ function SettingsMenu() {
|
|
|
22951
22957
|
highlightedKeys.includes(id) && "animate-glow-warning"
|
|
22952
22958
|
),
|
|
22953
22959
|
children: [
|
|
22954
|
-
/* @__PURE__ */
|
|
22955
|
-
/* @__PURE__ */
|
|
22960
|
+
/* @__PURE__ */ jsx112(Icon2, { className: "w-4 h-4" }),
|
|
22961
|
+
/* @__PURE__ */ jsx112("span", { children: t(name) })
|
|
22956
22962
|
]
|
|
22957
22963
|
},
|
|
22958
22964
|
id
|
|
@@ -22987,27 +22993,27 @@ var init_SettingsMenu2 = __esm({
|
|
|
22987
22993
|
|
|
22988
22994
|
// src/internal/components/TermsOfService.tsx
|
|
22989
22995
|
import { ArrowLeft as ArrowLeft21 } from "lucide-react";
|
|
22990
|
-
import { jsx as
|
|
22996
|
+
import { jsx as jsx113, jsxs as jsxs101 } from "react/jsx-runtime";
|
|
22991
22997
|
function TermsOfService() {
|
|
22992
22998
|
const address = useSession((st) => st.address);
|
|
22993
22999
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
22994
23000
|
return /* @__PURE__ */ jsxs101("div", { className: "w-full p-[var(--ui-kit-pd)] flex flex-col gap-[var(--ui-kit-gap)]", children: [
|
|
22995
23001
|
/* @__PURE__ */ jsxs101("div", { className: "flex items-center gap-[var(--ui-kit-gap)]", children: [
|
|
22996
|
-
/* @__PURE__ */
|
|
23002
|
+
/* @__PURE__ */ jsx113(
|
|
22997
23003
|
Button,
|
|
22998
23004
|
{
|
|
22999
23005
|
variant: "ghost",
|
|
23000
23006
|
size: "icon",
|
|
23001
23007
|
title: "Back",
|
|
23002
23008
|
onClick: () => setPage(!!address ? "settings" /* SETTINGS */ : "auth" /* AUTH */),
|
|
23003
|
-
children: /* @__PURE__ */
|
|
23009
|
+
children: /* @__PURE__ */ jsx113(ArrowLeft21, { className: "h-4 w-4" })
|
|
23004
23010
|
}
|
|
23005
23011
|
),
|
|
23006
|
-
/* @__PURE__ */
|
|
23012
|
+
/* @__PURE__ */ jsx113("span", { className: "text-xl font-semibold", children: "Terms of Service" })
|
|
23007
23013
|
] }),
|
|
23008
23014
|
/* @__PURE__ */ jsxs101(Highlight, { type: "warning", className: "text-center", children: [
|
|
23009
|
-
/* @__PURE__ */
|
|
23010
|
-
/* @__PURE__ */
|
|
23015
|
+
/* @__PURE__ */ jsx113("span", { className: "block text-xs", children: "By using EmbarkAI Wallet you agree to our terms." }),
|
|
23016
|
+
/* @__PURE__ */ jsx113("span", { className: "block text-xs", children: "To be updated..." })
|
|
23011
23017
|
] })
|
|
23012
23018
|
] });
|
|
23013
23019
|
}
|
|
@@ -23645,7 +23651,7 @@ var init_api5 = __esm({
|
|
|
23645
23651
|
});
|
|
23646
23652
|
|
|
23647
23653
|
// src/internal/assets/LumiaIcon.tsx
|
|
23648
|
-
import { jsx as
|
|
23654
|
+
import { jsx as jsx114, jsxs as jsxs102 } from "react/jsx-runtime";
|
|
23649
23655
|
function LumiaIcon3(props) {
|
|
23650
23656
|
const { width = "24", height = "24", ...svgProps } = props;
|
|
23651
23657
|
return /* @__PURE__ */ jsxs102(
|
|
@@ -23659,29 +23665,29 @@ function LumiaIcon3(props) {
|
|
|
23659
23665
|
xmlns: "http://www.w3.org/2000/svg",
|
|
23660
23666
|
style: { flexShrink: 0 },
|
|
23661
23667
|
children: [
|
|
23662
|
-
/* @__PURE__ */
|
|
23663
|
-
/* @__PURE__ */
|
|
23668
|
+
/* @__PURE__ */ jsx114("rect", { width: "72", height: "72", rx: "36", fill: "var(--ui-kit-fg)" }),
|
|
23669
|
+
/* @__PURE__ */ jsx114(
|
|
23664
23670
|
"path",
|
|
23665
23671
|
{
|
|
23666
23672
|
d: "M25.3636 35.359H6.77698L26.3313 26.2792L35.3827 6.78174L35.404 25.3043C35.4112 30.8547 30.9139 35.3661 25.3565 35.3661L25.3636 35.359Z",
|
|
23667
23673
|
fill: "var(--ui-kit-bg)"
|
|
23668
23674
|
}
|
|
23669
23675
|
),
|
|
23670
|
-
/* @__PURE__ */
|
|
23676
|
+
/* @__PURE__ */ jsx114(
|
|
23671
23677
|
"path",
|
|
23672
23678
|
{
|
|
23673
23679
|
d: "M47.4365 35.359H66.0231L46.4687 26.2792L37.4174 6.78174L37.396 25.3043C37.3889 30.8547 41.8861 35.3661 47.4436 35.3661L47.4365 35.359Z",
|
|
23674
23680
|
fill: "var(--ui-kit-bg)"
|
|
23675
23681
|
}
|
|
23676
23682
|
),
|
|
23677
|
-
/* @__PURE__ */
|
|
23683
|
+
/* @__PURE__ */ jsx114(
|
|
23678
23684
|
"path",
|
|
23679
23685
|
{
|
|
23680
23686
|
d: "M47.4365 37.4226H66.0231L46.4687 46.5025L37.4174 65.9999L37.396 47.4773C37.3889 41.927 41.8861 37.4155 47.4436 37.4155L47.4365 37.4226Z",
|
|
23681
23687
|
fill: "var(--ui-kit-bg)"
|
|
23682
23688
|
}
|
|
23683
23689
|
),
|
|
23684
|
-
/* @__PURE__ */
|
|
23690
|
+
/* @__PURE__ */ jsx114(
|
|
23685
23691
|
"path",
|
|
23686
23692
|
{
|
|
23687
23693
|
d: "M25.3636 37.4226H6.77698L26.3313 46.5025L35.3827 65.9999L35.404 47.4773C35.4112 41.927 30.9139 37.4155 25.3565 37.4155L25.3636 37.4226Z",
|
|
@@ -23758,14 +23764,14 @@ var init_utils10 = __esm({
|
|
|
23758
23764
|
|
|
23759
23765
|
// src/internal/components/TransactionsMenu/TransactionsGroup.tsx
|
|
23760
23766
|
import { ChevronDown, ChevronLeft as ChevronLeft2, ChevronRight as ChevronRight6, ChevronUp, Copy as Copy4 } from "lucide-react";
|
|
23761
|
-
import { Fragment as
|
|
23767
|
+
import { Fragment as Fragment44, jsx as jsx115, jsxs as jsxs103 } from "react/jsx-runtime";
|
|
23762
23768
|
function InternalTransaction({ internal, assetSymbol, assetDecimals }) {
|
|
23763
23769
|
const internalSymbol = internal.assetSymbol || assetSymbol;
|
|
23764
23770
|
const internalDecimals = internal.decimals ?? assetDecimals;
|
|
23765
23771
|
const { t } = useT();
|
|
23766
23772
|
return /* @__PURE__ */ jsxs103("div", { className: "border-t border-dashed border-[var(--ui-kit-bd)]", children: [
|
|
23767
23773
|
/* @__PURE__ */ jsxs103("div", { className: "flex gap-2 items-center justify-between", children: [
|
|
23768
|
-
/* @__PURE__ */
|
|
23774
|
+
/* @__PURE__ */ jsx115("span", { className: "text-[var(--ui-kit-fg-muted)]", children: internal.method || "CALL" }),
|
|
23769
23775
|
/* @__PURE__ */ jsxs103("span", { children: [
|
|
23770
23776
|
formatValue2(internal.value, internalDecimals),
|
|
23771
23777
|
" ",
|
|
@@ -23777,7 +23783,7 @@ function InternalTransaction({ internal, assetSymbol, assetDecimals }) {
|
|
|
23777
23783
|
internal.direction === "in" ? t("passport:common.from") : t("passport:common.to"),
|
|
23778
23784
|
": "
|
|
23779
23785
|
] }),
|
|
23780
|
-
/* @__PURE__ */
|
|
23786
|
+
/* @__PURE__ */ jsx115("span", { className: "font-mono", children: internal.counterpartyName || formatAddress(internal.counterparty) })
|
|
23781
23787
|
] })
|
|
23782
23788
|
] });
|
|
23783
23789
|
}
|
|
@@ -23801,11 +23807,11 @@ function TransactionsGroup(props) {
|
|
|
23801
23807
|
children: [
|
|
23802
23808
|
/* @__PURE__ */ jsxs103("div", { className: "flex items-center justify-between gap-[var(--ui-kit-gap)]", children: [
|
|
23803
23809
|
/* @__PURE__ */ jsxs103("div", { className: "flex items-center gap-1 flex-0 w-fit", children: [
|
|
23804
|
-
parent.direction === "in" ? /* @__PURE__ */
|
|
23805
|
-
/* @__PURE__ */
|
|
23806
|
-
parent.status === "ok" ? /* @__PURE__ */
|
|
23810
|
+
parent.direction === "in" ? /* @__PURE__ */ jsx115(ChevronLeft2, { className: "w-4 h-4" }) : /* @__PURE__ */ jsx115(ChevronRight6, { className: "w-4 h-4" }),
|
|
23811
|
+
/* @__PURE__ */ jsx115("span", { className: "text-[10px] uppercase", children: isIncoming ? t("passport:common.received") : t("passport:common.sent") }),
|
|
23812
|
+
parent.status === "ok" ? /* @__PURE__ */ jsx115(PositiveIcon, {}) : /* @__PURE__ */ jsx115(NegativeIcon, {})
|
|
23807
23813
|
] }),
|
|
23808
|
-
/* @__PURE__ */
|
|
23814
|
+
/* @__PURE__ */ jsx115("span", { className: "block flex-0 font-mono text-[10px] text-[var(--ui-kit-fg-muted)]", children: formatTimestamp(group.timestampMs) })
|
|
23809
23815
|
] }),
|
|
23810
23816
|
/* @__PURE__ */ jsxs103("div", { className: "flex items-center justify-between gap-[var(--ui-kit-gap)]", children: [
|
|
23811
23817
|
/* @__PURE__ */ jsxs103("div", { className: "flex flex-col gap-0", children: [
|
|
@@ -23821,7 +23827,7 @@ function TransactionsGroup(props) {
|
|
|
23821
23827
|
] })
|
|
23822
23828
|
] }),
|
|
23823
23829
|
/* @__PURE__ */ jsxs103("div", { className: "flex items-center gap-0", children: [
|
|
23824
|
-
/* @__PURE__ */
|
|
23830
|
+
/* @__PURE__ */ jsx115(
|
|
23825
23831
|
Button,
|
|
23826
23832
|
{
|
|
23827
23833
|
variant: "ghost",
|
|
@@ -23830,10 +23836,10 @@ function TransactionsGroup(props) {
|
|
|
23830
23836
|
onClick: (e) => {
|
|
23831
23837
|
e.stopPropagation();
|
|
23832
23838
|
},
|
|
23833
|
-
children: /* @__PURE__ */
|
|
23839
|
+
children: /* @__PURE__ */ jsx115(Copy4, { className: "w-4 h-4" })
|
|
23834
23840
|
}
|
|
23835
23841
|
),
|
|
23836
|
-
/* @__PURE__ */
|
|
23842
|
+
/* @__PURE__ */ jsx115(
|
|
23837
23843
|
Button,
|
|
23838
23844
|
{
|
|
23839
23845
|
variant: "ghost",
|
|
@@ -23842,13 +23848,13 @@ function TransactionsGroup(props) {
|
|
|
23842
23848
|
onClick: (e) => {
|
|
23843
23849
|
e.stopPropagation();
|
|
23844
23850
|
},
|
|
23845
|
-
children: /* @__PURE__ */
|
|
23851
|
+
children: /* @__PURE__ */ jsx115(LumiaIcon3, { className: "w-4 h-4" })
|
|
23846
23852
|
}
|
|
23847
23853
|
)
|
|
23848
23854
|
] })
|
|
23849
23855
|
] }),
|
|
23850
|
-
internalsToRender.length > 0 && /* @__PURE__ */ jsxs103(
|
|
23851
|
-
/* @__PURE__ */
|
|
23856
|
+
internalsToRender.length > 0 && /* @__PURE__ */ jsxs103(Fragment44, { children: [
|
|
23857
|
+
/* @__PURE__ */ jsx115("div", { className: "w-full flex items-center h-4", children: /* @__PURE__ */ jsx115("div", { style: { borderTop: "1px solid var(--ui-kit-bd)" }, className: "flex-1" }) }),
|
|
23852
23858
|
/* @__PURE__ */ jsxs103(
|
|
23853
23859
|
"div",
|
|
23854
23860
|
{
|
|
@@ -23869,11 +23875,11 @@ function TransactionsGroup(props) {
|
|
|
23869
23875
|
internalsToRender.length,
|
|
23870
23876
|
")"
|
|
23871
23877
|
] }),
|
|
23872
|
-
expanded ? /* @__PURE__ */
|
|
23878
|
+
expanded ? /* @__PURE__ */ jsx115(ChevronUp, { className: "w-4 h-4 text-[var(--ui-kit-fg-muted)]" }) : /* @__PURE__ */ jsx115(ChevronDown, { className: "w-4 h-4 text-[var(--ui-kit-fg-muted)]" })
|
|
23873
23879
|
]
|
|
23874
23880
|
}
|
|
23875
23881
|
),
|
|
23876
|
-
expanded && /* @__PURE__ */
|
|
23882
|
+
expanded && /* @__PURE__ */ jsx115("div", { className: "px-2 pb-2 flex flex-col gap-2 text-xs", children: internalsToRender.map((internal) => /* @__PURE__ */ jsx115(
|
|
23877
23883
|
InternalTransaction,
|
|
23878
23884
|
{
|
|
23879
23885
|
internal,
|
|
@@ -23903,18 +23909,18 @@ var init_TransactionsGroup = __esm({
|
|
|
23903
23909
|
});
|
|
23904
23910
|
|
|
23905
23911
|
// src/internal/components/TransactionsMenu/TransactionsMenu.tsx
|
|
23906
|
-
import { useQuery as useQuery25, useQueryClient as
|
|
23912
|
+
import { useQuery as useQuery25, useQueryClient as useQueryClient25 } from "@tanstack/react-query";
|
|
23907
23913
|
import { ArrowLeft as ArrowLeft22, Loader as Loader34, RefreshCw as RefreshCw3, XCircle } from "lucide-react";
|
|
23908
|
-
import { useCallback as useCallback25, useState as
|
|
23909
|
-
import { jsx as
|
|
23914
|
+
import { useCallback as useCallback25, useState as useState32 } from "react";
|
|
23915
|
+
import { jsx as jsx116, jsxs as jsxs104 } from "react/jsx-runtime";
|
|
23910
23916
|
function TransactionsMenu() {
|
|
23911
|
-
const qc =
|
|
23917
|
+
const qc = useQueryClient25();
|
|
23912
23918
|
const address = useSession((st) => st.address);
|
|
23913
23919
|
const chainConfig = useSession((st) => st.chainConfig);
|
|
23914
23920
|
const { t } = useT();
|
|
23915
23921
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
23916
23922
|
const maxScrollHeight = useLayoutStore((st) => st.maxScrollHeight);
|
|
23917
|
-
const [expandedGroups, setExpandedGroups] =
|
|
23923
|
+
const [expandedGroups, setExpandedGroups] = useState32({});
|
|
23918
23924
|
const historySupported = isTransactionHistorySupported(chainConfig?.id);
|
|
23919
23925
|
const {
|
|
23920
23926
|
data: txHistoryGroups = [],
|
|
@@ -23932,7 +23938,7 @@ function TransactionsMenu() {
|
|
|
23932
23938
|
[qc, chainConfig.id, address]
|
|
23933
23939
|
);
|
|
23934
23940
|
const txHistoryResolvedError = txHistoryError ? txHistoryError instanceof Error ? txHistoryError.message : "Failed to load transactions" : null;
|
|
23935
|
-
return /* @__PURE__ */
|
|
23941
|
+
return /* @__PURE__ */ jsx116(
|
|
23936
23942
|
"div",
|
|
23937
23943
|
{
|
|
23938
23944
|
style: {
|
|
@@ -23942,9 +23948,9 @@ function TransactionsMenu() {
|
|
|
23942
23948
|
className: "list-scrollbar-y w-full p-[var(--ui-kit-pd)]",
|
|
23943
23949
|
children: /* @__PURE__ */ jsxs104(Expandable, { isExpanded: true, contentClassName: "w-full flex flex-col gap-[var(--ui-kit-gap)]", children: [
|
|
23944
23950
|
/* @__PURE__ */ jsxs104("div", { className: "flex items-center gap-[var(--ui-kit-gap)]", children: [
|
|
23945
|
-
/* @__PURE__ */
|
|
23946
|
-
/* @__PURE__ */
|
|
23947
|
-
historySupported && /* @__PURE__ */
|
|
23951
|
+
/* @__PURE__ */ jsx116(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage("settings" /* SETTINGS */), children: /* @__PURE__ */ jsx116(ArrowLeft22, { className: "h-4 w-4" }) }),
|
|
23952
|
+
/* @__PURE__ */ jsx116("span", { className: "text-xl font-semibold", children: t("passport:transactionsMenu.title") }),
|
|
23953
|
+
historySupported && /* @__PURE__ */ jsx116(
|
|
23948
23954
|
Button,
|
|
23949
23955
|
{
|
|
23950
23956
|
variant: "ghost",
|
|
@@ -23952,18 +23958,18 @@ function TransactionsMenu() {
|
|
|
23952
23958
|
onClick: refreshTxHistory,
|
|
23953
23959
|
disabled: isTxHistoryFetching,
|
|
23954
23960
|
title: "Refresh transactions",
|
|
23955
|
-
children: isTxHistoryFetching ? /* @__PURE__ */
|
|
23961
|
+
children: isTxHistoryFetching ? /* @__PURE__ */ jsx116(Loader34, { className: "h-4 w-4 animate-spin" }) : /* @__PURE__ */ jsx116(RefreshCw3, { className: "h-4 w-4" })
|
|
23956
23962
|
}
|
|
23957
23963
|
)
|
|
23958
23964
|
] }),
|
|
23959
|
-
!historySupported && /* @__PURE__ */
|
|
23960
|
-
historySupported && isTxHistoryLoading && /* @__PURE__ */
|
|
23965
|
+
!historySupported && /* @__PURE__ */ jsx116(Highlight, { type: "warning", children: /* @__PURE__ */ jsx116("span", { children: t("passport:transactionsMenu.comingSoon") }) }),
|
|
23966
|
+
historySupported && isTxHistoryLoading && /* @__PURE__ */ jsx116("div", { className: "flex items-center justify-center p-8", children: /* @__PURE__ */ jsx116(Loader34, { className: "w-4 h-4 animate-spin" }) }),
|
|
23961
23967
|
historySupported && !isTxHistoryLoading && txHistoryResolvedError && /* @__PURE__ */ jsxs104(Highlight, { type: "error", className: "flex gap-[var(--ui-kit-gap)]", children: [
|
|
23962
|
-
/* @__PURE__ */
|
|
23963
|
-
/* @__PURE__ */
|
|
23968
|
+
/* @__PURE__ */ jsx116(XCircle, { className: "w-4 h-4 flex-none" }),
|
|
23969
|
+
/* @__PURE__ */ jsx116("span", { className: "block w-full flex-1 text-center text-xs", children: txHistoryResolvedError })
|
|
23964
23970
|
] }),
|
|
23965
|
-
historySupported && !isTxHistoryLoading && !txHistoryResolvedError && txHistoryGroups.length === 0 && /* @__PURE__ */
|
|
23966
|
-
historySupported && !isTxHistoryLoading && !txHistoryResolvedError && txHistoryGroups.length > 0 && /* @__PURE__ */
|
|
23971
|
+
historySupported && !isTxHistoryLoading && !txHistoryResolvedError && txHistoryGroups.length === 0 && /* @__PURE__ */ jsx116(Highlight, { type: "warning", children: /* @__PURE__ */ jsx116("span", { children: t("passport:transactionsMenu.noTransactions") }) }),
|
|
23972
|
+
historySupported && !isTxHistoryLoading && !txHistoryResolvedError && txHistoryGroups.length > 0 && /* @__PURE__ */ jsx116("div", { className: "w-full flex flex-col gap-[var(--ui-kit-gap)]", children: txHistoryGroups.map((group) => /* @__PURE__ */ jsx116(
|
|
23967
23973
|
TransactionsGroup,
|
|
23968
23974
|
{
|
|
23969
23975
|
group,
|
|
@@ -24167,7 +24173,7 @@ var init_PageMap = __esm({
|
|
|
24167
24173
|
|
|
24168
24174
|
// src/internal/hooks/usePageMapper.tsx
|
|
24169
24175
|
import { useCallback as useCallback26, useEffect as useEffect45 } from "react";
|
|
24170
|
-
import { jsx as
|
|
24176
|
+
import { jsx as jsx117 } from "react/jsx-runtime";
|
|
24171
24177
|
function usePageMapper() {
|
|
24172
24178
|
const page = useLayoutDataStore((st) => st.page);
|
|
24173
24179
|
const {
|
|
@@ -24194,7 +24200,7 @@ function usePageMapper() {
|
|
|
24194
24200
|
const PageContentComponent = pageItem.component;
|
|
24195
24201
|
setDialogTitle(pageItem.title);
|
|
24196
24202
|
setDialogDescription(pageItem.description);
|
|
24197
|
-
setDialogContent(/* @__PURE__ */
|
|
24203
|
+
setDialogContent(/* @__PURE__ */ jsx117(PageContentComponent, {}));
|
|
24198
24204
|
setIsDialogOpen(true);
|
|
24199
24205
|
},
|
|
24200
24206
|
[setDialogContent, setDialogDescription, setDialogTitle, setIsDialogOpen]
|
|
@@ -24275,7 +24281,7 @@ var init_package = __esm({
|
|
|
24275
24281
|
"package.json"() {
|
|
24276
24282
|
package_default = {
|
|
24277
24283
|
name: "@embarkai/ui-kit",
|
|
24278
|
-
version: "0.4.
|
|
24284
|
+
version: "0.4.32",
|
|
24279
24285
|
description: "React UI components and hooks for EmbarkAI authentication and Account Abstraction",
|
|
24280
24286
|
type: "module",
|
|
24281
24287
|
main: "./dist/index.cjs",
|
|
@@ -24373,11 +24379,11 @@ var init_package = __esm({
|
|
|
24373
24379
|
});
|
|
24374
24380
|
|
|
24375
24381
|
// src/internal/components/Footer/Footer.tsx
|
|
24376
|
-
import { useMutation as useMutation20, useQueryClient as
|
|
24382
|
+
import { useMutation as useMutation20, useQueryClient as useQueryClient26 } from "@tanstack/react-query";
|
|
24377
24383
|
import { Loader as Loader35, LogOut } from "lucide-react";
|
|
24378
|
-
import { jsx as
|
|
24384
|
+
import { jsx as jsx118, jsxs as jsxs105 } from "react/jsx-runtime";
|
|
24379
24385
|
function Footer() {
|
|
24380
|
-
const qc =
|
|
24386
|
+
const qc = useQueryClient26();
|
|
24381
24387
|
const { callbacksRef } = useProviderConfig();
|
|
24382
24388
|
const { address, setSession, setAddress, setStatus, setError, setIsLoading } = useSession();
|
|
24383
24389
|
const chainConfig = useSession((st) => st.chainConfig);
|
|
@@ -24416,7 +24422,7 @@ function Footer() {
|
|
|
24416
24422
|
setIsDialogForced(false);
|
|
24417
24423
|
}
|
|
24418
24424
|
});
|
|
24419
|
-
const ChainIcon = NETWORK_OPTIONS.find((net) => net.chainId === chainConfig.id)?.Icon || (() => /* @__PURE__ */
|
|
24425
|
+
const ChainIcon = NETWORK_OPTIONS.find((net) => net.chainId === chainConfig.id)?.Icon || (() => /* @__PURE__ */ jsx118("div", { className: "flex-none w-4 h-4 rounded-full flex items-center justify-center bg-[var(--ui-kit-primary)]", children: /* @__PURE__ */ jsx118("span", { className: "text-[var(--ui-kit-fg-inverted)] text-xs font-bold", children: chainConfig.name.charAt(0) }) }));
|
|
24420
24426
|
return /* @__PURE__ */ jsxs105(
|
|
24421
24427
|
"div",
|
|
24422
24428
|
{
|
|
@@ -24432,8 +24438,8 @@ function Footer() {
|
|
|
24432
24438
|
disabled: isDisconnecting,
|
|
24433
24439
|
onClick: () => address && window.open(`${getExplorerUrl()}/address/${address}`, "_blank"),
|
|
24434
24440
|
children: [
|
|
24435
|
-
/* @__PURE__ */
|
|
24436
|
-
/* @__PURE__ */
|
|
24441
|
+
/* @__PURE__ */ jsx118(ChainIcon, { className: "flex-none w-6 h-6" }),
|
|
24442
|
+
/* @__PURE__ */ jsx118("span", { className: "text-xs font-bold", children: chainConfig.name || "EmbarkAI Wallet" })
|
|
24437
24443
|
]
|
|
24438
24444
|
}
|
|
24439
24445
|
),
|
|
@@ -24446,13 +24452,13 @@ function Footer() {
|
|
|
24446
24452
|
onClick: () => disconnect(address),
|
|
24447
24453
|
disabled: isDisconnecting,
|
|
24448
24454
|
children: [
|
|
24449
|
-
/* @__PURE__ */
|
|
24450
|
-
isDisconnecting ? /* @__PURE__ */
|
|
24455
|
+
/* @__PURE__ */ jsx118("span", { children: t("passport:auth.logout") }),
|
|
24456
|
+
isDisconnecting ? /* @__PURE__ */ jsx118(Loader35, { className: "w-4 h-4 animate-spin" }) : /* @__PURE__ */ jsx118(LogOut, { className: "w-4 h-4" })
|
|
24451
24457
|
]
|
|
24452
24458
|
}
|
|
24453
24459
|
) : null
|
|
24454
24460
|
] }),
|
|
24455
|
-
/* @__PURE__ */
|
|
24461
|
+
/* @__PURE__ */ jsx118(
|
|
24456
24462
|
"span",
|
|
24457
24463
|
{
|
|
24458
24464
|
className: cn(
|
|
@@ -24493,8 +24499,8 @@ var init_Footer2 = __esm({
|
|
|
24493
24499
|
// src/internal/components/Header/Header.tsx
|
|
24494
24500
|
import { useQuery as useQuery27 } from "@tanstack/react-query";
|
|
24495
24501
|
import { Copy as Copy5, Loader as Loader36 } from "lucide-react";
|
|
24496
|
-
import { useCallback as useCallback27, useRef as useRef20, useState as
|
|
24497
|
-
import { Fragment as
|
|
24502
|
+
import { useCallback as useCallback27, useRef as useRef20, useState as useState33 } from "react";
|
|
24503
|
+
import { Fragment as Fragment45, jsx as jsx119, jsxs as jsxs106 } from "react/jsx-runtime";
|
|
24498
24504
|
function formatAddress2(addr) {
|
|
24499
24505
|
if (!addr) return "";
|
|
24500
24506
|
return `${addr.slice(0, 10)}...${addr.slice(-4)}`;
|
|
@@ -24505,8 +24511,8 @@ function Header() {
|
|
|
24505
24511
|
const chainConfig = useSession((st) => st.chainConfig);
|
|
24506
24512
|
const { t } = useT();
|
|
24507
24513
|
const proMode = useProMode();
|
|
24508
|
-
const [proToast, setProToast] =
|
|
24509
|
-
const [copied, setCopied] =
|
|
24514
|
+
const [proToast, setProToast] = useState33(false);
|
|
24515
|
+
const [copied, setCopied] = useState33(false);
|
|
24510
24516
|
const clickCountRef = useRef20(0);
|
|
24511
24517
|
const clickTimerRef = useRef20(null);
|
|
24512
24518
|
const handleAvatarClick = useCallback27(() => {
|
|
@@ -24535,7 +24541,7 @@ function Header() {
|
|
|
24535
24541
|
});
|
|
24536
24542
|
const avatar = profile?.avatar || jwtTokenManager2.getAvatar();
|
|
24537
24543
|
const displayName = profile?.nicknameDisplay || profile?.displayName || jwtTokenManager2.getDisplayName();
|
|
24538
|
-
const ChainIcon = NETWORK_OPTIONS.find((net) => net.chainId === chainConfig.id)?.Icon || (() => /* @__PURE__ */
|
|
24544
|
+
const ChainIcon = NETWORK_OPTIONS.find((net) => net.chainId === chainConfig.id)?.Icon || (() => /* @__PURE__ */ jsx119("div", { className: "flex-none w-4 h-4 rounded-full flex items-center justify-center bg-[var(--ui-kit-primary)]", children: /* @__PURE__ */ jsx119("span", { className: "text-[var(--ui-kit-fg-inverted)] text-xs font-bold", children: chainConfig.name.charAt(0) }) }));
|
|
24539
24545
|
return /* @__PURE__ */ jsxs106(
|
|
24540
24546
|
"div",
|
|
24541
24547
|
{
|
|
@@ -24549,8 +24555,8 @@ function Header() {
|
|
|
24549
24555
|
className: "relative flex-none w-12 h-12 flex items-center justify-center cursor-pointer select-none",
|
|
24550
24556
|
onClick: handleAvatarClick,
|
|
24551
24557
|
children: [
|
|
24552
|
-
proMode && /* @__PURE__ */
|
|
24553
|
-
avatar ? /* @__PURE__ */
|
|
24558
|
+
proMode && /* @__PURE__ */ jsx119("span", { className: "absolute -top-1 -right-1 text-[8px] font-bold px-1 rounded bg-[var(--ui-kit-primary)] text-[var(--ui-kit-fg-inverted)] leading-3", children: "PRO" }),
|
|
24559
|
+
avatar ? /* @__PURE__ */ jsx119("img", { src: avatar, alt: displayName, className: "w-full h-full object-cover rounded-full" }) : /* @__PURE__ */ jsx119(LumiaIcon3, { width: 48, height: 48 })
|
|
24554
24560
|
]
|
|
24555
24561
|
}
|
|
24556
24562
|
),
|
|
@@ -24560,10 +24566,10 @@ function Header() {
|
|
|
24560
24566
|
style: { width: "calc(100% - 48px - var(--ui-kit-gap))" },
|
|
24561
24567
|
className: "flex-1 flex flex-col justify-center gap-1",
|
|
24562
24568
|
children: [
|
|
24563
|
-
isProfileLoading && /* @__PURE__ */
|
|
24564
|
-
!!address && !isProfileLoading && !!profile && /* @__PURE__ */ jsxs106(
|
|
24569
|
+
isProfileLoading && /* @__PURE__ */ jsx119(Loader36, { className: "w-4 h-4 animate-spin" }),
|
|
24570
|
+
!!address && !isProfileLoading && !!profile && /* @__PURE__ */ jsxs106(Fragment45, { children: [
|
|
24565
24571
|
/* @__PURE__ */ jsxs106("div", { className: "w-full flex items-center gap-[var(--ui-kit-gap)]", children: [
|
|
24566
|
-
/* @__PURE__ */
|
|
24572
|
+
/* @__PURE__ */ jsx119(
|
|
24567
24573
|
"span",
|
|
24568
24574
|
{
|
|
24569
24575
|
className: cn(
|
|
@@ -24573,9 +24579,9 @@ function Header() {
|
|
|
24573
24579
|
children: displayName || config.current?.ui?.title || "EmbarkAI"
|
|
24574
24580
|
}
|
|
24575
24581
|
),
|
|
24576
|
-
/* @__PURE__ */
|
|
24582
|
+
/* @__PURE__ */ jsx119(KYCStatus, {})
|
|
24577
24583
|
] }),
|
|
24578
|
-
/* @__PURE__ */
|
|
24584
|
+
/* @__PURE__ */ jsx119(BalanceView, {})
|
|
24579
24585
|
] })
|
|
24580
24586
|
]
|
|
24581
24587
|
}
|
|
@@ -24583,10 +24589,10 @@ function Header() {
|
|
|
24583
24589
|
] }),
|
|
24584
24590
|
!!address && /* @__PURE__ */ jsxs106("div", { className: "w-full flex items-center justify-between gap-[var(--ui-kit-gap)]", children: [
|
|
24585
24591
|
/* @__PURE__ */ jsxs106("div", { className: "flex items-center w-fit text-[10px] px-2 leading-6 text-[var(--ui-kit-fg)] gap-2", children: [
|
|
24586
|
-
/* @__PURE__ */
|
|
24587
|
-
/* @__PURE__ */
|
|
24592
|
+
/* @__PURE__ */ jsx119("span", { children: formatAddress2(address) }),
|
|
24593
|
+
/* @__PURE__ */ jsx119(ChainIcon, { className: "flex-none w-4 h-4" })
|
|
24588
24594
|
] }),
|
|
24589
|
-
/* @__PURE__ */
|
|
24595
|
+
/* @__PURE__ */ jsx119("div", { className: "w-fit flex items-center gap-[var(--ui-kit-gap)] justify-between", children: /* @__PURE__ */ jsxs106(
|
|
24590
24596
|
Button,
|
|
24591
24597
|
{
|
|
24592
24598
|
size: "small",
|
|
@@ -24598,13 +24604,13 @@ function Header() {
|
|
|
24598
24604
|
setTimeout(() => setCopied(false), 1500);
|
|
24599
24605
|
},
|
|
24600
24606
|
children: [
|
|
24601
|
-
copied ? /* @__PURE__ */
|
|
24602
|
-
/* @__PURE__ */
|
|
24607
|
+
copied ? /* @__PURE__ */ jsx119(PositiveIcon, {}) : /* @__PURE__ */ jsx119(Copy5, { className: "w-4 h-4" }),
|
|
24608
|
+
/* @__PURE__ */ jsx119("span", { className: "uppercase", children: t("passport:common.copy") })
|
|
24603
24609
|
]
|
|
24604
24610
|
}
|
|
24605
24611
|
) })
|
|
24606
24612
|
] }),
|
|
24607
|
-
proToast && /* @__PURE__ */
|
|
24613
|
+
proToast && /* @__PURE__ */ jsx119("div", { className: "text-xs text-center text-[var(--ui-kit-primary)] font-medium animate-pulse", children: "Pro Mode activated" })
|
|
24608
24614
|
]
|
|
24609
24615
|
}
|
|
24610
24616
|
);
|
|
@@ -24639,7 +24645,7 @@ import * as DialogPrimitive from "@radix-ui/react-dialog";
|
|
|
24639
24645
|
import { merge as merge2 } from "lodash-es";
|
|
24640
24646
|
import { ArrowLeft as ArrowLeft23, SlidersHorizontal, X as X2 } from "lucide-react";
|
|
24641
24647
|
import { forwardRef as forwardRef4 } from "react";
|
|
24642
|
-
import { jsx as
|
|
24648
|
+
import { jsx as jsx120, jsxs as jsxs107 } from "react/jsx-runtime";
|
|
24643
24649
|
function useDecideContentStyles() {
|
|
24644
24650
|
const isMobileView = useLayoutStore((st) => st.isMobileView);
|
|
24645
24651
|
const isClosing = useLayoutStore((st) => !!st.isDialogOpen && !!st.isDialogClosing);
|
|
@@ -24662,7 +24668,7 @@ var init_dialog = __esm({
|
|
|
24662
24668
|
Dialog = DialogPrimitive.Root;
|
|
24663
24669
|
DialogPortal = DialogPrimitive.Portal;
|
|
24664
24670
|
DialogOverlay = forwardRef4(
|
|
24665
|
-
({ className, closing, ...props }, ref) => /* @__PURE__ */
|
|
24671
|
+
({ className, closing, ...props }, ref) => /* @__PURE__ */ jsx120(
|
|
24666
24672
|
DialogPrimitive.Overlay,
|
|
24667
24673
|
{
|
|
24668
24674
|
ref,
|
|
@@ -24695,9 +24701,9 @@ var init_dialog = __esm({
|
|
|
24695
24701
|
const { isMobileView, isClosing, style } = useDecideContentStyles();
|
|
24696
24702
|
const animationCnPrefix = isMobileView ? "animate-mobile-dialog" : "animate-dialog";
|
|
24697
24703
|
const dialogAnimationCn = isClosing ? `${animationCnPrefix}-out` : `${animationCnPrefix}-in`;
|
|
24698
|
-
return /* @__PURE__ */
|
|
24699
|
-
/* @__PURE__ */
|
|
24700
|
-
/* @__PURE__ */
|
|
24704
|
+
return /* @__PURE__ */ jsx120(DialogPortal, { children: /* @__PURE__ */ jsxs107("div", { className: "embarkai-ui-scope", "data-current-theme-mode": colorMode, style: { ...style, outline: "none" }, children: [
|
|
24705
|
+
/* @__PURE__ */ jsx120(DialogOverlay, { closing: isClosing, className: cn(isWalletLinking && "pointer-events-none") }),
|
|
24706
|
+
/* @__PURE__ */ jsx120(
|
|
24701
24707
|
"div",
|
|
24702
24708
|
{
|
|
24703
24709
|
className: cn(
|
|
@@ -24737,8 +24743,8 @@ var init_dialog = __esm({
|
|
|
24737
24743
|
className: "relative w-4 h-4",
|
|
24738
24744
|
onClick: () => setPage("languages" /* LANGUAGES */),
|
|
24739
24745
|
children: [
|
|
24740
|
-
/* @__PURE__ */
|
|
24741
|
-
/* @__PURE__ */
|
|
24746
|
+
/* @__PURE__ */ jsx120("span", { className: "sr-only", children: t("passport:common.language") }),
|
|
24747
|
+
/* @__PURE__ */ jsx120("span", { className: "w-4 h-4 leading-4 block text-[10px] font-bold", children: getLanguageIcon(i18n.resolvedLanguage) || i18n.resolvedLanguage?.toUpperCase() })
|
|
24742
24748
|
]
|
|
24743
24749
|
}
|
|
24744
24750
|
),
|
|
@@ -24750,9 +24756,9 @@ var init_dialog = __esm({
|
|
|
24750
24756
|
className: "relative w-4 h-4",
|
|
24751
24757
|
onClick: () => setPage("settings" /* SETTINGS */),
|
|
24752
24758
|
children: [
|
|
24753
|
-
/* @__PURE__ */
|
|
24754
|
-
/* @__PURE__ */
|
|
24755
|
-
!!settingsNotifications.length && /* @__PURE__ */
|
|
24759
|
+
/* @__PURE__ */ jsx120("span", { className: "sr-only", children: t("passport:common.settings") }),
|
|
24760
|
+
/* @__PURE__ */ jsx120(SlidersHorizontal, { className: "w-4 h-4" }),
|
|
24761
|
+
!!settingsNotifications.length && /* @__PURE__ */ jsx120(
|
|
24756
24762
|
"div",
|
|
24757
24763
|
{
|
|
24758
24764
|
className: cn(
|
|
@@ -24766,9 +24772,9 @@ var init_dialog = __esm({
|
|
|
24766
24772
|
]
|
|
24767
24773
|
}
|
|
24768
24774
|
),
|
|
24769
|
-
/* @__PURE__ */
|
|
24770
|
-
/* @__PURE__ */
|
|
24771
|
-
/* @__PURE__ */
|
|
24775
|
+
/* @__PURE__ */ jsx120(DialogPrimitive.Close, { asChild: true, children: /* @__PURE__ */ jsxs107(Button, { variant: "ghost", size: "icon", className: "w-4 h-4", children: [
|
|
24776
|
+
/* @__PURE__ */ jsx120(X2, { className: "h-4 w-4" }),
|
|
24777
|
+
/* @__PURE__ */ jsx120("span", { className: "sr-only", children: t("passport:common.close") })
|
|
24772
24778
|
] }) })
|
|
24773
24779
|
]
|
|
24774
24780
|
}
|
|
@@ -24782,11 +24788,11 @@ var init_dialog = __esm({
|
|
|
24782
24788
|
}
|
|
24783
24789
|
);
|
|
24784
24790
|
DialogContent.displayName = DialogPrimitive.Content.displayName;
|
|
24785
|
-
DialogHeader = ({ className, ...props }) => /* @__PURE__ */
|
|
24791
|
+
DialogHeader = ({ className, ...props }) => /* @__PURE__ */ jsx120("div", { className: cn("flex flex-col space-y-1.5 text-center sm:text-left", className), ...props });
|
|
24786
24792
|
DialogHeader.displayName = "DialogHeader";
|
|
24787
|
-
DialogFooter = ({ className, ...props }) => /* @__PURE__ */
|
|
24793
|
+
DialogFooter = ({ className, ...props }) => /* @__PURE__ */ jsx120("div", { className: cn("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2", className), ...props });
|
|
24788
24794
|
DialogFooter.displayName = "DialogFooter";
|
|
24789
|
-
DialogTitle = forwardRef4(({ className, ...props }, ref) => /* @__PURE__ */
|
|
24795
|
+
DialogTitle = forwardRef4(({ className, ...props }, ref) => /* @__PURE__ */ jsx120(
|
|
24790
24796
|
DialogPrimitive.Title,
|
|
24791
24797
|
{
|
|
24792
24798
|
ref,
|
|
@@ -24795,24 +24801,24 @@ var init_dialog = __esm({
|
|
|
24795
24801
|
}
|
|
24796
24802
|
));
|
|
24797
24803
|
DialogTitle.displayName = DialogPrimitive.Title.displayName;
|
|
24798
|
-
DialogDescription = forwardRef4(({ className, ...props }, ref) => /* @__PURE__ */
|
|
24804
|
+
DialogDescription = forwardRef4(({ className, ...props }, ref) => /* @__PURE__ */ jsx120(DialogPrimitive.Description, { ref, className: cn("text-sm text-muted-foreground", className), ...props }));
|
|
24799
24805
|
DialogDescription.displayName = DialogPrimitive.Description.displayName;
|
|
24800
24806
|
}
|
|
24801
24807
|
});
|
|
24802
24808
|
|
|
24803
24809
|
// src/internal/components/ui/visually-hidden.tsx
|
|
24804
|
-
import { jsx as
|
|
24810
|
+
import { jsx as jsx121 } from "react/jsx-runtime";
|
|
24805
24811
|
var VisuallyHidden;
|
|
24806
24812
|
var init_visually_hidden = __esm({
|
|
24807
24813
|
"src/internal/components/ui/visually-hidden.tsx"() {
|
|
24808
|
-
VisuallyHidden = ({ children }) => /* @__PURE__ */
|
|
24814
|
+
VisuallyHidden = ({ children }) => /* @__PURE__ */ jsx121("span", { className: "sr-only absolute w-px h-px p-0 -m-px overflow-hidden whitespace-nowrap border-0", children });
|
|
24809
24815
|
}
|
|
24810
24816
|
});
|
|
24811
24817
|
|
|
24812
24818
|
// src/internal/components/Dialog/Dialog.tsx
|
|
24813
24819
|
import { AnimatePresence, motion } from "framer-motion";
|
|
24814
24820
|
import { useEffect as useEffect47 } from "react";
|
|
24815
|
-
import { jsx as
|
|
24821
|
+
import { jsx as jsx122, jsxs as jsxs108 } from "react/jsx-runtime";
|
|
24816
24822
|
function Dialog2() {
|
|
24817
24823
|
const config = useProviderConfig().config;
|
|
24818
24824
|
const className = config.current?.ui?.dialogClassName;
|
|
@@ -24831,7 +24837,7 @@ function Dialog2() {
|
|
|
24831
24837
|
useSettingsNotifications();
|
|
24832
24838
|
useListenIframeAuthEvents();
|
|
24833
24839
|
const isHeaderHidden = !session || page === "keysare-backup" /* KEYSARE_BACKUP */ && !hasServerVault;
|
|
24834
|
-
return /* @__PURE__ */
|
|
24840
|
+
return /* @__PURE__ */ jsx122(
|
|
24835
24841
|
Dialog,
|
|
24836
24842
|
{
|
|
24837
24843
|
modal: !isWalletLinking,
|
|
@@ -24841,10 +24847,10 @@ function Dialog2() {
|
|
|
24841
24847
|
if (!open) setPage(null);
|
|
24842
24848
|
},
|
|
24843
24849
|
children: /* @__PURE__ */ jsxs108(DialogContent, { colorMode, className, children: [
|
|
24844
|
-
/* @__PURE__ */
|
|
24845
|
-
/* @__PURE__ */
|
|
24846
|
-
!isHeaderHidden && /* @__PURE__ */
|
|
24847
|
-
/* @__PURE__ */
|
|
24850
|
+
/* @__PURE__ */ jsx122(VisuallyHidden, { children: /* @__PURE__ */ jsx122(DialogTitle, { children: dialogTitle }) }),
|
|
24851
|
+
/* @__PURE__ */ jsx122(DialogDescription, { className: "sr-only", children: dialogDescription }),
|
|
24852
|
+
!isHeaderHidden && /* @__PURE__ */ jsx122(Header, {}),
|
|
24853
|
+
/* @__PURE__ */ jsx122(AnimatePresence, { mode: "wait", initial: false, children: /* @__PURE__ */ jsx122(
|
|
24848
24854
|
motion.div,
|
|
24849
24855
|
{
|
|
24850
24856
|
initial: { opacity: 0, height: transitionPageHeight },
|
|
@@ -24856,7 +24862,7 @@ function Dialog2() {
|
|
|
24856
24862
|
},
|
|
24857
24863
|
page || "empty"
|
|
24858
24864
|
) }),
|
|
24859
|
-
/* @__PURE__ */
|
|
24865
|
+
/* @__PURE__ */ jsx122(Footer, {})
|
|
24860
24866
|
] })
|
|
24861
24867
|
}
|
|
24862
24868
|
);
|
|
@@ -24944,11 +24950,11 @@ var init_TssManager = __esm({
|
|
|
24944
24950
|
|
|
24945
24951
|
// src/internal/components/WalletConnectHandler.tsx
|
|
24946
24952
|
import { useConnectModal as useConnectModal2 } from "@rainbow-me/rainbowkit";
|
|
24947
|
-
import { useMutation as useMutation21, useQueryClient as
|
|
24953
|
+
import { useMutation as useMutation21, useQueryClient as useQueryClient27 } from "@tanstack/react-query";
|
|
24948
24954
|
import React10, { useCallback as useCallback29, useEffect as useEffect48 } from "react";
|
|
24949
24955
|
import { useAccount, useDisconnect, useSignMessage as useSignMessage2 } from "wagmi";
|
|
24950
24956
|
function WalletConnectHandler() {
|
|
24951
|
-
const qc =
|
|
24957
|
+
const qc = useQueryClient27();
|
|
24952
24958
|
const { callbacksRef } = useProviderConfig();
|
|
24953
24959
|
const passportWalletAddress = useSession((st) => st.address);
|
|
24954
24960
|
const { address: walletAddress, isConnected, chain, connector } = useAccount();
|
|
@@ -25281,20 +25287,20 @@ var init_DirectWalletHandler = __esm({
|
|
|
25281
25287
|
// src/context/SessionContext.tsx
|
|
25282
25288
|
import {
|
|
25283
25289
|
createBundlerClientForChain,
|
|
25284
|
-
createPublicClientForChain as
|
|
25290
|
+
createPublicClientForChain as createPublicClientForChain6,
|
|
25285
25291
|
DEFAULT_CHAIN_ID as DEFAULT_CHAIN_ID2,
|
|
25286
|
-
getChainConfig as
|
|
25292
|
+
getChainConfig as getChainConfig9,
|
|
25287
25293
|
getViemChain as getViemChain2
|
|
25288
25294
|
} from "@embarkai/core/read";
|
|
25289
|
-
import { Fragment as
|
|
25295
|
+
import { Fragment as Fragment46 } from "react";
|
|
25290
25296
|
import { create as create11 } from "zustand";
|
|
25291
25297
|
import { persist as persist3 } from "zustand/middleware";
|
|
25292
|
-
import { jsx as
|
|
25298
|
+
import { jsx as jsx123, jsxs as jsxs109 } from "react/jsx-runtime";
|
|
25293
25299
|
function getChainParams(chainCfg) {
|
|
25294
25300
|
return {
|
|
25295
25301
|
activeChainId: chainCfg.id,
|
|
25296
25302
|
chainConfig: chainCfg,
|
|
25297
|
-
publicClient:
|
|
25303
|
+
publicClient: createPublicClientForChain6(chainCfg.id),
|
|
25298
25304
|
bundlerClient: createBundlerClientForChain(chainCfg.id),
|
|
25299
25305
|
viemChain: getViemChain2(chainCfg.id)
|
|
25300
25306
|
};
|
|
@@ -25307,19 +25313,19 @@ function waitForStoreHydration() {
|
|
|
25307
25313
|
}
|
|
25308
25314
|
function SessionProvider({ children }) {
|
|
25309
25315
|
const config = useProviderConfig().config;
|
|
25310
|
-
return /* @__PURE__ */ jsxs109(
|
|
25316
|
+
return /* @__PURE__ */ jsxs109(Fragment46, { children: [
|
|
25311
25317
|
children,
|
|
25312
|
-
config.current?.wallet?.enabled && /* @__PURE__ */
|
|
25313
|
-
config.current?.wallet?.enabled && (config.current?.wallet?.mode === "direct" || config.current?.wallet?.mode === "both") && /* @__PURE__ */
|
|
25314
|
-
/* @__PURE__ */
|
|
25315
|
-
/* @__PURE__ */
|
|
25316
|
-
/* @__PURE__ */
|
|
25318
|
+
config.current?.wallet?.enabled && /* @__PURE__ */ jsx123(WalletConnectHandler, {}),
|
|
25319
|
+
config.current?.wallet?.enabled && (config.current?.wallet?.mode === "direct" || config.current?.wallet?.mode === "both") && /* @__PURE__ */ jsx123(DirectWalletHandler, {}),
|
|
25320
|
+
/* @__PURE__ */ jsx123(BalanceFeedProvider, {}),
|
|
25321
|
+
/* @__PURE__ */ jsx123(ChainSync, {}),
|
|
25322
|
+
/* @__PURE__ */ jsx123(
|
|
25317
25323
|
TssManagerWithRef,
|
|
25318
25324
|
{
|
|
25319
25325
|
mpcPin: void 0
|
|
25320
25326
|
}
|
|
25321
25327
|
),
|
|
25322
|
-
/* @__PURE__ */
|
|
25328
|
+
/* @__PURE__ */ jsx123(Dialog2, {})
|
|
25323
25329
|
] });
|
|
25324
25330
|
}
|
|
25325
25331
|
var useSession, requireActiveChainId;
|
|
@@ -25392,7 +25398,7 @@ var init_SessionContext = __esm({
|
|
|
25392
25398
|
// Set default chainId after hydration if not persisted
|
|
25393
25399
|
onRehydrateStorage: () => (state) => {
|
|
25394
25400
|
if (!state) return;
|
|
25395
|
-
const hydartedChain = getChainParams(
|
|
25401
|
+
const hydartedChain = getChainParams(getChainConfig9(state.activeChainId || DEFAULT_CHAIN_ID2));
|
|
25396
25402
|
state.activeChainId = hydartedChain.activeChainId;
|
|
25397
25403
|
state.publicClient = hydartedChain.publicClient;
|
|
25398
25404
|
state.bundlerClient = hydartedChain.bundlerClient;
|
|
@@ -25439,7 +25445,7 @@ var init_env = __esm({
|
|
|
25439
25445
|
});
|
|
25440
25446
|
|
|
25441
25447
|
// src/internal/clients/base.ts
|
|
25442
|
-
import { getChainConfig as
|
|
25448
|
+
import { getChainConfig as getChainConfig10, getViemChain as getViemChain3, lumiaMainnetChain, lumiaTestnetChain } from "@embarkai/core/read";
|
|
25443
25449
|
import { http as http4 } from "viem";
|
|
25444
25450
|
import { createBundlerClient } from "viem/account-abstraction";
|
|
25445
25451
|
function getTssUrl2() {
|
|
@@ -25470,13 +25476,13 @@ function getExplorerUrl() {
|
|
|
25470
25476
|
const paramUrl = typeof window !== "undefined" ? new URLSearchParams(window.location.search).get("explorerUrl") || void 0 : void 0;
|
|
25471
25477
|
const net = getSelectedNetwork();
|
|
25472
25478
|
const chainId = requireActiveChainId();
|
|
25473
|
-
const chainConfig =
|
|
25479
|
+
const chainConfig = getChainConfig10(chainId);
|
|
25474
25480
|
console.log("[getExplorerUrl] ", paramUrl, chainConfig.blockExplorerUrl);
|
|
25475
25481
|
return paramUrl || chainConfig.blockExplorerUrl;
|
|
25476
25482
|
}
|
|
25477
25483
|
function getBundlerClient() {
|
|
25478
25484
|
const chainId = requireActiveChainId();
|
|
25479
|
-
const chainConfig =
|
|
25485
|
+
const chainConfig = getChainConfig10(chainId);
|
|
25480
25486
|
const viemChain = getViemChain3(chainId);
|
|
25481
25487
|
return createBundlerClient({
|
|
25482
25488
|
chain: viemChain,
|
|
@@ -28000,14 +28006,14 @@ var init_rainbowkit = __esm({
|
|
|
28000
28006
|
|
|
28001
28007
|
// src/context/RainbowKitContext.tsx
|
|
28002
28008
|
import { darkTheme, lightTheme, RainbowKitProvider as NativeRainbowKitProvider } from "@rainbow-me/rainbowkit";
|
|
28003
|
-
import { useMemo as
|
|
28009
|
+
import { useMemo as useMemo11 } from "react";
|
|
28004
28010
|
import { WagmiProvider } from "wagmi";
|
|
28005
28011
|
import "@rainbow-me/rainbowkit/styles.css";
|
|
28006
|
-
import { Fragment as
|
|
28012
|
+
import { Fragment as Fragment47, jsx as jsx124 } from "react/jsx-runtime";
|
|
28007
28013
|
function RainbowKitProvider({ children }) {
|
|
28008
28014
|
const config = useProviderConfig().config;
|
|
28009
28015
|
const colorMode = useLayoutStore((st) => st.colorMode);
|
|
28010
|
-
const rainbowConfig =
|
|
28016
|
+
const rainbowConfig = useMemo11(
|
|
28011
28017
|
() => createRainbowConfig({
|
|
28012
28018
|
projectId: config.current?.wallet?.walletConnectProjectId,
|
|
28013
28019
|
allowedWallets: config.current?.wallet?.allowedWallets,
|
|
@@ -28021,7 +28027,7 @@ function RainbowKitProvider({ children }) {
|
|
|
28021
28027
|
config.current?.wallet?.walletConnectProjectId
|
|
28022
28028
|
]
|
|
28023
28029
|
);
|
|
28024
|
-
const customTheme =
|
|
28030
|
+
const customTheme = useMemo11(() => {
|
|
28025
28031
|
if (!config.current?.wallet?.enabled) return {};
|
|
28026
28032
|
return colorMode === "dark" ? {
|
|
28027
28033
|
...darkTheme(),
|
|
@@ -28035,8 +28041,8 @@ function RainbowKitProvider({ children }) {
|
|
|
28035
28041
|
radii: rainbowTheme.lightMode.radii
|
|
28036
28042
|
};
|
|
28037
28043
|
}, [colorMode]);
|
|
28038
|
-
if (!config.current?.wallet?.enabled) return /* @__PURE__ */
|
|
28039
|
-
return /* @__PURE__ */
|
|
28044
|
+
if (!config.current?.wallet?.enabled) return /* @__PURE__ */ jsx124(Fragment47, { children });
|
|
28045
|
+
return /* @__PURE__ */ jsx124(WagmiProvider, { config: rainbowConfig, children: /* @__PURE__ */ jsx124(NativeRainbowKitProvider, { theme: customTheme, modalSize: "compact", showRecentTransactions: true, children }) });
|
|
28040
28046
|
}
|
|
28041
28047
|
var init_RainbowKitContext = __esm({
|
|
28042
28048
|
"src/context/RainbowKitContext.tsx"() {
|
|
@@ -28102,13 +28108,13 @@ var init_wagmi = __esm({
|
|
|
28102
28108
|
|
|
28103
28109
|
// src/context/WagmiContext.tsx
|
|
28104
28110
|
import { WagmiProvider as NativeWagmiProvider } from "wagmi";
|
|
28105
|
-
import { jsx as
|
|
28111
|
+
import { jsx as jsx125 } from "react/jsx-runtime";
|
|
28106
28112
|
var WagmiProvider2;
|
|
28107
28113
|
var init_WagmiContext = __esm({
|
|
28108
28114
|
"src/context/WagmiContext.tsx"() {
|
|
28109
28115
|
init_wagmi();
|
|
28110
28116
|
WagmiProvider2 = ({ children }) => {
|
|
28111
|
-
return /* @__PURE__ */
|
|
28117
|
+
return /* @__PURE__ */ jsx125(NativeWagmiProvider, { config: wagmiConfig, children });
|
|
28112
28118
|
};
|
|
28113
28119
|
}
|
|
28114
28120
|
});
|
|
@@ -28121,10 +28127,10 @@ import {
|
|
|
28121
28127
|
useCallback as useCallback30,
|
|
28122
28128
|
useContext,
|
|
28123
28129
|
useEffect as useEffect50,
|
|
28124
|
-
useMemo as
|
|
28130
|
+
useMemo as useMemo12,
|
|
28125
28131
|
useRef as useRef21
|
|
28126
28132
|
} from "react";
|
|
28127
|
-
import { jsx as
|
|
28133
|
+
import { jsx as jsx126 } from "react/jsx-runtime";
|
|
28128
28134
|
function clearLegacyWagmiStorage() {
|
|
28129
28135
|
if (typeof window === "undefined" || !window.localStorage) return;
|
|
28130
28136
|
const legacyKeys = [
|
|
@@ -28234,7 +28240,7 @@ function Provider(props) {
|
|
|
28234
28240
|
console.error("[PROVIDER] Error setting up iframe manager:", error);
|
|
28235
28241
|
}
|
|
28236
28242
|
}, [projectId]);
|
|
28237
|
-
const contextValue =
|
|
28243
|
+
const contextValue = useMemo12(
|
|
28238
28244
|
() => ({
|
|
28239
28245
|
config,
|
|
28240
28246
|
updateConfig,
|
|
@@ -28246,8 +28252,8 @@ function Provider(props) {
|
|
|
28246
28252
|
[config, updateConfig, callbacks, updateCallbacks]
|
|
28247
28253
|
);
|
|
28248
28254
|
if (!!initialConfig?.wallet?.enabled)
|
|
28249
|
-
return /* @__PURE__ */
|
|
28250
|
-
return /* @__PURE__ */
|
|
28255
|
+
return /* @__PURE__ */ jsx126(UIContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx126(RainbowKitProvider, { children: /* @__PURE__ */ jsx126(SessionProvider, { children }) }) });
|
|
28256
|
+
return /* @__PURE__ */ jsx126(WagmiProvider2, { children: /* @__PURE__ */ jsx126(UIContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx126(SessionProvider, { children }) }) });
|
|
28251
28257
|
}
|
|
28252
28258
|
var UIContext, useProviderConfig;
|
|
28253
28259
|
var init_ProviderContext = __esm({
|
|
@@ -28268,7 +28274,7 @@ var init_ProviderContext = __esm({
|
|
|
28268
28274
|
});
|
|
28269
28275
|
|
|
28270
28276
|
// src/styles/built.css
|
|
28271
|
-
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 .mt-\\[var\\(--ui-kit-gap\\)\\]{margin-top:var(--ui-kit-gap)}.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 .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-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\\%-12px\\)\\]{max-width:calc(50% - 12px)}.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-75{opacity:.75}.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}`;
|
|
28277
|
+
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-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}`;
|
|
28272
28278
|
|
|
28273
28279
|
// src/index.ts
|
|
28274
28280
|
init_ProviderContext();
|
|
@@ -28287,8 +28293,8 @@ init_pro_mode();
|
|
|
28287
28293
|
init_utils2();
|
|
28288
28294
|
import { useQuery as useQuery28 } from "@tanstack/react-query";
|
|
28289
28295
|
import { Cloud as Cloud4, Laptop as Laptop2, Loader as Loader37, Shield as Shield3 } from "lucide-react";
|
|
28290
|
-
import { useEffect as useEffect51, useMemo as
|
|
28291
|
-
import { Fragment as
|
|
28296
|
+
import { useEffect as useEffect51, useMemo as useMemo13 } from "react";
|
|
28297
|
+
import { Fragment as Fragment48, jsx as jsx127, jsxs as jsxs110 } from "react/jsx-runtime";
|
|
28292
28298
|
function getFormattedStatus(label, status, showStatus) {
|
|
28293
28299
|
const isStatus = showStatus && status && status !== "idle" && status !== "ready";
|
|
28294
28300
|
if (!isStatus) return label;
|
|
@@ -28315,7 +28321,7 @@ function ConnectWalletButton(props) {
|
|
|
28315
28321
|
queryFn: getUserProfile
|
|
28316
28322
|
});
|
|
28317
28323
|
const displayName = profile?.nicknameDisplay || profile?.displayName || jwtTokenManager2.getDisplayName();
|
|
28318
|
-
const indicators =
|
|
28324
|
+
const indicators = useMemo13(() => {
|
|
28319
28325
|
const userId = session?.mpcUserId;
|
|
28320
28326
|
if (!userId) return { server: false, local: false, backup: false };
|
|
28321
28327
|
const server = jwtTokenManager2.getHasKeyshare() ?? false;
|
|
@@ -28324,16 +28330,16 @@ function ConnectWalletButton(props) {
|
|
|
28324
28330
|
}, [session, address, hasServerVault]);
|
|
28325
28331
|
const proMode = useProMode();
|
|
28326
28332
|
const isConnecting = connectButtonLabel !== label || isLoading;
|
|
28327
|
-
return /* @__PURE__ */
|
|
28333
|
+
return /* @__PURE__ */ jsx127("div", { "data-current-theme-mode": colorMode, className: cn("embarkai-ui-scope w-fit h-fit", className), children: !address ? (
|
|
28328
28334
|
/** external Buttons can be provided */
|
|
28329
|
-
/* @__PURE__ */
|
|
28335
|
+
/* @__PURE__ */ jsx127(Fragment48, { children: ConnectButton ? /* @__PURE__ */ jsxs110(
|
|
28330
28336
|
ConnectButton,
|
|
28331
28337
|
{
|
|
28332
28338
|
type: "button",
|
|
28333
28339
|
disabled: isConnecting,
|
|
28334
28340
|
onClick: () => setPage("auth" /* AUTH */),
|
|
28335
28341
|
children: [
|
|
28336
|
-
isConnecting && /* @__PURE__ */
|
|
28342
|
+
isConnecting && /* @__PURE__ */ jsx127(Loader37, { className: "w-4 h-4 animate-spin" }),
|
|
28337
28343
|
connectButtonLabel
|
|
28338
28344
|
]
|
|
28339
28345
|
}
|
|
@@ -28354,7 +28360,7 @@ function ConnectWalletButton(props) {
|
|
|
28354
28360
|
"disabled:hover:bg-[var(--ui-kit-bg)] disabled:active:bg-[var(--ui-kit-bg)]"
|
|
28355
28361
|
),
|
|
28356
28362
|
children: [
|
|
28357
|
-
isConnecting && /* @__PURE__ */
|
|
28363
|
+
isConnecting && /* @__PURE__ */ jsx127(Loader37, { className: "w-4 h-4 animate-spin" }),
|
|
28358
28364
|
connectButtonLabel.toUpperCase()
|
|
28359
28365
|
]
|
|
28360
28366
|
}
|
|
@@ -28373,19 +28379,19 @@ function ConnectWalletButton(props) {
|
|
|
28373
28379
|
),
|
|
28374
28380
|
children: [
|
|
28375
28381
|
/* @__PURE__ */ jsxs110("div", { className: "relative w-12 h-12 rounded-full bg-[var(--ui-kit-fg)] flex items-center justify-center flex-shrink-0", children: [
|
|
28376
|
-
proMode && /* @__PURE__ */
|
|
28377
|
-
profile?.avatar ? /* @__PURE__ */
|
|
28382
|
+
proMode && /* @__PURE__ */ jsx127("span", { className: "absolute -top-1 -right-1 text-[8px] font-bold px-1 rounded bg-[var(--ui-kit-primary)] text-[var(--ui-kit-fg-inverted)] leading-3 z-10", children: "PRO" }),
|
|
28383
|
+
profile?.avatar ? /* @__PURE__ */ jsx127("img", { src: profile.avatar, alt: "User avatar", className: "w-full h-full object-cover" }) : /* @__PURE__ */ jsx127(LumiaIcon3, { width: 48, height: 48 })
|
|
28378
28384
|
] }),
|
|
28379
28385
|
/* @__PURE__ */ jsxs110("div", { className: "text-left flex-1 min-w-0 text-[var(--ui-kit-fg)]", children: [
|
|
28380
28386
|
/* @__PURE__ */ jsxs110("div", { className: "flex items-center gap-[var(--ui-kit-gap)]", children: [
|
|
28381
|
-
isProfileLoading ? /* @__PURE__ */
|
|
28382
|
-
!isProfileLoading && /* @__PURE__ */
|
|
28387
|
+
isProfileLoading ? /* @__PURE__ */ jsx127(Loader37, { className: "w-4 h-4 animate-spin" }) : /* @__PURE__ */ jsx127("span", { className: "w-fit text-[14px] leading-4 truncate max-w-[144px] text-[var(--ui-kit-fg)]", children: displayName }),
|
|
28388
|
+
!isProfileLoading && /* @__PURE__ */ jsx127(KYCStatus, {})
|
|
28383
28389
|
] }),
|
|
28384
|
-
/* @__PURE__ */
|
|
28390
|
+
/* @__PURE__ */ jsx127(BalanceView, {})
|
|
28385
28391
|
] }),
|
|
28386
28392
|
/* @__PURE__ */ jsxs110("div", { className: "flex items-center space-x-1", children: [
|
|
28387
28393
|
/* @__PURE__ */ jsxs110("div", { className: "group relative", children: [
|
|
28388
|
-
/* @__PURE__ */
|
|
28394
|
+
/* @__PURE__ */ jsx127(
|
|
28389
28395
|
Cloud4,
|
|
28390
28396
|
{
|
|
28391
28397
|
className: `w-3 h-3 ${indicators.server ? "text-[var(--ui-kit-bg-success)]" : "text-[var(--ui-kit-bg-warning)]"}`
|
|
@@ -28407,7 +28413,7 @@ function ConnectWalletButton(props) {
|
|
|
28407
28413
|
)
|
|
28408
28414
|
] }),
|
|
28409
28415
|
/* @__PURE__ */ jsxs110("div", { className: "group relative", children: [
|
|
28410
|
-
/* @__PURE__ */
|
|
28416
|
+
/* @__PURE__ */ jsx127(
|
|
28411
28417
|
Laptop2,
|
|
28412
28418
|
{
|
|
28413
28419
|
className: `w-3 h-3 ${indicators.local ? "text-[var(--ui-kit-bg-success)]" : "text-[var(--ui-kit-bg-warning)]"}`
|
|
@@ -28429,7 +28435,7 @@ function ConnectWalletButton(props) {
|
|
|
28429
28435
|
)
|
|
28430
28436
|
] }),
|
|
28431
28437
|
/* @__PURE__ */ jsxs110("div", { className: "group relative", children: [
|
|
28432
|
-
/* @__PURE__ */
|
|
28438
|
+
/* @__PURE__ */ jsx127(
|
|
28433
28439
|
Shield3,
|
|
28434
28440
|
{
|
|
28435
28441
|
className: `w-3 h-3 ${indicators.backup ? "text-[var(--ui-kit-bg-success)]" : "text-[var(--ui-kit-bg-warning)]"}`
|
|
@@ -28451,7 +28457,7 @@ function ConnectWalletButton(props) {
|
|
|
28451
28457
|
)
|
|
28452
28458
|
] })
|
|
28453
28459
|
] }),
|
|
28454
|
-
!!settingsNotifications.length && /* @__PURE__ */
|
|
28460
|
+
!!settingsNotifications.length && /* @__PURE__ */ jsx127(
|
|
28455
28461
|
"div",
|
|
28456
28462
|
{
|
|
28457
28463
|
className: cn(
|
|
@@ -28529,24 +28535,24 @@ init_useColorMode();
|
|
|
28529
28535
|
init_button();
|
|
28530
28536
|
init_utils2();
|
|
28531
28537
|
import { Moon, Sun } from "lucide-react";
|
|
28532
|
-
import { jsx as
|
|
28538
|
+
import { jsx as jsx128 } from "react/jsx-runtime";
|
|
28533
28539
|
function ThemeToggle(props) {
|
|
28534
28540
|
const { className, ...btnProps } = props;
|
|
28535
28541
|
const { colorMode, setColorMode } = useColorMode();
|
|
28536
|
-
return /* @__PURE__ */
|
|
28542
|
+
return /* @__PURE__ */ jsx128(
|
|
28537
28543
|
"div",
|
|
28538
28544
|
{
|
|
28539
28545
|
className: cn("embarkai-ui-scope", className),
|
|
28540
28546
|
"data-current-theme-mode": colorMode,
|
|
28541
28547
|
style: { width: "fit-content", height: "fit-content" },
|
|
28542
|
-
children: /* @__PURE__ */
|
|
28548
|
+
children: /* @__PURE__ */ jsx128(
|
|
28543
28549
|
Button,
|
|
28544
28550
|
{
|
|
28545
28551
|
...btnProps,
|
|
28546
28552
|
variant: "ghost",
|
|
28547
28553
|
onClick: () => setColorMode(colorMode === "light" ? "dark" : "light"),
|
|
28548
28554
|
title: `Current theme: ${colorMode}. Click to switch.`,
|
|
28549
|
-
children: colorMode === "dark" ? /* @__PURE__ */
|
|
28555
|
+
children: colorMode === "dark" ? /* @__PURE__ */ jsx128(Sun, { className: "w-4 h-4" }) : /* @__PURE__ */ jsx128(Moon, { className: "w-4 h-4" })
|
|
28550
28556
|
}
|
|
28551
28557
|
)
|
|
28552
28558
|
}
|
|
@@ -28558,18 +28564,18 @@ init_i18n();
|
|
|
28558
28564
|
init_button();
|
|
28559
28565
|
init_useLayoutDataStore();
|
|
28560
28566
|
init_utils2();
|
|
28561
|
-
import { jsx as
|
|
28567
|
+
import { jsx as jsx129 } from "react/jsx-runtime";
|
|
28562
28568
|
function LangToggle(props) {
|
|
28563
28569
|
const { className, ...btnProps } = props;
|
|
28564
28570
|
const { i18n } = useT();
|
|
28565
28571
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
28566
|
-
return /* @__PURE__ */
|
|
28572
|
+
return /* @__PURE__ */ jsx129(
|
|
28567
28573
|
"div",
|
|
28568
28574
|
{
|
|
28569
28575
|
className: cn("embarkai-ui-scope", className),
|
|
28570
28576
|
"data-mbark-language": i18n.resolvedLanguage || "en",
|
|
28571
28577
|
style: { width: "fit-content", height: "fit-content" },
|
|
28572
|
-
children: /* @__PURE__ */
|
|
28578
|
+
children: /* @__PURE__ */ jsx129(
|
|
28573
28579
|
Button,
|
|
28574
28580
|
{
|
|
28575
28581
|
...btnProps,
|
|
@@ -28587,18 +28593,94 @@ function LangToggle(props) {
|
|
|
28587
28593
|
init_useLayoutDataStore();
|
|
28588
28594
|
|
|
28589
28595
|
// src/internal/components/UserOpStatus.tsx
|
|
28590
|
-
init_getUserOperationByHash();
|
|
28591
|
-
init_getUserOperationReceipt();
|
|
28592
|
-
init_cn();
|
|
28593
28596
|
import { AlertCircle as AlertCircle8, CheckCircle2 as CheckCircle27, Clock as Clock2, Copy as Copy7, ExternalLink as ExternalLink3, RefreshCw as RefreshCw4 } from "lucide-react";
|
|
28594
28597
|
import * as React12 from "react";
|
|
28595
28598
|
|
|
28599
|
+
// src/clients/bundler/getUserOperationByHash.ts
|
|
28600
|
+
init_SessionContext();
|
|
28601
|
+
import { bundlerRpc } from "@embarkai/core";
|
|
28602
|
+
import { getChainConfig as getChainConfig11 } from "@embarkai/core/read";
|
|
28603
|
+
async function getUserOperationByHash(userOpHash, chainId) {
|
|
28604
|
+
const targetChainId = chainId ?? requireActiveChainId();
|
|
28605
|
+
const chainConfig = getChainConfig11(targetChainId);
|
|
28606
|
+
if (!chainConfig) {
|
|
28607
|
+
throw new Error(`Chain ${targetChainId} is not supported`);
|
|
28608
|
+
}
|
|
28609
|
+
if (!chainConfig.bundlerUrl) {
|
|
28610
|
+
throw new Error(`Chain ${targetChainId} has no bundlerUrl configured`);
|
|
28611
|
+
}
|
|
28612
|
+
if (!userOpHash) {
|
|
28613
|
+
throw new Error("Operation hash is required");
|
|
28614
|
+
}
|
|
28615
|
+
try {
|
|
28616
|
+
const result = await bundlerRpc("eth_getUserOperationByHash", [userOpHash], chainConfig.bundlerUrl);
|
|
28617
|
+
if (!result) {
|
|
28618
|
+
return null;
|
|
28619
|
+
}
|
|
28620
|
+
console.log("[getUserOperationByHash] Receipt:", JSON.stringify(result, null, 2));
|
|
28621
|
+
return {
|
|
28622
|
+
entryPoint: result.entryPoint,
|
|
28623
|
+
userOperation: result.userOperation,
|
|
28624
|
+
transactionHash: result.transactionHash,
|
|
28625
|
+
blockNumber: result.blockNumber,
|
|
28626
|
+
blockHash: result.blockHash
|
|
28627
|
+
};
|
|
28628
|
+
} catch (error) {
|
|
28629
|
+
console.warn("[getUserOperationByHash] Failed to get user operation:", error);
|
|
28630
|
+
return null;
|
|
28631
|
+
}
|
|
28632
|
+
}
|
|
28633
|
+
|
|
28634
|
+
// src/clients/bundler/getUserOperationReceipt.ts
|
|
28635
|
+
init_SessionContext();
|
|
28636
|
+
import { bundlerRpc as bundlerRpc2 } from "@embarkai/core";
|
|
28637
|
+
import { getChainConfig as getChainConfig12 } from "@embarkai/core/read";
|
|
28638
|
+
async function getUserOperationReceipt(userOpHash, chainId) {
|
|
28639
|
+
const targetChainId = chainId ?? requireActiveChainId();
|
|
28640
|
+
const chainConfig = getChainConfig12(targetChainId);
|
|
28641
|
+
if (!chainConfig) {
|
|
28642
|
+
throw new Error(`Chain ${targetChainId} is not supported`);
|
|
28643
|
+
}
|
|
28644
|
+
if (!chainConfig.bundlerUrl) {
|
|
28645
|
+
throw new Error(`Chain ${targetChainId} has no bundlerUrl configured`);
|
|
28646
|
+
}
|
|
28647
|
+
if (!userOpHash) {
|
|
28648
|
+
throw new Error("Operation hash is required");
|
|
28649
|
+
}
|
|
28650
|
+
try {
|
|
28651
|
+
const result = await bundlerRpc2("eth_getUserOperationReceipt", [userOpHash], chainConfig.bundlerUrl);
|
|
28652
|
+
if (!result) {
|
|
28653
|
+
return null;
|
|
28654
|
+
}
|
|
28655
|
+
console.log("[getUserOperationReceipt] Receipt:", JSON.stringify(result, null, 2));
|
|
28656
|
+
return {
|
|
28657
|
+
userOpHash: result.userOpHash,
|
|
28658
|
+
entryPoint: result.entryPoint,
|
|
28659
|
+
sender: result.sender,
|
|
28660
|
+
nonce: result.nonce,
|
|
28661
|
+
success: result.success,
|
|
28662
|
+
actualGasCost: result.actualGasCost,
|
|
28663
|
+
actualGasUsed: result.actualGasUsed,
|
|
28664
|
+
paymaster: result.paymaster,
|
|
28665
|
+
receipt: result.receipt,
|
|
28666
|
+
logs: result.logs,
|
|
28667
|
+
reason: result.reason
|
|
28668
|
+
};
|
|
28669
|
+
} catch (error) {
|
|
28670
|
+
console.warn("[getUserOperationReceipt] Failed to get receipt:", error);
|
|
28671
|
+
return null;
|
|
28672
|
+
}
|
|
28673
|
+
}
|
|
28674
|
+
|
|
28675
|
+
// src/internal/components/UserOpStatus.tsx
|
|
28676
|
+
init_cn();
|
|
28677
|
+
|
|
28596
28678
|
// src/internal/components/Address.tsx
|
|
28597
28679
|
init_cn();
|
|
28598
28680
|
init_button();
|
|
28599
28681
|
import { Copy as Copy6, ExternalLink as ExternalLink2 } from "lucide-react";
|
|
28600
28682
|
import * as React11 from "react";
|
|
28601
|
-
import { jsx as
|
|
28683
|
+
import { jsx as jsx130, jsxs as jsxs111 } from "react/jsx-runtime";
|
|
28602
28684
|
function toExplorerAddressUrl(address, chain) {
|
|
28603
28685
|
const base2 = chain?.blockExplorers?.default?.url;
|
|
28604
28686
|
if (!base2) return null;
|
|
@@ -28620,11 +28702,11 @@ var Address = ({
|
|
|
28620
28702
|
const addr = address || "";
|
|
28621
28703
|
const explorer = toExplorerAddressUrl(addr, chain || void 0);
|
|
28622
28704
|
const [copied, setCopied] = React11.useState(false);
|
|
28623
|
-
if (!addr) return /* @__PURE__ */
|
|
28705
|
+
if (!addr) return /* @__PURE__ */ jsx130("span", { className: cn2("text-muted-foreground", className), children: "\u2014" });
|
|
28624
28706
|
return /* @__PURE__ */ jsxs111("div", { className: cn2("flex items-center gap-2", className), style: { listStyle: "none" }, children: [
|
|
28625
|
-
label && /* @__PURE__ */
|
|
28626
|
-
/* @__PURE__ */
|
|
28627
|
-
showCopy && /* @__PURE__ */
|
|
28707
|
+
label && /* @__PURE__ */ jsx130("span", { className: "text-sm font-medium", children: label }),
|
|
28708
|
+
/* @__PURE__ */ jsx130("code", { className: "text-xs bg-background px-2 py-1 rounded select-all", children: truncate ? short(addr) : addr }),
|
|
28709
|
+
showCopy && /* @__PURE__ */ jsx130(
|
|
28628
28710
|
Button,
|
|
28629
28711
|
{
|
|
28630
28712
|
variant: "ghost",
|
|
@@ -28638,10 +28720,10 @@ var Address = ({
|
|
|
28638
28720
|
} catch {
|
|
28639
28721
|
}
|
|
28640
28722
|
},
|
|
28641
|
-
children: /* @__PURE__ */
|
|
28723
|
+
children: /* @__PURE__ */ jsx130(Copy6, { className: "h-4 w-4" })
|
|
28642
28724
|
}
|
|
28643
28725
|
),
|
|
28644
|
-
showExplorer && explorer && /* @__PURE__ */
|
|
28726
|
+
showExplorer && explorer && /* @__PURE__ */ jsx130(
|
|
28645
28727
|
"a",
|
|
28646
28728
|
{
|
|
28647
28729
|
href: explorer,
|
|
@@ -28649,7 +28731,7 @@ var Address = ({
|
|
|
28649
28731
|
rel: "noreferrer noopener",
|
|
28650
28732
|
className: "inline-flex items-center justify-center h-10 w-10 rounded-md hover:bg-accent text-foreground",
|
|
28651
28733
|
title: "Open in explorer",
|
|
28652
|
-
children: /* @__PURE__ */
|
|
28734
|
+
children: /* @__PURE__ */ jsx130(ExternalLink2, { className: "h-4 w-4" })
|
|
28653
28735
|
}
|
|
28654
28736
|
)
|
|
28655
28737
|
] });
|
|
@@ -28658,7 +28740,7 @@ var Address = ({
|
|
|
28658
28740
|
// src/internal/components/UserOpStatus.tsx
|
|
28659
28741
|
init_badge();
|
|
28660
28742
|
init_button();
|
|
28661
|
-
import { jsx as
|
|
28743
|
+
import { jsx as jsx131, jsxs as jsxs112 } from "react/jsx-runtime";
|
|
28662
28744
|
var UserOpStatus = ({
|
|
28663
28745
|
userOpHash,
|
|
28664
28746
|
chain,
|
|
@@ -28774,30 +28856,30 @@ var UserOpStatus = ({
|
|
|
28774
28856
|
if (receipt) {
|
|
28775
28857
|
const ok = !!receipt.success;
|
|
28776
28858
|
return /* @__PURE__ */ jsxs112(Badge, { variant: ok ? "success" : "destructive", children: [
|
|
28777
|
-
ok ? /* @__PURE__ */
|
|
28859
|
+
ok ? /* @__PURE__ */ jsx131(CheckCircle27, { className: "h-3 w-3" }) : /* @__PURE__ */ jsx131(AlertCircle8, { className: "h-3 w-3" }),
|
|
28778
28860
|
ok ? "Included" : "Failed"
|
|
28779
28861
|
] });
|
|
28780
28862
|
}
|
|
28781
28863
|
if (rejected) {
|
|
28782
28864
|
return /* @__PURE__ */ jsxs112(Badge, { variant: "destructive", children: [
|
|
28783
|
-
/* @__PURE__ */
|
|
28865
|
+
/* @__PURE__ */ jsx131(AlertCircle8, { className: "h-3 w-3" }),
|
|
28784
28866
|
" Rejected by bundler"
|
|
28785
28867
|
] });
|
|
28786
28868
|
}
|
|
28787
28869
|
if (timedOut) {
|
|
28788
28870
|
return /* @__PURE__ */ jsxs112(Badge, { variant: "warning", children: [
|
|
28789
|
-
/* @__PURE__ */
|
|
28871
|
+
/* @__PURE__ */ jsx131(AlertCircle8, { className: "h-3 w-3" }),
|
|
28790
28872
|
" Timeout - may be rejected"
|
|
28791
28873
|
] });
|
|
28792
28874
|
}
|
|
28793
28875
|
if (mempool) {
|
|
28794
28876
|
return /* @__PURE__ */ jsxs112(Badge, { variant: "outline", children: [
|
|
28795
|
-
/* @__PURE__ */
|
|
28877
|
+
/* @__PURE__ */ jsx131(Clock2, { className: "h-3 w-3" }),
|
|
28796
28878
|
" Pending in bundler"
|
|
28797
28879
|
] });
|
|
28798
28880
|
}
|
|
28799
28881
|
return /* @__PURE__ */ jsxs112(Badge, { variant: "secondary", children: [
|
|
28800
|
-
/* @__PURE__ */
|
|
28882
|
+
/* @__PURE__ */ jsx131(Clock2, { className: "h-3 w-3" }),
|
|
28801
28883
|
" Waiting"
|
|
28802
28884
|
] });
|
|
28803
28885
|
};
|
|
@@ -28813,17 +28895,17 @@ var UserOpStatus = ({
|
|
|
28813
28895
|
/* @__PURE__ */ jsxs112("div", { className: "flex items-center justify-between mb-3", children: [
|
|
28814
28896
|
/* @__PURE__ */ jsxs112("div", { className: "flex items-center gap-2", children: [
|
|
28815
28897
|
stateBadge(),
|
|
28816
|
-
/* @__PURE__ */
|
|
28898
|
+
/* @__PURE__ */ jsx131("span", { className: "text-xs text-muted-foreground", children: "This is a UserOperation hash (EIP-4337), not a L2 tx hash." })
|
|
28817
28899
|
] }),
|
|
28818
28900
|
/* @__PURE__ */ jsxs112(Button, { variant: "ghost", size: "small", onClick: () => tick(), disabled: refreshing, className: "h-8", children: [
|
|
28819
|
-
/* @__PURE__ */
|
|
28820
|
-
/* @__PURE__ */
|
|
28901
|
+
/* @__PURE__ */ jsx131(RefreshCw4, { className: cn2("h-3.5 w-3.5 mr-1", refreshing && "animate-spin") }),
|
|
28902
|
+
/* @__PURE__ */ jsx131("span", { className: "text-xs", children: "Refresh" })
|
|
28821
28903
|
] })
|
|
28822
28904
|
] }),
|
|
28823
28905
|
/* @__PURE__ */ jsxs112("div", { className: "flex items-center gap-2 mb-2", children: [
|
|
28824
|
-
/* @__PURE__ */
|
|
28825
|
-
/* @__PURE__ */
|
|
28826
|
-
/* @__PURE__ */
|
|
28906
|
+
/* @__PURE__ */ jsx131("span", { className: "text-sm font-medium min-w-16 shrink-0", children: "UO Hash" }),
|
|
28907
|
+
/* @__PURE__ */ jsx131("code", { className: "text-xs font-mono flex-1 select-all", children: userOpHash }),
|
|
28908
|
+
/* @__PURE__ */ jsx131(
|
|
28827
28909
|
Button,
|
|
28828
28910
|
{
|
|
28829
28911
|
variant: "ghost",
|
|
@@ -28835,14 +28917,14 @@ var UserOpStatus = ({
|
|
|
28835
28917
|
} catch {
|
|
28836
28918
|
}
|
|
28837
28919
|
},
|
|
28838
|
-
children: /* @__PURE__ */
|
|
28920
|
+
children: /* @__PURE__ */ jsx131(Copy7, { className: "h-3.5 w-3.5" })
|
|
28839
28921
|
}
|
|
28840
28922
|
)
|
|
28841
28923
|
] }),
|
|
28842
28924
|
receipt && receipt.receipt?.transactionHash && /* @__PURE__ */ jsxs112("div", { className: "flex items-center gap-2 mb-3", children: [
|
|
28843
|
-
/* @__PURE__ */
|
|
28844
|
-
/* @__PURE__ */
|
|
28845
|
-
/* @__PURE__ */
|
|
28925
|
+
/* @__PURE__ */ jsx131("span", { className: "text-sm font-medium min-w-16 shrink-0", children: "Tx Hash" }),
|
|
28926
|
+
/* @__PURE__ */ jsx131("code", { className: "text-xs font-mono flex-1 select-all", children: receipt.receipt.transactionHash }),
|
|
28927
|
+
/* @__PURE__ */ jsx131(
|
|
28846
28928
|
Button,
|
|
28847
28929
|
{
|
|
28848
28930
|
variant: "ghost",
|
|
@@ -28854,10 +28936,10 @@ var UserOpStatus = ({
|
|
|
28854
28936
|
} catch {
|
|
28855
28937
|
}
|
|
28856
28938
|
},
|
|
28857
|
-
children: /* @__PURE__ */
|
|
28939
|
+
children: /* @__PURE__ */ jsx131(Copy7, { className: "h-3.5 w-3.5" })
|
|
28858
28940
|
}
|
|
28859
28941
|
),
|
|
28860
|
-
chain?.blockExplorers?.default?.url && /* @__PURE__ */
|
|
28942
|
+
chain?.blockExplorers?.default?.url && /* @__PURE__ */ jsx131(
|
|
28861
28943
|
"a",
|
|
28862
28944
|
{
|
|
28863
28945
|
href: `${chain.blockExplorers.default.url}/tx/${receipt.receipt.transactionHash}`,
|
|
@@ -28865,7 +28947,7 @@ var UserOpStatus = ({
|
|
|
28865
28947
|
rel: "noreferrer noopener",
|
|
28866
28948
|
className: "inline-flex items-center justify-center h-8 w-8 rounded-md hover:bg-accent text-foreground",
|
|
28867
28949
|
title: "Open in explorer",
|
|
28868
|
-
children: /* @__PURE__ */
|
|
28950
|
+
children: /* @__PURE__ */ jsx131(ExternalLink3, { className: "h-3.5 w-3.5" })
|
|
28869
28951
|
}
|
|
28870
28952
|
)
|
|
28871
28953
|
] }),
|
|
@@ -28878,7 +28960,7 @@ var UserOpStatus = ({
|
|
|
28878
28960
|
" \u2022 Success ",
|
|
28879
28961
|
String(!!receipt.success)
|
|
28880
28962
|
] }),
|
|
28881
|
-
/* @__PURE__ */
|
|
28963
|
+
/* @__PURE__ */ jsx131("div", { className: "text-xs text-muted-foreground", children: !receipt && !timedOut && !rejected && /* @__PURE__ */ jsxs112("span", { className: "ml-2", children: [
|
|
28882
28964
|
"\u2022 Polling for ",
|
|
28883
28965
|
Math.round((Date.now() - startTimeRef.current) / 1e3),
|
|
28884
28966
|
"s"
|
|
@@ -28886,24 +28968,24 @@ var UserOpStatus = ({
|
|
|
28886
28968
|
mempool && /* @__PURE__ */ jsxs112("div", { className: "text-sm text-muted-foreground mt-2", style: { listStyle: "none" }, children: [
|
|
28887
28969
|
/* @__PURE__ */ jsxs112("div", { children: [
|
|
28888
28970
|
"Seen by bundler at ",
|
|
28889
|
-
/* @__PURE__ */
|
|
28971
|
+
/* @__PURE__ */ jsx131(Address, { address: mempool.entryPoint, chain, showExplorer: true, truncate: false })
|
|
28890
28972
|
] }),
|
|
28891
28973
|
/* @__PURE__ */ jsxs112("div", { children: [
|
|
28892
28974
|
"sender ",
|
|
28893
|
-
/* @__PURE__ */
|
|
28975
|
+
/* @__PURE__ */ jsx131(Address, { address: mempool.sender, chain, truncate: false })
|
|
28894
28976
|
] })
|
|
28895
28977
|
] }),
|
|
28896
28978
|
error && /* @__PURE__ */ jsxs112("div", { className: "text-sm text-destructive flex items-center gap-1 mt-4", children: [
|
|
28897
|
-
/* @__PURE__ */
|
|
28979
|
+
/* @__PURE__ */ jsx131(AlertCircle8, { className: "h-4 w-4" }),
|
|
28898
28980
|
" ",
|
|
28899
28981
|
error
|
|
28900
28982
|
] }),
|
|
28901
28983
|
rejected && /* @__PURE__ */ jsxs112("div", { className: "text-sm text-destructive flex items-center gap-1 mt-4", children: [
|
|
28902
|
-
/* @__PURE__ */
|
|
28984
|
+
/* @__PURE__ */ jsx131(AlertCircle8, { className: "h-4 w-4" }),
|
|
28903
28985
|
"UserOperation was dropped from bundler mempool. This usually means it was invalid or replaced."
|
|
28904
28986
|
] }),
|
|
28905
28987
|
timedOut && /* @__PURE__ */ jsxs112("div", { className: "text-sm text-destructive flex items-center gap-1 mt-4", children: [
|
|
28906
|
-
/* @__PURE__ */
|
|
28988
|
+
/* @__PURE__ */ jsx131(AlertCircle8, { className: "h-4 w-4" }),
|
|
28907
28989
|
"Stopped polling after ",
|
|
28908
28990
|
Math.round(maxPollTimeMs / 1e3),
|
|
28909
28991
|
"s. UserOperation may have been rejected by the bundler."
|
|
@@ -28918,7 +29000,7 @@ init_cn();
|
|
|
28918
29000
|
init_button();
|
|
28919
29001
|
import { Copy as Copy8, ExternalLink as ExternalLink4 } from "lucide-react";
|
|
28920
29002
|
import * as React13 from "react";
|
|
28921
|
-
import { jsx as
|
|
29003
|
+
import { jsx as jsx132, jsxs as jsxs113 } from "react/jsx-runtime";
|
|
28922
29004
|
function toExplorerUrl(kind, value, chain) {
|
|
28923
29005
|
const base2 = chain?.blockExplorers?.default?.url;
|
|
28924
29006
|
if (!base2) return null;
|
|
@@ -28942,11 +29024,11 @@ var Hash = ({
|
|
|
28942
29024
|
const value = hash || "";
|
|
28943
29025
|
const explorer = toExplorerUrl(kind, value, chain || void 0);
|
|
28944
29026
|
const [copied, setCopied] = React13.useState(false);
|
|
28945
|
-
if (!value) return /* @__PURE__ */
|
|
29027
|
+
if (!value) return /* @__PURE__ */ jsx132("span", { className: cn2("text-muted-foreground", className), children: "\u2014" });
|
|
28946
29028
|
return /* @__PURE__ */ jsxs113("div", { className: cn2("flex items-center gap-2", className), children: [
|
|
28947
|
-
label && /* @__PURE__ */
|
|
28948
|
-
/* @__PURE__ */
|
|
28949
|
-
showCopy && /* @__PURE__ */
|
|
29029
|
+
label && /* @__PURE__ */ jsx132("span", { className: "text-sm font-medium", children: label }),
|
|
29030
|
+
/* @__PURE__ */ jsx132("code", { className: "text-xs bg-background px-2 py-1 rounded break-all", children: truncate ? short2(value) : value }),
|
|
29031
|
+
showCopy && /* @__PURE__ */ jsx132(
|
|
28950
29032
|
Button,
|
|
28951
29033
|
{
|
|
28952
29034
|
variant: "ghost",
|
|
@@ -28960,10 +29042,10 @@ var Hash = ({
|
|
|
28960
29042
|
} catch {
|
|
28961
29043
|
}
|
|
28962
29044
|
},
|
|
28963
|
-
children: /* @__PURE__ */
|
|
29045
|
+
children: /* @__PURE__ */ jsx132(Copy8, { className: "h-4 w-4" })
|
|
28964
29046
|
}
|
|
28965
29047
|
),
|
|
28966
|
-
showExplorer && explorer && /* @__PURE__ */
|
|
29048
|
+
showExplorer && explorer && /* @__PURE__ */ jsx132(
|
|
28967
29049
|
"a",
|
|
28968
29050
|
{
|
|
28969
29051
|
href: explorer,
|
|
@@ -28971,7 +29053,7 @@ var Hash = ({
|
|
|
28971
29053
|
rel: "noreferrer noopener",
|
|
28972
29054
|
className: "inline-flex items-center justify-center h-10 w-10 rounded-md hover:bg-accent text-foreground",
|
|
28973
29055
|
title: "Open in explorer",
|
|
28974
|
-
children: /* @__PURE__ */
|
|
29056
|
+
children: /* @__PURE__ */ jsx132(ExternalLink4, { className: "h-4 w-4" })
|
|
28975
29057
|
}
|
|
28976
29058
|
)
|
|
28977
29059
|
] });
|
|
@@ -28979,12 +29061,12 @@ var Hash = ({
|
|
|
28979
29061
|
|
|
28980
29062
|
// src/internal/components/TransactionsMenu/TransactionsList.tsx
|
|
28981
29063
|
init_base();
|
|
28982
|
-
import { useEffect as useEffect53, useState as
|
|
28983
|
-
import { jsx as
|
|
29064
|
+
import { useEffect as useEffect53, useState as useState37 } from "react";
|
|
29065
|
+
import { jsx as jsx133, jsxs as jsxs114 } from "react/jsx-runtime";
|
|
28984
29066
|
var TransactionsList = ({ address, itemsCount = 10 }) => {
|
|
28985
|
-
const [transactions, setTransactions] =
|
|
28986
|
-
const [loading, setLoading] =
|
|
28987
|
-
const [error, setError] =
|
|
29067
|
+
const [transactions, setTransactions] = useState37([]);
|
|
29068
|
+
const [loading, setLoading] = useState37(true);
|
|
29069
|
+
const [error, setError] = useState37(null);
|
|
28988
29070
|
useEffect53(() => {
|
|
28989
29071
|
const fetchTransactions2 = async () => {
|
|
28990
29072
|
try {
|
|
@@ -29032,20 +29114,20 @@ var TransactionsList = ({ address, itemsCount = 10 }) => {
|
|
|
29032
29114
|
};
|
|
29033
29115
|
if (loading) {
|
|
29034
29116
|
return /* @__PURE__ */ jsxs114("div", { className: "p-4 text-center", children: [
|
|
29035
|
-
/* @__PURE__ */
|
|
29036
|
-
/* @__PURE__ */
|
|
29117
|
+
/* @__PURE__ */ jsx133("div", { className: "animate-spin inline-block w-6 h-6 border-2 border-current border-t-transparent rounded-full" }),
|
|
29118
|
+
/* @__PURE__ */ jsx133("p", { className: "mt-2 text-sm text-gray-600", children: "Loading transactions..." })
|
|
29037
29119
|
] });
|
|
29038
29120
|
}
|
|
29039
29121
|
if (error) {
|
|
29040
29122
|
return /* @__PURE__ */ jsxs114("div", { className: "p-4 text-center", children: [
|
|
29041
|
-
/* @__PURE__ */
|
|
29042
|
-
/* @__PURE__ */
|
|
29123
|
+
/* @__PURE__ */ jsx133("p", { className: "text-red-600 text-sm", children: error }),
|
|
29124
|
+
/* @__PURE__ */ jsx133("button", { onClick: () => window.location.reload(), className: "mt-2 text-blue-600 text-sm hover:underline", children: "Retry" })
|
|
29043
29125
|
] });
|
|
29044
29126
|
}
|
|
29045
29127
|
if (transactions.length === 0) {
|
|
29046
|
-
return /* @__PURE__ */
|
|
29128
|
+
return /* @__PURE__ */ jsx133("div", { className: "p-4 text-center", children: /* @__PURE__ */ jsx133("p", { className: "text-gray-600 text-sm", children: "No transactions found" }) });
|
|
29047
29129
|
}
|
|
29048
|
-
return /* @__PURE__ */
|
|
29130
|
+
return /* @__PURE__ */ jsx133("div", { className: "max-h-96 overflow-y-auto", children: /* @__PURE__ */ jsx133("div", { className: "space-y-2 p-2", children: transactions.map((tx) => /* @__PURE__ */ jsxs114(
|
|
29049
29131
|
"div",
|
|
29050
29132
|
{
|
|
29051
29133
|
className: "border rounded-lg p-3 hover:bg-gray-50 cursor-pointer transition-colors",
|
|
@@ -29054,8 +29136,8 @@ var TransactionsList = ({ address, itemsCount = 10 }) => {
|
|
|
29054
29136
|
/* @__PURE__ */ jsxs114("div", { className: "flex justify-between items-start mb-2", children: [
|
|
29055
29137
|
/* @__PURE__ */ jsxs114("div", { className: "flex-1", children: [
|
|
29056
29138
|
/* @__PURE__ */ jsxs114("div", { className: "flex items-center space-x-2 mb-1", children: [
|
|
29057
|
-
/* @__PURE__ */
|
|
29058
|
-
/* @__PURE__ */
|
|
29139
|
+
/* @__PURE__ */ jsx133("span", { className: "text-xs font-mono bg-gray-100 px-2 py-1 rounded", children: formatAddress3(tx.hash) }),
|
|
29140
|
+
/* @__PURE__ */ jsx133(
|
|
29059
29141
|
"span",
|
|
29060
29142
|
{
|
|
29061
29143
|
className: `text-xs px-2 py-1 rounded ${tx.status === "ok" ? "bg-green-100 text-green-800" : "bg-red-100 text-red-800"}`,
|
|
@@ -29065,21 +29147,21 @@ var TransactionsList = ({ address, itemsCount = 10 }) => {
|
|
|
29065
29147
|
] }),
|
|
29066
29148
|
/* @__PURE__ */ jsxs114("div", { className: "text-sm space-y-1", children: [
|
|
29067
29149
|
/* @__PURE__ */ jsxs114("div", { children: [
|
|
29068
|
-
/* @__PURE__ */
|
|
29150
|
+
/* @__PURE__ */ jsx133("span", { className: "text-gray-600", children: "From:" }),
|
|
29069
29151
|
/* @__PURE__ */ jsxs114("span", { className: "font-mono ml-1", children: [
|
|
29070
29152
|
formatAddress3(tx.from.hash),
|
|
29071
|
-
tx.from.is_contract && /* @__PURE__ */
|
|
29153
|
+
tx.from.is_contract && /* @__PURE__ */ jsx133("span", { className: "text-xs text-blue-600 ml-1", children: "(Contract)" })
|
|
29072
29154
|
] })
|
|
29073
29155
|
] }),
|
|
29074
29156
|
/* @__PURE__ */ jsxs114("div", { children: [
|
|
29075
|
-
/* @__PURE__ */
|
|
29157
|
+
/* @__PURE__ */ jsx133("span", { className: "text-gray-600", children: "To:" }),
|
|
29076
29158
|
/* @__PURE__ */ jsxs114("span", { className: "font-mono ml-1", children: [
|
|
29077
29159
|
formatAddress3(tx.to.hash),
|
|
29078
|
-
tx.to.is_contract && /* @__PURE__ */
|
|
29160
|
+
tx.to.is_contract && /* @__PURE__ */ jsx133("span", { className: "text-xs text-blue-600 ml-1", children: "(Contract)" })
|
|
29079
29161
|
] })
|
|
29080
29162
|
] }),
|
|
29081
29163
|
/* @__PURE__ */ jsxs114("div", { children: [
|
|
29082
|
-
/* @__PURE__ */
|
|
29164
|
+
/* @__PURE__ */ jsx133("span", { className: "text-gray-600", children: "Value:" }),
|
|
29083
29165
|
/* @__PURE__ */ jsxs114("span", { className: "font-semibold ml-1", children: [
|
|
29084
29166
|
formatValue3(tx.value),
|
|
29085
29167
|
" LUMIA"
|
|
@@ -29088,15 +29170,15 @@ var TransactionsList = ({ address, itemsCount = 10 }) => {
|
|
|
29088
29170
|
] })
|
|
29089
29171
|
] }),
|
|
29090
29172
|
/* @__PURE__ */ jsxs114("div", { className: "text-right text-xs text-gray-500", children: [
|
|
29091
|
-
/* @__PURE__ */
|
|
29173
|
+
/* @__PURE__ */ jsx133("div", { children: formatDate2(tx.timestamp) }),
|
|
29092
29174
|
/* @__PURE__ */ jsxs114("div", { className: "mt-1", children: [
|
|
29093
29175
|
"Gas: ",
|
|
29094
29176
|
parseInt(tx.gas_used).toLocaleString()
|
|
29095
29177
|
] }),
|
|
29096
|
-
tx.method && /* @__PURE__ */
|
|
29178
|
+
tx.method && /* @__PURE__ */ jsx133("div", { className: "mt-1 text-blue-600", children: tx.method })
|
|
29097
29179
|
] })
|
|
29098
29180
|
] }),
|
|
29099
|
-
tx.transaction_types.length > 0 && /* @__PURE__ */
|
|
29181
|
+
tx.transaction_types.length > 0 && /* @__PURE__ */ jsx133("div", { className: "flex flex-wrap gap-1 mt-2", children: tx.transaction_types.map((type, idx) => /* @__PURE__ */ jsx133("span", { className: "text-xs bg-blue-100 text-blue-800 px-2 py-1 rounded-full", children: type.replace("_", " ") }, idx)) })
|
|
29100
29182
|
]
|
|
29101
29183
|
},
|
|
29102
29184
|
tx.hash
|
|
@@ -29109,8 +29191,38 @@ init_vaultClient();
|
|
|
29109
29191
|
init_useSendTransaction();
|
|
29110
29192
|
|
|
29111
29193
|
// src/hooks/useUserOpStatus.ts
|
|
29112
|
-
init_bundler();
|
|
29113
29194
|
import * as React15 from "react";
|
|
29195
|
+
|
|
29196
|
+
// src/clients/bundler/waitForUserOperationReceipt.ts
|
|
29197
|
+
init_SessionContext();
|
|
29198
|
+
var UserOperationTimeoutError = class extends Error {
|
|
29199
|
+
constructor(userOpHash, chainId, timeoutMs) {
|
|
29200
|
+
super(`Timeout waiting for UserOperation receipt after ${timeoutMs}ms (hash: ${userOpHash}, chainId: ${chainId})`);
|
|
29201
|
+
this.name = "UserOperationTimeoutError";
|
|
29202
|
+
this.userOpHash = userOpHash;
|
|
29203
|
+
this.chainId = chainId;
|
|
29204
|
+
this.timeoutMs = timeoutMs;
|
|
29205
|
+
}
|
|
29206
|
+
};
|
|
29207
|
+
async function waitForUserOperationReceipt(userOpHash, options) {
|
|
29208
|
+
const pollIntervalMs = options?.pollIntervalMs ?? 1e3;
|
|
29209
|
+
const maxPollTimeMs = options?.maxPollTimeMs ?? 6e4;
|
|
29210
|
+
const targetChainId = options?.chainId ?? requireActiveChainId();
|
|
29211
|
+
const startTime = Date.now();
|
|
29212
|
+
while (true) {
|
|
29213
|
+
const elapsed = Date.now() - startTime;
|
|
29214
|
+
if (elapsed >= maxPollTimeMs) {
|
|
29215
|
+
throw new UserOperationTimeoutError(userOpHash, targetChainId, maxPollTimeMs);
|
|
29216
|
+
}
|
|
29217
|
+
const receipt = await getUserOperationReceipt(userOpHash, targetChainId);
|
|
29218
|
+
if (receipt) {
|
|
29219
|
+
return receipt;
|
|
29220
|
+
}
|
|
29221
|
+
await new Promise((resolve) => setTimeout(resolve, pollIntervalMs));
|
|
29222
|
+
}
|
|
29223
|
+
}
|
|
29224
|
+
|
|
29225
|
+
// src/hooks/useUserOpStatus.ts
|
|
29114
29226
|
function useUserOpStatus(options = {}) {
|
|
29115
29227
|
const {
|
|
29116
29228
|
userOpHash,
|
|
@@ -29335,7 +29447,7 @@ function useDirectWallet() {
|
|
|
29335
29447
|
|
|
29336
29448
|
// src/hooks/useSendDirectTransaction.ts
|
|
29337
29449
|
init_useExternalWalletStore();
|
|
29338
|
-
import { useCallback as useCallback36, useState as
|
|
29450
|
+
import { useCallback as useCallback36, useState as useState39 } from "react";
|
|
29339
29451
|
import { isAddress as isAddress3, parseEther as parseEther3 } from "viem";
|
|
29340
29452
|
import { useSendTransaction as useWagmiSendTransaction, useSwitchChain as useSwitchChain3 } from "wagmi";
|
|
29341
29453
|
function useSendDirectTransaction() {
|
|
@@ -29343,9 +29455,9 @@ function useSendDirectTransaction() {
|
|
|
29343
29455
|
const externalChainId = useExternalWalletStore((st) => st.externalChainId);
|
|
29344
29456
|
const { sendTransactionAsync } = useWagmiSendTransaction();
|
|
29345
29457
|
const { switchChainAsync } = useSwitchChain3();
|
|
29346
|
-
const [isPending, setIsPending] =
|
|
29347
|
-
const [error, setError] =
|
|
29348
|
-
const [txHash, setTxHash] =
|
|
29458
|
+
const [isPending, setIsPending] = useState39(false);
|
|
29459
|
+
const [error, setError] = useState39(null);
|
|
29460
|
+
const [txHash, setTxHash] = useState39(null);
|
|
29349
29461
|
const sendTransaction = useCallback36(
|
|
29350
29462
|
async (params) => {
|
|
29351
29463
|
if (!isConnected) {
|
|
@@ -29392,7 +29504,7 @@ function useSendDirectTransaction() {
|
|
|
29392
29504
|
init_SessionContext();
|
|
29393
29505
|
init_account2();
|
|
29394
29506
|
init_linkedProfiles();
|
|
29395
|
-
import { useCallback as useCallback37, useMemo as
|
|
29507
|
+
import { useCallback as useCallback37, useMemo as useMemo14, useState as useState40 } from "react";
|
|
29396
29508
|
import { encodeFunctionData as encodeFunctionData3, isAddress as isAddress4, parseEther as parseEther4, parseUnits as parseUnits3 } from "viem";
|
|
29397
29509
|
var ERC20_TRANSFER_ABI2 = [
|
|
29398
29510
|
{
|
|
@@ -29408,10 +29520,10 @@ var ERC20_TRANSFER_ABI2 = [
|
|
|
29408
29520
|
function useTransferToLinkedWallet() {
|
|
29409
29521
|
const session = useSession((st) => st.session);
|
|
29410
29522
|
const { profiles } = useLinkedProfiles();
|
|
29411
|
-
const [isPending, setIsPending] =
|
|
29412
|
-
const [error, setError] =
|
|
29413
|
-
const [userOpHash, setUserOpHash] =
|
|
29414
|
-
const linkedWallets =
|
|
29523
|
+
const [isPending, setIsPending] = useState40(false);
|
|
29524
|
+
const [error, setError] = useState40(null);
|
|
29525
|
+
const [userOpHash, setUserOpHash] = useState40(null);
|
|
29526
|
+
const linkedWallets = useMemo14(
|
|
29415
29527
|
() => (profiles || []).filter((p) => p.provider === "wallet" && p.externalId).map((p) => p.externalId),
|
|
29416
29528
|
[profiles]
|
|
29417
29529
|
);
|
|
@@ -29530,7 +29642,6 @@ function useLogout() {
|
|
|
29530
29642
|
// src/index.ts
|
|
29531
29643
|
init_useNicknameResolve();
|
|
29532
29644
|
init_account2();
|
|
29533
|
-
init_clients2();
|
|
29534
29645
|
init_auth();
|
|
29535
29646
|
init_profile();
|
|
29536
29647
|
init_hooks2();
|