@sundaeswap/wallet-lite 0.0.24 → 0.0.26
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/@types/observer.js.map +1 -1
- package/dist/cjs/classes/WalletObserver.class.js +161 -95
- package/dist/cjs/classes/WalletObserver.class.js.map +1 -1
- package/dist/cjs/react-components/WalletObserverProvider/WalletObserverProvider.js +13 -20
- package/dist/cjs/react-components/WalletObserverProvider/WalletObserverProvider.js.map +1 -1
- package/dist/cjs/react-components/WalletObserverProvider/hooks/effects/useProviderEventListeners.js +6 -10
- package/dist/cjs/react-components/WalletObserverProvider/hooks/effects/useProviderEventListeners.js.map +1 -1
- package/dist/cjs/react-components/WalletObserverProvider/hooks/useWalletObserverState.js +65 -27
- package/dist/cjs/react-components/WalletObserverProvider/hooks/useWalletObserverState.js.map +1 -1
- package/dist/cjs/react-components/contexts/observer/types.js.map +1 -1
- package/dist/cjs/react-components/hooks/useWalletHandles.js +67 -52
- package/dist/cjs/react-components/hooks/useWalletHandles.js.map +1 -1
- package/dist/cjs/react-components/hooks/useWalletObserver.js +6 -3
- package/dist/cjs/react-components/hooks/useWalletObserver.js.map +1 -1
- package/dist/esm/@types/observer.js.map +1 -1
- package/dist/esm/classes/WalletObserver.class.js +64 -0
- package/dist/esm/classes/WalletObserver.class.js.map +1 -1
- package/dist/esm/react-components/WalletObserverProvider/WalletObserverProvider.js +7 -11
- package/dist/esm/react-components/WalletObserverProvider/WalletObserverProvider.js.map +1 -1
- package/dist/esm/react-components/WalletObserverProvider/hooks/effects/useProviderEventListeners.js +6 -10
- package/dist/esm/react-components/WalletObserverProvider/hooks/effects/useProviderEventListeners.js.map +1 -1
- package/dist/esm/react-components/WalletObserverProvider/hooks/useWalletObserverState.js +34 -14
- package/dist/esm/react-components/WalletObserverProvider/hooks/useWalletObserverState.js.map +1 -1
- package/dist/esm/react-components/contexts/observer/types.js.map +1 -1
- package/dist/esm/react-components/hooks/useWalletHandles.js +31 -24
- package/dist/esm/react-components/hooks/useWalletHandles.js.map +1 -1
- package/dist/esm/react-components/hooks/useWalletObserver.js +6 -3
- package/dist/esm/react-components/hooks/useWalletObserver.js.map +1 -1
- package/dist/types/@types/observer.d.ts +1 -0
- package/dist/types/@types/observer.d.ts.map +1 -1
- package/dist/types/classes/WalletObserver.class.d.ts +6 -0
- package/dist/types/classes/WalletObserver.class.d.ts.map +1 -1
- package/dist/types/react-components/WalletObserverProvider/WalletObserverProvider.d.ts.map +1 -1
- package/dist/types/react-components/WalletObserverProvider/hooks/effects/useProviderEventListeners.d.ts +2 -1
- package/dist/types/react-components/WalletObserverProvider/hooks/effects/useProviderEventListeners.d.ts.map +1 -1
- package/dist/types/react-components/WalletObserverProvider/hooks/useWalletObserverState.d.ts +4 -0
- package/dist/types/react-components/WalletObserverProvider/hooks/useWalletObserverState.d.ts.map +1 -1
- package/dist/types/react-components/contexts/observer/types.d.ts +3 -0
- package/dist/types/react-components/contexts/observer/types.d.ts.map +1 -1
- package/dist/types/react-components/hooks/useWalletHandles.d.ts.map +1 -1
- package/dist/types/react-components/hooks/useWalletObserver.d.ts.map +1 -1
- package/dist/types/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/@types/observer.ts +1 -0
- package/src/classes/WalletObserver.class.ts +76 -0
- package/src/react-components/WalletObserverProvider/WalletObserverProvider.tsx +6 -9
- package/src/react-components/WalletObserverProvider/hooks/effects/useProviderEventListeners.ts +7 -15
- package/src/react-components/WalletObserverProvider/hooks/useWalletObserverState.ts +44 -16
- package/src/react-components/contexts/observer/types.ts +3 -0
- package/src/react-components/hooks/useWalletHandles.ts +69 -62
- package/src/react-components/hooks/useWalletObserver.ts +7 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"observer.js","names":[],"sources":["../../../src/@types/observer.ts"],"sourcesContent":["import type { TransactionUnspentOutput } from \"@cardano-sdk/core/dist/cjs/Serialization/index.js\";\nimport type { Cip30WalletApi } from \"@cardano-sdk/dapp-connector\";\nimport type { DAppPeerConnect } from \"@fabianbormann/cardano-peer-connect\";\nimport type { DAppPeerConnectParameters } from \"@fabianbormann/cardano-peer-connect/dist/src/types.js\";\nimport type { IAssetAmountMetadata } from \"@sundaeswap/asset\";\n\nimport { WalletAssetMap } from \"../classes/WalletAssetMap.class.js\";\nimport { WalletBalanceMap } from \"../classes/WalletBalanceMap.class.js\";\nimport { isAdaAsset, normalizeAssetIdWithDot } from \"../utils/assets.js\";\n\n/**\n * A list of support CIP-30 wallet extensions in the browser.\n */\nexport type TSupportedWalletExtensions =\n | \"nami\"\n | \"eternl\"\n | \"typhoncip30\"\n | \"ccvault\"\n | \"typhon\"\n | \"yoroi\"\n | \"flint\"\n | \"gerowallet\"\n | \"cardwallet\"\n | \"nufi\"\n | \"begin\"\n | \"lace\"\n | \"sorbet\";\n\n/**\n * Interface to describe window extension.\n */\nexport interface IWindowCip30Extension {\n apiVersion: string;\n enable: () => Promise<Cip30WalletApi>;\n icon: string;\n isEnabled: () => Promise<boolean>;\n name: TSupportedWalletExtensions;\n}\n\n/**\n * Interface to describe our expected window configuration.\n */\nexport type TWindowCardano = {\n [K in TSupportedWalletExtensions]?: IWindowCip30Extension;\n};\n\n/**\n * The metadata resolver should return a map composed of\n * the asset ID as the key, and the metadata as the value.\n */\nexport type TMetadataResolverFunc<\n T extends IAssetAmountMetadata = IAssetAmountMetadata\n> = (\n assetIds: string[],\n normalizeAssetIdFunc: typeof normalizeAssetIdWithDot,\n isAdaAssetFunc: typeof isAdaAsset\n) => Promise<Map<string, T>>;\n\n/**\n * Options that are passed to the WalletObserver instance.\n */\nexport interface IResolvedWalletObserverOptions<\n AssetMetadata extends IAssetAmountMetadata = IAssetAmountMetadata\n> {\n metadataResolver: TMetadataResolverFunc<AssetMetadata>;\n persistence: boolean;\n peerConnectArgs: DAppPeerConnectParameters;\n connectTimeout: number;\n}\n\n/**\n * Options that are passed to the WalletObserver instance.\n */\nexport type TWalletObserverOptions<\n AssetMetadata extends IAssetAmountMetadata = IAssetAmountMetadata\n> = Partial<IResolvedWalletObserverOptions<AssetMetadata>>;\n\n/**\n * Interface describing the Map type of an asset.\n */\nexport type TAssetAmountMap<\n T extends IAssetAmountMetadata = IAssetAmountMetadata\n> = WalletAssetMap<T>;\n\n/**\n * Interface describing the structure of the persistent\n * data located in local storage.\n */\nexport interface IWalletObserverSeed {\n activeWallet: TSupportedWalletExtensions;\n}\n\n/**\n * The return type for the WalletObserver.getCip45Instance\n * method.\n */\nexport type TGetPeerConnectInstance = () => {\n name: string;\n icon: string | null;\n instance: DAppPeerConnect;\n};\n\nexport interface IWalletObserverSync<\n AssetMetadata extends IAssetAmountMetadata = IAssetAmountMetadata\n> {\n balanceMap: WalletBalanceMap<AssetMetadata>;\n usedAddresses: string[];\n unusedAddresses: string[];\n utxos?: TransactionUnspentOutput[];\n network: number;\n}\n"],"mappings":"","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"observer.js","names":[],"sources":["../../../src/@types/observer.ts"],"sourcesContent":["import type { TransactionUnspentOutput } from \"@cardano-sdk/core/dist/cjs/Serialization/index.js\";\nimport type { Cip30WalletApi } from \"@cardano-sdk/dapp-connector\";\nimport type { DAppPeerConnect } from \"@fabianbormann/cardano-peer-connect\";\nimport type { DAppPeerConnectParameters } from \"@fabianbormann/cardano-peer-connect/dist/src/types.js\";\nimport type { IAssetAmountMetadata } from \"@sundaeswap/asset\";\n\nimport { WalletAssetMap } from \"../classes/WalletAssetMap.class.js\";\nimport { WalletBalanceMap } from \"../classes/WalletBalanceMap.class.js\";\nimport { isAdaAsset, normalizeAssetIdWithDot } from \"../utils/assets.js\";\n\n/**\n * A list of support CIP-30 wallet extensions in the browser.\n */\nexport type TSupportedWalletExtensions =\n | \"nami\"\n | \"eternl\"\n | \"typhoncip30\"\n | \"ccvault\"\n | \"typhon\"\n | \"yoroi\"\n | \"flint\"\n | \"gerowallet\"\n | \"cardwallet\"\n | \"nufi\"\n | \"begin\"\n | \"lace\"\n | \"sorbet\";\n\n/**\n * Interface to describe window extension.\n */\nexport interface IWindowCip30Extension {\n apiVersion: string;\n enable: () => Promise<Cip30WalletApi>;\n icon: string;\n isEnabled: () => Promise<boolean>;\n name: TSupportedWalletExtensions;\n}\n\n/**\n * Interface to describe our expected window configuration.\n */\nexport type TWindowCardano = {\n [K in TSupportedWalletExtensions]?: IWindowCip30Extension;\n};\n\n/**\n * The metadata resolver should return a map composed of\n * the asset ID as the key, and the metadata as the value.\n */\nexport type TMetadataResolverFunc<\n T extends IAssetAmountMetadata = IAssetAmountMetadata\n> = (\n assetIds: string[],\n normalizeAssetIdFunc: typeof normalizeAssetIdWithDot,\n isAdaAssetFunc: typeof isAdaAsset\n) => Promise<Map<string, T>>;\n\n/**\n * Options that are passed to the WalletObserver instance.\n */\nexport interface IResolvedWalletObserverOptions<\n AssetMetadata extends IAssetAmountMetadata = IAssetAmountMetadata\n> {\n metadataResolver: TMetadataResolverFunc<AssetMetadata>;\n persistence: boolean;\n peerConnectArgs: DAppPeerConnectParameters;\n connectTimeout: number;\n debug: boolean;\n}\n\n/**\n * Options that are passed to the WalletObserver instance.\n */\nexport type TWalletObserverOptions<\n AssetMetadata extends IAssetAmountMetadata = IAssetAmountMetadata\n> = Partial<IResolvedWalletObserverOptions<AssetMetadata>>;\n\n/**\n * Interface describing the Map type of an asset.\n */\nexport type TAssetAmountMap<\n T extends IAssetAmountMetadata = IAssetAmountMetadata\n> = WalletAssetMap<T>;\n\n/**\n * Interface describing the structure of the persistent\n * data located in local storage.\n */\nexport interface IWalletObserverSeed {\n activeWallet: TSupportedWalletExtensions;\n}\n\n/**\n * The return type for the WalletObserver.getCip45Instance\n * method.\n */\nexport type TGetPeerConnectInstance = () => {\n name: string;\n icon: string | null;\n instance: DAppPeerConnect;\n};\n\nexport interface IWalletObserverSync<\n AssetMetadata extends IAssetAmountMetadata = IAssetAmountMetadata\n> {\n balanceMap: WalletBalanceMap<AssetMetadata>;\n usedAddresses: string[];\n unusedAddresses: string[];\n utxos?: TransactionUnspentOutput[];\n network: number;\n}\n"],"mappings":"","ignoreList":[]}
|
|
@@ -90,7 +90,7 @@ var WalletObserver = exports.WalletObserver = /*#__PURE__*/function (_WalletObse
|
|
|
90
90
|
* @returns {Promise<IWalletObserverSync>} - A promise that resolves to the wallet sync data.
|
|
91
91
|
*/
|
|
92
92
|
_defineProperty(_this, "sync", /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
|
|
93
|
-
var newNetwork, _yield$Promise$all, _yield$Promise$all2, newBalanceMap, newUsedAddresses, newUnusedAddresses, newOutputs, newCollateral, result;
|
|
93
|
+
var start, newNetwork, _yield$Promise$all, _yield$Promise$all2, newBalanceMap, newUsedAddresses, newUnusedAddresses, newOutputs, newCollateral, result, end;
|
|
94
94
|
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
95
95
|
while (1) switch (_context.prev = _context.next) {
|
|
96
96
|
case 0:
|
|
@@ -100,39 +100,40 @@ var WalletObserver = exports.WalletObserver = /*#__PURE__*/function (_WalletObse
|
|
|
100
100
|
}
|
|
101
101
|
throw new Error("Attempted to perform a sync operation without a connected wallet.");
|
|
102
102
|
case 2:
|
|
103
|
-
|
|
103
|
+
start = performance.now();
|
|
104
|
+
_context.prev = 3;
|
|
104
105
|
_this._performingSync = true;
|
|
105
106
|
_this.dispatch(_events.EWalletObserverEvents.SYNCING_WALLET_START);
|
|
106
|
-
_context.prev =
|
|
107
|
-
_context.next =
|
|
107
|
+
_context.prev = 6;
|
|
108
|
+
_context.next = 9;
|
|
108
109
|
return _this.getNetwork();
|
|
109
|
-
case
|
|
110
|
+
case 9:
|
|
110
111
|
newNetwork = _context.sent;
|
|
111
|
-
_context.next =
|
|
112
|
+
_context.next = 27;
|
|
112
113
|
break;
|
|
113
|
-
case
|
|
114
|
-
_context.prev =
|
|
115
|
-
_context.t0 = _context["catch"](
|
|
116
|
-
_context.prev =
|
|
117
|
-
_context.next =
|
|
114
|
+
case 12:
|
|
115
|
+
_context.prev = 12;
|
|
116
|
+
_context.t0 = _context["catch"](6);
|
|
117
|
+
_context.prev = 14;
|
|
118
|
+
_context.next = 17;
|
|
118
119
|
return _this.syncApi();
|
|
119
|
-
case
|
|
120
|
-
_context.next =
|
|
120
|
+
case 17:
|
|
121
|
+
_context.next = 19;
|
|
121
122
|
return _this.getNetwork();
|
|
122
|
-
case
|
|
123
|
+
case 19:
|
|
123
124
|
newNetwork = _context.sent;
|
|
124
|
-
_context.next =
|
|
125
|
+
_context.next = 27;
|
|
125
126
|
break;
|
|
126
|
-
case
|
|
127
|
-
_context.prev =
|
|
128
|
-
_context.t1 = _context["catch"](
|
|
127
|
+
case 22:
|
|
128
|
+
_context.prev = 22;
|
|
129
|
+
_context.t1 = _context["catch"](14);
|
|
129
130
|
_this.dispatch(_events.EWalletObserverEvents.SYNCING_WALLET_END);
|
|
130
131
|
_this._performingSync = false;
|
|
131
132
|
throw _context.t1;
|
|
132
|
-
case
|
|
133
|
-
_context.next =
|
|
133
|
+
case 27:
|
|
134
|
+
_context.next = 29;
|
|
134
135
|
return Promise.all([_this.getBalanceMap(), _this.getUsedAddresses(), _this.getUnusedAddresses(), _this.getUtxos(), _this.getCollateral()]);
|
|
135
|
-
case
|
|
136
|
+
case 29:
|
|
136
137
|
_yield$Promise$all = _context.sent;
|
|
137
138
|
_yield$Promise$all2 = _slicedToArray(_yield$Promise$all, 5);
|
|
138
139
|
newBalanceMap = _yield$Promise$all2[0];
|
|
@@ -150,17 +151,21 @@ var WalletObserver = exports.WalletObserver = /*#__PURE__*/function (_WalletObse
|
|
|
150
151
|
};
|
|
151
152
|
_this.dispatch(_events.EWalletObserverEvents.SYNCING_WALLET_END, result);
|
|
152
153
|
_this._performingSync = false;
|
|
154
|
+
end = performance.now();
|
|
155
|
+
if (_this._options.debug) {
|
|
156
|
+
console.log("sync: ".concat(end - start, "ms"));
|
|
157
|
+
}
|
|
153
158
|
return _context.abrupt("return", result);
|
|
154
|
-
case
|
|
155
|
-
_context.prev =
|
|
156
|
-
_context.t2 = _context["catch"](
|
|
159
|
+
case 44:
|
|
160
|
+
_context.prev = 44;
|
|
161
|
+
_context.t2 = _context["catch"](3);
|
|
157
162
|
_this._performingSync = false;
|
|
158
163
|
throw _context.t2;
|
|
159
|
-
case
|
|
164
|
+
case 48:
|
|
160
165
|
case "end":
|
|
161
166
|
return _context.stop();
|
|
162
167
|
}
|
|
163
|
-
}, _callee, null, [[
|
|
168
|
+
}, _callee, null, [[3, 44], [6, 12], [14, 22]]);
|
|
164
169
|
})));
|
|
165
170
|
/**
|
|
166
171
|
* Synchronizes the API with the wallet. This is useful if the account has changed,
|
|
@@ -256,46 +261,47 @@ var WalletObserver = exports.WalletObserver = /*#__PURE__*/function (_WalletObse
|
|
|
256
261
|
_defineProperty(_this, "connectWallet", /*#__PURE__*/function () {
|
|
257
262
|
var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(extension) {
|
|
258
263
|
var _window$cardano2;
|
|
259
|
-
var attempts, extensionObject, _this$peerConnectInst, _window$cardano3, seed;
|
|
264
|
+
var start, attempts, extensionObject, _this$peerConnectInst, _window$cardano3, seed, end;
|
|
260
265
|
return _regeneratorRuntime().wrap(function _callee3$(_context3) {
|
|
261
266
|
while (1) switch (_context3.prev = _context3.next) {
|
|
262
267
|
case 0:
|
|
268
|
+
start = performance.now();
|
|
263
269
|
_this.dispatch(_events.EWalletObserverEvents.CONNECT_WALLET_START);
|
|
264
270
|
attempts = 0;
|
|
265
271
|
extensionObject = (_window$cardano2 = window.cardano) === null || _window$cardano2 === void 0 ? void 0 : _window$cardano2[extension]; // Disconnect any CIP45 connections.
|
|
266
272
|
if (!(extension !== null && extension !== void 0 && extension.includes("p2p"))) {
|
|
267
273
|
(_this$peerConnectInst = _this.peerConnectInstance) === null || _this$peerConnectInst === void 0 || _this$peerConnectInst.shutdownServer();
|
|
268
274
|
}
|
|
269
|
-
case
|
|
275
|
+
case 5:
|
|
270
276
|
if (!(typeof extensionObject === "undefined")) {
|
|
271
|
-
_context3.next =
|
|
277
|
+
_context3.next = 14;
|
|
272
278
|
break;
|
|
273
279
|
}
|
|
274
280
|
if (!(attempts === 40)) {
|
|
275
|
-
_context3.next =
|
|
281
|
+
_context3.next = 8;
|
|
276
282
|
break;
|
|
277
283
|
}
|
|
278
|
-
return _context3.abrupt("break",
|
|
279
|
-
case
|
|
280
|
-
_context3.next =
|
|
284
|
+
return _context3.abrupt("break", 14);
|
|
285
|
+
case 8:
|
|
286
|
+
_context3.next = 10;
|
|
281
287
|
return new Promise(function (res) {
|
|
282
288
|
return setTimeout(res, _this._options.connectTimeout / 40);
|
|
283
289
|
});
|
|
284
|
-
case
|
|
290
|
+
case 10:
|
|
285
291
|
extensionObject = (_window$cardano3 = window.cardano) === null || _window$cardano3 === void 0 ? void 0 : _window$cardano3[extension];
|
|
286
292
|
attempts++;
|
|
287
|
-
_context3.next =
|
|
293
|
+
_context3.next = 5;
|
|
288
294
|
break;
|
|
289
|
-
case
|
|
295
|
+
case 14:
|
|
290
296
|
if (extensionObject) {
|
|
291
|
-
_context3.next =
|
|
297
|
+
_context3.next = 16;
|
|
292
298
|
break;
|
|
293
299
|
}
|
|
294
300
|
throw new Error("Wallet extension not found in the global context.");
|
|
295
|
-
case
|
|
296
|
-
_context3.next =
|
|
301
|
+
case 16:
|
|
302
|
+
_context3.next = 18;
|
|
297
303
|
return _this.syncApi(extension);
|
|
298
|
-
case
|
|
304
|
+
case 18:
|
|
299
305
|
_this._activeWallet = extension;
|
|
300
306
|
if (_this._options.persistence) {
|
|
301
307
|
seed = {
|
|
@@ -306,7 +312,11 @@ var WalletObserver = exports.WalletObserver = /*#__PURE__*/function (_WalletObse
|
|
|
306
312
|
_this.dispatch(_events.EWalletObserverEvents.CONNECT_WALLET_END, {
|
|
307
313
|
extension: extension
|
|
308
314
|
});
|
|
309
|
-
|
|
315
|
+
end = performance.now();
|
|
316
|
+
if (_this._options.debug) {
|
|
317
|
+
console.log("connectWallet: ".concat(end - start, "ms"));
|
|
318
|
+
}
|
|
319
|
+
case 23:
|
|
310
320
|
case "end":
|
|
311
321
|
return _context3.stop();
|
|
312
322
|
}
|
|
@@ -317,27 +327,32 @@ var WalletObserver = exports.WalletObserver = /*#__PURE__*/function (_WalletObse
|
|
|
317
327
|
};
|
|
318
328
|
}());
|
|
319
329
|
_defineProperty(_this, "getCip45Instance", /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {
|
|
320
|
-
var _yield$getPeerConnect, DAppPeerConnect;
|
|
330
|
+
var start, _yield$getPeerConnect, DAppPeerConnect, end;
|
|
321
331
|
return _regeneratorRuntime().wrap(function _callee4$(_context4) {
|
|
322
332
|
while (1) switch (_context4.prev = _context4.next) {
|
|
323
333
|
case 0:
|
|
334
|
+
start = performance.now();
|
|
324
335
|
if (_this.peerConnectInstance) {
|
|
325
|
-
_context4.next =
|
|
336
|
+
_context4.next = 7;
|
|
326
337
|
break;
|
|
327
338
|
}
|
|
328
|
-
_context4.next =
|
|
339
|
+
_context4.next = 4;
|
|
329
340
|
return (0, _getLibs.getPeerConnect)();
|
|
330
|
-
case
|
|
341
|
+
case 4:
|
|
331
342
|
_yield$getPeerConnect = _context4.sent;
|
|
332
343
|
DAppPeerConnect = _yield$getPeerConnect.DAppPeerConnect;
|
|
333
344
|
_this.peerConnectInstance = new DAppPeerConnect(_this._options.peerConnectArgs);
|
|
334
|
-
case
|
|
345
|
+
case 7:
|
|
346
|
+
end = performance.now();
|
|
347
|
+
if (_this._options.debug) {
|
|
348
|
+
console.log("getCip45Instance: ".concat(end - start, "ms"));
|
|
349
|
+
}
|
|
335
350
|
return _context4.abrupt("return", {
|
|
336
351
|
name: _this._options.peerConnectArgs.dAppInfo.name,
|
|
337
352
|
icon: _this.peerConnectInstance.getIdenticon(),
|
|
338
353
|
instance: _this.peerConnectInstance
|
|
339
354
|
});
|
|
340
|
-
case
|
|
355
|
+
case 10:
|
|
341
356
|
case "end":
|
|
342
357
|
return _context4.stop();
|
|
343
358
|
}
|
|
@@ -386,7 +401,7 @@ var WalletObserver = exports.WalletObserver = /*#__PURE__*/function (_WalletObse
|
|
|
386
401
|
*/
|
|
387
402
|
_defineProperty(_this, "getBalanceMap", /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5() {
|
|
388
403
|
var _data$multiasset$keys, _data$multiasset, _data$multiasset$entr, _data$multiasset2;
|
|
389
|
-
var _yield$Promise$all3, _yield$Promise$all4, cbor, Serialization, typedHex, data, multiassetKeys, metadata, balanceMap, multiassetEntries, _iterator, _step, _step$value, id, amount;
|
|
404
|
+
var start, _yield$Promise$all3, _yield$Promise$all4, cbor, Serialization, typedHex, data, multiassetKeys, metadata, balanceMap, multiassetEntries, _iterator, _step, _step$value, id, amount, end;
|
|
390
405
|
return _regeneratorRuntime().wrap(function _callee5$(_context5) {
|
|
391
406
|
while (1) switch (_context5.prev = _context5.next) {
|
|
392
407
|
case 0:
|
|
@@ -396,10 +411,11 @@ var WalletObserver = exports.WalletObserver = /*#__PURE__*/function (_WalletObse
|
|
|
396
411
|
}
|
|
397
412
|
throw new Error("Attempted to query balance without an API instance.");
|
|
398
413
|
case 2:
|
|
414
|
+
start = performance.now();
|
|
399
415
|
_this.dispatch(_events.EWalletObserverEvents.GET_BALANCE_MAP_START);
|
|
400
|
-
_context5.next =
|
|
416
|
+
_context5.next = 6;
|
|
401
417
|
return Promise.all([_this.api.getBalance(), (0, _getLibs.getCardanoCore)(), (0, _getLibs.getCardanoUtil)()]);
|
|
402
|
-
case
|
|
418
|
+
case 6:
|
|
403
419
|
_yield$Promise$all3 = _context5.sent;
|
|
404
420
|
_yield$Promise$all4 = _slicedToArray(_yield$Promise$all3, 3);
|
|
405
421
|
cbor = _yield$Promise$all4[0];
|
|
@@ -407,9 +423,9 @@ var WalletObserver = exports.WalletObserver = /*#__PURE__*/function (_WalletObse
|
|
|
407
423
|
typedHex = _yield$Promise$all4[2].typedHex;
|
|
408
424
|
data = Serialization.Value.fromCbor(typedHex(cbor));
|
|
409
425
|
multiassetKeys = (_data$multiasset$keys = (_data$multiasset = data.multiasset()) === null || _data$multiasset === void 0 ? void 0 : _data$multiasset.keys()) !== null && _data$multiasset$keys !== void 0 ? _data$multiasset$keys : [];
|
|
410
|
-
_context5.next =
|
|
426
|
+
_context5.next = 15;
|
|
411
427
|
return _this.__metadataResolverWithCache([WalletObserver.ADA_ASSET_ID].concat(_toConsumableArray(multiassetKeys)));
|
|
412
|
-
case
|
|
428
|
+
case 15:
|
|
413
429
|
metadata = _context5.sent;
|
|
414
430
|
balanceMap = new _WalletBalanceMapClass.WalletBalanceMap(_this);
|
|
415
431
|
balanceMap.set(WalletObserver.ADA_ASSET_ID, new _asset.AssetAmount(data.coin(), metadata.get(WalletObserver.ADA_ASSET_ID)));
|
|
@@ -430,8 +446,12 @@ var WalletObserver = exports.WalletObserver = /*#__PURE__*/function (_WalletObse
|
|
|
430
446
|
_this.dispatch(_events.EWalletObserverEvents.GET_BALANCE_MAP_END, {
|
|
431
447
|
balanceMap: balanceMap
|
|
432
448
|
});
|
|
449
|
+
end = performance.now();
|
|
450
|
+
if (_this._options.debug) {
|
|
451
|
+
console.log("getBalanceMap: ".concat(end - start, "ms"));
|
|
452
|
+
}
|
|
433
453
|
return _context5.abrupt("return", balanceMap);
|
|
434
|
-
case
|
|
454
|
+
case 24:
|
|
435
455
|
case "end":
|
|
436
456
|
return _context5.stop();
|
|
437
457
|
}
|
|
@@ -443,7 +463,7 @@ var WalletObserver = exports.WalletObserver = /*#__PURE__*/function (_WalletObse
|
|
|
443
463
|
* @returns {Promise<number>} The network ID.
|
|
444
464
|
*/
|
|
445
465
|
_defineProperty(_this, "getNetwork", /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee6() {
|
|
446
|
-
var val;
|
|
466
|
+
var start, val, end;
|
|
447
467
|
return _regeneratorRuntime().wrap(function _callee6$(_context6) {
|
|
448
468
|
while (1) switch (_context6.prev = _context6.next) {
|
|
449
469
|
case 0:
|
|
@@ -453,13 +473,18 @@ var WalletObserver = exports.WalletObserver = /*#__PURE__*/function (_WalletObse
|
|
|
453
473
|
}
|
|
454
474
|
throw new Error("Attempted to query network without an API instance.");
|
|
455
475
|
case 2:
|
|
456
|
-
|
|
476
|
+
start = performance.now();
|
|
477
|
+
_context6.next = 5;
|
|
457
478
|
return _this.api.getNetworkId();
|
|
458
|
-
case
|
|
479
|
+
case 5:
|
|
459
480
|
val = _context6.sent;
|
|
460
481
|
_this.network = val;
|
|
482
|
+
end = performance.now();
|
|
483
|
+
if (_this._options.debug) {
|
|
484
|
+
console.log("getNetwork: ".concat(end - start, "ms"));
|
|
485
|
+
}
|
|
461
486
|
return _context6.abrupt("return", val);
|
|
462
|
-
case
|
|
487
|
+
case 10:
|
|
463
488
|
case "end":
|
|
464
489
|
return _context6.stop();
|
|
465
490
|
}
|
|
@@ -471,7 +496,7 @@ var WalletObserver = exports.WalletObserver = /*#__PURE__*/function (_WalletObse
|
|
|
471
496
|
* @returns {Promise<string[]>} The list of addresses.
|
|
472
497
|
*/
|
|
473
498
|
_defineProperty(_this, "getUsedAddresses", /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee7() {
|
|
474
|
-
var _yield$Promise$all5, _yield$Promise$all6, cbor, Cardano, typedHex, data;
|
|
499
|
+
var start, _yield$Promise$all5, _yield$Promise$all6, cbor, Cardano, typedHex, data, end;
|
|
475
500
|
return _regeneratorRuntime().wrap(function _callee7$(_context7) {
|
|
476
501
|
while (1) switch (_context7.prev = _context7.next) {
|
|
477
502
|
case 0:
|
|
@@ -481,9 +506,10 @@ var WalletObserver = exports.WalletObserver = /*#__PURE__*/function (_WalletObse
|
|
|
481
506
|
}
|
|
482
507
|
throw new Error("Attempted to query used addresses without an API instance.");
|
|
483
508
|
case 2:
|
|
484
|
-
|
|
509
|
+
start = performance.now();
|
|
510
|
+
_context7.next = 5;
|
|
485
511
|
return Promise.all([_this.api.getUsedAddresses(), (0, _getLibs.getCardanoCore)(), (0, _getLibs.getCardanoUtil)()]);
|
|
486
|
-
case
|
|
512
|
+
case 5:
|
|
487
513
|
_yield$Promise$all5 = _context7.sent;
|
|
488
514
|
_yield$Promise$all6 = _slicedToArray(_yield$Promise$all5, 3);
|
|
489
515
|
cbor = _yield$Promise$all6[0];
|
|
@@ -492,8 +518,12 @@ var WalletObserver = exports.WalletObserver = /*#__PURE__*/function (_WalletObse
|
|
|
492
518
|
data = cbor.map(function (val) {
|
|
493
519
|
return Cardano.Address.fromBytes(typedHex(val)).toBech32();
|
|
494
520
|
});
|
|
521
|
+
end = performance.now();
|
|
522
|
+
if (_this._options.debug) {
|
|
523
|
+
console.log("getUsedAddresses: ".concat(end - start, "ms"));
|
|
524
|
+
}
|
|
495
525
|
return _context7.abrupt("return", data);
|
|
496
|
-
case
|
|
526
|
+
case 14:
|
|
497
527
|
case "end":
|
|
498
528
|
return _context7.stop();
|
|
499
529
|
}
|
|
@@ -505,7 +535,7 @@ var WalletObserver = exports.WalletObserver = /*#__PURE__*/function (_WalletObse
|
|
|
505
535
|
* @returns {Promise<string[]>} The list of addresses.
|
|
506
536
|
*/
|
|
507
537
|
_defineProperty(_this, "getUnusedAddresses", /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee8() {
|
|
508
|
-
var _yield$Promise$all7, _yield$Promise$all8, cbor, Cardano, typedHex, data;
|
|
538
|
+
var start, _yield$Promise$all7, _yield$Promise$all8, cbor, Cardano, typedHex, data, end;
|
|
509
539
|
return _regeneratorRuntime().wrap(function _callee8$(_context8) {
|
|
510
540
|
while (1) switch (_context8.prev = _context8.next) {
|
|
511
541
|
case 0:
|
|
@@ -515,9 +545,10 @@ var WalletObserver = exports.WalletObserver = /*#__PURE__*/function (_WalletObse
|
|
|
515
545
|
}
|
|
516
546
|
throw new Error("Attempted to query unused addresses without an API instance.");
|
|
517
547
|
case 2:
|
|
518
|
-
|
|
548
|
+
start = performance.now();
|
|
549
|
+
_context8.next = 5;
|
|
519
550
|
return Promise.all([_this.api.getUnusedAddresses(), (0, _getLibs.getCardanoCore)(), (0, _getLibs.getCardanoUtil)()]);
|
|
520
|
-
case
|
|
551
|
+
case 5:
|
|
521
552
|
_yield$Promise$all7 = _context8.sent;
|
|
522
553
|
_yield$Promise$all8 = _slicedToArray(_yield$Promise$all7, 3);
|
|
523
554
|
cbor = _yield$Promise$all8[0];
|
|
@@ -526,8 +557,12 @@ var WalletObserver = exports.WalletObserver = /*#__PURE__*/function (_WalletObse
|
|
|
526
557
|
data = cbor.map(function (val) {
|
|
527
558
|
return Cardano.Address.fromBytes(typedHex(val)).toBech32();
|
|
528
559
|
});
|
|
560
|
+
end = performance.now();
|
|
561
|
+
if (_this._options.debug) {
|
|
562
|
+
console.log("getUnusedAddresses: ".concat(end - start, "ms"));
|
|
563
|
+
}
|
|
529
564
|
return _context8.abrupt("return", data);
|
|
530
|
-
case
|
|
565
|
+
case 14:
|
|
531
566
|
case "end":
|
|
532
567
|
return _context8.stop();
|
|
533
568
|
}
|
|
@@ -539,7 +574,7 @@ var WalletObserver = exports.WalletObserver = /*#__PURE__*/function (_WalletObse
|
|
|
539
574
|
* @returns {Promise<TransactionUnspentOutput[]>} The list of TransactionUnspentOutputs.
|
|
540
575
|
*/
|
|
541
576
|
_defineProperty(_this, "getUtxos", /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee9() {
|
|
542
|
-
var _yield$Promise$all9, _yield$Promise$all10, cbor, Serialization, typedHex, data;
|
|
577
|
+
var start, _yield$Promise$all9, _yield$Promise$all10, cbor, Serialization, typedHex, data, end;
|
|
543
578
|
return _regeneratorRuntime().wrap(function _callee9$(_context9) {
|
|
544
579
|
while (1) switch (_context9.prev = _context9.next) {
|
|
545
580
|
case 0:
|
|
@@ -549,9 +584,10 @@ var WalletObserver = exports.WalletObserver = /*#__PURE__*/function (_WalletObse
|
|
|
549
584
|
}
|
|
550
585
|
throw new Error("Attempted to query UTXOs without an API instance.");
|
|
551
586
|
case 2:
|
|
552
|
-
|
|
587
|
+
start = performance.now();
|
|
588
|
+
_context9.next = 5;
|
|
553
589
|
return Promise.all([_this.api.getUtxos(), (0, _getLibs.getCardanoCore)(), (0, _getLibs.getCardanoUtil)()]);
|
|
554
|
-
case
|
|
590
|
+
case 5:
|
|
555
591
|
_yield$Promise$all9 = _context9.sent;
|
|
556
592
|
_yield$Promise$all10 = _slicedToArray(_yield$Promise$all9, 3);
|
|
557
593
|
cbor = _yield$Promise$all10[0];
|
|
@@ -565,8 +601,12 @@ var WalletObserver = exports.WalletObserver = /*#__PURE__*/function (_WalletObse
|
|
|
565
601
|
txOutput.output = txOutput.output.bind(txOutput);
|
|
566
602
|
return txOutput;
|
|
567
603
|
});
|
|
604
|
+
end = performance.now();
|
|
605
|
+
if (_this._options.debug) {
|
|
606
|
+
console.log("getUtxos: ".concat(end - start, "ms"));
|
|
607
|
+
}
|
|
568
608
|
return _context9.abrupt("return", data);
|
|
569
|
-
case
|
|
609
|
+
case 14:
|
|
570
610
|
case "end":
|
|
571
611
|
return _context9.stop();
|
|
572
612
|
}
|
|
@@ -578,7 +618,7 @@ var WalletObserver = exports.WalletObserver = /*#__PURE__*/function (_WalletObse
|
|
|
578
618
|
* @returns {Promise<TransactionUnspentOutput[]>} The list of TransactionUnspentOutputs.
|
|
579
619
|
*/
|
|
580
620
|
_defineProperty(_this, "getCollateral", /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee11() {
|
|
581
|
-
var _yield$Promise$all11, _yield$Promise$all12, cbor, Serialization, typedHex, data;
|
|
621
|
+
var start, _yield$Promise$all11, _yield$Promise$all12, cbor, Serialization, typedHex, data, end;
|
|
582
622
|
return _regeneratorRuntime().wrap(function _callee11$(_context11) {
|
|
583
623
|
while (1) switch (_context11.prev = _context11.next) {
|
|
584
624
|
case 0:
|
|
@@ -588,7 +628,8 @@ var WalletObserver = exports.WalletObserver = /*#__PURE__*/function (_WalletObse
|
|
|
588
628
|
}
|
|
589
629
|
throw new Error("Attempted to query UTXOs without an API instance.");
|
|
590
630
|
case 2:
|
|
591
|
-
|
|
631
|
+
start = performance.now();
|
|
632
|
+
_context11.next = 5;
|
|
592
633
|
return Promise.all([_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee10() {
|
|
593
634
|
var _this$api, _this$api2;
|
|
594
635
|
var funcCall;
|
|
@@ -612,7 +653,7 @@ var WalletObserver = exports.WalletObserver = /*#__PURE__*/function (_WalletObse
|
|
|
612
653
|
}
|
|
613
654
|
}, _callee10);
|
|
614
655
|
}))(), (0, _getLibs.getCardanoCore)(), (0, _getLibs.getCardanoUtil)()]);
|
|
615
|
-
case
|
|
656
|
+
case 5:
|
|
616
657
|
_yield$Promise$all11 = _context11.sent;
|
|
617
658
|
_yield$Promise$all12 = _slicedToArray(_yield$Promise$all11, 3);
|
|
618
659
|
cbor = _yield$Promise$all12[0];
|
|
@@ -626,8 +667,12 @@ var WalletObserver = exports.WalletObserver = /*#__PURE__*/function (_WalletObse
|
|
|
626
667
|
txOutput.output = txOutput.output.bind(txOutput);
|
|
627
668
|
return txOutput;
|
|
628
669
|
});
|
|
670
|
+
end = performance.now();
|
|
671
|
+
if (_this._options.debug) {
|
|
672
|
+
console.log("getCollateral: ".concat(end - start, "ms"));
|
|
673
|
+
}
|
|
629
674
|
return _context11.abrupt("return", data);
|
|
630
|
-
case
|
|
675
|
+
case 14:
|
|
631
676
|
case "end":
|
|
632
677
|
return _context11.stop();
|
|
633
678
|
}
|
|
@@ -642,12 +687,13 @@ var WalletObserver = exports.WalletObserver = /*#__PURE__*/function (_WalletObse
|
|
|
642
687
|
*/
|
|
643
688
|
_defineProperty(_this, "__metadataResolverWithCache", /*#__PURE__*/function () {
|
|
644
689
|
var _ref12 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee12(assetIds) {
|
|
645
|
-
var cachedKeys, inputKeys, attempts, newMetadata;
|
|
690
|
+
var start, cachedKeys, inputKeys, _end, attempts, newMetadata, end;
|
|
646
691
|
return _regeneratorRuntime().wrap(function _callee12$(_context12) {
|
|
647
692
|
while (1) switch (_context12.prev = _context12.next) {
|
|
648
693
|
case 0:
|
|
694
|
+
start = performance.now();
|
|
649
695
|
if (!_this._cachedMetadata) {
|
|
650
|
-
_context12.next =
|
|
696
|
+
_context12.next = 8;
|
|
651
697
|
break;
|
|
652
698
|
}
|
|
653
699
|
cachedKeys = new Set(_this._cachedMetadata.keys());
|
|
@@ -655,48 +701,56 @@ var WalletObserver = exports.WalletObserver = /*#__PURE__*/function (_WalletObse
|
|
|
655
701
|
if (!(cachedKeys.size === inputKeys.size && _toConsumableArray(cachedKeys).every(function (key) {
|
|
656
702
|
return inputKeys.has(key);
|
|
657
703
|
}))) {
|
|
658
|
-
_context12.next =
|
|
704
|
+
_context12.next = 8;
|
|
659
705
|
break;
|
|
660
706
|
}
|
|
707
|
+
_end = performance.now();
|
|
708
|
+
if (_this._options.debug) {
|
|
709
|
+
console.log("metadataResolver (cached): ".concat(_end - start, "ms"));
|
|
710
|
+
}
|
|
661
711
|
return _context12.abrupt("return", _this._cachedMetadata);
|
|
662
|
-
case
|
|
712
|
+
case 8:
|
|
663
713
|
attempts = 0;
|
|
664
|
-
case
|
|
714
|
+
case 9:
|
|
665
715
|
if (!(attempts <= 3 && !newMetadata)) {
|
|
666
|
-
_context12.next =
|
|
716
|
+
_context12.next = 21;
|
|
667
717
|
break;
|
|
668
718
|
}
|
|
669
|
-
_context12.prev =
|
|
670
|
-
_context12.next =
|
|
719
|
+
_context12.prev = 10;
|
|
720
|
+
_context12.next = 13;
|
|
671
721
|
return _this._options.metadataResolver(assetIds.map(_assets.normalizeAssetIdWithDot), _assets.normalizeAssetIdWithDot, _assets.isAdaAsset);
|
|
672
|
-
case
|
|
722
|
+
case 13:
|
|
673
723
|
newMetadata = _context12.sent;
|
|
674
|
-
_context12.next =
|
|
724
|
+
_context12.next = 19;
|
|
675
725
|
break;
|
|
676
|
-
case 13:
|
|
677
|
-
_context12.prev = 13;
|
|
678
|
-
_context12.t0 = _context12["catch"](7);
|
|
679
|
-
attempts++;
|
|
680
726
|
case 16:
|
|
681
|
-
_context12.
|
|
727
|
+
_context12.prev = 16;
|
|
728
|
+
_context12.t0 = _context12["catch"](10);
|
|
729
|
+
attempts++;
|
|
730
|
+
case 19:
|
|
731
|
+
_context12.next = 9;
|
|
682
732
|
break;
|
|
683
|
-
case
|
|
733
|
+
case 21:
|
|
684
734
|
if (newMetadata) {
|
|
685
|
-
_context12.next =
|
|
735
|
+
_context12.next = 25;
|
|
686
736
|
break;
|
|
687
737
|
}
|
|
688
|
-
_context12.next =
|
|
738
|
+
_context12.next = 24;
|
|
689
739
|
return _this.fallbackMetadataResolver(assetIds.map(_assets.normalizeAssetIdWithDot), _assets.normalizeAssetIdWithDot, _assets.isAdaAsset);
|
|
690
|
-
case
|
|
740
|
+
case 24:
|
|
691
741
|
newMetadata = _context12.sent;
|
|
692
|
-
case
|
|
742
|
+
case 25:
|
|
693
743
|
_this._cachedMetadata = newMetadata;
|
|
744
|
+
end = performance.now();
|
|
745
|
+
if (_this._options.debug) {
|
|
746
|
+
console.log("metadataResolver: ".concat(end - start, "ms"));
|
|
747
|
+
}
|
|
694
748
|
return _context12.abrupt("return", newMetadata);
|
|
695
|
-
case
|
|
749
|
+
case 29:
|
|
696
750
|
case "end":
|
|
697
751
|
return _context12.stop();
|
|
698
752
|
}
|
|
699
|
-
}, _callee12, null, [[
|
|
753
|
+
}, _callee12, null, [[10, 16]]);
|
|
700
754
|
}));
|
|
701
755
|
return function (_x3) {
|
|
702
756
|
return _ref12.apply(this, arguments);
|
|
@@ -735,6 +789,7 @@ var WalletObserver = exports.WalletObserver = /*#__PURE__*/function (_WalletObse
|
|
|
735
789
|
metadataResolver: _this.fallbackMetadataResolver,
|
|
736
790
|
persistence: false,
|
|
737
791
|
connectTimeout: 10000,
|
|
792
|
+
debug: false,
|
|
738
793
|
peerConnectArgs: {
|
|
739
794
|
dAppInfo: {
|
|
740
795
|
name: "Placeholder dApp Connecter Name",
|
|
@@ -785,6 +840,17 @@ var WalletObserver = exports.WalletObserver = /*#__PURE__*/function (_WalletObse
|
|
|
785
840
|
function isSyncing() {
|
|
786
841
|
return this._performingSync;
|
|
787
842
|
}
|
|
843
|
+
|
|
844
|
+
/**
|
|
845
|
+
* Helper method to check if the instance has an active connection.
|
|
846
|
+
*
|
|
847
|
+
* @returns {boolean}
|
|
848
|
+
*/
|
|
849
|
+
}, {
|
|
850
|
+
key: "hasActiveConnection",
|
|
851
|
+
value: function hasActiveConnection() {
|
|
852
|
+
return Boolean(this._activeWallet && this.api);
|
|
853
|
+
}
|
|
788
854
|
}, {
|
|
789
855
|
key: "getUtils",
|
|
790
856
|
value: (
|