@aptos-labs/wallet-adapter-core 4.25.0 → 5.0.1
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 +10 -0
- package/dist/WalletCore.d.ts +71 -112
- package/dist/WalletCore.d.ts.map +1 -1
- package/dist/constants.d.ts +4 -14
- package/dist/constants.d.ts.map +1 -1
- package/dist/error/index.d.ts +3 -0
- package/dist/error/index.d.ts.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +379 -859
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +408 -894
- package/dist/index.mjs.map +1 -1
- package/dist/{AIP62StandardWallets/registry.d.ts → registry.d.ts} +1 -1
- package/dist/registry.d.ts.map +1 -0
- package/dist/sdkWallets.d.ts +3 -0
- package/dist/sdkWallets.d.ts.map +1 -0
- package/dist/utils/helpers.d.ts +7 -7
- package/dist/utils/helpers.d.ts.map +1 -1
- package/dist/utils/index.d.ts +1 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/localStorage.d.ts +1 -2
- package/dist/utils/localStorage.d.ts.map +1 -1
- package/dist/utils/types.d.ts +26 -0
- package/dist/utils/types.d.ts.map +1 -0
- package/dist/utils/walletSelector.d.ts +18 -19
- package/dist/utils/walletSelector.d.ts.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.d.ts.map +1 -1
- package/package.json +4 -5
- package/src/WalletCore.ts +474 -686
- package/src/constants.ts +3 -13
- package/src/error/index.ts +4 -0
- package/src/index.ts +3 -3
- package/src/{AIP62StandardWallets/registry.ts → registry.ts} +19 -6
- package/src/{AIP62StandardWallets/sdkWallets.ts → sdkWallets.ts} +6 -6
- package/src/utils/helpers.ts +46 -32
- package/src/utils/index.ts +1 -1
- package/src/utils/localStorage.ts +1 -3
- package/src/{AIP62StandardWallets → utils}/types.ts +22 -3
- package/src/utils/walletSelector.ts +32 -26
- package/src/version.ts +1 -1
- package/dist/AIP62StandardWallets/WalletStandard.d.ts +0 -44
- package/dist/AIP62StandardWallets/WalletStandard.d.ts.map +0 -1
- package/dist/AIP62StandardWallets/index.d.ts +0 -3
- package/dist/AIP62StandardWallets/index.d.ts.map +0 -1
- package/dist/AIP62StandardWallets/registry.d.ts.map +0 -1
- package/dist/AIP62StandardWallets/sdkWallets.d.ts +0 -4
- package/dist/AIP62StandardWallets/sdkWallets.d.ts.map +0 -1
- package/dist/AIP62StandardWallets/types.d.ts +0 -12
- package/dist/AIP62StandardWallets/types.d.ts.map +0 -1
- package/dist/LegacyWalletPlugins/WalletCoreV1.d.ts +0 -50
- package/dist/LegacyWalletPlugins/WalletCoreV1.d.ts.map +0 -1
- package/dist/LegacyWalletPlugins/conversion.d.ts +0 -21
- package/dist/LegacyWalletPlugins/conversion.d.ts.map +0 -1
- package/dist/LegacyWalletPlugins/index.d.ts +0 -4
- package/dist/LegacyWalletPlugins/index.d.ts.map +0 -1
- package/dist/LegacyWalletPlugins/types.d.ts +0 -116
- package/dist/LegacyWalletPlugins/types.d.ts.map +0 -1
- package/dist/__tests__/WalletCore.test.d.ts +0 -2
- package/dist/__tests__/WalletCore.test.d.ts.map +0 -1
- package/dist/utils/scopePollingDetectionStrategy.d.ts +0 -2
- package/dist/utils/scopePollingDetectionStrategy.d.ts.map +0 -1
- package/src/AIP62StandardWallets/WalletStandard.ts +0 -242
- package/src/AIP62StandardWallets/index.ts +0 -2
- package/src/LegacyWalletPlugins/WalletCoreV1.ts +0 -258
- package/src/LegacyWalletPlugins/conversion.ts +0 -124
- package/src/LegacyWalletPlugins/index.ts +0 -3
- package/src/LegacyWalletPlugins/types.ts +0 -188
- package/src/utils/scopePollingDetectionStrategy.ts +0 -46
package/dist/index.mjs
CHANGED
|
@@ -1,87 +1,55 @@
|
|
|
1
1
|
// src/version.ts
|
|
2
|
-
var WALLET_ADAPTER_CORE_VERSION = "
|
|
2
|
+
var WALLET_ADAPTER_CORE_VERSION = "5.0.1";
|
|
3
3
|
|
|
4
4
|
// src/WalletCore.ts
|
|
5
|
-
import
|
|
5
|
+
import EventEmitter from "eventemitter3";
|
|
6
6
|
import {
|
|
7
|
-
Network as Network4,
|
|
8
7
|
AccountAddress,
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
8
|
+
AnyPublicKey,
|
|
9
|
+
AnyPublicKeyVariant,
|
|
10
|
+
Aptos as Aptos2,
|
|
11
|
+
MultiEd25519PublicKey,
|
|
12
|
+
MultiEd25519Signature,
|
|
13
|
+
Network as Network3,
|
|
15
14
|
NetworkToChainId
|
|
16
15
|
} from "@aptos-labs/ts-sdk";
|
|
17
|
-
import EventEmitter2 from "eventemitter3";
|
|
18
16
|
import {
|
|
19
17
|
getAptosWallets,
|
|
20
|
-
|
|
21
|
-
|
|
18
|
+
isWalletWithRequiredFeatureSet,
|
|
19
|
+
UserResponseStatus
|
|
22
20
|
} from "@aptos-labs/wallet-standard";
|
|
23
21
|
|
|
24
|
-
// src/
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
import { Network } from "@aptos-labs/ts-sdk";
|
|
30
|
-
import { DevTWallet, TWallet } from "@atomrigslab/aptos-wallet-adapter";
|
|
31
|
-
import { MizuWallet } from "@mizuwallet-sdk/aptos-wallet-adapter";
|
|
32
|
-
function getSDKWallets(dappConfig) {
|
|
33
|
-
const sdkWallets = [];
|
|
34
|
-
if (typeof window !== "undefined") {
|
|
35
|
-
sdkWallets.push(
|
|
36
|
-
new AptosConnectGoogleWallet({
|
|
37
|
-
network: dappConfig == null ? void 0 : dappConfig.network,
|
|
38
|
-
dappId: dappConfig == null ? void 0 : dappConfig.aptosConnectDappId,
|
|
39
|
-
...dappConfig == null ? void 0 : dappConfig.aptosConnect
|
|
40
|
-
}),
|
|
41
|
-
new AptosConnectAppleWallet({
|
|
42
|
-
network: dappConfig == null ? void 0 : dappConfig.network,
|
|
43
|
-
dappId: dappConfig == null ? void 0 : dappConfig.aptosConnectDappId,
|
|
44
|
-
...dappConfig == null ? void 0 : dappConfig.aptosConnect
|
|
45
|
-
})
|
|
46
|
-
);
|
|
47
|
-
if ((dappConfig == null ? void 0 : dappConfig.mizuwallet) && (dappConfig == null ? void 0 : dappConfig.network) && [Network.MAINNET, Network.TESTNET].includes(dappConfig.network)) {
|
|
48
|
-
sdkWallets.push(
|
|
49
|
-
new MizuWallet({
|
|
50
|
-
network: dappConfig.network,
|
|
51
|
-
manifestURL: dappConfig.mizuwallet.manifestURL,
|
|
52
|
-
appId: dappConfig.mizuwallet.appId
|
|
53
|
-
})
|
|
54
|
-
);
|
|
55
|
-
}
|
|
22
|
+
// src/ga/index.ts
|
|
23
|
+
var GA4 = class {
|
|
24
|
+
constructor() {
|
|
25
|
+
this.aptosGAID = "G-GNVVWBL3J9";
|
|
26
|
+
this.injectGA(this.aptosGAID);
|
|
56
27
|
}
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
28
|
+
gtag(a, b, c) {
|
|
29
|
+
let dataLayer = window.dataLayer || [];
|
|
30
|
+
dataLayer.push(arguments);
|
|
31
|
+
}
|
|
32
|
+
injectGA(gaID) {
|
|
33
|
+
if (typeof window === "undefined")
|
|
34
|
+
return;
|
|
35
|
+
if (!gaID)
|
|
36
|
+
return;
|
|
37
|
+
const head = document.getElementsByTagName("head")[0];
|
|
38
|
+
var myScript = document.createElement("script");
|
|
39
|
+
myScript.setAttribute(
|
|
40
|
+
"src",
|
|
41
|
+
`https://www.googletagmanager.com/gtag/js?id=${gaID}`
|
|
42
|
+
);
|
|
43
|
+
const that = this;
|
|
44
|
+
myScript.onload = function() {
|
|
45
|
+
that.gtag("js", new Date());
|
|
46
|
+
that.gtag("config", `${gaID}`, {
|
|
47
|
+
send_page_view: false
|
|
48
|
+
});
|
|
49
|
+
};
|
|
50
|
+
head.insertBefore(myScript, head.children[1]);
|
|
61
51
|
}
|
|
62
|
-
return sdkWallets;
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
// src/constants.ts
|
|
66
|
-
var WalletReadyState = /* @__PURE__ */ ((WalletReadyState2) => {
|
|
67
|
-
WalletReadyState2["Installed"] = "Installed";
|
|
68
|
-
WalletReadyState2["NotDetected"] = "NotDetected";
|
|
69
|
-
WalletReadyState2["Loadable"] = "Loadable";
|
|
70
|
-
WalletReadyState2["Unsupported"] = "Unsupported";
|
|
71
|
-
return WalletReadyState2;
|
|
72
|
-
})(WalletReadyState || {});
|
|
73
|
-
var NetworkName = /* @__PURE__ */ ((NetworkName2) => {
|
|
74
|
-
NetworkName2["Mainnet"] = "mainnet";
|
|
75
|
-
NetworkName2["Testnet"] = "testnet";
|
|
76
|
-
NetworkName2["Devnet"] = "devnet";
|
|
77
|
-
return NetworkName2;
|
|
78
|
-
})(NetworkName || {});
|
|
79
|
-
var ChainIdToAnsSupportedNetworkMap = {
|
|
80
|
-
"1": "mainnet",
|
|
81
|
-
"2": "testnet"
|
|
82
52
|
};
|
|
83
|
-
var APTOS_CONNECT_BASE_URL = "https://aptosconnect.app";
|
|
84
|
-
var APTOS_CONNECT_ACCOUNT_URL = "https://aptosconnect.app/dashboard/main-account";
|
|
85
53
|
|
|
86
54
|
// src/error/index.ts
|
|
87
55
|
var WalletError = class extends Error {
|
|
@@ -168,118 +136,45 @@ var WalletSignTransactionError = class extends WalletError {
|
|
|
168
136
|
this.name = "WalletSignTransactionError";
|
|
169
137
|
}
|
|
170
138
|
};
|
|
171
|
-
var
|
|
139
|
+
var WalletChangeNetworkError = class extends WalletError {
|
|
172
140
|
constructor() {
|
|
173
141
|
super(...arguments);
|
|
174
|
-
this.name = "
|
|
142
|
+
this.name = "WalletChangeNetworkError";
|
|
175
143
|
}
|
|
176
144
|
};
|
|
177
|
-
var
|
|
145
|
+
var WalletSubmitTransactionError = class extends WalletError {
|
|
178
146
|
constructor() {
|
|
179
147
|
super(...arguments);
|
|
180
|
-
this.name = "
|
|
148
|
+
this.name = "WalletSubmitTransactionError";
|
|
181
149
|
}
|
|
182
150
|
};
|
|
183
151
|
|
|
184
|
-
// src/
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
case "mainnet":
|
|
203
|
-
return Network2.MAINNET;
|
|
204
|
-
case "testnet":
|
|
205
|
-
return Network2.TESTNET;
|
|
206
|
-
case "devnet":
|
|
207
|
-
return Network2.DEVNET;
|
|
208
|
-
case "local":
|
|
209
|
-
return Network2.LOCAL;
|
|
210
|
-
default:
|
|
211
|
-
throw new Error("Invalid Aptos network name");
|
|
212
|
-
}
|
|
213
|
-
}
|
|
214
|
-
function convertV2TransactionPayloadToV1BCSPayload(payload) {
|
|
215
|
-
const deserializer = new BCS.Deserializer(payload.bcsToBytes());
|
|
216
|
-
return TxnBuilderTypes.TransactionPayload.deserialize(deserializer);
|
|
217
|
-
}
|
|
218
|
-
function convertV2PayloadToV1JSONPayload(payload) {
|
|
219
|
-
var _a, _b;
|
|
220
|
-
if ("bytecode" in payload) {
|
|
221
|
-
throw new Error("script payload not supported");
|
|
222
|
-
} else if ("multisigAddress" in payload) {
|
|
223
|
-
const stringTypeTags = (_a = payload.typeArguments) == null ? void 0 : _a.map(
|
|
224
|
-
(typeTag) => {
|
|
225
|
-
if (typeTag instanceof TypeTag) {
|
|
226
|
-
return typeTag.toString();
|
|
227
|
-
}
|
|
228
|
-
return typeTag;
|
|
229
|
-
}
|
|
230
|
-
);
|
|
231
|
-
const newPayload = {
|
|
232
|
-
type: "multisig_payload",
|
|
233
|
-
multisig_address: payload.multisigAddress.toString(),
|
|
234
|
-
function: payload.function,
|
|
235
|
-
type_arguments: stringTypeTags || [],
|
|
236
|
-
arguments: payload.functionArguments
|
|
237
|
-
};
|
|
238
|
-
return newPayload;
|
|
239
|
-
} else {
|
|
240
|
-
const stringTypeTags = (_b = payload.typeArguments) == null ? void 0 : _b.map(
|
|
241
|
-
(typeTag) => {
|
|
242
|
-
if (typeTag instanceof TypeTag) {
|
|
243
|
-
return typeTag.toString();
|
|
244
|
-
}
|
|
245
|
-
return typeTag;
|
|
246
|
-
}
|
|
247
|
-
);
|
|
248
|
-
const newPayload = {
|
|
249
|
-
type: "entry_function_payload",
|
|
250
|
-
function: payload.function,
|
|
251
|
-
type_arguments: stringTypeTags || [],
|
|
252
|
-
arguments: payload.functionArguments
|
|
253
|
-
};
|
|
254
|
-
return newPayload;
|
|
255
|
-
}
|
|
256
|
-
}
|
|
257
|
-
function convertPayloadInputV1ToV2(inputV1) {
|
|
258
|
-
if ("function" in inputV1) {
|
|
259
|
-
const inputV2 = {
|
|
260
|
-
function: inputV1.function,
|
|
261
|
-
functionArguments: inputV1.arguments,
|
|
262
|
-
typeArguments: inputV1.type_arguments
|
|
263
|
-
};
|
|
264
|
-
return inputV2;
|
|
265
|
-
}
|
|
266
|
-
throw new Error("Payload type not supported");
|
|
267
|
-
}
|
|
268
|
-
async function generateTransactionPayloadFromV1Input(aptosConfig, inputV1) {
|
|
269
|
-
if ("function" in inputV1) {
|
|
270
|
-
const inputV2 = convertPayloadInputV1ToV2(inputV1);
|
|
271
|
-
return generateTransactionPayload({ ...inputV2, aptosConfig });
|
|
272
|
-
}
|
|
273
|
-
throw new Error("Payload type not supported");
|
|
274
|
-
}
|
|
152
|
+
// src/constants.ts
|
|
153
|
+
var WalletReadyState = /* @__PURE__ */ ((WalletReadyState2) => {
|
|
154
|
+
WalletReadyState2["Installed"] = "Installed";
|
|
155
|
+
WalletReadyState2["NotDetected"] = "NotDetected";
|
|
156
|
+
return WalletReadyState2;
|
|
157
|
+
})(WalletReadyState || {});
|
|
158
|
+
var NetworkName = /* @__PURE__ */ ((NetworkName2) => {
|
|
159
|
+
NetworkName2["Mainnet"] = "mainnet";
|
|
160
|
+
NetworkName2["Testnet"] = "testnet";
|
|
161
|
+
NetworkName2["Devnet"] = "devnet";
|
|
162
|
+
return NetworkName2;
|
|
163
|
+
})(NetworkName || {});
|
|
164
|
+
var ChainIdToAnsSupportedNetworkMap = {
|
|
165
|
+
"1": "mainnet",
|
|
166
|
+
"2": "testnet"
|
|
167
|
+
};
|
|
168
|
+
var APTOS_CONNECT_BASE_URL = "https://aptosconnect.app";
|
|
169
|
+
var APTOS_CONNECT_ACCOUNT_URL = "https://aptosconnect.app/dashboard/main-account";
|
|
275
170
|
|
|
276
171
|
// src/utils/helpers.ts
|
|
277
172
|
import {
|
|
278
173
|
Aptos,
|
|
279
|
-
AptosConfig
|
|
174
|
+
AptosConfig,
|
|
280
175
|
Hex,
|
|
281
|
-
|
|
282
|
-
|
|
176
|
+
Network,
|
|
177
|
+
NetworkToNodeAPI
|
|
283
178
|
} from "@aptos-labs/ts-sdk";
|
|
284
179
|
function isMobile() {
|
|
285
180
|
return /Mobile|iP(hone|od|ad)|Android|BlackBerry|IEMobile|Kindle|NetFront|Silk-Accelerated|(hpw|web)OS|Fennec|Minimo|Opera M(obi|ini)|Blazer|Dolfin|Dolphin|Skyfire|Zune/i.test(
|
|
@@ -303,13 +198,6 @@ function isRedirectable() {
|
|
|
303
198
|
function generalizedErrorMessage(error) {
|
|
304
199
|
return typeof error === "object" && "message" in error ? error.message : error;
|
|
305
200
|
}
|
|
306
|
-
var areBCSArguments = (args) => {
|
|
307
|
-
if (args.length === 0)
|
|
308
|
-
return false;
|
|
309
|
-
return args.every(
|
|
310
|
-
(arg) => arg instanceof Serializable
|
|
311
|
-
);
|
|
312
|
-
};
|
|
313
201
|
var getAptosConfig = (networkInfo, dappConfig) => {
|
|
314
202
|
if (!networkInfo) {
|
|
315
203
|
throw new Error("Undefined network");
|
|
@@ -318,17 +206,31 @@ var getAptosConfig = (networkInfo, dappConfig) => {
|
|
|
318
206
|
const currentNetwork = convertNetwork(networkInfo);
|
|
319
207
|
if (isAptosLiveNetwork(currentNetwork)) {
|
|
320
208
|
const apiKey = dappConfig == null ? void 0 : dappConfig.aptosApiKeys;
|
|
321
|
-
return new
|
|
209
|
+
return new AptosConfig({
|
|
322
210
|
network: currentNetwork,
|
|
323
211
|
clientConfig: { API_KEY: apiKey ? apiKey[currentNetwork] : void 0 }
|
|
324
212
|
});
|
|
325
213
|
}
|
|
326
|
-
return new
|
|
214
|
+
return new AptosConfig({
|
|
327
215
|
network: currentNetwork
|
|
328
216
|
});
|
|
329
217
|
}
|
|
218
|
+
const knownNetworks = {
|
|
219
|
+
okx: "https://wallet.okx.com/fullnode/aptos/discover/rpc"
|
|
220
|
+
};
|
|
221
|
+
if (networkInfo.url) {
|
|
222
|
+
const isKnownNetwork = Object.values(knownNetworks).includes(
|
|
223
|
+
networkInfo.url
|
|
224
|
+
);
|
|
225
|
+
if (isKnownNetwork) {
|
|
226
|
+
return new AptosConfig({
|
|
227
|
+
network: Network.CUSTOM,
|
|
228
|
+
fullnode: networkInfo.url
|
|
229
|
+
});
|
|
230
|
+
}
|
|
231
|
+
}
|
|
330
232
|
throw new Error(
|
|
331
|
-
|
|
233
|
+
`Invalid network, network ${networkInfo.name} not supported with Aptos wallet adapter to prevent user from using an unexpected network.`
|
|
332
234
|
);
|
|
333
235
|
};
|
|
334
236
|
var isAptosNetwork = (networkInfo) => {
|
|
@@ -364,6 +266,20 @@ var handlePublishPackageTransaction = (transactionInput) => {
|
|
|
364
266
|
}
|
|
365
267
|
return { metadataBytes, byteCode };
|
|
366
268
|
};
|
|
269
|
+
function convertNetwork(networkInfo) {
|
|
270
|
+
switch (networkInfo == null ? void 0 : networkInfo.name) {
|
|
271
|
+
case "mainnet":
|
|
272
|
+
return Network.MAINNET;
|
|
273
|
+
case "testnet":
|
|
274
|
+
return Network.TESTNET;
|
|
275
|
+
case "devnet":
|
|
276
|
+
return Network.DEVNET;
|
|
277
|
+
case "local":
|
|
278
|
+
return Network.LOCAL;
|
|
279
|
+
default:
|
|
280
|
+
throw new Error("Invalid Aptos network name");
|
|
281
|
+
}
|
|
282
|
+
}
|
|
367
283
|
|
|
368
284
|
// src/utils/localStorage.ts
|
|
369
285
|
var LOCAL_STORAGE_ITEM_KEY = "AptosWalletName";
|
|
@@ -377,36 +293,6 @@ function getLocalStorage() {
|
|
|
377
293
|
localStorage.getItem(LOCAL_STORAGE_ITEM_KEY);
|
|
378
294
|
}
|
|
379
295
|
|
|
380
|
-
// src/utils/scopePollingDetectionStrategy.ts
|
|
381
|
-
function scopePollingDetectionStrategy(detect) {
|
|
382
|
-
if (typeof window === "undefined" || typeof document === "undefined")
|
|
383
|
-
return;
|
|
384
|
-
const disposers = [];
|
|
385
|
-
function detectAndDispose() {
|
|
386
|
-
const detected = detect();
|
|
387
|
-
if (detected) {
|
|
388
|
-
for (const dispose of disposers) {
|
|
389
|
-
dispose();
|
|
390
|
-
}
|
|
391
|
-
}
|
|
392
|
-
}
|
|
393
|
-
const interval = setInterval(detectAndDispose, 1e3);
|
|
394
|
-
disposers.push(() => clearInterval(interval));
|
|
395
|
-
if (document.readyState === "loading") {
|
|
396
|
-
document.addEventListener("DOMContentLoaded", detectAndDispose, {
|
|
397
|
-
once: true
|
|
398
|
-
});
|
|
399
|
-
disposers.push(
|
|
400
|
-
() => document.removeEventListener("DOMContentLoaded", detectAndDispose)
|
|
401
|
-
);
|
|
402
|
-
}
|
|
403
|
-
if (document.readyState !== "complete") {
|
|
404
|
-
window.addEventListener("load", detectAndDispose, { once: true });
|
|
405
|
-
disposers.push(() => window.removeEventListener("load", detectAndDispose));
|
|
406
|
-
}
|
|
407
|
-
detectAndDispose();
|
|
408
|
-
}
|
|
409
|
-
|
|
410
296
|
// src/utils/walletSelector.ts
|
|
411
297
|
function partitionWallets(wallets, partitionFunction = isInstalledOrLoadable) {
|
|
412
298
|
const defaultWallets = [];
|
|
@@ -420,7 +306,7 @@ function partitionWallets(wallets, partitionFunction = isInstalledOrLoadable) {
|
|
|
420
306
|
return { defaultWallets, moreWallets };
|
|
421
307
|
}
|
|
422
308
|
function isInstalledOrLoadable(wallet) {
|
|
423
|
-
return wallet.readyState === "Installed" /* Installed
|
|
309
|
+
return wallet.readyState === "Installed" /* Installed */;
|
|
424
310
|
}
|
|
425
311
|
function isInstallRequired(wallet) {
|
|
426
312
|
const isWalletReady = isInstalledOrLoadable(wallet);
|
|
@@ -432,328 +318,38 @@ function truncateAddress(address) {
|
|
|
432
318
|
return;
|
|
433
319
|
return `${address.slice(0, 6)}...${address.slice(-5)}`;
|
|
434
320
|
}
|
|
435
|
-
function isAptosConnectWallet(wallet) {
|
|
436
|
-
if (!wallet.url)
|
|
437
|
-
return false;
|
|
438
|
-
return wallet.url.startsWith(APTOS_CONNECT_BASE_URL);
|
|
439
|
-
}
|
|
440
|
-
function getAptosConnectWallets(wallets) {
|
|
441
|
-
const { defaultWallets, moreWallets } = partitionWallets(
|
|
442
|
-
wallets,
|
|
443
|
-
isAptosConnectWallet
|
|
444
|
-
);
|
|
445
|
-
return { aptosConnectWallets: defaultWallets, otherWallets: moreWallets };
|
|
446
|
-
}
|
|
447
|
-
function groupAndSortWallets(wallets, options) {
|
|
448
|
-
const { aptosConnectWallets, otherWallets } = getAptosConnectWallets(wallets);
|
|
449
|
-
const { defaultWallets, moreWallets } = partitionWallets(otherWallets);
|
|
450
|
-
if (options == null ? void 0 : options.sortAptosConnectWallets) {
|
|
451
|
-
aptosConnectWallets.sort(options.sortAptosConnectWallets);
|
|
452
|
-
}
|
|
453
|
-
if (options == null ? void 0 : options.sortAvailableWallets) {
|
|
454
|
-
defaultWallets.sort(options.sortAvailableWallets);
|
|
455
|
-
}
|
|
456
|
-
if (options == null ? void 0 : options.sortInstallableWallets) {
|
|
457
|
-
moreWallets.sort(options.sortInstallableWallets);
|
|
458
|
-
}
|
|
459
|
-
return {
|
|
460
|
-
aptosConnectWallets,
|
|
461
|
-
availableWallets: defaultWallets,
|
|
462
|
-
installableWallets: moreWallets
|
|
463
|
-
};
|
|
464
|
-
}
|
|
465
|
-
|
|
466
|
-
// src/LegacyWalletPlugins/WalletCoreV1.ts
|
|
467
|
-
var WalletCoreV1 = class extends EventEmitter {
|
|
468
|
-
async connect(wallet) {
|
|
469
|
-
const account = await wallet.connect();
|
|
470
|
-
return account;
|
|
471
|
-
}
|
|
472
|
-
async resolveSignAndSubmitTransaction(payloadData, network, wallet, transactionInput, dappConfig) {
|
|
473
|
-
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
474
|
-
if (areBCSArguments(payloadData.functionArguments)) {
|
|
475
|
-
const aptosConfig = getAptosConfig(network, dappConfig);
|
|
476
|
-
const newPayload = await generateTransactionPayload2({
|
|
477
|
-
...payloadData,
|
|
478
|
-
aptosConfig
|
|
479
|
-
});
|
|
480
|
-
const oldTransactionPayload2 = convertV2TransactionPayloadToV1BCSPayload(newPayload);
|
|
481
|
-
return await this.signAndSubmitBCSTransaction(
|
|
482
|
-
oldTransactionPayload2,
|
|
483
|
-
wallet,
|
|
484
|
-
{
|
|
485
|
-
max_gas_amount: ((_a = transactionInput.options) == null ? void 0 : _a.maxGasAmount) ? BigInt((_b = transactionInput.options) == null ? void 0 : _b.maxGasAmount) : void 0,
|
|
486
|
-
gas_unit_price: ((_c = transactionInput.options) == null ? void 0 : _c.gasUnitPrice) ? BigInt((_d = transactionInput.options) == null ? void 0 : _d.gasUnitPrice) : void 0
|
|
487
|
-
}
|
|
488
|
-
);
|
|
489
|
-
}
|
|
490
|
-
const oldTransactionPayload = convertV2PayloadToV1JSONPayload(payloadData);
|
|
491
|
-
return await this.signAndSubmitTransaction(oldTransactionPayload, wallet, {
|
|
492
|
-
max_gas_amount: ((_e = transactionInput.options) == null ? void 0 : _e.maxGasAmount) ? BigInt((_f = transactionInput.options) == null ? void 0 : _f.maxGasAmount) : void 0,
|
|
493
|
-
gas_unit_price: ((_g = transactionInput.options) == null ? void 0 : _g.gasUnitPrice) ? BigInt((_h = transactionInput.options) == null ? void 0 : _h.gasUnitPrice) : void 0
|
|
494
|
-
});
|
|
495
|
-
}
|
|
496
|
-
async signAndSubmitTransaction(transaction, wallet, options) {
|
|
497
|
-
try {
|
|
498
|
-
const response = await wallet.signAndSubmitTransaction(
|
|
499
|
-
transaction,
|
|
500
|
-
options
|
|
501
|
-
);
|
|
502
|
-
return response;
|
|
503
|
-
} catch (error) {
|
|
504
|
-
const errMsg = typeof error == "object" && "message" in error ? error.message : error;
|
|
505
|
-
throw new WalletSignAndSubmitMessageError(errMsg).message;
|
|
506
|
-
}
|
|
507
|
-
}
|
|
508
|
-
async signAndSubmitBCSTransaction(transaction, wallet, options) {
|
|
509
|
-
if (!("signAndSubmitBCSTransaction" in wallet)) {
|
|
510
|
-
throw new WalletNotSupportedMethod(
|
|
511
|
-
`Submit a BCS Transaction is not supported by ${wallet.name}`
|
|
512
|
-
).message;
|
|
513
|
-
}
|
|
514
|
-
try {
|
|
515
|
-
const response = await wallet.signAndSubmitBCSTransaction(
|
|
516
|
-
transaction,
|
|
517
|
-
options
|
|
518
|
-
);
|
|
519
|
-
return response;
|
|
520
|
-
} catch (error) {
|
|
521
|
-
const errMsg = typeof error == "object" && "message" in error ? error.message : error;
|
|
522
|
-
throw new WalletSignAndSubmitMessageError(errMsg).message;
|
|
523
|
-
}
|
|
524
|
-
}
|
|
525
|
-
async signTransaction(transaction, wallet, options) {
|
|
526
|
-
try {
|
|
527
|
-
const response = await wallet.signTransaction(
|
|
528
|
-
transaction,
|
|
529
|
-
options
|
|
530
|
-
);
|
|
531
|
-
return response;
|
|
532
|
-
} catch (error) {
|
|
533
|
-
const errMsg = typeof error == "object" && "message" in error ? error.message : error;
|
|
534
|
-
throw new WalletSignTransactionError(errMsg).message;
|
|
535
|
-
}
|
|
536
|
-
}
|
|
537
|
-
async signMessageAndVerify(message, wallet, account) {
|
|
538
|
-
try {
|
|
539
|
-
const response = await wallet.signMessage(message);
|
|
540
|
-
if (!response)
|
|
541
|
-
throw new WalletSignMessageAndVerifyError("Failed to sign a message").message;
|
|
542
|
-
console.log("signMessageAndVerify signMessage response", response);
|
|
543
|
-
let verified = false;
|
|
544
|
-
if (Array.isArray(response.signature)) {
|
|
545
|
-
const { fullMessage, signature, bitmap } = response;
|
|
546
|
-
if (bitmap) {
|
|
547
|
-
const minKeysRequired = account.minKeysRequired;
|
|
548
|
-
if (signature.length < minKeysRequired) {
|
|
549
|
-
verified = false;
|
|
550
|
-
} else {
|
|
551
|
-
const bits = Array.from(bitmap).flatMap(
|
|
552
|
-
(n) => Array.from({ length: 8 }).map((_, i) => n >> i & 1)
|
|
553
|
-
);
|
|
554
|
-
const index = bits.map((_, i) => i).filter((i) => bits[i]);
|
|
555
|
-
const publicKeys = account.publicKey;
|
|
556
|
-
const matchedPublicKeys = publicKeys.filter(
|
|
557
|
-
(_, i) => index.includes(i)
|
|
558
|
-
);
|
|
559
|
-
verified = true;
|
|
560
|
-
for (let i = 0; i < signature.length; i++) {
|
|
561
|
-
const isSigVerified = nacl.sign.detached.verify(
|
|
562
|
-
Buffer.from(fullMessage),
|
|
563
|
-
Buffer.from(signature[i], "hex"),
|
|
564
|
-
Buffer.from(matchedPublicKeys[i], "hex")
|
|
565
|
-
);
|
|
566
|
-
if (!isSigVerified) {
|
|
567
|
-
verified = false;
|
|
568
|
-
break;
|
|
569
|
-
}
|
|
570
|
-
}
|
|
571
|
-
}
|
|
572
|
-
} else {
|
|
573
|
-
throw new WalletSignMessageAndVerifyError("Failed to get a bitmap").message;
|
|
574
|
-
}
|
|
575
|
-
} else {
|
|
576
|
-
const currentAccountPublicKey = new HexString(
|
|
577
|
-
account.publicKey
|
|
578
|
-
);
|
|
579
|
-
const signature = new HexString(
|
|
580
|
-
response.signature
|
|
581
|
-
);
|
|
582
|
-
verified = nacl.sign.detached.verify(
|
|
583
|
-
Buffer.from(response.fullMessage),
|
|
584
|
-
Buffer.from(signature.noPrefix(), "hex"),
|
|
585
|
-
Buffer.from(currentAccountPublicKey.noPrefix(), "hex")
|
|
586
|
-
);
|
|
587
|
-
}
|
|
588
|
-
return verified;
|
|
589
|
-
} catch (error) {
|
|
590
|
-
const errMsg = generalizedErrorMessage(error);
|
|
591
|
-
throw new WalletSignMessageAndVerifyError(errMsg).message;
|
|
592
|
-
}
|
|
593
|
-
}
|
|
594
|
-
};
|
|
595
|
-
|
|
596
|
-
// src/LegacyWalletPlugins/types.ts
|
|
597
|
-
import { TxnBuilderTypes as TxnBuilderTypes3, Types as Types3 } from "aptos";
|
|
598
|
-
|
|
599
|
-
// src/AIP62StandardWallets/WalletStandard.ts
|
|
600
|
-
import {
|
|
601
|
-
UserResponseStatus
|
|
602
|
-
} from "@aptos-labs/wallet-standard";
|
|
603
|
-
import {
|
|
604
|
-
AnyPublicKey,
|
|
605
|
-
AnyPublicKeyVariant,
|
|
606
|
-
MultiEd25519Signature,
|
|
607
|
-
MultiEd25519PublicKey
|
|
608
|
-
} from "@aptos-labs/ts-sdk";
|
|
609
|
-
var WalletStandardCore = class {
|
|
610
|
-
async connect(wallet) {
|
|
611
|
-
const response = await wallet.connect();
|
|
612
|
-
if (response.status === UserResponseStatus.REJECTED) {
|
|
613
|
-
throw new WalletConnectionError("User has rejected the request").message;
|
|
614
|
-
}
|
|
615
|
-
return response.args;
|
|
616
|
-
}
|
|
617
|
-
async signAndSubmitTransaction(transactionInput, aptos, account, wallet, standardWallets) {
|
|
618
|
-
var _a, _b, _c;
|
|
619
|
-
try {
|
|
620
|
-
const standardWallet = standardWallets.find(
|
|
621
|
-
(standardWallet2) => wallet.name === standardWallet2.name
|
|
622
|
-
);
|
|
623
|
-
if (((_a = standardWallet == null ? void 0 : standardWallet.features["aptos:signAndSubmitTransaction"]) == null ? void 0 : _a.version) !== "1.1.0") {
|
|
624
|
-
const transaction2 = await aptos.transaction.build.simple({
|
|
625
|
-
sender: account.address.toString(),
|
|
626
|
-
data: transactionInput.data,
|
|
627
|
-
options: transactionInput.options
|
|
628
|
-
});
|
|
629
|
-
const response2 = await wallet.signAndSubmitTransaction(
|
|
630
|
-
transaction2
|
|
631
|
-
);
|
|
632
|
-
if (response2.status === UserResponseStatus.REJECTED) {
|
|
633
|
-
throw new WalletConnectionError("User has rejected the request").message;
|
|
634
|
-
}
|
|
635
|
-
return response2.args;
|
|
636
|
-
}
|
|
637
|
-
const transaction = {
|
|
638
|
-
gasUnitPrice: (_b = transactionInput.options) == null ? void 0 : _b.gasUnitPrice,
|
|
639
|
-
maxGasAmount: (_c = transactionInput.options) == null ? void 0 : _c.maxGasAmount,
|
|
640
|
-
payload: transactionInput.data
|
|
641
|
-
};
|
|
642
|
-
const response = await wallet.signAndSubmitTransaction(
|
|
643
|
-
transaction
|
|
644
|
-
);
|
|
645
|
-
if (response.status === UserResponseStatus.REJECTED) {
|
|
646
|
-
throw new WalletConnectionError("User has rejected the request").message;
|
|
647
|
-
}
|
|
648
|
-
return response.args;
|
|
649
|
-
} catch (error) {
|
|
650
|
-
const errMsg = generalizedErrorMessage(error);
|
|
651
|
-
throw new WalletSignAndSubmitMessageError(errMsg).message;
|
|
652
|
-
}
|
|
653
|
-
}
|
|
654
|
-
async signTransaction(transactionOrInput, wallet, asFeePayer) {
|
|
655
|
-
const response = await wallet.signTransaction(
|
|
656
|
-
transactionOrInput,
|
|
657
|
-
asFeePayer
|
|
658
|
-
);
|
|
659
|
-
if (response.status === UserResponseStatus.REJECTED) {
|
|
660
|
-
throw new WalletConnectionError("User has rejected the request").message;
|
|
661
|
-
}
|
|
662
|
-
return response.args;
|
|
663
|
-
}
|
|
664
|
-
async signMessage(message, wallet) {
|
|
665
|
-
try {
|
|
666
|
-
const response = await wallet.signMessage(
|
|
667
|
-
message
|
|
668
|
-
);
|
|
669
|
-
if (response.status === UserResponseStatus.REJECTED) {
|
|
670
|
-
throw new WalletConnectionError("User has rejected the request").message;
|
|
671
|
-
}
|
|
672
|
-
return response.args;
|
|
673
|
-
} catch (error) {
|
|
674
|
-
const errMsg = generalizedErrorMessage(error);
|
|
675
|
-
throw new WalletSignMessageError(errMsg).message;
|
|
676
|
-
}
|
|
677
|
-
}
|
|
678
|
-
async signMessageAndVerify(message, wallet) {
|
|
679
|
-
try {
|
|
680
|
-
const response = await wallet.signMessage(
|
|
681
|
-
message
|
|
682
|
-
);
|
|
683
|
-
const account = await wallet.account();
|
|
684
|
-
if (response.status === UserResponseStatus.REJECTED) {
|
|
685
|
-
throw new WalletConnectionError("Failed to sign a message").message;
|
|
686
|
-
}
|
|
687
|
-
if (account.publicKey instanceof AnyPublicKey && account.publicKey.variant === AnyPublicKeyVariant.Keyless) {
|
|
688
|
-
return true;
|
|
689
|
-
}
|
|
690
|
-
let verified = false;
|
|
691
|
-
if (response.args.signature instanceof MultiEd25519Signature) {
|
|
692
|
-
if (!(account.publicKey instanceof MultiEd25519PublicKey)) {
|
|
693
|
-
throw new WalletSignMessageAndVerifyError(
|
|
694
|
-
"Public key and Signature type mismatch"
|
|
695
|
-
).message;
|
|
696
|
-
}
|
|
697
|
-
const { fullMessage, signature } = response.args;
|
|
698
|
-
const bitmap = signature.bitmap;
|
|
699
|
-
if (bitmap) {
|
|
700
|
-
const minKeysRequired = account.publicKey.threshold;
|
|
701
|
-
if (signature.signatures.length < minKeysRequired) {
|
|
702
|
-
verified = false;
|
|
703
|
-
} else {
|
|
704
|
-
verified = account.publicKey.verifySignature({
|
|
705
|
-
message: new TextEncoder().encode(fullMessage),
|
|
706
|
-
signature
|
|
707
|
-
});
|
|
708
|
-
}
|
|
709
|
-
}
|
|
710
|
-
} else {
|
|
711
|
-
verified = account.publicKey.verifySignature({
|
|
712
|
-
message: new TextEncoder().encode(response.args.fullMessage),
|
|
713
|
-
signature: response.args.signature
|
|
714
|
-
});
|
|
715
|
-
}
|
|
716
|
-
return verified;
|
|
717
|
-
} catch (error) {
|
|
718
|
-
const errMsg = generalizedErrorMessage(error);
|
|
719
|
-
throw new WalletSignMessageAndVerifyError(errMsg).message;
|
|
720
|
-
}
|
|
721
|
-
}
|
|
722
|
-
};
|
|
723
|
-
|
|
724
|
-
// src/ga/index.ts
|
|
725
|
-
var GA4 = class {
|
|
726
|
-
constructor() {
|
|
727
|
-
this.aptosGAID = "G-GNVVWBL3J9";
|
|
728
|
-
this.injectGA(this.aptosGAID);
|
|
321
|
+
function isAptosConnectWallet(wallet) {
|
|
322
|
+
if (!wallet.url)
|
|
323
|
+
return false;
|
|
324
|
+
return wallet.url.startsWith(APTOS_CONNECT_BASE_URL);
|
|
325
|
+
}
|
|
326
|
+
function getAptosConnectWallets(wallets) {
|
|
327
|
+
const { defaultWallets, moreWallets } = partitionWallets(
|
|
328
|
+
wallets,
|
|
329
|
+
isAptosConnectWallet
|
|
330
|
+
);
|
|
331
|
+
return { aptosConnectWallets: defaultWallets, otherWallets: moreWallets };
|
|
332
|
+
}
|
|
333
|
+
function groupAndSortWallets(wallets, options) {
|
|
334
|
+
const { aptosConnectWallets, otherWallets } = getAptosConnectWallets(wallets);
|
|
335
|
+
const { defaultWallets, moreWallets } = partitionWallets(otherWallets);
|
|
336
|
+
if (options == null ? void 0 : options.sortAptosConnectWallets) {
|
|
337
|
+
aptosConnectWallets.sort(options.sortAptosConnectWallets);
|
|
729
338
|
}
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
dataLayer.push(arguments);
|
|
339
|
+
if (options == null ? void 0 : options.sortAvailableWallets) {
|
|
340
|
+
defaultWallets.sort(options.sortAvailableWallets);
|
|
733
341
|
}
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
return;
|
|
737
|
-
if (!gaID)
|
|
738
|
-
return;
|
|
739
|
-
const head = document.getElementsByTagName("head")[0];
|
|
740
|
-
var myScript = document.createElement("script");
|
|
741
|
-
myScript.setAttribute(
|
|
742
|
-
"src",
|
|
743
|
-
`https://www.googletagmanager.com/gtag/js?id=${gaID}`
|
|
744
|
-
);
|
|
745
|
-
const that = this;
|
|
746
|
-
myScript.onload = function() {
|
|
747
|
-
that.gtag("js", new Date());
|
|
748
|
-
that.gtag("config", `${gaID}`, {
|
|
749
|
-
send_page_view: false
|
|
750
|
-
});
|
|
751
|
-
};
|
|
752
|
-
head.insertBefore(myScript, head.children[1]);
|
|
342
|
+
if (options == null ? void 0 : options.sortInstallableWallets) {
|
|
343
|
+
moreWallets.sort(options.sortInstallableWallets);
|
|
753
344
|
}
|
|
754
|
-
|
|
345
|
+
return {
|
|
346
|
+
aptosConnectWallets,
|
|
347
|
+
availableWallets: defaultWallets,
|
|
348
|
+
installableWallets: moreWallets
|
|
349
|
+
};
|
|
350
|
+
}
|
|
755
351
|
|
|
756
|
-
// src/
|
|
352
|
+
// src/registry.ts
|
|
757
353
|
var aptosStandardSupportedWalletList = [
|
|
758
354
|
{
|
|
759
355
|
name: "Nightly",
|
|
@@ -777,99 +373,90 @@ var aptosStandardSupportedWalletList = [
|
|
|
777
373
|
icon: "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzYiIGhlaWdodD0iMzYiIHZpZXdCb3g9IjAgMCAzNiAzNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTE4IDBDOC4wNzMwNCAwIDAgOC4wNzEzOSAwIDE3Ljk5NjNDMCAyNS4xMjk4IDQuMTczMTYgMzEuMzEwOCAxMC4yMDc2IDM0LjIyMDNWMzQuMjM1MUgxMC4yMzcyQzEyLjU4NiAzNS4zNjQ5IDE1LjIyMjggMzYgMTggMzZDMjcuOTI3IDM2IDM2IDI3LjkyODYgMzYgMTguMDAzN0MzNiA4LjA3MTM4IDI3LjkyNyAwIDE4IDBaTTE4IDEuNDc2OTJDMjcuMTA3MSAxLjQ3NjkyIDM0LjUyMjggOC44OTEwOCAzNC41MjI4IDE3Ljk5NjNDMzQuNTIyOCAyMC42MTA1IDMzLjkwOTcgMjMuMDkxNyAzMi44MjQgMjUuMjkyM0MzMC40NDU2IDI0LjE0MDMgMjguMDMwNCAyMy4yODM3IDI1LjU5MjkgMjIuNzAwM1Y4LjkyMDYyQzI1LjU5MjkgOC40NDA2MiAyNS4yMTYyIDguMDU2NjIgMjQuNzQzNSA4LjA1NjYySDIxLjcxNTJIMTQuMDg1NEgxMS4wNTdDMTAuNTkxNyA4LjA1NjYyIDEwLjIwNzYgOC40NDA2MiAxMC4yMDc2IDguOTIwNjJWMjIuNzY2OEM3Ljg0NDA3IDIzLjM1MDIgNS40OTUyOCAyNC4xOTIgMy4xODM0MiAyNS4yOTk3QzIuMDkwMjcgMjMuMDkxNyAxLjQ3NzIzIDIwLjYxNzggMS40NzcyMyAxNy45OTYzQzEuNDc3MjMgOC44OTEwOCA4Ljg5MjkgMS40NzY5MiAxOCAxLjQ3NjkyWk00LjEzNjIzIDI2Ljk2MTJDNi4wOTM1NiAyNS45OTM4IDguMTI0NzQgMjUuMjQ4IDEwLjIxNSAyNC43MzExVjMyLjU1ODhDNy43NDA2NiAzMS4yMzY5IDUuNjUwMzkgMjkuMzAyMiA0LjEzNjIzIDI2Ljk2MTJaTTE0LjA4NTQgMzQuMDQzMVYxNS42MDM3QzE0LjA4NTQgMTMuNDY5NSAxNS44MzU5IDExLjcwNDYgMTcuOTI2MSAxMS43MDQ2QzIwLjAxNjQgMTEuNzA0NiAyMS43MTUyIDEzLjQzMjYgMjEuNzE1MiAxNS41NTk0QzIxLjcxNTIgMTUuNTc0MiAyMS43MDc4IDE1LjU4ODkgMjEuNzA3OCAxNS42MDM3SDIxLjcxNTJWMjIuMDIwOUMxOS45MzUyIDIxLjgxNDIgMTguMTQ3NyAyMS43NDc3IDE2LjM2MDMgMjEuODQzN0wxNC44OTA0IDIzLjk3NzhDMTcuMTgwMSAyMy43ODU4IDE5LjQxMDcgMjMuODAwNiAyMS42MTE4IDI0LjA1MTdDMjEuNjM0IDI0LjA1MTcgMjEuNjQ4NyAyNC4wNTE3IDIxLjY3MDkgMjQuMDU5MUMyMS42ODU3IDI0LjA1OTEgMjEuNzAwNSAyNC4wNTkxIDIxLjcyMjYgMjQuMDY2NUMyMi4xMDY3IDI0LjExMDggMjMuNTAyNyAyNC4yODggMjQuNzgwNSAyNC42MDU1TDIxLjcyMjYgMjUuNjQ2OFYzNC4xMDIyQzIwLjUyNjEgMzQuMzc1NCAxOS4yODUyIDM0LjUzMDUgMTguMDE0OCAzNC41MzA1QzE2LjY0ODMgMzQuNTE1NyAxNS4zNDEgMzQuMzQ1OCAxNC4wODU0IDM0LjA0MzFaTTI1LjU4NTYgMzIuNjYyMlYyNC43NjhDMjcuNjY4NCAyNS4yOTIzIDI5LjcyOTIgMjYuMDYwMyAzMS43OTczIDI3LjA2NDZDMzAuMjQ2MiAyOS40MjAzIDI4LjEwNDIgMzEuMzU1MSAyNS41ODU2IDMyLjY2MjJaIiBmaWxsPSJ1cmwoI3BhaW50MF9saW5lYXJfMjIyXzE2NzApIi8+CjxkZWZzPgo8bGluZWFyR3JhZGllbnQgaWQ9InBhaW50MF9saW5lYXJfMjIyXzE2NzAiIHgxPSIxNy45OTk3IiB5MT0iMzYuNzc4OSIgeDI9IjE3Ljk5OTciIHkyPSItNS41MTk3OCIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgo8c3RvcCBvZmZzZXQ9IjAuMDg1OCIgc3RvcC1jb2xvcj0iIzhEMjlDMSIvPgo8c3RvcCBvZmZzZXQ9IjAuMjM4MyIgc3RvcC1jb2xvcj0iIzk0MkJCQiIvPgo8c3RvcCBvZmZzZXQ9IjAuNDY2NyIgc3RvcC1jb2xvcj0iI0E5MkZBQyIvPgo8c3RvcCBvZmZzZXQ9IjAuNzQxMyIgc3RvcC1jb2xvcj0iI0NBMzc5MyIvPgo8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNGMDNGNzciLz4KPC9saW5lYXJHcmFkaWVudD4KPC9kZWZzPgo8L3N2Zz4K",
|
|
778
374
|
readyState: "NotDetected" /* NotDetected */,
|
|
779
375
|
isAIP62Standard: true
|
|
376
|
+
},
|
|
377
|
+
{
|
|
378
|
+
name: "Rimosafe",
|
|
379
|
+
url: "https://chromewebstore.google.com/detail/rimo-safe-wallet/kiicddjcakdmobjkcpppkgcjbpakcagp",
|
|
380
|
+
icon: "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzAiIGhlaWdodD0iMzAiIHZpZXdCb3g9IjAgMCAzMCAzMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8cmVjdCB3aWR0aD0iMzAiIGhlaWdodD0iMzAiIGZpbGw9Im5vbmUiLz4KICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzLCAzKSBzY2FsZSgwLjgpIj4KICAgIDxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMjkuNTMxMSA5Ljg0MzY5VjBIMTkuNjg3NEwxOS42ODc3IDAuMDAwMzQwNTU1TDAgMC4wMDAzNDE0MTVMNC4zMjEzNGUtMDcgOS44NDQwM0g5Ljg0MzY5QzQuNDA3MTcgOS44NDQwMyAwIDE0LjI1MTIgMCAxOS42ODc3VjMwLjAwMDFIOS44NDM2OVYxOS42ODc5TDE5LjY4NzEgMzAuMDAwMUwxOS42ODcxIDE5LjY4NzdMMjkuNTMwOCA5Ljg0NDAzTDI5LjUzMTEgOS44NDQwM1Y5Ljg0MzY1TDI5LjUzMTEgOS44NDM2OVpNMTkuNjg3MSAxOS42ODc2TDE5LjY4NzEgOS44NDQwM0g5Ljg0MzY5VjE5LjY4NzZIMTkuNjg3MVpNMjkuNTMxMSA5Ljg0MzY1TDE5LjY4NzcgMC4wMDAzNDA1NTVMMjkuNTMxMSAwLjAwMDM0MDEyNVY5Ljg0MzY1Wk0xOS42ODc0IDE5LjY4NzZIMjkuNTMxMVYzMC4wMDAxSDE5LjY4NzRWMTkuNjg3NloiIGZpbGw9IiNGRjVDMjgiLz4KICA8L2c+Cjwvc3ZnPgo=",
|
|
381
|
+
readyState: "NotDetected" /* NotDetected */,
|
|
382
|
+
isAIP62Standard: true
|
|
383
|
+
},
|
|
384
|
+
{
|
|
385
|
+
name: "OKX Wallet",
|
|
386
|
+
url: "https://chromewebstore.google.com/detail/okx-wallet/mcohilncbfahbmgdjkbpemcciiolgcge",
|
|
387
|
+
icon: "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=",
|
|
388
|
+
readyState: "NotDetected" /* NotDetected */,
|
|
389
|
+
isAIP62Standard: true
|
|
780
390
|
}
|
|
781
391
|
];
|
|
782
392
|
|
|
393
|
+
// src/sdkWallets.ts
|
|
394
|
+
import {
|
|
395
|
+
AptosConnectAppleWallet,
|
|
396
|
+
AptosConnectGoogleWallet
|
|
397
|
+
} from "@aptos-connect/wallet-adapter-plugin";
|
|
398
|
+
import { Network as Network2 } from "@aptos-labs/ts-sdk";
|
|
399
|
+
import { DevTWallet, TWallet } from "@atomrigslab/aptos-wallet-adapter";
|
|
400
|
+
import { MizuWallet } from "@mizuwallet-sdk/aptos-wallet-adapter";
|
|
401
|
+
function getSDKWallets(dappConfig) {
|
|
402
|
+
const sdkWallets = [];
|
|
403
|
+
if (typeof window !== "undefined") {
|
|
404
|
+
sdkWallets.push(
|
|
405
|
+
new AptosConnectGoogleWallet({
|
|
406
|
+
network: dappConfig == null ? void 0 : dappConfig.network,
|
|
407
|
+
dappId: dappConfig == null ? void 0 : dappConfig.aptosConnectDappId,
|
|
408
|
+
...dappConfig == null ? void 0 : dappConfig.aptosConnect
|
|
409
|
+
}),
|
|
410
|
+
new AptosConnectAppleWallet({
|
|
411
|
+
network: dappConfig == null ? void 0 : dappConfig.network,
|
|
412
|
+
dappId: dappConfig == null ? void 0 : dappConfig.aptosConnectDappId,
|
|
413
|
+
...dappConfig == null ? void 0 : dappConfig.aptosConnect
|
|
414
|
+
})
|
|
415
|
+
);
|
|
416
|
+
if ((dappConfig == null ? void 0 : dappConfig.mizuwallet) && (dappConfig == null ? void 0 : dappConfig.network) && [Network2.MAINNET, Network2.TESTNET].includes(dappConfig.network)) {
|
|
417
|
+
sdkWallets.push(
|
|
418
|
+
new MizuWallet({
|
|
419
|
+
network: dappConfig.network,
|
|
420
|
+
manifestURL: dappConfig.mizuwallet.manifestURL,
|
|
421
|
+
appId: dappConfig.mizuwallet.appId
|
|
422
|
+
})
|
|
423
|
+
);
|
|
424
|
+
}
|
|
425
|
+
}
|
|
426
|
+
if ((dappConfig == null ? void 0 : dappConfig.network) === Network2.MAINNET) {
|
|
427
|
+
sdkWallets.push(new TWallet());
|
|
428
|
+
} else {
|
|
429
|
+
sdkWallets.push(new DevTWallet());
|
|
430
|
+
}
|
|
431
|
+
return sdkWallets;
|
|
432
|
+
}
|
|
433
|
+
|
|
783
434
|
// src/WalletCore.ts
|
|
784
|
-
var WalletCore = class extends
|
|
785
|
-
constructor(
|
|
435
|
+
var WalletCore = class extends EventEmitter {
|
|
436
|
+
constructor(optInWallets, dappConfig, disableTelemetry) {
|
|
786
437
|
super();
|
|
787
|
-
this._wallets = [];
|
|
788
|
-
this._optInWallets = [];
|
|
789
|
-
this._standard_wallets = [];
|
|
790
|
-
this._all_wallets = [];
|
|
791
438
|
this._wallet = null;
|
|
792
|
-
this.
|
|
439
|
+
this._sdkWallets = [];
|
|
440
|
+
this._standard_wallets = [];
|
|
441
|
+
this._standard_not_detected_wallets = [];
|
|
793
442
|
this._network = null;
|
|
794
|
-
this.walletCoreV1 = new WalletCoreV1();
|
|
795
|
-
this.walletStandardCore = new WalletStandardCore();
|
|
796
|
-
this._connecting = false;
|
|
797
443
|
this._connected = false;
|
|
798
|
-
this.
|
|
444
|
+
this._connecting = false;
|
|
445
|
+
this._account = null;
|
|
446
|
+
this._optInWallets = [];
|
|
799
447
|
this._disableTelemetry = false;
|
|
800
|
-
this.
|
|
801
|
-
|
|
802
|
-
let standardWalletConvertedToWallet = {
|
|
803
|
-
name: standardWallet.name,
|
|
804
|
-
url: standardWallet.url,
|
|
805
|
-
icon: standardWallet.icon,
|
|
806
|
-
provider: standardWallet,
|
|
807
|
-
connect: standardWallet.features["aptos:connect"].connect,
|
|
808
|
-
disconnect: standardWallet.features["aptos:disconnect"].disconnect,
|
|
809
|
-
network: standardWallet.features["aptos:network"].network,
|
|
810
|
-
account: standardWallet.features["aptos:account"].account,
|
|
811
|
-
signAndSubmitTransaction: (_a = standardWallet.features["aptos:signAndSubmitTransaction"]) == null ? void 0 : _a.signAndSubmitTransaction,
|
|
812
|
-
signMessage: standardWallet.features["aptos:signMessage"].signMessage,
|
|
813
|
-
onAccountChange: standardWallet.features["aptos:onAccountChange"].onAccountChange,
|
|
814
|
-
onNetworkChange: standardWallet.features["aptos:onNetworkChange"].onNetworkChange,
|
|
815
|
-
signTransaction: standardWallet.features["aptos:signTransaction"].signTransaction,
|
|
816
|
-
openInMobileApp: (_b = standardWallet.features["aptos:openInMobileApp"]) == null ? void 0 : _b.openInMobileApp,
|
|
817
|
-
changeNetwork: (_c = standardWallet.features["aptos:changeNetwork"]) == null ? void 0 : _c.changeNetwork,
|
|
818
|
-
readyState: "Installed" /* Installed */,
|
|
819
|
-
isAIP62Standard: true,
|
|
820
|
-
isSignTransactionV1_1: ((_d = standardWallet.features["aptos:signTransaction"]) == null ? void 0 : _d.version) === "1.1"
|
|
821
|
-
};
|
|
822
|
-
this._all_wallets = this._all_wallets.filter(
|
|
823
|
-
(item) => item.name !== standardWalletConvertedToWallet.name
|
|
824
|
-
);
|
|
825
|
-
this._all_wallets.push(standardWalletConvertedToWallet);
|
|
826
|
-
this.emit("standardWalletsAdded", standardWalletConvertedToWallet);
|
|
827
|
-
};
|
|
828
|
-
this._wallets = plugins;
|
|
829
|
-
this._optInWallets = optInWallets;
|
|
448
|
+
this.ga4 = null;
|
|
449
|
+
this._optInWallets = optInWallets || [];
|
|
830
450
|
this._dappConfig = dappConfig;
|
|
831
|
-
this._disableTelemetry = disableTelemetry;
|
|
451
|
+
this._disableTelemetry = disableTelemetry != null ? disableTelemetry : false;
|
|
832
452
|
this._sdkWallets = getSDKWallets(this._dappConfig);
|
|
833
453
|
if (!this._disableTelemetry) {
|
|
834
454
|
this.ga4 = new GA4();
|
|
835
455
|
}
|
|
836
456
|
this.fetchExtensionAIP62AptosWallets();
|
|
837
457
|
this.fetchSDKAIP62AptosWallets();
|
|
838
|
-
this.scopePollingDetectionStrategy();
|
|
839
458
|
this.appendNotDetectedStandardSupportedWallets();
|
|
840
459
|
}
|
|
841
|
-
scopePollingDetectionStrategy() {
|
|
842
|
-
var _a;
|
|
843
|
-
(_a = this._wallets) == null ? void 0 : _a.forEach((wallet) => {
|
|
844
|
-
const existingStandardPontemWallet = this._standard_wallets.find(
|
|
845
|
-
(wallet2) => wallet2.name == "Pontem Wallet"
|
|
846
|
-
);
|
|
847
|
-
if (wallet.name === "Pontem" && existingStandardPontemWallet) {
|
|
848
|
-
return;
|
|
849
|
-
}
|
|
850
|
-
const existingWalletIndex = this._standard_wallets.findIndex(
|
|
851
|
-
(standardWallet) => standardWallet.name == wallet.name
|
|
852
|
-
);
|
|
853
|
-
if (existingWalletIndex !== -1)
|
|
854
|
-
return;
|
|
855
|
-
this._all_wallets.push(wallet);
|
|
856
|
-
if (!wallet.readyState) {
|
|
857
|
-
wallet.readyState = typeof window === "undefined" || typeof document === "undefined" ? "Unsupported" /* Unsupported */ : "NotDetected" /* NotDetected */;
|
|
858
|
-
}
|
|
859
|
-
if (typeof window !== "undefined") {
|
|
860
|
-
scopePollingDetectionStrategy(() => {
|
|
861
|
-
const providerName = wallet.providerName || wallet.name.toLowerCase();
|
|
862
|
-
if (Object.keys(window).includes(providerName)) {
|
|
863
|
-
wallet.readyState = "Installed" /* Installed */;
|
|
864
|
-
wallet.provider = window[providerName];
|
|
865
|
-
this.emit("readyStateChange", wallet);
|
|
866
|
-
return true;
|
|
867
|
-
}
|
|
868
|
-
return false;
|
|
869
|
-
});
|
|
870
|
-
}
|
|
871
|
-
});
|
|
872
|
-
}
|
|
873
460
|
fetchExtensionAIP62AptosWallets() {
|
|
874
461
|
let { aptosWallets, on } = getAptosWallets();
|
|
875
462
|
this.setExtensionAIP62Wallets(aptosWallets);
|
|
@@ -885,62 +472,63 @@ var WalletCore = class extends EventEmitter2 {
|
|
|
885
472
|
that.setExtensionAIP62Wallets(aptosWallets2);
|
|
886
473
|
});
|
|
887
474
|
}
|
|
888
|
-
|
|
889
|
-
|
|
890
|
-
|
|
891
|
-
(wallet) => wallet.name === supportedWallet.name
|
|
892
|
-
);
|
|
893
|
-
if (existingPluginWalletIndex !== -1)
|
|
475
|
+
setExtensionAIP62Wallets(extensionwWallets) {
|
|
476
|
+
extensionwWallets.map((wallet) => {
|
|
477
|
+
if (this.excludeWallet(wallet)) {
|
|
894
478
|
return;
|
|
895
|
-
|
|
896
|
-
|
|
479
|
+
}
|
|
480
|
+
this._standard_wallets = this._standard_wallets.filter(
|
|
481
|
+
(item) => item.name !== wallet.name
|
|
897
482
|
);
|
|
898
|
-
|
|
483
|
+
const isValid = isWalletWithRequiredFeatureSet(wallet);
|
|
484
|
+
if (isValid) {
|
|
485
|
+
const index = this._standard_not_detected_wallets.findIndex(
|
|
486
|
+
(notDetctedWallet) => notDetctedWallet.name == wallet.name
|
|
487
|
+
);
|
|
488
|
+
if (index !== -1) {
|
|
489
|
+
this._standard_not_detected_wallets.splice(index, 1);
|
|
490
|
+
}
|
|
491
|
+
wallet.readyState = "Installed" /* Installed */;
|
|
492
|
+
this._standard_wallets.push(wallet);
|
|
493
|
+
this.emit("standardWalletsAdded", wallet);
|
|
494
|
+
}
|
|
495
|
+
});
|
|
496
|
+
}
|
|
497
|
+
fetchSDKAIP62AptosWallets() {
|
|
498
|
+
this._sdkWallets.map((wallet) => {
|
|
499
|
+
if (this.excludeWallet(wallet)) {
|
|
899
500
|
return;
|
|
900
501
|
}
|
|
502
|
+
const isValid = isWalletWithRequiredFeatureSet(wallet);
|
|
503
|
+
if (isValid) {
|
|
504
|
+
wallet.readyState = "Installed" /* Installed */;
|
|
505
|
+
this._standard_wallets.push(wallet);
|
|
506
|
+
}
|
|
507
|
+
});
|
|
508
|
+
}
|
|
509
|
+
appendNotDetectedStandardSupportedWallets() {
|
|
510
|
+
aptosStandardSupportedWalletList.map((supportedWallet) => {
|
|
901
511
|
const existingStandardWallet = this._standard_wallets.find(
|
|
902
512
|
(wallet) => wallet.name == supportedWallet.name
|
|
903
513
|
);
|
|
904
|
-
if (existingStandardWallet
|
|
514
|
+
if (existingStandardWallet) {
|
|
515
|
+
return;
|
|
516
|
+
}
|
|
517
|
+
if (this.excludeWallet(supportedWallet)) {
|
|
905
518
|
return;
|
|
906
519
|
}
|
|
907
520
|
if (!existingStandardWallet) {
|
|
908
|
-
this.
|
|
909
|
-
this.emit("
|
|
521
|
+
this._standard_not_detected_wallets.push(supportedWallet);
|
|
522
|
+
this.emit("standardNotDetectedWalletAdded", supportedWallet);
|
|
910
523
|
}
|
|
911
524
|
});
|
|
912
525
|
}
|
|
913
|
-
fetchSDKAIP62AptosWallets() {
|
|
914
|
-
this._sdkWallets.map((wallet) => {
|
|
915
|
-
this.standardizeAIP62WalletType(wallet);
|
|
916
|
-
});
|
|
917
|
-
}
|
|
918
|
-
setExtensionAIP62Wallets(extensionwWallets) {
|
|
919
|
-
const wallets = extensionwWallets.filter(
|
|
920
|
-
(wallet) => wallet.name !== "Dev T wallet" && wallet.name !== "T wallet"
|
|
921
|
-
);
|
|
922
|
-
wallets.map((wallet) => {
|
|
923
|
-
this.standardizeAIP62WalletType(wallet);
|
|
924
|
-
this._standard_wallets.push(wallet);
|
|
925
|
-
});
|
|
926
|
-
}
|
|
927
526
|
excludeWallet(wallet) {
|
|
928
527
|
if (this._optInWallets.length > 0 && !this._optInWallets.includes(wallet.name)) {
|
|
929
528
|
return true;
|
|
930
529
|
}
|
|
931
530
|
return false;
|
|
932
531
|
}
|
|
933
|
-
standardizeAIP62WalletType(wallet) {
|
|
934
|
-
if (this.excludeWallet(wallet)) {
|
|
935
|
-
return;
|
|
936
|
-
}
|
|
937
|
-
const isValid = isWalletWithRequiredFeatureSet(wallet);
|
|
938
|
-
if (isValid) {
|
|
939
|
-
wallet.readyState = "Installed" /* Installed */;
|
|
940
|
-
this.standardizeStandardWalletToPluginWalletType(wallet);
|
|
941
|
-
this._standard_wallets.push(wallet);
|
|
942
|
-
}
|
|
943
|
-
}
|
|
944
532
|
recordEvent(eventName, additionalInfo) {
|
|
945
533
|
var _a, _b, _c, _d;
|
|
946
534
|
(_d = this.ga4) == null ? void 0 : _d.gtag("event", `wallet_adapter_${eventName}`, {
|
|
@@ -956,7 +544,7 @@ var WalletCore = class extends EventEmitter2 {
|
|
|
956
544
|
if (!wallet) {
|
|
957
545
|
throw new WalletNotConnectedError().name;
|
|
958
546
|
}
|
|
959
|
-
if (!(wallet.readyState === "
|
|
547
|
+
if (!(wallet.readyState === "Installed" /* Installed */))
|
|
960
548
|
throw new WalletNotReadyError("Wallet is not set").name;
|
|
961
549
|
}
|
|
962
550
|
ensureAccountExists(account) {
|
|
@@ -964,119 +552,53 @@ var WalletCore = class extends EventEmitter2 {
|
|
|
964
552
|
throw new WalletAccountError("Account is not set").name;
|
|
965
553
|
}
|
|
966
554
|
}
|
|
967
|
-
doesWalletExist() {
|
|
968
|
-
if (!this._connected || this._connecting || !this._wallet)
|
|
969
|
-
throw new WalletNotConnectedError().name;
|
|
970
|
-
if (!(this._wallet.readyState === "Loadable" /* Loadable */ || this._wallet.readyState === "Installed" /* Installed */))
|
|
971
|
-
throw new WalletNotReadyError().name;
|
|
972
|
-
return true;
|
|
973
|
-
}
|
|
974
|
-
clearData() {
|
|
975
|
-
this._connected = false;
|
|
976
|
-
this.setWallet(null);
|
|
977
|
-
this.setAccount(null);
|
|
978
|
-
this.setNetwork(null);
|
|
979
|
-
removeLocalStorage();
|
|
980
|
-
}
|
|
981
555
|
async setAnsName() {
|
|
982
556
|
var _a;
|
|
983
557
|
if (((_a = this._network) == null ? void 0 : _a.chainId) && this._account) {
|
|
558
|
+
if (this._account.ansName)
|
|
559
|
+
return;
|
|
984
560
|
if (!ChainIdToAnsSupportedNetworkMap[this._network.chainId] || !isAptosNetwork(this._network)) {
|
|
985
561
|
this._account.ansName = void 0;
|
|
986
562
|
return;
|
|
987
563
|
}
|
|
988
564
|
const aptosConfig = getAptosConfig(this._network, this._dappConfig);
|
|
989
|
-
const aptos = new
|
|
565
|
+
const aptos = new Aptos2(aptosConfig);
|
|
990
566
|
const name = await aptos.ans.getPrimaryName({
|
|
991
567
|
address: this._account.address.toString()
|
|
992
568
|
});
|
|
993
569
|
this._account.ansName = name;
|
|
994
570
|
}
|
|
995
571
|
}
|
|
572
|
+
clearData() {
|
|
573
|
+
this._connected = false;
|
|
574
|
+
this.setWallet(null);
|
|
575
|
+
this.setAccount(null);
|
|
576
|
+
this.setNetwork(null);
|
|
577
|
+
removeLocalStorage();
|
|
578
|
+
}
|
|
996
579
|
setWallet(wallet) {
|
|
997
580
|
this._wallet = wallet;
|
|
998
581
|
}
|
|
999
582
|
setAccount(account) {
|
|
1000
|
-
|
|
1001
|
-
if (account === null) {
|
|
1002
|
-
this._account = null;
|
|
1003
|
-
return;
|
|
1004
|
-
}
|
|
1005
|
-
if ((_a = this._wallet) == null ? void 0 : _a.isAIP62Standard) {
|
|
1006
|
-
if ("status" in account) {
|
|
1007
|
-
const connectStandardAccount = account;
|
|
1008
|
-
if (connectStandardAccount.status === UserResponseStatus2.REJECTED) {
|
|
1009
|
-
this._connecting = false;
|
|
1010
|
-
throw new WalletConnectionError("User has rejected the request").message;
|
|
1011
|
-
}
|
|
1012
|
-
this._account = {
|
|
1013
|
-
address: connectStandardAccount.args.address.toString(),
|
|
1014
|
-
publicKey: connectStandardAccount.args.publicKey.toString(),
|
|
1015
|
-
ansName: connectStandardAccount.args.ansName
|
|
1016
|
-
};
|
|
1017
|
-
return;
|
|
1018
|
-
} else {
|
|
1019
|
-
const standardAccount = account;
|
|
1020
|
-
this._account = {
|
|
1021
|
-
address: standardAccount.address.toString(),
|
|
1022
|
-
publicKey: standardAccount.publicKey.toString(),
|
|
1023
|
-
ansName: standardAccount.ansName
|
|
1024
|
-
};
|
|
1025
|
-
return;
|
|
1026
|
-
}
|
|
1027
|
-
}
|
|
1028
|
-
this._account = { ...account };
|
|
1029
|
-
return;
|
|
583
|
+
this._account = account;
|
|
1030
584
|
}
|
|
1031
585
|
setNetwork(network) {
|
|
1032
|
-
|
|
1033
|
-
if (network === null) {
|
|
1034
|
-
this._network = null;
|
|
1035
|
-
return;
|
|
1036
|
-
}
|
|
1037
|
-
if ((_a = this._wallet) == null ? void 0 : _a.isAIP62Standard) {
|
|
1038
|
-
const standardizeNetwork = network;
|
|
1039
|
-
this.recordEvent("network_change", {
|
|
1040
|
-
from: (_b = this._network) == null ? void 0 : _b.name,
|
|
1041
|
-
to: standardizeNetwork.name
|
|
1042
|
-
});
|
|
1043
|
-
this._network = {
|
|
1044
|
-
name: standardizeNetwork.name.toLowerCase(),
|
|
1045
|
-
chainId: standardizeNetwork.chainId.toString(),
|
|
1046
|
-
url: standardizeNetwork.url
|
|
1047
|
-
};
|
|
1048
|
-
return;
|
|
1049
|
-
}
|
|
1050
|
-
this.recordEvent("network_change", {
|
|
1051
|
-
from: (_c = this._network) == null ? void 0 : _c.name,
|
|
1052
|
-
to: network.name
|
|
1053
|
-
});
|
|
1054
|
-
this._network = {
|
|
1055
|
-
...network,
|
|
1056
|
-
name: network.name.toLowerCase()
|
|
1057
|
-
};
|
|
586
|
+
this._network = network;
|
|
1058
587
|
}
|
|
1059
588
|
isConnected() {
|
|
1060
589
|
return this._connected;
|
|
1061
590
|
}
|
|
1062
591
|
get wallets() {
|
|
1063
|
-
return this._all_wallets;
|
|
1064
|
-
}
|
|
1065
|
-
get pluginWallets() {
|
|
1066
|
-
return this._wallets;
|
|
1067
|
-
}
|
|
1068
|
-
get standardWallets() {
|
|
1069
592
|
return this._standard_wallets;
|
|
1070
593
|
}
|
|
594
|
+
get notDetectedWallets() {
|
|
595
|
+
return this._standard_not_detected_wallets;
|
|
596
|
+
}
|
|
1071
597
|
get wallet() {
|
|
1072
598
|
try {
|
|
1073
599
|
if (!this._wallet)
|
|
1074
600
|
return null;
|
|
1075
|
-
return
|
|
1076
|
-
name: this._wallet.name,
|
|
1077
|
-
icon: this._wallet.icon,
|
|
1078
|
-
url: this._wallet.url
|
|
1079
|
-
};
|
|
601
|
+
return this._wallet;
|
|
1080
602
|
} catch (error) {
|
|
1081
603
|
throw new WalletNotSelectedError(error).message;
|
|
1082
604
|
}
|
|
@@ -1096,8 +618,8 @@ var WalletCore = class extends EventEmitter2 {
|
|
|
1096
618
|
}
|
|
1097
619
|
}
|
|
1098
620
|
async connect(walletName) {
|
|
1099
|
-
var _a;
|
|
1100
|
-
const allDetectedWallets = this.
|
|
621
|
+
var _a, _b, _c;
|
|
622
|
+
const allDetectedWallets = this._standard_wallets;
|
|
1101
623
|
const selectedWallet = allDetectedWallets.find(
|
|
1102
624
|
(wallet) => wallet.name === walletName
|
|
1103
625
|
);
|
|
@@ -1109,12 +631,14 @@ var WalletCore = class extends EventEmitter2 {
|
|
|
1109
631
|
`${walletName} wallet is already connected`
|
|
1110
632
|
).message;
|
|
1111
633
|
}
|
|
1112
|
-
if (isRedirectable()
|
|
1113
|
-
if (selectedWallet.
|
|
1114
|
-
if (selectedWallet.openInMobileApp) {
|
|
1115
|
-
selectedWallet.openInMobileApp();
|
|
634
|
+
if (isRedirectable()) {
|
|
635
|
+
if (selectedWallet.readyState === "Installed" /* Installed */) {
|
|
636
|
+
if ((_b = selectedWallet.features["aptos:openInMobileApp"]) == null ? void 0 : _b.openInMobileApp) {
|
|
637
|
+
(_c = selectedWallet.features["aptos:openInMobileApp"]) == null ? void 0 : _c.openInMobileApp();
|
|
1116
638
|
return;
|
|
1117
639
|
}
|
|
640
|
+
}
|
|
641
|
+
if (selectedWallet.readyState === "NotDetected" /* NotDetected */) {
|
|
1118
642
|
const uninstalledWallet = selectedWallet;
|
|
1119
643
|
if (uninstalledWallet.deeplinkProvider) {
|
|
1120
644
|
const url = encodeURIComponent(window.location.href);
|
|
@@ -1123,15 +647,6 @@ var WalletCore = class extends EventEmitter2 {
|
|
|
1123
647
|
return;
|
|
1124
648
|
}
|
|
1125
649
|
}
|
|
1126
|
-
if (selectedWallet.deeplinkProvider) {
|
|
1127
|
-
const url = encodeURIComponent(window.location.href);
|
|
1128
|
-
const location = selectedWallet.deeplinkProvider({ url });
|
|
1129
|
-
window.location.href = location;
|
|
1130
|
-
}
|
|
1131
|
-
return;
|
|
1132
|
-
}
|
|
1133
|
-
if (selectedWallet.readyState !== "Installed" /* Installed */ && selectedWallet.readyState !== "Loadable" /* Loadable */) {
|
|
1134
|
-
return;
|
|
1135
650
|
}
|
|
1136
651
|
await this.connectWallet(selectedWallet);
|
|
1137
652
|
}
|
|
@@ -1139,14 +654,13 @@ var WalletCore = class extends EventEmitter2 {
|
|
|
1139
654
|
try {
|
|
1140
655
|
this._connecting = true;
|
|
1141
656
|
this.setWallet(selectedWallet);
|
|
1142
|
-
|
|
1143
|
-
if (
|
|
1144
|
-
|
|
1145
|
-
} else {
|
|
1146
|
-
account = await this.walletCoreV1.connect(selectedWallet);
|
|
657
|
+
const response = await selectedWallet.features["aptos:connect"].connect();
|
|
658
|
+
if (response.status === UserResponseStatus.REJECTED) {
|
|
659
|
+
throw new WalletConnectionError("User has rejected the request").message;
|
|
1147
660
|
}
|
|
661
|
+
const account = response.args;
|
|
1148
662
|
this.setAccount(account);
|
|
1149
|
-
const network = await selectedWallet.network();
|
|
663
|
+
const network = await selectedWallet.features["aptos:network"].network();
|
|
1150
664
|
this.setNetwork(network);
|
|
1151
665
|
await this.setAnsName();
|
|
1152
666
|
setLocalStorage(selectedWallet.name);
|
|
@@ -1164,7 +678,7 @@ var WalletCore = class extends EventEmitter2 {
|
|
|
1164
678
|
async disconnect() {
|
|
1165
679
|
try {
|
|
1166
680
|
this.ensureWalletExists(this._wallet);
|
|
1167
|
-
await this._wallet.disconnect();
|
|
681
|
+
await this._wallet.features["aptos:disconnect"].disconnect();
|
|
1168
682
|
this.clearData();
|
|
1169
683
|
this.recordEvent("wallet_disconnect");
|
|
1170
684
|
this.emit("disconnect");
|
|
@@ -1174,6 +688,7 @@ var WalletCore = class extends EventEmitter2 {
|
|
|
1174
688
|
}
|
|
1175
689
|
}
|
|
1176
690
|
async signAndSubmitTransaction(transactionInput) {
|
|
691
|
+
var _a, _b;
|
|
1177
692
|
try {
|
|
1178
693
|
if ("function" in transactionInput.data) {
|
|
1179
694
|
if (transactionInput.data.function === "0x1::account::rotate_authentication_key_call") {
|
|
@@ -1189,150 +704,129 @@ var WalletCore = class extends EventEmitter2 {
|
|
|
1189
704
|
this.ensureWalletExists(this._wallet);
|
|
1190
705
|
this.ensureAccountExists(this._account);
|
|
1191
706
|
this.recordEvent("sign_and_submit_transaction");
|
|
1192
|
-
|
|
1193
|
-
|
|
1194
|
-
|
|
1195
|
-
|
|
1196
|
-
|
|
1197
|
-
|
|
1198
|
-
transactionInput,
|
|
1199
|
-
|
|
1200
|
-
|
|
1201
|
-
|
|
1202
|
-
|
|
1203
|
-
|
|
1204
|
-
return { hash, output };
|
|
1205
|
-
} else {
|
|
1206
|
-
const { hash, ...output } = await this.walletCoreV1.resolveSignAndSubmitTransaction(
|
|
1207
|
-
payloadData,
|
|
1208
|
-
this._network,
|
|
1209
|
-
this._wallet,
|
|
1210
|
-
transactionInput,
|
|
1211
|
-
this._dappConfig
|
|
707
|
+
if (this._wallet.features["aptos:signAndSubmitTransaction"]) {
|
|
708
|
+
if (this._wallet.features["aptos:signAndSubmitTransaction"].version !== "1.1.0") {
|
|
709
|
+
const aptosConfig2 = getAptosConfig(this._network, this._dappConfig);
|
|
710
|
+
const aptos2 = new Aptos2(aptosConfig2);
|
|
711
|
+
const transaction2 = await aptos2.transaction.build.simple({
|
|
712
|
+
sender: this._account.address.toString(),
|
|
713
|
+
data: transactionInput.data,
|
|
714
|
+
options: transactionInput.options
|
|
715
|
+
});
|
|
716
|
+
const signAndSubmitTransactionMethod = this._wallet.features["aptos:signAndSubmitTransaction"].signAndSubmitTransaction;
|
|
717
|
+
const response3 = await signAndSubmitTransactionMethod(
|
|
718
|
+
transaction2
|
|
1212
719
|
);
|
|
1213
|
-
|
|
720
|
+
if (response3.status === UserResponseStatus.REJECTED) {
|
|
721
|
+
throw new WalletConnectionError("User has rejected the request").message;
|
|
722
|
+
}
|
|
723
|
+
return response3.args;
|
|
1214
724
|
}
|
|
725
|
+
const response2 = await this._wallet.features["aptos:signAndSubmitTransaction"].signAndSubmitTransaction({
|
|
726
|
+
payload: transactionInput.data,
|
|
727
|
+
gasUnitPrice: (_a = transactionInput.options) == null ? void 0 : _a.gasUnitPrice,
|
|
728
|
+
maxGasAmount: (_b = transactionInput.options) == null ? void 0 : _b.maxGasAmount
|
|
729
|
+
});
|
|
730
|
+
if (response2.status === UserResponseStatus.REJECTED) {
|
|
731
|
+
throw new WalletConnectionError("User has rejected the request").message;
|
|
732
|
+
}
|
|
733
|
+
return response2.args;
|
|
1215
734
|
}
|
|
735
|
+
const aptosConfig = getAptosConfig(this._network, this._dappConfig);
|
|
736
|
+
const aptos = new Aptos2(aptosConfig);
|
|
1216
737
|
const transaction = await aptos.transaction.build.simple({
|
|
1217
738
|
sender: this._account.address,
|
|
1218
739
|
data: transactionInput.data,
|
|
1219
740
|
options: transactionInput.options
|
|
1220
741
|
});
|
|
1221
|
-
const
|
|
742
|
+
const signTransactionResponse = await this.signTransaction({
|
|
743
|
+
transactionOrPayload: transaction
|
|
744
|
+
});
|
|
1222
745
|
const response = await this.submitTransaction({
|
|
1223
746
|
transaction,
|
|
1224
|
-
senderAuthenticator
|
|
747
|
+
senderAuthenticator: signTransactionResponse.authenticator
|
|
1225
748
|
});
|
|
1226
|
-
return response;
|
|
749
|
+
return { hash: response.hash };
|
|
1227
750
|
} catch (error) {
|
|
1228
751
|
const errMsg = generalizedErrorMessage(error);
|
|
1229
752
|
throw new WalletSignAndSubmitMessageError(errMsg).message;
|
|
1230
753
|
}
|
|
1231
754
|
}
|
|
1232
|
-
async signTransaction(
|
|
1233
|
-
var _a, _b, _c, _d, _e, _f, _g;
|
|
755
|
+
async signTransaction(args) {
|
|
756
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _i;
|
|
757
|
+
const { transactionOrPayload, asFeePayer } = args;
|
|
1234
758
|
try {
|
|
1235
759
|
this.ensureWalletExists(this._wallet);
|
|
760
|
+
this.ensureAccountExists(this._account);
|
|
1236
761
|
this.recordEvent("sign_transaction");
|
|
1237
|
-
if (
|
|
1238
|
-
|
|
1239
|
-
|
|
1240
|
-
|
|
1241
|
-
|
|
1242
|
-
|
|
1243
|
-
|
|
1244
|
-
);
|
|
1245
|
-
} else if (this._wallet.isSignTransactionV1_1) {
|
|
1246
|
-
const payload = convertPayloadInputV1ToV2(transactionOrPayload);
|
|
1247
|
-
const optionsV1 = options;
|
|
1248
|
-
const { authenticator } = await this.walletStandardCore.signTransaction(
|
|
1249
|
-
{
|
|
1250
|
-
payload,
|
|
1251
|
-
expirationTimestamp: (_a = optionsV1 == null ? void 0 : optionsV1.expireTimestamp) != null ? _a : optionsV1 == null ? void 0 : optionsV1.expirationTimestamp,
|
|
1252
|
-
expirationSecondsFromNow: optionsV1 == null ? void 0 : optionsV1.expirationSecondsFromNow,
|
|
1253
|
-
gasUnitPrice: (_b = optionsV1 == null ? void 0 : optionsV1.gasUnitPrice) != null ? _b : optionsV1 == null ? void 0 : optionsV1.gas_unit_price,
|
|
1254
|
-
maxGasAmount: (_c = optionsV1 == null ? void 0 : optionsV1.maxGasAmount) != null ? _c : optionsV1 == null ? void 0 : optionsV1.max_gas_amount,
|
|
1255
|
-
sequenceNumber: optionsV1 == null ? void 0 : optionsV1.sequenceNumber,
|
|
1256
|
-
sender: (optionsV1 == null ? void 0 : optionsV1.sender) ? { address: AccountAddress.from(optionsV1.sender) } : void 0
|
|
1257
|
-
},
|
|
1258
|
-
this._wallet
|
|
1259
|
-
);
|
|
1260
|
-
return authenticator;
|
|
1261
|
-
} else {
|
|
1262
|
-
const aptosConfig = getAptosConfig(this._network, this._dappConfig);
|
|
1263
|
-
this.ensureAccountExists(this._account);
|
|
1264
|
-
const sender = this._account.address;
|
|
1265
|
-
const payload = await generateTransactionPayloadFromV1Input(
|
|
1266
|
-
aptosConfig,
|
|
1267
|
-
transactionOrPayload
|
|
1268
|
-
);
|
|
1269
|
-
const optionsV1 = options;
|
|
1270
|
-
const optionsV2 = {
|
|
1271
|
-
accountSequenceNumber: optionsV1 == null ? void 0 : optionsV1.sequenceNumber,
|
|
1272
|
-
expireTimestamp: (_d = optionsV1 == null ? void 0 : optionsV1.expireTimestamp) != null ? _d : optionsV1 == null ? void 0 : optionsV1.expirationTimestamp,
|
|
1273
|
-
gasUnitPrice: (_e = optionsV1 == null ? void 0 : optionsV1.gasUnitPrice) != null ? _e : optionsV1 == null ? void 0 : optionsV1.gas_unit_price,
|
|
1274
|
-
maxGasAmount: (_f = optionsV1 == null ? void 0 : optionsV1.maxGasAmount) != null ? _f : optionsV1 == null ? void 0 : optionsV1.max_gas_amount
|
|
1275
|
-
};
|
|
1276
|
-
const rawTransaction = await generateRawTransaction({
|
|
1277
|
-
aptosConfig,
|
|
1278
|
-
payload,
|
|
1279
|
-
sender,
|
|
1280
|
-
options: optionsV2
|
|
1281
|
-
});
|
|
1282
|
-
return await this.walletStandardCore.signTransaction(
|
|
1283
|
-
new SimpleTransaction(rawTransaction),
|
|
1284
|
-
this._wallet,
|
|
1285
|
-
false
|
|
1286
|
-
);
|
|
1287
|
-
}
|
|
762
|
+
if ("rawTransaction" in transactionOrPayload) {
|
|
763
|
+
const response = await ((_a = this._wallet) == null ? void 0 : _a.features["aptos:signTransaction"].signTransaction(
|
|
764
|
+
transactionOrPayload,
|
|
765
|
+
asFeePayer
|
|
766
|
+
));
|
|
767
|
+
if (response.status === UserResponseStatus.REJECTED) {
|
|
768
|
+
throw new WalletConnectionError("User has rejected the request").message;
|
|
1288
769
|
}
|
|
1289
|
-
|
|
1290
|
-
|
|
1291
|
-
|
|
1292
|
-
|
|
1293
|
-
|
|
1294
|
-
|
|
1295
|
-
|
|
1296
|
-
|
|
1297
|
-
|
|
1298
|
-
|
|
1299
|
-
|
|
1300
|
-
|
|
1301
|
-
|
|
1302
|
-
|
|
1303
|
-
|
|
1304
|
-
|
|
1305
|
-
|
|
1306
|
-
|
|
1307
|
-
|
|
1308
|
-
|
|
1309
|
-
|
|
1310
|
-
|
|
1311
|
-
|
|
1312
|
-
|
|
1313
|
-
|
|
1314
|
-
|
|
1315
|
-
|
|
1316
|
-
|
|
770
|
+
return {
|
|
771
|
+
authenticator: response.args,
|
|
772
|
+
rawTransaction: transactionOrPayload.rawTransaction.bcsToBytes()
|
|
773
|
+
};
|
|
774
|
+
} else if (((_b = this._wallet.features["aptos:signTransaction"]) == null ? void 0 : _b.version) === "1.1") {
|
|
775
|
+
const signTransactionV1_1StandardInput = {
|
|
776
|
+
payload: transactionOrPayload.data,
|
|
777
|
+
expirationTimestamp: (_c = transactionOrPayload.options) == null ? void 0 : _c.expirationTimestamp,
|
|
778
|
+
expirationSecondsFromNow: (_d = transactionOrPayload.options) == null ? void 0 : _d.expirationSecondsFromNow,
|
|
779
|
+
gasUnitPrice: (_e = transactionOrPayload.options) == null ? void 0 : _e.gasUnitPrice,
|
|
780
|
+
maxGasAmount: (_f = transactionOrPayload.options) == null ? void 0 : _f.maxGasAmount,
|
|
781
|
+
sequenceNumber: (_g = transactionOrPayload.options) == null ? void 0 : _g.accountSequenceNumber,
|
|
782
|
+
sender: transactionOrPayload.sender ? { address: AccountAddress.from(transactionOrPayload.sender) } : void 0
|
|
783
|
+
};
|
|
784
|
+
const walletSignTransactionMethod = (_h = this._wallet) == null ? void 0 : _h.features["aptos:signTransaction"].signTransaction;
|
|
785
|
+
const response = await walletSignTransactionMethod(
|
|
786
|
+
signTransactionV1_1StandardInput
|
|
787
|
+
);
|
|
788
|
+
if (response.status === UserResponseStatus.REJECTED) {
|
|
789
|
+
throw new WalletConnectionError("User has rejected the request").message;
|
|
790
|
+
}
|
|
791
|
+
return {
|
|
792
|
+
authenticator: response.args.authenticator,
|
|
793
|
+
rawTransaction: response.args.rawTransaction.bcsToBytes()
|
|
794
|
+
};
|
|
795
|
+
} else {
|
|
796
|
+
const aptosConfig = getAptosConfig(this._network, this._dappConfig);
|
|
797
|
+
const aptos = new Aptos2(aptosConfig);
|
|
798
|
+
const transaction = await aptos.transaction.build.simple({
|
|
799
|
+
sender: this._account.address,
|
|
800
|
+
data: transactionOrPayload.data,
|
|
801
|
+
options: transactionOrPayload.options
|
|
802
|
+
});
|
|
803
|
+
const response = await ((_i = this._wallet) == null ? void 0 : _i.features["aptos:signTransaction"].signTransaction(
|
|
804
|
+
transaction,
|
|
805
|
+
asFeePayer
|
|
806
|
+
));
|
|
807
|
+
if (response.status === UserResponseStatus.REJECTED) {
|
|
808
|
+
throw new WalletConnectionError("User has rejected the request").message;
|
|
1317
809
|
}
|
|
810
|
+
return {
|
|
811
|
+
authenticator: response.args,
|
|
812
|
+
rawTransaction: transaction.bcsToBytes()
|
|
813
|
+
};
|
|
1318
814
|
}
|
|
1319
|
-
throw new WalletNotSupportedMethod(
|
|
1320
|
-
`Sign Transaction is not supported by ${(_g = this.wallet) == null ? void 0 : _g.name}`
|
|
1321
|
-
).message;
|
|
1322
815
|
} catch (error) {
|
|
1323
816
|
const errMsg = generalizedErrorMessage(error);
|
|
1324
817
|
throw new WalletSignTransactionError(errMsg).message;
|
|
1325
818
|
}
|
|
1326
819
|
}
|
|
1327
820
|
async signMessage(message) {
|
|
821
|
+
var _a, _b;
|
|
1328
822
|
try {
|
|
1329
823
|
this.ensureWalletExists(this._wallet);
|
|
1330
824
|
this.recordEvent("sign_message");
|
|
1331
|
-
|
|
1332
|
-
|
|
825
|
+
const response = await ((_b = (_a = this._wallet) == null ? void 0 : _a.features["aptos:signMessage"]) == null ? void 0 : _b.signMessage(message));
|
|
826
|
+
if (response.status === UserResponseStatus.REJECTED) {
|
|
827
|
+
throw new WalletConnectionError("User has rejected the request").message;
|
|
1333
828
|
}
|
|
1334
|
-
|
|
1335
|
-
return response;
|
|
829
|
+
return response.args;
|
|
1336
830
|
} catch (error) {
|
|
1337
831
|
const errMsg = generalizedErrorMessage(error);
|
|
1338
832
|
throw new WalletSignMessageError(errMsg).message;
|
|
@@ -1346,12 +840,8 @@ var WalletCore = class extends EventEmitter2 {
|
|
|
1346
840
|
this.recordEvent("submit_transaction", {
|
|
1347
841
|
transaction_type: transactionType
|
|
1348
842
|
});
|
|
1349
|
-
if (this._wallet.submitTransaction) {
|
|
1350
|
-
const pendingTransaction = await this._wallet.submitTransaction(transaction);
|
|
1351
|
-
return pendingTransaction;
|
|
1352
|
-
}
|
|
1353
843
|
const aptosConfig = getAptosConfig(this._network, this._dappConfig);
|
|
1354
|
-
const aptos = new
|
|
844
|
+
const aptos = new Aptos2(aptosConfig);
|
|
1355
845
|
if (additionalSignersAuthenticators !== void 0) {
|
|
1356
846
|
const multiAgentTxn = {
|
|
1357
847
|
...transaction,
|
|
@@ -1363,35 +853,37 @@ var WalletCore = class extends EventEmitter2 {
|
|
|
1363
853
|
}
|
|
1364
854
|
} catch (error) {
|
|
1365
855
|
const errMsg = generalizedErrorMessage(error);
|
|
1366
|
-
throw new
|
|
856
|
+
throw new WalletSubmitTransactionError(errMsg).message;
|
|
1367
857
|
}
|
|
1368
858
|
}
|
|
1369
859
|
async onAccountChange() {
|
|
860
|
+
var _a;
|
|
1370
861
|
try {
|
|
1371
862
|
this.ensureWalletExists(this._wallet);
|
|
1372
|
-
await this._wallet.onAccountChange(
|
|
863
|
+
await ((_a = this._wallet.features["aptos:onAccountChange"]) == null ? void 0 : _a.onAccountChange(
|
|
1373
864
|
async (data) => {
|
|
1374
865
|
this.setAccount(data);
|
|
1375
866
|
await this.setAnsName();
|
|
1376
867
|
this.recordEvent("account_change");
|
|
1377
868
|
this.emit("accountChange", this._account);
|
|
1378
869
|
}
|
|
1379
|
-
);
|
|
870
|
+
));
|
|
1380
871
|
} catch (error) {
|
|
1381
872
|
const errMsg = generalizedErrorMessage(error);
|
|
1382
873
|
throw new WalletAccountChangeError(errMsg).message;
|
|
1383
874
|
}
|
|
1384
875
|
}
|
|
1385
876
|
async onNetworkChange() {
|
|
877
|
+
var _a;
|
|
1386
878
|
try {
|
|
1387
879
|
this.ensureWalletExists(this._wallet);
|
|
1388
|
-
await this._wallet.onNetworkChange(
|
|
880
|
+
await ((_a = this._wallet.features["aptos:onNetworkChange"]) == null ? void 0 : _a.onNetworkChange(
|
|
1389
881
|
async (data) => {
|
|
1390
882
|
this.setNetwork(data);
|
|
1391
883
|
await this.setAnsName();
|
|
1392
884
|
this.emit("networkChange", this._network);
|
|
1393
885
|
}
|
|
1394
|
-
);
|
|
886
|
+
));
|
|
1395
887
|
} catch (error) {
|
|
1396
888
|
const errMsg = generalizedErrorMessage(error);
|
|
1397
889
|
throw new WalletNetworkChangeError(errMsg).message;
|
|
@@ -1405,14 +897,16 @@ var WalletCore = class extends EventEmitter2 {
|
|
|
1405
897
|
from: (_a = this._network) == null ? void 0 : _a.name,
|
|
1406
898
|
to: network
|
|
1407
899
|
});
|
|
1408
|
-
const chainId = network ===
|
|
1409
|
-
|
|
1410
|
-
|
|
1411
|
-
|
|
1412
|
-
|
|
1413
|
-
|
|
1414
|
-
const response = await this._wallet.changeNetwork(
|
|
1415
|
-
|
|
900
|
+
const chainId = network === Network3.DEVNET ? await fetchDevnetChainId() : NetworkToChainId[network];
|
|
901
|
+
const networkInfo = {
|
|
902
|
+
name: network,
|
|
903
|
+
chainId
|
|
904
|
+
};
|
|
905
|
+
if (this._wallet.features["aptos:changeNetwork"]) {
|
|
906
|
+
const response = await this._wallet.features["aptos:changeNetwork"].changeNetwork(
|
|
907
|
+
networkInfo
|
|
908
|
+
);
|
|
909
|
+
if (response.status === UserResponseStatus.REJECTED) {
|
|
1416
910
|
throw new WalletConnectionError("User has rejected the request").message;
|
|
1417
911
|
}
|
|
1418
912
|
return response.args;
|
|
@@ -1430,17 +924,45 @@ var WalletCore = class extends EventEmitter2 {
|
|
|
1430
924
|
this.ensureWalletExists(this._wallet);
|
|
1431
925
|
this.ensureAccountExists(this._account);
|
|
1432
926
|
this.recordEvent("sign_message_and_verify");
|
|
1433
|
-
|
|
1434
|
-
|
|
1435
|
-
|
|
1436
|
-
|
|
1437
|
-
|
|
927
|
+
try {
|
|
928
|
+
const response = await this._wallet.features["aptos:signMessage"].signMessage(message);
|
|
929
|
+
if (response.status === UserResponseStatus.REJECTED) {
|
|
930
|
+
throw new WalletConnectionError("Failed to sign a message").message;
|
|
931
|
+
}
|
|
932
|
+
if (this._account.publicKey instanceof AnyPublicKey && this._account.publicKey.variant === AnyPublicKeyVariant.Keyless) {
|
|
933
|
+
return true;
|
|
934
|
+
}
|
|
935
|
+
let verified = false;
|
|
936
|
+
if (response.args.signature instanceof MultiEd25519Signature) {
|
|
937
|
+
if (!(this._account.publicKey instanceof MultiEd25519PublicKey)) {
|
|
938
|
+
throw new WalletSignMessageAndVerifyError(
|
|
939
|
+
"Public key and Signature type mismatch"
|
|
940
|
+
).message;
|
|
941
|
+
}
|
|
942
|
+
const { fullMessage, signature } = response.args;
|
|
943
|
+
const bitmap = signature.bitmap;
|
|
944
|
+
if (bitmap) {
|
|
945
|
+
const minKeysRequired = this._account.publicKey.threshold;
|
|
946
|
+
if (signature.signatures.length < minKeysRequired) {
|
|
947
|
+
verified = false;
|
|
948
|
+
} else {
|
|
949
|
+
verified = this._account.publicKey.verifySignature({
|
|
950
|
+
message: new TextEncoder().encode(fullMessage),
|
|
951
|
+
signature
|
|
952
|
+
});
|
|
953
|
+
}
|
|
954
|
+
}
|
|
955
|
+
} else {
|
|
956
|
+
verified = this._account.publicKey.verifySignature({
|
|
957
|
+
message: new TextEncoder().encode(response.args.fullMessage),
|
|
958
|
+
signature: response.args.signature
|
|
959
|
+
});
|
|
960
|
+
}
|
|
961
|
+
return verified;
|
|
962
|
+
} catch (error) {
|
|
963
|
+
const errMsg = generalizedErrorMessage(error);
|
|
964
|
+
throw new WalletSignMessageAndVerifyError(errMsg).message;
|
|
1438
965
|
}
|
|
1439
|
-
return await this.walletCoreV1.signMessageAndVerify(
|
|
1440
|
-
message,
|
|
1441
|
-
this._wallet,
|
|
1442
|
-
this._account
|
|
1443
|
-
);
|
|
1444
966
|
} catch (error) {
|
|
1445
967
|
const errMsg = generalizedErrorMessage(error);
|
|
1446
968
|
throw new WalletSignMessageAndVerifyError(errMsg).message;
|
|
@@ -1457,23 +979,16 @@ export {
|
|
|
1457
979
|
APTOS_CONNECT_BASE_URL,
|
|
1458
980
|
ChainIdToAnsSupportedNetworkMap,
|
|
1459
981
|
NetworkName,
|
|
1460
|
-
TxnBuilderTypes3 as TxnBuilderTypes,
|
|
1461
|
-
Types3 as Types,
|
|
1462
982
|
WalletCore,
|
|
1463
|
-
WalletCoreV1,
|
|
1464
983
|
WalletReadyState,
|
|
1465
|
-
|
|
1466
|
-
areBCSArguments,
|
|
984
|
+
aptosStandardSupportedWalletList,
|
|
1467
985
|
convertNetwork,
|
|
1468
|
-
convertPayloadInputV1ToV2,
|
|
1469
|
-
convertV2PayloadToV1JSONPayload,
|
|
1470
|
-
convertV2TransactionPayloadToV1BCSPayload,
|
|
1471
986
|
fetchDevnetChainId,
|
|
1472
987
|
generalizedErrorMessage,
|
|
1473
|
-
generateTransactionPayloadFromV1Input,
|
|
1474
988
|
getAptosConfig,
|
|
1475
989
|
getAptosConnectWallets,
|
|
1476
990
|
getLocalStorage,
|
|
991
|
+
getSDKWallets,
|
|
1477
992
|
groupAndSortWallets,
|
|
1478
993
|
handlePublishPackageTransaction,
|
|
1479
994
|
isAptosConnectWallet,
|
|
@@ -1486,7 +1001,6 @@ export {
|
|
|
1486
1001
|
isRedirectable,
|
|
1487
1002
|
partitionWallets,
|
|
1488
1003
|
removeLocalStorage,
|
|
1489
|
-
scopePollingDetectionStrategy,
|
|
1490
1004
|
setLocalStorage,
|
|
1491
1005
|
truncateAddress
|
|
1492
1006
|
};
|