@suilend/sui-fe-next 0.1.47
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/README.md +8 -0
- package/contexts/SettingsContext.d.ts +17 -0
- package/contexts/SettingsContext.jsx +79 -0
- package/contexts/WalletContext.d.ts +55 -0
- package/contexts/WalletContext.jsx +616 -0
- package/contexts/index.d.ts +2 -0
- package/contexts/index.js +2 -0
- package/fetchers/index.d.ts +1 -0
- package/fetchers/index.js +1 -0
- package/fetchers/useFetchBalances.d.ts +5 -0
- package/fetchers/useFetchBalances.js +94 -0
- package/hooks/index.d.ts +5 -0
- package/hooks/index.js +5 -0
- package/hooks/useCoinMetadataMap.d.ts +3 -0
- package/hooks/useCoinMetadataMap.js +76 -0
- package/hooks/useIsAndroid.d.ts +2 -0
- package/hooks/useIsAndroid.jsx +2 -0
- package/hooks/useIsTouchscreen.d.ts +2 -0
- package/hooks/useIsTouchscreen.jsx +7 -0
- package/hooks/useIsiOS.d.ts +2 -0
- package/hooks/useIsiOS.jsx +7 -0
- package/hooks/useRefreshOnBalancesChange.d.ts +2 -0
- package/hooks/useRefreshOnBalancesChange.js +82 -0
- package/index.d.ts +4 -0
- package/index.js +4 -0
- package/lib/index.d.ts +2 -0
- package/lib/index.js +2 -0
- package/lib/router.d.ts +4 -0
- package/lib/router.js +2 -0
- package/lib/toasts.d.ts +5 -0
- package/lib/toasts.jsx +55 -0
- package/package.json +1 -0
- package/tsconfig.tsbuildinfo +1 -0
|
@@ -0,0 +1,616 @@
|
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
|
2
|
+
__assign = Object.assign || function(t) {
|
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
+
s = arguments[i];
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
+
t[p] = s[p];
|
|
7
|
+
}
|
|
8
|
+
return t;
|
|
9
|
+
};
|
|
10
|
+
return __assign.apply(this, arguments);
|
|
11
|
+
};
|
|
12
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
13
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
14
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
15
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
16
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
17
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
18
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
19
|
+
});
|
|
20
|
+
};
|
|
21
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
22
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
23
|
+
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
24
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
25
|
+
function step(op) {
|
|
26
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
27
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
28
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
29
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
30
|
+
switch (op[0]) {
|
|
31
|
+
case 0: case 1: t = op; break;
|
|
32
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
33
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
34
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
35
|
+
default:
|
|
36
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
37
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
38
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
39
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
40
|
+
if (t[2]) _.ops.pop();
|
|
41
|
+
_.trys.pop(); continue;
|
|
42
|
+
}
|
|
43
|
+
op = body.call(thisArg, _);
|
|
44
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
45
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
49
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
50
|
+
if (ar || !(i in from)) {
|
|
51
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
52
|
+
ar[i] = from[i];
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
56
|
+
};
|
|
57
|
+
var _a, _b;
|
|
58
|
+
import { useRouter } from "next/router";
|
|
59
|
+
import { createContext, useCallback, useContext, useEffect, useMemo, useRef, useState, } from "react";
|
|
60
|
+
import { WalletProvider as MystenWalletProvider, SuiClientProvider, createNetworkConfig, } from "@mysten/dapp-kit";
|
|
61
|
+
import { useAccounts, useConnectWallet, useCurrentAccount, useCurrentWallet, useDisconnectWallet, useSignTransaction, useSwitchAccount, useWallets, } from "@mysten/dapp-kit";
|
|
62
|
+
import { SUI_DECIMALS } from "@mysten/sui/utils";
|
|
63
|
+
import * as Sentry from "@sentry/nextjs";
|
|
64
|
+
import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
|
|
65
|
+
import BigNumber from "bignumber.js";
|
|
66
|
+
import { useLDClient } from "launchdarkly-react-client-sdk";
|
|
67
|
+
import { executeAuction } from "shio-sdk";
|
|
68
|
+
import { API_URL, formatAddress, isInMsafeApp } from "@suilend/sui-fe";
|
|
69
|
+
import { showErrorToast, showInfoToast } from "../lib";
|
|
70
|
+
import { useSettingsContext } from "./SettingsContext";
|
|
71
|
+
export var WalletType;
|
|
72
|
+
(function (WalletType) {
|
|
73
|
+
WalletType["EXTENSION"] = "extension";
|
|
74
|
+
WalletType["WEB"] = "web";
|
|
75
|
+
})(WalletType || (WalletType = {}));
|
|
76
|
+
var WalletName;
|
|
77
|
+
(function (WalletName) {
|
|
78
|
+
WalletName["SLUSH"] = "Slush";
|
|
79
|
+
WalletName["BACKPACK"] = "Backpack";
|
|
80
|
+
WalletName["PHANTOM"] = "Phantom";
|
|
81
|
+
WalletName["NIGHTLY"] = "Nightly";
|
|
82
|
+
WalletName["SUIET"] = "Suiet";
|
|
83
|
+
WalletName["BYBIT_WALLET"] = "Bybit Wallet";
|
|
84
|
+
WalletName["GATE_WALLET"] = "Gate Wallet";
|
|
85
|
+
WalletName["OKX_WALLET"] = "OKX Wallet";
|
|
86
|
+
WalletName["MSAFE_WALLET"] = "MSafe Wallet";
|
|
87
|
+
})(WalletName || (WalletName = {}));
|
|
88
|
+
export var DEFAULT_EXTENSION_WALLET_NAMES = [
|
|
89
|
+
WalletName.SLUSH,
|
|
90
|
+
WalletName.BACKPACK,
|
|
91
|
+
WalletName.PHANTOM,
|
|
92
|
+
WalletName.NIGHTLY,
|
|
93
|
+
WalletName.SUIET,
|
|
94
|
+
WalletName.BYBIT_WALLET,
|
|
95
|
+
WalletName.GATE_WALLET,
|
|
96
|
+
WalletName.OKX_WALLET,
|
|
97
|
+
WalletName.MSAFE_WALLET,
|
|
98
|
+
];
|
|
99
|
+
var WEB_WALLET_NAMES = [];
|
|
100
|
+
var WALLET_LOGO_MAP = (_a = {},
|
|
101
|
+
_a[WalletName.SLUSH] = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDgiIGhlaWdodD0iNDgiIHZpZXdCb3g9IjAgMCA0OCA0OCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTAgMjRDMCAxMC43NDUyIDEwLjc0NTIgMCAyNCAwQzM3LjI1NDggMCA0OCAxMC43NDUyIDQ4IDI0QzQ4IDM3LjI1NDggMzcuMjU0OCA0OCAyNCA0OEMxMC43NDUyIDQ4IDAgMzcuMjU0OCAwIDI0WiIgZmlsbD0iIzBDMEExRiIvPgo8cGF0aCBkPSJNMTMuMTM1OCAzMi4xMDg1QzE0LjE3MDEgMzUuOTY4MyAxOC4wMzMxIDM5LjQ2MjQgMjYuMDI1NSAzNy4zMjA4QzMzLjY1MTUgMzUuMjc3NCAzOC40MzA5IDI5LjAwNCAzNy4xOTE2IDI0LjM3ODlDMzYuNzYzNiAyMi43ODE3IDM1LjQ3NDYgMjEuNzAwNiAzMy40ODcyIDIxLjg3NjVMMTUuNzE2NSAyMy4zNTcyQzE0LjU5NzMgMjMuNDQzIDE0LjA4NDIgMjMuMjU5NiAxMy43ODgxIDIyLjU1NDNDMTMuNTAxIDIxLjg4MjMgMTMuNjY0NiAyMS4xNjA5IDE1LjAxNjMgMjAuNDc3N0wyOC41NDAxIDEzLjUzNzRDMjkuNTc2NyAxMy4wMSAzMC4yNjcxIDEyLjc4OTMgMzAuODk4IDEzLjAxMjZDMzEuMjkzNCAxMy4xNTYzIDMxLjU1MzggMTMuNzI4NCAzMS4zMTQ3IDE0LjQzNDRMMzAuNDM3OCAxNy4wMjMyQzI5LjM2MTcgMjAuMjAwMiAzMS42NjUzIDIwLjkzODIgMzIuOTY0MSAyMC41OTAyQzM0LjkyODkgMjAuMDYzNyAzNS4zOTExIDE4LjE5MjMgMzQuNzU4MSAxNS44Mjk5QzMzLjE1MzMgOS44NDA1NCAyNi43OTkgOC45MDQxMSAyMS4wMzc4IDEwLjQ0NzhDMTUuMTc2NyAxMi4wMTgzIDEwLjA5NiAxNi43Njc2IDExLjY0NzQgMjIuNTU3M0MxMi4wMTI5IDIzLjkyMTYgMTMuMjY4NyAyNS4wMTE2IDE0LjcyMzIgMjQuOTc4NUwxNi45NDM4IDI0Ljk3MzFDMTcuNDAwNCAyNC45NjI1IDE3LjIzNiAyNSAxOC4xMTcgMjQuOTI3MUMxOC45OTggMjQuODU0MSAyMS4zNTA5IDI0LjU2NDYgMjEuMzUwOSAyNC41NjQ2TDMyLjg5NjIgMjMuMjU4TDMzLjE5MzcgMjMuMjE0OEMzMy44Njg5IDIzLjA5OTcgMzQuMzc5MiAyMy4yNzUgMzQuODEwNiAyNC4wMTgzQzM1LjQ1NjMgMjUuMTMwNCAzNC40NzEyIDI1Ljk2OTEgMzMuMjkyIDI2Ljk3MzFDMzMuMjYwNSAyNyAzMy4yMjg4IDI3LjAyNyAzMy4xOTcgMjcuMDU0MUwyMy4wNDgyIDM1LjgwMDVDMjEuMzA4NyAzNy4zMDA4IDIwLjA4NjcgMzYuNzM2NyAxOS42NTg4IDM1LjEzOTVMMTguMTQzMSAyOS40ODI5QzE3Ljc2ODcgMjguMDg1NCAxNi40MDQxIDI2Ljk4ODkgMTQuODA1NiAyNy40MTcyQzEyLjgwNzUgMjcuOTUyNiAxMi42NDU1IDMwLjI3ODQgMTMuMTM1OCAzMi4xMDg1WiIgZmlsbD0iI0ZCRkFGRiIvPgo8L3N2Zz4K",
|
|
102
|
+
_a[WalletName.BACKPACK] = "data:image/png;base64,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",
|
|
103
|
+
_a[WalletName.PHANTOM] = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTA4IiBoZWlnaHQ9IjEwOCIgdmlld0JveD0iMCAwIDEwOCAxMDgiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIxMDgiIGhlaWdodD0iMTA4IiByeD0iMjYiIGZpbGw9IiNBQjlGRjIiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik00Ni41MjY3IDY5LjkyMjlDNDIuMDA1NCA3Ni44NTA5IDM0LjQyOTIgODUuNjE4MiAyNC4zNDggODUuNjE4MkMxOS41ODI0IDg1LjYxODIgMTUgODMuNjU2MyAxNSA3NS4xMzQyQzE1IDUzLjQzMDUgNDQuNjMyNiAxOS44MzI3IDcyLjEyNjggMTkuODMyN0M4Ny43NjggMTkuODMyNyA5NCAzMC42ODQ2IDk0IDQzLjAwNzlDOTQgNTguODI1OCA4My43MzU1IDc2LjkxMjIgNzMuNTMyMSA3Ni45MTIyQzcwLjI5MzkgNzYuOTEyMiA2OC43MDUzIDc1LjEzNDIgNjguNzA1MyA3Mi4zMTRDNjguNzA1MyA3MS41NzgzIDY4LjgyNzUgNzAuNzgxMiA2OS4wNzE5IDY5LjkyMjlDNjUuNTg5MyA3NS44Njk5IDU4Ljg2ODUgODEuMzg3OCA1Mi41NzU0IDgxLjM4NzhDNDcuOTkzIDgxLjM4NzggNDUuNjcxMyA3OC41MDYzIDQ1LjY3MTMgNzQuNDU5OEM0NS42NzEzIDcyLjk4ODQgNDUuOTc2OCA3MS40NTU2IDQ2LjUyNjcgNjkuOTIyOVpNODMuNjc2MSA0Mi41Nzk0QzgzLjY3NjEgNDYuMTcwNCA4MS41NTc1IDQ3Ljk2NTggNzkuMTg3NSA0Ny45NjU4Qzc2Ljc4MTYgNDcuOTY1OCA3NC42OTg5IDQ2LjE3MDQgNzQuNjk4OSA0Mi41Nzk0Qzc0LjY5ODkgMzguOTg4NSA3Ni43ODE2IDM3LjE5MzEgNzkuMTg3NSAzNy4xOTMxQzgxLjU1NzUgMzcuMTkzMSA4My42NzYxIDM4Ljk4ODUgODMuNjc2MSA0Mi41Nzk0Wk03MC4yMTAzIDQyLjU3OTVDNzAuMjEwMyA0Ni4xNzA0IDY4LjA5MTYgNDcuOTY1OCA2NS43MjE2IDQ3Ljk2NThDNjMuMzE1NyA0Ny45NjU4IDYxLjIzMyA0Ni4xNzA0IDYxLjIzMyA0Mi41Nzk1QzYxLjIzMyAzOC45ODg1IDYzLjMxNTcgMzcuMTkzMSA2NS43MjE2IDM3LjE5MzFDNjguMDkxNiAzNy4xOTMxIDcwLjIxMDMgMzguOTg4NSA3MC4yMTAzIDQyLjU3OTVaIiBmaWxsPSIjRkZGREY4Ii8+Cjwvc3ZnPgo=",
|
|
104
|
+
_a[WalletName.NIGHTLY] = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyOC4wLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iV2Fyc3R3YV8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCINCgkgdmlld0JveD0iMCAwIDg1MS41IDg1MS41IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA4NTEuNSA4NTEuNTsiIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCgkuc3Qwe2ZpbGw6IzYwNjdGOTt9DQoJLnN0MXtmaWxsOiNGN0Y3Rjc7fQ0KPC9zdHlsZT4NCjxnPg0KCTxnIGlkPSJXYXJzdHdhXzJfMDAwMDAwMTQ2MDk2NTQyNTMxODA5NDY0NjAwMDAwMDg2NDc4NTIwMDIxMTY5MTg2ODhfIj4NCgkJPHBhdGggY2xhc3M9InN0MCIgZD0iTTEyNCwwaDYwMy42YzY4LjUsMCwxMjQsNTUuNSwxMjQsMTI0djYwMy42YzAsNjguNS01NS41LDEyNC0xMjQsMTI0SDEyNGMtNjguNSwwLTEyNC01NS41LTEyNC0xMjRWMTI0DQoJCQlDMCw1NS41LDU1LjUsMCwxMjQsMHoiLz4NCgk8L2c+DQoJPGcgaWQ9IldhcnN0d2FfMyI+DQoJCTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik02MjMuNSwxNzAuM2MtMzcuNCw1Mi4yLTg0LjIsODguNC0xMzkuNSwxMTIuNmMtMTkuMi01LjMtMzguOS04LTU4LjMtNy44Yy0xOS40LTAuMi0zOS4xLDIuNi01OC4zLDcuOA0KCQkJYy01NS4zLTI0LjMtMTAyLjEtNjAuMy0xMzkuNS0xMTIuNmMtMTEuMywyOC40LTU0LjgsMTI2LjQtMi42LDI2My40YzAsMC0xNi43LDcxLjUsMTQsMTMyLjljMCwwLDQ0LjQtMjAuMSw3OS43LDguMg0KCQkJYzM2LjksMjkuOSwyNS4xLDU4LjcsNTEuMSw4My41YzIyLjQsMjIuOSw1NS43LDIyLjksNTUuNywyMi45czMzLjMsMCw1NS43LTIyLjhjMjYtMjQuNywxNC4zLTUzLjUsNTEuMS04My41DQoJCQljMzUuMi0yOC4zLDc5LjctOC4yLDc5LjctOC4yYzMwLjYtNjEuNCwxNC0xMzIuOSwxNC0xMzIuOUM2NzguMywyOTYuNyw2MzQuOSwxOTguNyw2MjMuNSwxNzAuM3ogTTI1My4xLDQxNC44DQoJCQljLTI4LjQtNTguMy0zNi4yLTEzOC4zLTE4LjMtMjAxLjVjMjMuNyw2MCw1NS45LDg2LjksOTQuMiwxMTUuM0MzMTIuOCwzNjIuMywyODIuMywzOTQuMSwyNTMuMSw0MTQuOHogTTMzNC44LDUxNy41DQoJCQljLTIyLjQtOS45LTI3LjEtMjkuNC0yNy4xLTI5LjRjMzAuNS0xOS4yLDc1LjQtNC41LDc2LjgsNDAuOUMzNjAuOSw1MTQuNywzNTMsNTI1LjQsMzM0LjgsNTE3LjV6IE00MjUuNyw2NzguNw0KCQkJYy0xNiwwLTI5LTExLjUtMjktMjUuNnMxMy0yNS42LDI5LTI1LjZzMjksMTEuNSwyOSwyNS42QzQ1NC43LDY2Ny4zLDQ0MS43LDY3OC43LDQyNS43LDY3OC43eiBNNTE2LjcsNTE3LjUNCgkJCWMtMTguMiw4LTI2LTIuOC00OS43LDExLjVjMS41LTQ1LjQsNDYuMi02MC4xLDc2LjgtNDAuOUM1NDMuOCw0ODgsNTM5LDUwNy42LDUxNi43LDUxNy41eiBNNTk4LjMsNDE0LjgNCgkJCWMtMjkuMS0yMC43LTU5LjctNTIuNC03Ni04Ni4yYzM4LjMtMjguNCw3MC42LTU1LjQsOTQuMi0xMTUuM0M2MzQuNiwyNzYuNSw2MjYuOCwzNTYuNiw1OTguMyw0MTQuOHoiLz4NCgk8L2c+DQo8L2c+DQo8L3N2Zz4NCg==",
|
|
105
|
+
_a[WalletName.SUIET] = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNjQiIGhlaWdodD0iNjQiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHJlY3Qgd2lkdGg9IjY0IiBoZWlnaHQ9IjY0IiByeD0iMjQiIGZpbGw9InVybCgjcGFpbnQwX3JhZGlhbF8zMDVfMTI1MTYpIi8+PHBhdGggZD0iTTUxLjUgNDMuNmMtMy45IDAtNy42LTMuOS05LjUtNi40LTEuOSAyLjUtNS42IDYuNC05LjUgNi40LTQgMC03LjctMy45LTkuNS02LjQtMS44IDIuNS01LjUgNi40LTkuNSA2LjQtLjggMC0xLjUtLjYtMS41LTEuNSAwLS44LjctMS41IDEuNS0xLjUgMy4yIDAgNy4xLTUuMSA4LjItNi45LjMtLjQuOC0uNyAxLjMtLjdzMSAuMiAxLjMuN2MxLjEgMS44IDUgNi45IDguMiA2LjkgMy4xIDAgNy4xLTUuMSA4LjItNi45LjMtLjQuOC0uNyAxLjMtLjdzMSAuMiAxLjIuN2MxLjEgMS44IDUgNi45IDguMiA2LjkuOSAwIDEuNi43IDEuNiAxLjUgMCAuOS0uNiAxLjUtMS41IDEuNXoiIGZpbGw9IiNmZmYiLz48cGF0aCBkPSJNNTEuNSA1Mi4zYy0zLjkgMC03LjYtMy45LTkuNS02LjQtMS45IDIuNS01LjYgNi40LTkuNSA2LjQtNCAwLTcuNy0zLjktOS41LTYuNC0xLjggMi41LTUuNSA2LjQtOS41IDYuNC0uOCAwLTEuNS0uNi0xLjUtMS41IDAtLjguNy0xLjUgMS41LTEuNSAzLjIgMCA3LjEtNS4xIDguMi02LjkuMy0uNC44LS43IDEuMy0uN3MxIC4zIDEuMy43YzEuMSAxLjggNSA2LjkgOC4yIDYuOSAzLjEgMCA3LjEtNS4xIDguMi02LjkuMy0uNC44LS43IDEuMy0uN3MxIC4zIDEuMi43YzEuMSAxLjggNSA2LjkgOC4yIDYuOS45IDAgMS42LjcgMS42IDEuNSAwIC45LS42IDEuNS0xLjUgMS41ek0xNC42IDM2LjdjLS44IDAtMS40LS41LTEuNi0xLjNsLS4zLTMuNmMwLTEwLjkgOC45LTE5LjggMTkuOC0xOS44IDExIDAgMTkuOCA4LjkgMTkuOCAxOS44bC0uMyAzLjZjLS4xLjgtLjkgMS40LTEuNyAxLjItLjktLjEtMS41LS45LTEuMy0xLjhsLjMtM2MwLTkuMi03LjUtMTYuOC0xNi44LTE2LjgtOS4yIDAtMTYuNyA3LjUtMTYuNyAxNi44bC4yIDMuMWMuMi44LS4zIDEuNi0xLjEgMS44aC0uM3oiIGZpbGw9IiNmZmYiLz48ZGVmcz48cmFkaWFsR3JhZGllbnQgaWQ9InBhaW50MF9yYWRpYWxfMzA1XzEyNTE2IiBjeD0iMCIgY3k9IjAiIHI9IjEiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDUyLjc1ODAzIDUxLjM1OCAtNTEuNDM5NDcgNTIuODQxNzIgMCA3LjQwNykiPjxzdG9wIHN0b3AtY29sb3I9IiMwMDU4REQiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiM2N0M4RkYiLz48L3JhZGlhbEdyYWRpZW50PjwvZGVmcz48L3N2Zz4=",
|
|
106
|
+
_a[WalletName.BYBIT_WALLET] = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iODgiIGhlaWdodD0iODgiIHZpZXdCb3g9IjAgMCA4OCA4OCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTAgMTguN0MwIDguMzcyMjcgOC4zNzIyOCAwIDE4LjcgMEg2OS4zQzc5LjYyNzcgMCA4OCA4LjM3MjI4IDg4IDE4LjdWNjkuM0M4OCA3OS42Mjc3IDc5LjYyNzcgODggNjkuMyA4OEgxOC43QzguMzcyMjcgODggMCA3OS42Mjc3IDAgNjkuM1YxOC43WiIgZmlsbD0iIzQwNDM0NyIvPgo8cGF0aCBkPSJNNy41NzYxNyAyNi44MDY3QzYuNzg1MTYgMjQuMDc4NyA4LjQ3NzUgMjEuMjUzMSAxMS4yNTU5IDIwLjY2M0w1Ny42MDg3IDEwLjgxNzNDNTkuODA5IDEwLjM1IDYyLjA0NDMgMTEuNDQ0MyA2My4wMjQ3IDEzLjQ2ODlMODMuODQ0MyA1Ni40NjU3TDI1LjE3NzYgODcuNTEwMUw3LjU3NjE3IDI2LjgwNjdaIiBmaWxsPSJ1cmwoI3BhaW50MF9saW5lYXJfMzEyXzE3NTM0KSIvPgo8cGF0aCBkPSJNOC4xODI0MiAzMC4xNjE4QzcuMzUwNDkgMjcuMjgzOCA5LjI3OTI1IDI0LjM0MTMgMTIuMjUwMiAyMy45NTU5TDczLjY4NjUgMTUuOTg4MUM3Ni4yMzkxIDE1LjY1NzEgNzguNjExMSAxNy4zNjE4IDc5LjExMTEgMTkuODg2N0w4OC4wMDAzIDY0Ljc3NzFMMjQuNjg5MiA4Ny4yNjY1TDguMTgyNDIgMzAuMTYxOFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik0wIDM0LjIyMjJDMCAyOC44MjIxIDQuMzc3NjYgMjQuNDQ0NSA5Ljc3Nzc4IDI0LjQ0NDVINjguNDQ0NEM3OS4yNDQ3IDI0LjQ0NDUgODggMzMuMTk5OCA4OCA0NFY2OC40NDQ1Qzg4IDc5LjI0NDcgNzkuMjQ0NyA4OCA2OC40NDQ0IDg4SDE5LjU1NTZDOC43NTUzMiA4OCAwIDc5LjI0NDcgMCA2OC40NDQ1VjM0LjIyMjJaIiBmaWxsPSJibGFjayIvPgo8cGF0aCBkPSJNNTguMjIwMSA2MS4xOTU5VjQyLjg3NTVINjEuNzkzN1Y2MS4xOTU5SDU4LjIyMDFaIiBmaWxsPSIjRjdBNjAwIi8+CjxwYXRoIGQ9Ik0xNy40Mzk1IDY2LjY2MzdIOS43Nzc5NVY0OC4zNDM0SDE3LjEzMTNDMjAuNzA0OSA0OC4zNDM0IDIyLjc4NzQgNTAuMzUwNSAyMi43ODc0IDUzLjQ4OTNDMjIuNzg3NCA1NS41MjE1IDIxLjQ1MDQgNTYuODM0NSAyMC41MjU3IDU3LjI3MjFDMjEuNjMxNSA1Ny43ODY5IDIzLjA0NTYgNTguOTQzOCAyMy4wNDU2IDYxLjM4ODVDMjMuMDQ1NiA2NC44MTA4IDIwLjcwNDkgNjYuNjYzNyAxNy40Mzk1IDY2LjY2MzdaTTE2Ljg0ODEgNTEuNTM0M0gxMy4zNTE2VjU1Ljc1NDhIMTYuODQ4MUMxOC4zNjQyIDU1Ljc1NDggMTkuMjEzOCA1NC45MDY0IDE5LjIxMzggNTMuNjQ1NUMxOS4yMTM4IDUyLjM4MjYgMTguMzY2MiA1MS41MzQzIDE2Ljg0ODEgNTEuNTM0M1pNMTcuMDc5MyA1OC45NzA4SDEzLjM1MTZWNjMuNDcyOEgxNy4wNzkzQzE4LjY5OTQgNjMuNDcyOCAxOS40NyA2Mi40NDMyIDE5LjQ3IDYxLjIwOTJDMTkuNDcyIDU5Ljk3MzMgMTguNjk5NCA1OC45NzA4IDE3LjA3OTMgNTguOTcwOFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik0zMi44OTI1IDU5LjE1MDFWNjYuNjYzN0gyOS4zNDM5VjU5LjE1MDFMMjMuODQxOSA0OC4zNDM0SDI3LjcyMzhMMzEuMTQzMiA1NS43Mjc4TDM0LjUxMDcgNDguMzQzNEgzOC4zOTI2TDMyLjg5MjUgNTkuMTUwMVoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik00OC41NjMzIDY2LjY2MzdINDAuOTAxN1Y0OC4zNDM0SDQ4LjI1NTFDNTEuODI4NyA0OC4zNDM0IDUzLjkxMTIgNTAuMzUwNSA1My45MTEyIDUzLjQ4OTNDNTMuOTExMiA1NS41MjE1IDUyLjU3NDIgNTYuODM0NSA1MS42NDk1IDU3LjI3MjFDNTIuNzU1MyA1Ny43ODY5IDU0LjE2OTMgNTguOTQzOCA1NC4xNjkzIDYxLjM4ODVDNTQuMTY3NCA2NC44MTA4IDUxLjgyNjggNjYuNjYzNyA0OC41NjMzIDY2LjY2MzdaTTQ3Ljk3MTkgNTEuNTM0M0g0NC40NzUzVjU1Ljc1NDhINDcuOTcxOUM0OS40ODggNTUuNzU0OCA1MC4zMzc2IDU0LjkwNjQgNTAuMzM3NiA1My42NDU1QzUwLjMzNTcgNTIuMzgyNiA0OS40ODggNTEuNTM0MyA0Ny45NzE5IDUxLjUzNDNaTTQ4LjIwMzEgNTguOTcwOEg0NC40NzUzVjYzLjQ3MjhINDguMjAzMUM0OS44MjMyIDYzLjQ3MjggNTAuNTkzOCA2Mi40NDMyIDUwLjU5MzggNjEuMjA5MkM1MC41OTM4IDU5Ljk3MzQgNDkuODIxMyA1OC45NzA4IDQ4LjIwMzEgNTguOTcwOFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik03My40MzkgNTEuNTM0M1Y2Ni42NjM3SDY5Ljg2NTRWNTEuNTM0M0g2NS4wODM5VjQ4LjM0MzRINzguMjIyNFY1MS41MzQzSDczLjQzOVoiIGZpbGw9IndoaXRlIi8+CjxkZWZzPgo8bGluZWFyR3JhZGllbnQgaWQ9InBhaW50MF9saW5lYXJfMzEyXzE3NTM0IiB4MT0iNy4zMzMwOCIgeTE9IjI1LjU5NCIgeDI9Ijg0LjYzODEiIHkyPSIyMS43MjE2IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CjxzdG9wIHN0b3AtY29sb3I9IiNGRkQ3NDgiLz4KPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjRjdBNjAwIi8+CjwvbGluZWFyR3JhZGllbnQ+CjwvZGVmcz4KPC9zdmc+Cg==",
|
|
107
|
+
_a[WalletName.GATE_WALLET] = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAAAP1BMVEUAAAAX5aIjVOYjVeYjVOYjU+UjVOYgUN8jVeYkVOcgWOcoWOcjVOYjVeYjVOcjVOYkVOYjU+YY5KIjVOYX5aFnl2IZAAAAE3RSTlMAn+/fn5CAEGBAICDPr3C/v1Bg8gPz/wAAAYNJREFUWMOtl9lywzAIRYkQ2mzZSen/f2uX6UzGt7IJVc87R4sRYDpjKdJXVqU/UYX1B/KTU9Ank+F+wRZUJwRtV8S7/JRAVKcEUecEq84Jos4Jks4JNp0TtDApYB0R7pLKDXkbxJdRdK+ZPnlHboMDDDYgX9GvCkQRrkQXAvMGYyaPoCiQiFwCxvXJJ6h4/uwURBAs5BQwHsApaLgBr+CBG3AK8B1Xt6AfXwA5BVjJ7l4BfgTxCyCLZwXlvwV29cEjuOs3XqK3ATJ8xp1Mjg18xUTKZHGsX53ESGWjfCS81O7soQ9qapzBfP0MDcG1AR50herZQDSKKpJ5tFpA6+tTCI9ni2RkMT6dPGptA3JUICwnYuVlkEGsiBA9twBEUGTRi2U2HRDrM7r2oL8p+MKQsEsqJckedATDiOAlLDDmedmwzjhJRpJZRGPYtliNRLeIRqpbiPHLYxDg/mFmNbkvdEVh7/JIk3ARnjLZtMLucKRGVoClkov2SH391vDapZze3Ac97ZDnSKHPHwAAAABJRU5ErkJggg==",
|
|
108
|
+
_a[WalletName.OKX_WALLET] = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAJDSURBVHgB7Zq9jtpAEMfHlhEgQLiioXEkoAGECwoKxMcTRHmC5E3IoyRPkPAEkI7unJYmTgEFTYwA8a3NTKScLnCHN6c9r1e3P2llWQy7M/s1Gv1twCP0ej37dDq9x+Zut1t3t9vZjDEHIiSRSPg4ZpDL5fxkMvn1cDh8m0wmfugfO53OoFQq/crn8wxfY9EymQyrVCqMfHvScZx1p9ls3pFxXBy/bKlUipGPrVbLuQqAfsCliq3zl0H84zwtjQrOw4Mt1W63P5LvBm2d+Xz+YzqdgkqUy+WgWCy+Mc/nc282m4FqLBYL+3g8fjDxenq72WxANZbLJeA13zDX67UDioL5ybXwafMYu64Ltn3bdDweQ5R97fd7GyhBQMipx4POeEDHIu2LfDdBIGGz+hJ9CQ1ABjoA2egAZPM6AgiCAEQhsi/C4jHyPA/6/f5NG3Ks2+3CYDC4aTccDrn6ojG54MnEvG00GoVmWLIRNZ7wTCwDHYBsdACy0QHIhiuRETxlICWpMMhGZHmqS8qH6JLyGegAZKMDkI0uKf8X4SWlaZo+Pp1bRrwlJU8ZKLIvUjKh0WiQ3sRUbNVq9c5Ebew7KEo2m/1p4jJ4qAmDaqDQBzj5XyiAT4VCQezJigAU+IDU+z8vJFnGWeC+bKQV/5VZ71FV6L7PA3gg3tXrdQ+DgLhC+75Wq3no69P3MC0NFQpx2lL04Ql9gHK1bRDjsSBIvScBnDTk1WrlGIZBorIDEYJj+rhdgnQ67VmWRe0zlplXl81vcyEt0rSoYDUAAAAASUVORK5CYII=",
|
|
109
|
+
_a[WalletName.MSAFE_WALLET] = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQ3IiBoZWlnaHQ9IjE3MCIgdmlld0JveD0iMCAwIDI0NyAxNzAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMTAyLjU5MyAyMy4wMTNDMTA3LjQ5OSAyNi4wNTU4IDExMC43OTQgMzAuODc4NSAxNDAuOTEyIDc5LjEwMzlDMTcyLjQxOSAxMjkuNTUyIDE3My44NjQgMTMyLjExNCAxNzMuODY0IDEzNy41MzZDMTczLjg2NCAxNDIuNDUxIDE3My4zNCAxNDMuNzI1IDE2OS45MTcgMTQ3LjExMkMxNjYuNDc2IDE1MC41MTggMTY1LjIyMiAxNTEuMDE5IDE2MC4xMzggMTUxLjAxOUMxNTUuNTg0IDE1MS4wMTkgMTUzLjUzNiAxNTAuMzc4IDE1MC43OTcgMTQ4LjA5N0MxNDguODY4IDE0Ni40OTEgMTM5Ljg2MiAxMzMuMTc1IDEzMC43ODUgMTE4LjUwOEMxMDMuNzE5IDc0Ljc3NDEgOTAuMDYxIDUzLjE2NzYgODkuNzI2NyA1My41NTQ5Qzg2LjY2ODUgNTcuMTAzMyA3OC42NjEgNzIuMzY1NiA3OC42NjEgNzQuNjQ0M0M3OC42NjEgNzYuNTM4IDg0LjQ0NjMgODcuMzAwNCA5My43MjA1IDEwMi42NThDMTAyLjAwMyAxMTYuMzc0IDEwOS41OTQgMTI5LjUyNCAxMTAuNTg5IDEzMS44ODFDMTE0LjQ2NCAxNDEuMDYyIDEwNy43NTQgMTUxLjAxOSA5Ny42ODc3IDE1MS4wMTlDOTQuODQwOSAxNTEuMDE5IDkxLjIxNTEgMTUwLjE3OCA4OS42MzAzIDE0OS4xNTFDODguMDQ1NSAxNDguMTIyIDgwLjk3OTUgMTM3Ljc4IDczLjkyODcgMTI2LjE2OUM2Ni44Nzc4IDExNC41NTYgNjAuNjc0NSAxMDUuMDU1IDYwLjE0MjggMTA1LjA1NUM1OS42MTEgMTA1LjA1NSA1My42OTMzIDExNC4yMzQgNDYuOTkzMSAxMjUuNDUyQzQwLjI5MjkgMTM2LjY2OSAzMy43MjYyIDE0Ni44MTUgMzIuNDAxNSAxNDcuOTk1QzMxLjA3NjcgMTQ5LjE3NiAyNy43MDYzIDE1MC4zOTYgMjQuOTEyOSAxNTAuNzA5QzE1LjgzODQgMTUxLjcyMSA5IDE0NS44NzggOSAxMzcuMTFDOSAxMzIuODQyIDkuMDQ4NzYgMTMyLjc1MiA0My41MzU2IDc0LjAyOTVDNTcuODI1NCA0OS42OTczIDcxLjIyMTIgMjguMDc5MyA3My4zMDQxIDI1Ljk4OTFDODEuMDc3MSAxOC4xODc5IDkyLjg4IDE2Ljk4OTQgMTAyLjU5MyAyMy4wMTNaTTE2Ni45MDEgMjMuMDIzM0MxNzAuMzA4IDI2LjQ4MjEgMjMzLjQ5OSAxMjcuMTE2IDIzNS40NDcgMTMyLjE4NUMyMzguMjU4IDEzOS41MDQgMjM1LjI3NyAxNDYuMzEyIDIyNy42NjUgMTQ5Ljk2QzIyMy41NDcgMTUxLjkzMyAyMjIuMDczIDE1Mi4xMSAyMTguMjQ1IDE1MS4wODlDMjE1Ljc0OSAxNTAuNDI0IDIxMi44NjYgMTQ4Ljk2IDIxMS44MzggMTQ3LjgzNUMyMTAuODA5IDE0Ni43MSAxOTQuNzk2IDEyMS41IDE3Ni4yNTMgOTEuODExOEMxNDAuMDU0IDMzLjg1NyAxNDAuMDQ0IDMzLjgzNTIgMTQ0LjI3NCAyNS43Mzk4QzE0OC4yNjMgMTguMTAxNyAxNjAuNTk0IDE2LjYyMjggMTY2LjkwMSAyMy4wMjMzWiIgZmlsbD0iIzQ4QjVBNyIvPgo8L3N2Zz4K",
|
|
110
|
+
_a);
|
|
111
|
+
var WALLET_DOWNLOAD_URLS_MAP = (_b = {},
|
|
112
|
+
_b[WalletName.SLUSH] = {
|
|
113
|
+
iOS: "https://apps.apple.com/us/app/slush-a-sui-wallet/id6476572140",
|
|
114
|
+
android: "https://play.google.com/store/apps/details?id=com.mystenlabs.suiwallet",
|
|
115
|
+
extension: "https://chromewebstore.google.com/detail/slush-%E2%80%94-a-sui-wallet/opcgpfmipidbgpenhmajoajpbobppdil",
|
|
116
|
+
},
|
|
117
|
+
_b[WalletName.BACKPACK] = {
|
|
118
|
+
iOS: "https://apps.apple.com/us/app/backpack-buy-trade-crypto/id6445964121",
|
|
119
|
+
android: "https://play.google.com/store/apps/details?id=app.backpack.mobile",
|
|
120
|
+
extension: "https://chromewebstore.google.com/detail/backpack/aflkmfhebedbjioipglgcbcmnbpgliof",
|
|
121
|
+
},
|
|
122
|
+
_b[WalletName.PHANTOM] = {
|
|
123
|
+
iOS: "https://apps.apple.com/us/app/phantom-crypto-wallet/id1598432977",
|
|
124
|
+
android: "https://play.google.com/store/apps/details?id=app.phantom",
|
|
125
|
+
extension: "https://chromewebstore.google.com/detail/phantom/bfnaelmomeimhlpmgjnjophhpkkoljpa",
|
|
126
|
+
},
|
|
127
|
+
_b[WalletName.NIGHTLY] = {
|
|
128
|
+
iOS: "https://apps.apple.com/us/app/nightly-multichain-wallet/id6444768157",
|
|
129
|
+
android: "https://play.google.com/store/apps/details?id=com.nightlymobile",
|
|
130
|
+
extension: "https://chromewebstore.google.com/detail/nightly/fiikommddbeccaoicoejoniammnalkfa",
|
|
131
|
+
},
|
|
132
|
+
_b[WalletName.SUIET] = {
|
|
133
|
+
iOS: undefined,
|
|
134
|
+
android: undefined,
|
|
135
|
+
extension: "https://chromewebstore.google.com/detail/suiet-sui-wallet/khpkpbbcccdmmclmpigdgddabeilkdpd",
|
|
136
|
+
},
|
|
137
|
+
_b[WalletName.BYBIT_WALLET] = {
|
|
138
|
+
iOS: "https://apps.apple.com/us/app/bybit-buy-trade-crypto/id1488296980",
|
|
139
|
+
android: "https://play.google.com/store/apps/details?id=com.bybit.app",
|
|
140
|
+
extension: "https://chromewebstore.google.com/detail/bybit-wallet/pdliaogehgdbhbnmkklieghmmjkpigpa",
|
|
141
|
+
},
|
|
142
|
+
_b[WalletName.GATE_WALLET] = {
|
|
143
|
+
iOS: "https://apps.apple.com/us/app/gate-io-buy-bitcoin-crypto/id1294998195",
|
|
144
|
+
android: "https://play.google.com/store/apps/details?id=com.gateio.gateio",
|
|
145
|
+
extension: "https://chromewebstore.google.com/detail/gate-wallet/cpmkedoipcpimgecpmgpldfpohjplkpp",
|
|
146
|
+
},
|
|
147
|
+
_b[WalletName.OKX_WALLET] = {
|
|
148
|
+
iOS: "https://apps.apple.com/us/app/okx-buy-bitcoin-btc-crypto/id1327268470",
|
|
149
|
+
android: "https://play.google.com/store/apps/details?id=com.okinc.okex.gp",
|
|
150
|
+
extension: "https://chromewebstore.google.com/detail/okx-wallet/mcohilncbfahbmgdjkbpemcciiolgcge",
|
|
151
|
+
},
|
|
152
|
+
_b[WalletName.MSAFE_WALLET] = {
|
|
153
|
+
iOS: undefined,
|
|
154
|
+
android: undefined,
|
|
155
|
+
extension: "https://sui.m-safe.io",
|
|
156
|
+
},
|
|
157
|
+
_b);
|
|
158
|
+
export var WalletContextQueryParams;
|
|
159
|
+
(function (WalletContextQueryParams) {
|
|
160
|
+
WalletContextQueryParams["WALLET"] = "wallet";
|
|
161
|
+
})(WalletContextQueryParams || (WalletContextQueryParams = {}));
|
|
162
|
+
var WalletContext = createContext({
|
|
163
|
+
isImpersonating: false,
|
|
164
|
+
isConnectWalletDropdownOpen: false,
|
|
165
|
+
setIsConnectWalletDropdownOpen: function () {
|
|
166
|
+
throw new Error("WalletContextProvider not initialized");
|
|
167
|
+
},
|
|
168
|
+
wallets: [],
|
|
169
|
+
wallet: undefined,
|
|
170
|
+
connectWallet: function () {
|
|
171
|
+
throw new Error("WalletContextProvider not initialized");
|
|
172
|
+
},
|
|
173
|
+
disconnectWallet: function () {
|
|
174
|
+
throw new Error("WalletContextProvider not initialized");
|
|
175
|
+
},
|
|
176
|
+
accounts: [],
|
|
177
|
+
account: undefined,
|
|
178
|
+
switchAccount: function () {
|
|
179
|
+
throw new Error("WalletContextProvider not initialized");
|
|
180
|
+
},
|
|
181
|
+
address: undefined,
|
|
182
|
+
dryRunTransaction: function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
183
|
+
return __generator(this, function (_a) {
|
|
184
|
+
throw new Error("WalletContextProvider not initialized");
|
|
185
|
+
});
|
|
186
|
+
}); },
|
|
187
|
+
signExecuteAndWaitForTransaction: function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
188
|
+
return __generator(this, function (_a) {
|
|
189
|
+
throw new Error("WalletContextProvider not initialized");
|
|
190
|
+
});
|
|
191
|
+
}); },
|
|
192
|
+
});
|
|
193
|
+
export var useWalletContext = function () { return useContext(WalletContext); };
|
|
194
|
+
function Inner(_a) {
|
|
195
|
+
var _b;
|
|
196
|
+
var _this = this;
|
|
197
|
+
var _c;
|
|
198
|
+
var appName = _a.appName, children = _a.children;
|
|
199
|
+
var router = useRouter();
|
|
200
|
+
var queryParams = (_b = {},
|
|
201
|
+
_b[WalletContextQueryParams.WALLET] = router.query[WalletContextQueryParams.WALLET],
|
|
202
|
+
_b);
|
|
203
|
+
var suiClient = useSettingsContext().suiClient;
|
|
204
|
+
// Impersonated address
|
|
205
|
+
var impersonatedAddress = queryParams[WalletContextQueryParams.WALLET];
|
|
206
|
+
// Wallets
|
|
207
|
+
var wallets__installed = useWallets();
|
|
208
|
+
var getInstalledWallet = useCallback(function (name) { return wallets__installed.find(function (w) { return w.name === name; }); }, [wallets__installed]);
|
|
209
|
+
var wallets__extension_default = useMemo(function () {
|
|
210
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;
|
|
211
|
+
var msafeWallet = {
|
|
212
|
+
name: WalletName.MSAFE_WALLET,
|
|
213
|
+
iconUrl: (_b = (_a = getInstalledWallet(WalletName.MSAFE_WALLET)) === null || _a === void 0 ? void 0 : _a.icon) !== null && _b !== void 0 ? _b : WALLET_LOGO_MAP[WalletName.MSAFE_WALLET],
|
|
214
|
+
type: WalletType.EXTENSION,
|
|
215
|
+
downloadUrls: WALLET_DOWNLOAD_URLS_MAP[WalletName.MSAFE_WALLET],
|
|
216
|
+
};
|
|
217
|
+
if (isInMsafeApp())
|
|
218
|
+
return [msafeWallet];
|
|
219
|
+
return [
|
|
220
|
+
{
|
|
221
|
+
name: WalletName.SLUSH,
|
|
222
|
+
iconUrl: (_d = (_c = getInstalledWallet(WalletName.SLUSH)) === null || _c === void 0 ? void 0 : _c.icon) !== null && _d !== void 0 ? _d : WALLET_LOGO_MAP[WalletName.SLUSH],
|
|
223
|
+
type: WalletType.EXTENSION,
|
|
224
|
+
downloadUrls: WALLET_DOWNLOAD_URLS_MAP[WalletName.SLUSH],
|
|
225
|
+
},
|
|
226
|
+
{
|
|
227
|
+
name: WalletName.BACKPACK,
|
|
228
|
+
iconUrl: (_f = (_e = getInstalledWallet(WalletName.BACKPACK)) === null || _e === void 0 ? void 0 : _e.icon) !== null && _f !== void 0 ? _f : WALLET_LOGO_MAP[WalletName.BACKPACK],
|
|
229
|
+
type: WalletType.EXTENSION,
|
|
230
|
+
downloadUrls: WALLET_DOWNLOAD_URLS_MAP[WalletName.BACKPACK],
|
|
231
|
+
},
|
|
232
|
+
{
|
|
233
|
+
name: WalletName.PHANTOM,
|
|
234
|
+
iconUrl: (_h = (_g = getInstalledWallet(WalletName.PHANTOM)) === null || _g === void 0 ? void 0 : _g.icon) !== null && _h !== void 0 ? _h : WALLET_LOGO_MAP[WalletName.PHANTOM],
|
|
235
|
+
type: WalletType.EXTENSION,
|
|
236
|
+
downloadUrls: WALLET_DOWNLOAD_URLS_MAP[WalletName.PHANTOM],
|
|
237
|
+
},
|
|
238
|
+
{
|
|
239
|
+
name: WalletName.NIGHTLY,
|
|
240
|
+
iconUrl: (_k = (_j = getInstalledWallet(WalletName.NIGHTLY)) === null || _j === void 0 ? void 0 : _j.icon) !== null && _k !== void 0 ? _k : WALLET_LOGO_MAP[WalletName.NIGHTLY],
|
|
241
|
+
type: WalletType.EXTENSION,
|
|
242
|
+
downloadUrls: WALLET_DOWNLOAD_URLS_MAP[WalletName.NIGHTLY],
|
|
243
|
+
},
|
|
244
|
+
{
|
|
245
|
+
name: WalletName.SUIET,
|
|
246
|
+
iconUrl: (_m = (_l = getInstalledWallet(WalletName.SUIET)) === null || _l === void 0 ? void 0 : _l.icon) !== null && _m !== void 0 ? _m : WALLET_LOGO_MAP[WalletName.SUIET],
|
|
247
|
+
type: WalletType.EXTENSION,
|
|
248
|
+
downloadUrls: WALLET_DOWNLOAD_URLS_MAP[WalletName.SUIET],
|
|
249
|
+
},
|
|
250
|
+
{
|
|
251
|
+
name: WalletName.BYBIT_WALLET,
|
|
252
|
+
iconUrl: (_p = (_o = getInstalledWallet(WalletName.BYBIT_WALLET)) === null || _o === void 0 ? void 0 : _o.icon) !== null && _p !== void 0 ? _p : WALLET_LOGO_MAP[WalletName.BYBIT_WALLET],
|
|
253
|
+
type: WalletType.EXTENSION,
|
|
254
|
+
downloadUrls: WALLET_DOWNLOAD_URLS_MAP[WalletName.BYBIT_WALLET],
|
|
255
|
+
},
|
|
256
|
+
{
|
|
257
|
+
name: WalletName.GATE_WALLET,
|
|
258
|
+
iconUrl: (_r = (_q = getInstalledWallet(WalletName.GATE_WALLET)) === null || _q === void 0 ? void 0 : _q.icon) !== null && _r !== void 0 ? _r : WALLET_LOGO_MAP[WalletName.GATE_WALLET],
|
|
259
|
+
type: WalletType.EXTENSION,
|
|
260
|
+
downloadUrls: WALLET_DOWNLOAD_URLS_MAP[WalletName.GATE_WALLET],
|
|
261
|
+
},
|
|
262
|
+
{
|
|
263
|
+
name: WalletName.OKX_WALLET,
|
|
264
|
+
iconUrl: (_t = (_s = getInstalledWallet(WalletName.OKX_WALLET)) === null || _s === void 0 ? void 0 : _s.icon) !== null && _t !== void 0 ? _t : WALLET_LOGO_MAP[WalletName.OKX_WALLET],
|
|
265
|
+
type: WalletType.EXTENSION,
|
|
266
|
+
downloadUrls: WALLET_DOWNLOAD_URLS_MAP[WalletName.OKX_WALLET],
|
|
267
|
+
},
|
|
268
|
+
msafeWallet,
|
|
269
|
+
];
|
|
270
|
+
}, [getInstalledWallet]);
|
|
271
|
+
var wallets__extension_installed_default = useMemo(function () {
|
|
272
|
+
return wallets__extension_default
|
|
273
|
+
.filter(function (w) {
|
|
274
|
+
return w.name === WalletName.MSAFE_WALLET
|
|
275
|
+
? isInMsafeApp()
|
|
276
|
+
: !!getInstalledWallet(w.name);
|
|
277
|
+
})
|
|
278
|
+
.map(function (w) { return (__assign(__assign({}, w), { isInstalled: true, raw: getInstalledWallet(w.name) })); });
|
|
279
|
+
}, [wallets__extension_default, getInstalledWallet]);
|
|
280
|
+
var wallets__extension_installed_notDefault = useMemo(function () {
|
|
281
|
+
if (isInMsafeApp())
|
|
282
|
+
return [];
|
|
283
|
+
return wallets__installed
|
|
284
|
+
.filter(function (w) { return !DEFAULT_EXTENSION_WALLET_NAMES.includes(w.name); })
|
|
285
|
+
.filter(function (w) { return !WEB_WALLET_NAMES.includes(w.name); })
|
|
286
|
+
.map(function (w) { return ({
|
|
287
|
+
name: w.name,
|
|
288
|
+
isInstalled: true,
|
|
289
|
+
iconUrl: w.icon,
|
|
290
|
+
type: WalletType.EXTENSION,
|
|
291
|
+
raw: w,
|
|
292
|
+
}); });
|
|
293
|
+
}, [wallets__installed]);
|
|
294
|
+
var wallets__extension_notInstalled_default = useMemo(function () {
|
|
295
|
+
return wallets__extension_default
|
|
296
|
+
.filter(function (w) {
|
|
297
|
+
return w.name === WalletName.MSAFE_WALLET
|
|
298
|
+
? !isInMsafeApp()
|
|
299
|
+
: !getInstalledWallet(w.name);
|
|
300
|
+
})
|
|
301
|
+
.map(function (w) { return (__assign(__assign({}, w), { isInstalled: false })); });
|
|
302
|
+
}, [wallets__extension_default, getInstalledWallet]);
|
|
303
|
+
var wallets__web = useMemo(function () {
|
|
304
|
+
if (isInMsafeApp())
|
|
305
|
+
return [];
|
|
306
|
+
return [];
|
|
307
|
+
}, []);
|
|
308
|
+
var wallets = useMemo(function () { return __spreadArray(__spreadArray(__spreadArray(__spreadArray([], wallets__extension_installed_default, true), wallets__extension_installed_notDefault, true), wallets__extension_notInstalled_default, true), wallets__web, true); }, [
|
|
309
|
+
wallets__extension_installed_default,
|
|
310
|
+
wallets__extension_installed_notDefault,
|
|
311
|
+
wallets__extension_notInstalled_default,
|
|
312
|
+
wallets__web,
|
|
313
|
+
]);
|
|
314
|
+
// Wallet
|
|
315
|
+
var _d = useState(false), isConnectWalletDropdownOpen = _d[0], setIsConnectWalletDropdownOpen = _d[1];
|
|
316
|
+
var rawWallet = useCurrentWallet().currentWallet;
|
|
317
|
+
var wallet = useMemo(function () {
|
|
318
|
+
return rawWallet ? wallets.find(function (w) { return w.name === rawWallet.name; }) : undefined;
|
|
319
|
+
}, [rawWallet, wallets]);
|
|
320
|
+
var connectWallet = useConnectWallet().mutate;
|
|
321
|
+
var connectWalletWrapper = useCallback(function (_wallet) {
|
|
322
|
+
try {
|
|
323
|
+
if (!_wallet.raw)
|
|
324
|
+
throw new Error("Missing wallet");
|
|
325
|
+
connectWallet({ wallet: _wallet.raw }, {
|
|
326
|
+
onSuccess: function () {
|
|
327
|
+
showInfoToast("Connected ".concat(_wallet.name));
|
|
328
|
+
setIsConnectWalletDropdownOpen(false);
|
|
329
|
+
},
|
|
330
|
+
onError: function (err) {
|
|
331
|
+
showErrorToast("Failed to connect ".concat(_wallet.name), err);
|
|
332
|
+
console.error(err);
|
|
333
|
+
},
|
|
334
|
+
});
|
|
335
|
+
}
|
|
336
|
+
catch (err) {
|
|
337
|
+
showErrorToast("Failed to connect ".concat(_wallet.name), err);
|
|
338
|
+
console.error(err);
|
|
339
|
+
}
|
|
340
|
+
}, [connectWallet]);
|
|
341
|
+
var disconnectWallet = useDisconnectWallet().mutate;
|
|
342
|
+
var disconnectWalletWrapper = useCallback(function () {
|
|
343
|
+
try {
|
|
344
|
+
disconnectWallet(undefined, {
|
|
345
|
+
onSuccess: function () {
|
|
346
|
+
showInfoToast("Disconnected wallet");
|
|
347
|
+
},
|
|
348
|
+
onError: function (err) {
|
|
349
|
+
showErrorToast("Failed to disconnect wallet", err);
|
|
350
|
+
console.error(err);
|
|
351
|
+
},
|
|
352
|
+
});
|
|
353
|
+
}
|
|
354
|
+
catch (err) {
|
|
355
|
+
showErrorToast("Failed to disconnect wallet", err);
|
|
356
|
+
console.error(err);
|
|
357
|
+
}
|
|
358
|
+
}, [disconnectWallet]);
|
|
359
|
+
// Accounts
|
|
360
|
+
var accounts = useAccounts();
|
|
361
|
+
var account = (_c = useCurrentAccount()) !== null && _c !== void 0 ? _c : undefined;
|
|
362
|
+
var switchAccount = useSwitchAccount().mutate;
|
|
363
|
+
var switchAccountWrapper = useCallback(function (_account, addressNameServiceName) {
|
|
364
|
+
var _a, _b;
|
|
365
|
+
var accountLabel = (_b = (_a = _account === null || _account === void 0 ? void 0 : _account.label) !== null && _a !== void 0 ? _a : addressNameServiceName) !== null && _b !== void 0 ? _b : formatAddress(_account.address);
|
|
366
|
+
try {
|
|
367
|
+
switchAccount({ account: _account }, {
|
|
368
|
+
onSuccess: function () {
|
|
369
|
+
showInfoToast("Switched to ".concat(accountLabel), {
|
|
370
|
+
description: (_account === null || _account === void 0 ? void 0 : _account.label)
|
|
371
|
+
? (addressNameServiceName !== null && addressNameServiceName !== void 0 ? addressNameServiceName : formatAddress(_account.address))
|
|
372
|
+
: undefined,
|
|
373
|
+
});
|
|
374
|
+
},
|
|
375
|
+
onError: function (err) {
|
|
376
|
+
showErrorToast("Failed to switch to ".concat(accountLabel), err);
|
|
377
|
+
},
|
|
378
|
+
});
|
|
379
|
+
}
|
|
380
|
+
catch (err) {
|
|
381
|
+
showErrorToast("Failed to switch to ".concat(accountLabel), err);
|
|
382
|
+
console.error(err);
|
|
383
|
+
}
|
|
384
|
+
}, [switchAccount]);
|
|
385
|
+
// Sentry
|
|
386
|
+
useEffect(function () {
|
|
387
|
+
if (impersonatedAddress || !(account === null || account === void 0 ? void 0 : account.address))
|
|
388
|
+
Sentry.setUser(null);
|
|
389
|
+
else {
|
|
390
|
+
Sentry.setUser({ id: account === null || account === void 0 ? void 0 : account.address });
|
|
391
|
+
Sentry.setTag("wallet", wallet === null || wallet === void 0 ? void 0 : wallet.name);
|
|
392
|
+
}
|
|
393
|
+
}, [impersonatedAddress, account === null || account === void 0 ? void 0 : account.address, wallet === null || wallet === void 0 ? void 0 : wallet.name]);
|
|
394
|
+
// LaunchDarkly
|
|
395
|
+
var ldClient = useLDClient();
|
|
396
|
+
var ldKeyRef = useRef(undefined);
|
|
397
|
+
useEffect(function () {
|
|
398
|
+
if (!ldClient)
|
|
399
|
+
return;
|
|
400
|
+
var key = impersonatedAddress !== null && impersonatedAddress !== void 0 ? impersonatedAddress : account === null || account === void 0 ? void 0 : account.address;
|
|
401
|
+
if (ldKeyRef.current === key)
|
|
402
|
+
return;
|
|
403
|
+
(function () { return __awaiter(_this, void 0, void 0, function () {
|
|
404
|
+
return __generator(this, function (_a) {
|
|
405
|
+
switch (_a.label) {
|
|
406
|
+
case 0: return [4 /*yield*/, ldClient.identify(!key ? { anonymous: true } : { key: key })];
|
|
407
|
+
case 1:
|
|
408
|
+
_a.sent();
|
|
409
|
+
ldKeyRef.current = key;
|
|
410
|
+
return [2 /*return*/];
|
|
411
|
+
}
|
|
412
|
+
});
|
|
413
|
+
}); })();
|
|
414
|
+
}, [ldClient, impersonatedAddress, account === null || account === void 0 ? void 0 : account.address]);
|
|
415
|
+
// Wallet name logging
|
|
416
|
+
useEffect(function () {
|
|
417
|
+
if (impersonatedAddress || !(account === null || account === void 0 ? void 0 : account.address))
|
|
418
|
+
return;
|
|
419
|
+
if (!(wallet === null || wallet === void 0 ? void 0 : wallet.name))
|
|
420
|
+
return;
|
|
421
|
+
(function () { return __awaiter(_this, void 0, void 0, function () {
|
|
422
|
+
var err_1;
|
|
423
|
+
return __generator(this, function (_a) {
|
|
424
|
+
switch (_a.label) {
|
|
425
|
+
case 0:
|
|
426
|
+
_a.trys.push([0, 2, , 3]);
|
|
427
|
+
return [4 /*yield*/, fetch("".concat(API_URL, "/events/logs/wallet-connect"), {
|
|
428
|
+
method: "POST",
|
|
429
|
+
body: JSON.stringify({
|
|
430
|
+
address: account.address,
|
|
431
|
+
walletName: wallet.name,
|
|
432
|
+
project: appName,
|
|
433
|
+
}),
|
|
434
|
+
headers: {
|
|
435
|
+
"Content-Type": "application/json",
|
|
436
|
+
},
|
|
437
|
+
})];
|
|
438
|
+
case 1:
|
|
439
|
+
_a.sent();
|
|
440
|
+
return [3 /*break*/, 3];
|
|
441
|
+
case 2:
|
|
442
|
+
err_1 = _a.sent();
|
|
443
|
+
console.error(err_1);
|
|
444
|
+
return [3 /*break*/, 3];
|
|
445
|
+
case 3: return [2 /*return*/];
|
|
446
|
+
}
|
|
447
|
+
});
|
|
448
|
+
}); })();
|
|
449
|
+
}, [impersonatedAddress, account === null || account === void 0 ? void 0 : account.address, wallet === null || wallet === void 0 ? void 0 : wallet.name, appName]);
|
|
450
|
+
// Tx
|
|
451
|
+
var gasBudget = useSettingsContext().gasBudget;
|
|
452
|
+
var signTransaction = useSignTransaction().mutateAsync;
|
|
453
|
+
var dryRunTransaction = useCallback(function (transaction_1) {
|
|
454
|
+
var args_1 = [];
|
|
455
|
+
for (var _i = 1; _i < arguments.length; _i++) {
|
|
456
|
+
args_1[_i - 1] = arguments[_i];
|
|
457
|
+
}
|
|
458
|
+
return __awaiter(_this, __spreadArray([transaction_1], args_1, true), void 0, function (transaction, setGasBudget) {
|
|
459
|
+
var _address, inspectResults, err_2;
|
|
460
|
+
if (setGasBudget === void 0) { setGasBudget = true; }
|
|
461
|
+
return __generator(this, function (_a) {
|
|
462
|
+
switch (_a.label) {
|
|
463
|
+
case 0:
|
|
464
|
+
_address = impersonatedAddress !== null && impersonatedAddress !== void 0 ? impersonatedAddress : account === null || account === void 0 ? void 0 : account.address;
|
|
465
|
+
if (setGasBudget && gasBudget !== "")
|
|
466
|
+
transaction.setGasBudget(+new BigNumber(gasBudget)
|
|
467
|
+
.times(Math.pow(10, SUI_DECIMALS))
|
|
468
|
+
.integerValue(BigNumber.ROUND_DOWN));
|
|
469
|
+
_a.label = 1;
|
|
470
|
+
case 1:
|
|
471
|
+
_a.trys.push([1, 3, , 4]);
|
|
472
|
+
return [4 /*yield*/, suiClient.devInspectTransactionBlock({
|
|
473
|
+
sender: _address !== null && _address !== void 0 ? _address : "0x0000000000000000000000000000000000000000000000000000000000000000",
|
|
474
|
+
transactionBlock: transaction,
|
|
475
|
+
})];
|
|
476
|
+
case 2:
|
|
477
|
+
inspectResults = _a.sent();
|
|
478
|
+
console.log("WalletContext - dryRunTransaction:", inspectResults);
|
|
479
|
+
if (inspectResults.error)
|
|
480
|
+
throw new Error(inspectResults.error);
|
|
481
|
+
return [2 /*return*/, inspectResults];
|
|
482
|
+
case 3:
|
|
483
|
+
err_2 = _a.sent();
|
|
484
|
+
Sentry.captureException(err_2, {
|
|
485
|
+
tags: {
|
|
486
|
+
simulation: true,
|
|
487
|
+
},
|
|
488
|
+
});
|
|
489
|
+
console.error(err_2);
|
|
490
|
+
throw err_2;
|
|
491
|
+
case 4: return [2 /*return*/];
|
|
492
|
+
}
|
|
493
|
+
});
|
|
494
|
+
});
|
|
495
|
+
}, [impersonatedAddress, account === null || account === void 0 ? void 0 : account.address, gasBudget, suiClient]);
|
|
496
|
+
var signExecuteAndWaitForTransaction = useCallback(function (transaction, options) { return __awaiter(_this, void 0, void 0, function () {
|
|
497
|
+
var _address, signedTransaction, err_3, res1, res2, err_4;
|
|
498
|
+
var _a, _b;
|
|
499
|
+
return __generator(this, function (_c) {
|
|
500
|
+
switch (_c.label) {
|
|
501
|
+
case 0:
|
|
502
|
+
if (gasBudget !== "")
|
|
503
|
+
transaction.setGasBudget(+new BigNumber(gasBudget)
|
|
504
|
+
.times(Math.pow(10, SUI_DECIMALS))
|
|
505
|
+
.integerValue(BigNumber.ROUND_DOWN));
|
|
506
|
+
_address = impersonatedAddress !== null && impersonatedAddress !== void 0 ? impersonatedAddress : account === null || account === void 0 ? void 0 : account.address;
|
|
507
|
+
if (_address) {
|
|
508
|
+
try {
|
|
509
|
+
dryRunTransaction(transaction, false); // Do not await
|
|
510
|
+
}
|
|
511
|
+
catch (err) { }
|
|
512
|
+
}
|
|
513
|
+
_c.label = 1;
|
|
514
|
+
case 1:
|
|
515
|
+
_c.trys.push([1, 9, , 10]);
|
|
516
|
+
return [4 /*yield*/, signTransaction({
|
|
517
|
+
transaction: transaction,
|
|
518
|
+
chain: "sui:mainnet",
|
|
519
|
+
})];
|
|
520
|
+
case 2:
|
|
521
|
+
signedTransaction = _c.sent();
|
|
522
|
+
if (!(options === null || options === void 0 ? void 0 : options.auction)) return [3 /*break*/, 6];
|
|
523
|
+
_c.label = 3;
|
|
524
|
+
case 3:
|
|
525
|
+
_c.trys.push([3, 5, , 6]);
|
|
526
|
+
return [4 /*yield*/, executeAuction(signedTransaction.bytes, signedTransaction.signature)];
|
|
527
|
+
case 4:
|
|
528
|
+
_c.sent();
|
|
529
|
+
return [3 /*break*/, 6];
|
|
530
|
+
case 5:
|
|
531
|
+
err_3 = _c.sent();
|
|
532
|
+
return [3 /*break*/, 6];
|
|
533
|
+
case 6: return [4 /*yield*/, suiClient.executeTransactionBlock({
|
|
534
|
+
transactionBlock: signedTransaction.bytes,
|
|
535
|
+
signature: signedTransaction.signature,
|
|
536
|
+
})];
|
|
537
|
+
case 7:
|
|
538
|
+
res1 = _c.sent();
|
|
539
|
+
return [4 /*yield*/, suiClient.waitForTransaction({
|
|
540
|
+
digest: res1.digest,
|
|
541
|
+
options: {
|
|
542
|
+
showBalanceChanges: true,
|
|
543
|
+
showEffects: true,
|
|
544
|
+
showEvents: true,
|
|
545
|
+
showObjectChanges: true,
|
|
546
|
+
},
|
|
547
|
+
})];
|
|
548
|
+
case 8:
|
|
549
|
+
res2 = _c.sent();
|
|
550
|
+
if (((_a = res2.effects) === null || _a === void 0 ? void 0 : _a.status) !== undefined &&
|
|
551
|
+
res2.effects.status.status === "failure")
|
|
552
|
+
throw new Error((_b = res2.effects.status.error) !== null && _b !== void 0 ? _b : "Transaction failed");
|
|
553
|
+
return [2 /*return*/, res2];
|
|
554
|
+
case 9:
|
|
555
|
+
err_4 = _c.sent();
|
|
556
|
+
Sentry.captureException(err_4);
|
|
557
|
+
console.error(err_4);
|
|
558
|
+
throw err_4;
|
|
559
|
+
case 10: return [2 /*return*/];
|
|
560
|
+
}
|
|
561
|
+
});
|
|
562
|
+
}); }, [
|
|
563
|
+
gasBudget,
|
|
564
|
+
impersonatedAddress,
|
|
565
|
+
account === null || account === void 0 ? void 0 : account.address,
|
|
566
|
+
dryRunTransaction,
|
|
567
|
+
suiClient,
|
|
568
|
+
signTransaction,
|
|
569
|
+
]);
|
|
570
|
+
// Context
|
|
571
|
+
var contextValue = useMemo(function () { return ({
|
|
572
|
+
isImpersonating: !!impersonatedAddress,
|
|
573
|
+
isConnectWalletDropdownOpen: isConnectWalletDropdownOpen,
|
|
574
|
+
setIsConnectWalletDropdownOpen: setIsConnectWalletDropdownOpen,
|
|
575
|
+
wallets: wallets,
|
|
576
|
+
wallet: wallet,
|
|
577
|
+
connectWallet: connectWalletWrapper,
|
|
578
|
+
disconnectWallet: disconnectWalletWrapper,
|
|
579
|
+
accounts: accounts,
|
|
580
|
+
account: account,
|
|
581
|
+
switchAccount: switchAccountWrapper,
|
|
582
|
+
address: impersonatedAddress !== null && impersonatedAddress !== void 0 ? impersonatedAddress : account === null || account === void 0 ? void 0 : account.address,
|
|
583
|
+
dryRunTransaction: dryRunTransaction,
|
|
584
|
+
signExecuteAndWaitForTransaction: signExecuteAndWaitForTransaction,
|
|
585
|
+
}); }, [
|
|
586
|
+
impersonatedAddress,
|
|
587
|
+
isConnectWalletDropdownOpen,
|
|
588
|
+
wallets,
|
|
589
|
+
wallet,
|
|
590
|
+
connectWalletWrapper,
|
|
591
|
+
disconnectWalletWrapper,
|
|
592
|
+
accounts,
|
|
593
|
+
account,
|
|
594
|
+
switchAccountWrapper,
|
|
595
|
+
dryRunTransaction,
|
|
596
|
+
signExecuteAndWaitForTransaction,
|
|
597
|
+
]);
|
|
598
|
+
return (<WalletContext.Provider value={contextValue}>
|
|
599
|
+
{children}
|
|
600
|
+
</WalletContext.Provider>);
|
|
601
|
+
}
|
|
602
|
+
export function WalletContextProvider(_a) {
|
|
603
|
+
var appName = _a.appName, children = _a.children;
|
|
604
|
+
var rpc = useSettingsContext().rpc;
|
|
605
|
+
var networkConfig = createNetworkConfig({
|
|
606
|
+
mainnet: { url: rpc.url },
|
|
607
|
+
}).networkConfig;
|
|
608
|
+
var queryClient = new QueryClient();
|
|
609
|
+
return (<QueryClientProvider client={queryClient}>
|
|
610
|
+
<SuiClientProvider networks={networkConfig} defaultNetwork="mainnet">
|
|
611
|
+
<MystenWalletProvider preferredWallets={DEFAULT_EXTENSION_WALLET_NAMES} autoConnect slushWallet={{ name: appName }}>
|
|
612
|
+
<Inner appName={appName}>{children}</Inner>
|
|
613
|
+
</MystenWalletProvider>
|
|
614
|
+
</SuiClientProvider>
|
|
615
|
+
</QueryClientProvider>);
|
|
616
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./useFetchBalances";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./useFetchBalances";
|