@sundaeswap/wallet-lite 0.1.1 → 0.1.3

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.
Files changed (102) hide show
  1. package/dist/cjs/classes/ReadOnlyProvider.Blockfrost.class.js +22 -12
  2. package/dist/cjs/classes/ReadOnlyProvider.Blockfrost.class.js.map +1 -1
  3. package/dist/cjs/classes/WalletObserver.class.js +105 -17
  4. package/dist/cjs/classes/WalletObserver.class.js.map +1 -1
  5. package/dist/cjs/react-components/RenderWallet.js +2 -1
  6. package/dist/cjs/react-components/RenderWallet.js.map +1 -1
  7. package/dist/cjs/react-components/RenderWalletHandles.js +2 -1
  8. package/dist/cjs/react-components/RenderWalletHandles.js.map +1 -1
  9. package/dist/cjs/react-components/RenderWalletPeerConnect.js +2 -1
  10. package/dist/cjs/react-components/RenderWalletPeerConnect.js.map +1 -1
  11. package/dist/cjs/react-components/RenderWalletState.js +2 -1
  12. package/dist/cjs/react-components/RenderWalletState.js.map +1 -1
  13. package/dist/cjs/react-components/WalletObserverProvider/WalletObserverProvider.js +60 -3
  14. package/dist/cjs/react-components/WalletObserverProvider/WalletObserverProvider.js.map +1 -1
  15. package/dist/cjs/react-components/WalletObserverProvider/hooks/effects/useDerivedState.js +3 -1
  16. package/dist/cjs/react-components/WalletObserverProvider/hooks/effects/useDerivedState.js.map +1 -1
  17. package/dist/cjs/react-components/WalletObserverProvider/hooks/effects/useSyncWalletWithInterval.js +24 -4
  18. package/dist/cjs/react-components/WalletObserverProvider/hooks/effects/useSyncWalletWithInterval.js.map +1 -1
  19. package/dist/cjs/react-components/WalletObserverProvider/hooks/useWalletObserverState.js +38 -36
  20. package/dist/cjs/react-components/WalletObserverProvider/hooks/useWalletObserverState.js.map +1 -1
  21. package/dist/cjs/react-components/contexts/observer/context.js +40 -1
  22. package/dist/cjs/react-components/contexts/observer/context.js.map +1 -1
  23. package/dist/cjs/react-components/contexts/observer/types.js.map +1 -1
  24. package/dist/cjs/react-components/hooks/useWalletData.js +6 -5
  25. package/dist/cjs/react-components/hooks/useWalletData.js.map +1 -1
  26. package/dist/cjs/react-components/hooks/useWalletHandles.js +11 -7
  27. package/dist/cjs/react-components/hooks/useWalletHandles.js.map +1 -1
  28. package/dist/cjs/react-components/hooks/useWalletLoadingState.js +6 -7
  29. package/dist/cjs/react-components/hooks/useWalletLoadingState.js.map +1 -1
  30. package/dist/cjs/react-components/hooks/useWalletPeerConnect.js +18 -12
  31. package/dist/cjs/react-components/hooks/useWalletPeerConnect.js.map +1 -1
  32. package/dist/esm/classes/ReadOnlyProvider.Blockfrost.class.js +11 -6
  33. package/dist/esm/classes/ReadOnlyProvider.Blockfrost.class.js.map +1 -1
  34. package/dist/esm/classes/WalletObserver.class.js +79 -1
  35. package/dist/esm/classes/WalletObserver.class.js.map +1 -1
  36. package/dist/esm/react-components/RenderWallet.js +3 -2
  37. package/dist/esm/react-components/RenderWallet.js.map +1 -1
  38. package/dist/esm/react-components/RenderWalletHandles.js +3 -2
  39. package/dist/esm/react-components/RenderWalletHandles.js.map +1 -1
  40. package/dist/esm/react-components/RenderWalletPeerConnect.js +3 -2
  41. package/dist/esm/react-components/RenderWalletPeerConnect.js.map +1 -1
  42. package/dist/esm/react-components/RenderWalletState.js +3 -2
  43. package/dist/esm/react-components/RenderWalletState.js.map +1 -1
  44. package/dist/esm/react-components/WalletObserverProvider/WalletObserverProvider.js +55 -4
  45. package/dist/esm/react-components/WalletObserverProvider/WalletObserverProvider.js.map +1 -1
  46. package/dist/esm/react-components/WalletObserverProvider/hooks/effects/useDerivedState.js +1 -1
  47. package/dist/esm/react-components/WalletObserverProvider/hooks/effects/useDerivedState.js.map +1 -1
  48. package/dist/esm/react-components/WalletObserverProvider/hooks/effects/useSyncWalletWithInterval.js +2 -2
  49. package/dist/esm/react-components/WalletObserverProvider/hooks/effects/useSyncWalletWithInterval.js.map +1 -1
  50. package/dist/esm/react-components/WalletObserverProvider/hooks/useWalletObserverState.js +4 -4
  51. package/dist/esm/react-components/WalletObserverProvider/hooks/useWalletObserverState.js.map +1 -1
  52. package/dist/esm/react-components/contexts/observer/context.js +36 -0
  53. package/dist/esm/react-components/contexts/observer/context.js.map +1 -1
  54. package/dist/esm/react-components/contexts/observer/types.js.map +1 -1
  55. package/dist/esm/react-components/hooks/useWalletData.js +7 -5
  56. package/dist/esm/react-components/hooks/useWalletData.js.map +1 -1
  57. package/dist/esm/react-components/hooks/useWalletHandles.js +11 -5
  58. package/dist/esm/react-components/hooks/useWalletHandles.js.map +1 -1
  59. package/dist/esm/react-components/hooks/useWalletLoadingState.js +7 -9
  60. package/dist/esm/react-components/hooks/useWalletLoadingState.js.map +1 -1
  61. package/dist/esm/react-components/hooks/useWalletPeerConnect.js +14 -11
  62. package/dist/esm/react-components/hooks/useWalletPeerConnect.js.map +1 -1
  63. package/dist/types/classes/ReadOnlyProvider.Blockfrost.class.d.ts.map +1 -1
  64. package/dist/types/classes/WalletObserver.class.d.ts +11 -0
  65. package/dist/types/classes/WalletObserver.class.d.ts.map +1 -1
  66. package/dist/types/react-components/RenderWallet.d.ts +0 -6
  67. package/dist/types/react-components/RenderWallet.d.ts.map +1 -1
  68. package/dist/types/react-components/RenderWalletHandles.d.ts +0 -5
  69. package/dist/types/react-components/RenderWalletHandles.d.ts.map +1 -1
  70. package/dist/types/react-components/RenderWalletPeerConnect.d.ts +0 -5
  71. package/dist/types/react-components/RenderWalletPeerConnect.d.ts.map +1 -1
  72. package/dist/types/react-components/RenderWalletState.d.ts +1 -7
  73. package/dist/types/react-components/RenderWalletState.d.ts.map +1 -1
  74. package/dist/types/react-components/WalletObserverProvider/WalletObserverProvider.d.ts.map +1 -1
  75. package/dist/types/react-components/WalletObserverProvider/hooks/effects/useDerivedState.d.ts.map +1 -1
  76. package/dist/types/react-components/WalletObserverProvider/hooks/useWalletObserverState.d.ts.map +1 -1
  77. package/dist/types/react-components/contexts/observer/context.d.ts +16 -1
  78. package/dist/types/react-components/contexts/observer/context.d.ts.map +1 -1
  79. package/dist/types/react-components/contexts/observer/types.d.ts +48 -1
  80. package/dist/types/react-components/contexts/observer/types.d.ts.map +1 -1
  81. package/dist/types/react-components/hooks/useWalletHandles.d.ts.map +1 -1
  82. package/dist/types/react-components/hooks/useWalletLoadingState.d.ts +1 -2
  83. package/dist/types/react-components/hooks/useWalletLoadingState.d.ts.map +1 -1
  84. package/dist/types/react-components/hooks/useWalletPeerConnect.d.ts.map +1 -1
  85. package/dist/types/tsconfig.build.tsbuildinfo +1 -1
  86. package/package.json +3 -3
  87. package/src/classes/ReadOnlyProvider.Blockfrost.class.ts +22 -8
  88. package/src/classes/WalletObserver.class.ts +97 -1
  89. package/src/react-components/RenderWallet.tsx +4 -2
  90. package/src/react-components/RenderWalletHandles.tsx +6 -2
  91. package/src/react-components/RenderWalletPeerConnect.tsx +6 -2
  92. package/src/react-components/RenderWalletState.tsx +8 -4
  93. package/src/react-components/WalletObserverProvider/WalletObserverProvider.tsx +92 -4
  94. package/src/react-components/WalletObserverProvider/hooks/effects/useDerivedState.ts +5 -2
  95. package/src/react-components/WalletObserverProvider/hooks/effects/useSyncWalletWithInterval.ts +2 -2
  96. package/src/react-components/WalletObserverProvider/hooks/useWalletObserverState.ts +67 -37
  97. package/src/react-components/contexts/observer/context.ts +71 -1
  98. package/src/react-components/contexts/observer/types.ts +57 -1
  99. package/src/react-components/hooks/useWalletData.ts +5 -5
  100. package/src/react-components/hooks/useWalletHandles.ts +13 -8
  101. package/src/react-components/hooks/useWalletLoadingState.ts +13 -11
  102. package/src/react-components/hooks/useWalletPeerConnect.tsx +20 -11
@@ -28,7 +28,7 @@ var ReadOnlyBlockfrostProvider = exports.ReadOnlyBlockfrostProvider = /*#__PURE_
28
28
  key: "getBalance",
29
29
  value: function () {
30
30
  var _getBalance = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(address, network) {
31
- var result, value;
31
+ var response, result, value;
32
32
  return _regeneratorRuntime().wrap(function _callee$(_context) {
33
33
  while (1) switch (_context.prev = _context.next) {
34
34
  case 0:
@@ -37,15 +37,23 @@ var ReadOnlyBlockfrostProvider = exports.ReadOnlyBlockfrostProvider = /*#__PURE_
37
37
  headers: {
38
38
  project_id: this.blockfrostProjectId
39
39
  }
40
- }).then(function (res) {
41
- return res.json();
42
40
  });
43
41
  case 2:
42
+ response = _context.sent;
43
+ _context.next = 5;
44
+ return response.json();
45
+ case 5:
44
46
  result = _context.sent;
47
+ if (!(!response.ok || "error" in result)) {
48
+ _context.next = 8;
49
+ break;
50
+ }
51
+ throw new Error("Blockfrost getBalance failed: ".concat(result.message || result.error || response.statusText));
52
+ case 8:
45
53
  // Build our value.
46
54
  value = this.__getValueFromAmount(result.amount); // Return the cbor.
47
55
  return _context.abrupt("return", value.toCbor());
48
- case 5:
56
+ case 10:
49
57
  case "end":
50
58
  return _context.stop();
51
59
  }
@@ -61,7 +69,7 @@ var ReadOnlyBlockfrostProvider = exports.ReadOnlyBlockfrostProvider = /*#__PURE_
61
69
  value: function () {
62
70
  var _getUtxos = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(address, network) {
63
71
  var _this = this;
64
- var result, formatted;
72
+ var response, result, formatted;
65
73
  return _regeneratorRuntime().wrap(function _callee2$(_context2) {
66
74
  while (1) switch (_context2.prev = _context2.next) {
67
75
  case 0:
@@ -70,17 +78,19 @@ var ReadOnlyBlockfrostProvider = exports.ReadOnlyBlockfrostProvider = /*#__PURE_
70
78
  headers: {
71
79
  project_id: this.blockfrostProjectId
72
80
  }
73
- }).then(function (res) {
74
- return res.json();
75
81
  });
76
82
  case 2:
83
+ response = _context2.sent;
84
+ _context2.next = 5;
85
+ return response.json();
86
+ case 5:
77
87
  result = _context2.sent;
78
- if (!("error" in result)) {
79
- _context2.next = 5;
88
+ if (!(!response.ok || "error" in result)) {
89
+ _context2.next = 8;
80
90
  break;
81
91
  }
82
- return _context2.abrupt("return", []);
83
- case 5:
92
+ throw new Error("Blockfrost getUtxos failed: ".concat(result.message || result.error || response.statusText));
93
+ case 8:
84
94
  formatted = result.map(function (r) {
85
95
  return _core.Serialization.TransactionUnspentOutput.fromCore([_core.Serialization.TransactionInput.fromCore({
86
96
  index: r.output_index,
@@ -93,7 +103,7 @@ var ReadOnlyBlockfrostProvider = exports.ReadOnlyBlockfrostProvider = /*#__PURE_
93
103
  }).toCore()]).toCbor();
94
104
  });
95
105
  return _context2.abrupt("return", formatted);
96
- case 7:
106
+ case 10:
97
107
  case "end":
98
108
  return _context2.stop();
99
109
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ReadOnlyProvider.Blockfrost.class.js","names":["_core","require","_crypto","_util","_typeof","o","Symbol","iterator","constructor","prototype","_regeneratorRuntime","e","t","r","Object","n","hasOwnProperty","defineProperty","value","i","a","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","length","displayName","isGeneratorFunction","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","_catch","delegateYield","asyncGeneratorStep","_asyncToGenerator","arguments","apply","_next","_throw","_classCallCheck","_defineProperties","_toPropertyKey","key","_createClass","_defineProperty","_toPrimitive","toPrimitive","String","Number","ReadOnlyBlockfrostProvider","exports","blockfrostProjectId","_getBalance","_callee","address","network","result","_callee$","_context","fetch","concat","headers","project_id","res","json","__getValueFromAmount","amount","toCbor","getBalance","_x","_x2","_getUtxos","_callee2","_this","formatted","_callee2$","_context2","map","Serialization","TransactionUnspentOutput","fromCore","TransactionInput","index","output_index","txId","Cardano","TransactionId","tx_hash","toCore","TransactionOutput","PaymentAddress","datum","inline_datum","PlutusData","fromCbor","HexBlob","undefined","datumHash","data_hash","Hash32ByteBase16","getUtxos","_x3","_x4","unit","quantity","lovelace","find","assets","filter","tokenMap","Map","asset","matchingEntry","get","AssetId","set","BigInt","Value","coins"],"sources":["../../../src/classes/ReadOnlyProvider.Blockfrost.class.ts"],"sourcesContent":["import type { BlockFrostAPI, Responses } from \"@blockfrost/blockfrost-js\";\nimport { Cardano, Serialization } from \"@cardano-sdk/core\";\nimport { Hash32ByteBase16 } from \"@cardano-sdk/crypto\";\n\nimport { HexBlob } from \"@cardano-sdk/util\";\nimport { ReadOnlyProvider } from \"./ReadOnlyProvider.Abstract.class.js\";\n\nexport class ReadOnlyBlockfrostProvider implements ReadOnlyProvider {\n blockfrostProjectId: string;\n api?: BlockFrostAPI;\n\n constructor(blockfrostProjectId: string) {\n this.blockfrostProjectId = blockfrostProjectId;\n }\n\n async getBalance(address: string, network: 0 | 1) {\n const result: Responses[\"address_content\"] = await fetch(\n `https://cardano-${network ? \"mainnet\" : \"preview\"}.blockfrost.io/api/v0/addresses/${address}`,\n {\n headers: {\n project_id: this.blockfrostProjectId,\n },\n },\n ).then((res) => res.json());\n\n // Build our value.\n const value = this.__getValueFromAmount(result.amount);\n\n // Return the cbor.\n return value.toCbor();\n }\n\n async getUtxos(address: string, network: 0 | 1) {\n const result: Responses[\"address_utxo_content\"] = await fetch(\n `https://cardano-${network ? \"mainnet\" : \"preview\"}.blockfrost.io/api/v0/addresses/${address}/utxos`,\n {\n headers: {\n project_id: this.blockfrostProjectId,\n },\n },\n ).then((res) => res.json());\n\n if (\"error\" in result) {\n return [];\n }\n\n const formatted = result.map((r) => {\n return Serialization.TransactionUnspentOutput.fromCore([\n Serialization.TransactionInput.fromCore({\n index: r.output_index,\n txId: Cardano.TransactionId(r.tx_hash),\n }).toCore(),\n Serialization.TransactionOutput.fromCore({\n address: Cardano.PaymentAddress(r.address),\n value: this.__getValueFromAmount(r.amount).toCore(),\n datum: r.inline_datum\n ? Serialization.PlutusData.fromCbor(\n HexBlob(r.inline_datum),\n ).toCore()\n : undefined,\n datumHash: r.data_hash ? Hash32ByteBase16(r.data_hash) : undefined,\n }).toCore(),\n ]).toCbor();\n });\n\n return formatted;\n }\n\n private __getValueFromAmount(amount?: { unit: string; quantity: string }[]) {\n if (!amount) {\n amount = [\n {\n unit: \"lovelace\",\n quantity: \"0\",\n },\n ];\n }\n\n const lovelace = amount.find((a) => a.unit === \"lovelace\");\n const assets = amount.filter((a) => a.unit !== \"lovelace\");\n\n // Build our token map.\n const tokenMap = new Map<Cardano.AssetId, bigint>();\n assets.forEach((asset) => {\n const matchingEntry = tokenMap.get(Cardano.AssetId(asset.unit)) || 0n;\n tokenMap.set(\n Cardano.AssetId(asset.unit),\n BigInt(asset.quantity) + matchingEntry,\n );\n });\n\n // Build our value.\n const value = Serialization.Value.fromCore({\n coins: BigInt(lovelace?.quantity || 0),\n assets: tokenMap,\n });\n\n return value;\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"ReadOnlyProvider.Blockfrost.class.js","names":["_core","require","_crypto","_util","_typeof","o","Symbol","iterator","constructor","prototype","_regeneratorRuntime","e","t","r","Object","n","hasOwnProperty","defineProperty","value","i","a","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","length","displayName","isGeneratorFunction","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","_catch","delegateYield","asyncGeneratorStep","_asyncToGenerator","arguments","apply","_next","_throw","_classCallCheck","_defineProperties","_toPropertyKey","key","_createClass","_defineProperty","_toPrimitive","toPrimitive","String","Number","ReadOnlyBlockfrostProvider","exports","blockfrostProjectId","_getBalance","_callee","address","network","response","result","_callee$","_context","fetch","concat","headers","project_id","json","ok","message","error","statusText","__getValueFromAmount","amount","toCbor","getBalance","_x","_x2","_getUtxos","_callee2","_this","formatted","_callee2$","_context2","map","Serialization","TransactionUnspentOutput","fromCore","TransactionInput","index","output_index","txId","Cardano","TransactionId","tx_hash","toCore","TransactionOutput","PaymentAddress","datum","inline_datum","PlutusData","fromCbor","HexBlob","undefined","datumHash","data_hash","Hash32ByteBase16","getUtxos","_x3","_x4","unit","quantity","lovelace","find","assets","filter","tokenMap","Map","asset","matchingEntry","get","AssetId","set","BigInt","Value","coins"],"sources":["../../../src/classes/ReadOnlyProvider.Blockfrost.class.ts"],"sourcesContent":["import type { BlockFrostAPI, Responses } from \"@blockfrost/blockfrost-js\";\nimport { Cardano, Serialization } from \"@cardano-sdk/core\";\nimport { Hash32ByteBase16 } from \"@cardano-sdk/crypto\";\n\nimport { HexBlob } from \"@cardano-sdk/util\";\nimport { ReadOnlyProvider } from \"./ReadOnlyProvider.Abstract.class.js\";\n\nexport class ReadOnlyBlockfrostProvider implements ReadOnlyProvider {\n blockfrostProjectId: string;\n api?: BlockFrostAPI;\n\n constructor(blockfrostProjectId: string) {\n this.blockfrostProjectId = blockfrostProjectId;\n }\n\n async getBalance(address: string, network: 0 | 1) {\n const response = await fetch(\n `https://cardano-${network ? \"mainnet\" : \"preview\"}.blockfrost.io/api/v0/addresses/${address}`,\n {\n headers: {\n project_id: this.blockfrostProjectId,\n },\n },\n );\n\n const result = await response.json();\n\n if (!response.ok || \"error\" in result) {\n throw new Error(\n `Blockfrost getBalance failed: ${result.message || result.error || response.statusText}`,\n );\n }\n\n // Build our value.\n const value = this.__getValueFromAmount(\n (result as Responses[\"address_content\"]).amount,\n );\n\n // Return the cbor.\n return value.toCbor();\n }\n\n async getUtxos(address: string, network: 0 | 1) {\n const response = await fetch(\n `https://cardano-${network ? \"mainnet\" : \"preview\"}.blockfrost.io/api/v0/addresses/${address}/utxos`,\n {\n headers: {\n project_id: this.blockfrostProjectId,\n },\n },\n );\n\n const result = await response.json();\n\n if (!response.ok || \"error\" in result) {\n throw new Error(\n `Blockfrost getUtxos failed: ${result.message || result.error || response.statusText}`,\n );\n }\n\n const formatted = (result as Responses[\"address_utxo_content\"]).map((r) => {\n return Serialization.TransactionUnspentOutput.fromCore([\n Serialization.TransactionInput.fromCore({\n index: r.output_index,\n txId: Cardano.TransactionId(r.tx_hash),\n }).toCore(),\n Serialization.TransactionOutput.fromCore({\n address: Cardano.PaymentAddress(r.address),\n value: this.__getValueFromAmount(r.amount).toCore(),\n datum: r.inline_datum\n ? Serialization.PlutusData.fromCbor(\n HexBlob(r.inline_datum),\n ).toCore()\n : undefined,\n datumHash: r.data_hash ? Hash32ByteBase16(r.data_hash) : undefined,\n }).toCore(),\n ]).toCbor();\n });\n\n return formatted;\n }\n\n private __getValueFromAmount(amount?: { unit: string; quantity: string }[]) {\n if (!amount) {\n amount = [\n {\n unit: \"lovelace\",\n quantity: \"0\",\n },\n ];\n }\n\n const lovelace = amount.find((a) => a.unit === \"lovelace\");\n const assets = amount.filter((a) => a.unit !== \"lovelace\");\n\n // Build our token map.\n const tokenMap = new Map<Cardano.AssetId, bigint>();\n assets.forEach((asset) => {\n const matchingEntry = tokenMap.get(Cardano.AssetId(asset.unit)) || 0n;\n tokenMap.set(\n Cardano.AssetId(asset.unit),\n BigInt(asset.quantity) + matchingEntry,\n );\n });\n\n // Build our value.\n const value = Serialization.Value.fromCore({\n coins: BigInt(lovelace?.quantity || 0),\n assets: tokenMap,\n });\n\n return value;\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -78,9 +78,18 @@ var WalletObserver = exports.WalletObserver = /*#__PURE__*/function (_WalletObse
78
78
  _defineProperty(_this, "utils", void 0);
79
79
  _defineProperty(_this, "peerConnectInstance", void 0);
80
80
  _defineProperty(_this, "_performingSync", false);
81
+ _defineProperty(_this, "_syncQueue", Promise.resolve());
81
82
  _defineProperty(_this, "_options", void 0);
82
83
  // Caching
83
84
  _defineProperty(_this, "_cachedMetadata", new Map());
85
+ _defineProperty(_this, "_lastBalanceCbor", null);
86
+ _defineProperty(_this, "_lastBalanceMap", null);
87
+ _defineProperty(_this, "_lastUsedAddressesCbor", null);
88
+ _defineProperty(_this, "_lastUsedAddresses", null);
89
+ _defineProperty(_this, "_lastUnusedAddressesCbor", null);
90
+ _defineProperty(_this, "_lastUnusedAddresses", null);
91
+ _defineProperty(_this, "_lastChangeAddressCbor", null);
92
+ _defineProperty(_this, "_lastChangeAddress", null);
84
93
  // AbortController for cancelling in-flight metadata fetches when metadataResolver changes
85
94
  _defineProperty(_this, "_metadataAbortController", null);
86
95
  /**
@@ -95,7 +104,16 @@ var WalletObserver = exports.WalletObserver = /*#__PURE__*/function (_WalletObse
95
104
  *
96
105
  * @returns {Promise<IWalletObserverSync<AssetMetadata>>} - A promise that resolves to the wallet sync data.
97
106
  */
98
- _defineProperty(_this, "sync", /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
107
+ _defineProperty(_this, "sync", function () {
108
+ var pending = _this._syncQueue.then(function () {
109
+ return _this._doSync();
110
+ });
111
+ // Chain onto queue but swallow rejections in the queue itself
112
+ // so a failed sync doesn't block subsequent syncs.
113
+ _this._syncQueue = pending["catch"](function () {});
114
+ return pending;
115
+ });
116
+ _defineProperty(_this, "_doSync", /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
99
117
  var start, newBalanceMap, _yield$Promise$all, _yield$Promise$all2, newNetwork, newUsedAddresses, newUnusedAddresses, newOutputs, newCollateral, newFeeAddress, newChangeAddress, result, end;
100
118
  return _regeneratorRuntime().wrap(function _callee$(_context) {
101
119
  while (1) switch (_context.prev = _context.next) {
@@ -302,6 +320,8 @@ var WalletObserver = exports.WalletObserver = /*#__PURE__*/function (_WalletObse
302
320
  var _this$_metadataAbortC;
303
321
  (_this$_metadataAbortC = _this._metadataAbortController) === null || _this$_metadataAbortC === void 0 || _this$_metadataAbortC.abort();
304
322
  _this._cachedMetadata = new Map();
323
+ _this._lastBalanceCbor = null;
324
+ _this._lastBalanceMap = null;
305
325
 
306
326
  // Trigger a new sync if there's an active connection
307
327
  if (_this.hasActiveConnection() && !_this._performingSync) {
@@ -459,15 +479,17 @@ var WalletObserver = exports.WalletObserver = /*#__PURE__*/function (_WalletObse
459
479
  (_this$_metadataAbortC2 = _this._metadataAbortController) === null || _this$_metadataAbortC2 === void 0 || _this$_metadataAbortC2.abort();
460
480
  // Clear the cache
461
481
  _this._cachedMetadata = new Map();
482
+ _this._lastBalanceCbor = null;
483
+ _this._lastBalanceMap = null;
462
484
 
463
485
  // Trigger a new sync if there's an active connection
464
486
  if (!_this.hasActiveConnection()) {
465
- _context5.next = 5;
487
+ _context5.next = 7;
466
488
  break;
467
489
  }
468
- _context5.next = 5;
490
+ _context5.next = 7;
469
491
  return _this.sync();
470
- case 5:
492
+ case 7:
471
493
  case "end":
472
494
  return _context5.stop();
473
495
  }
@@ -478,9 +500,20 @@ var WalletObserver = exports.WalletObserver = /*#__PURE__*/function (_WalletObse
478
500
  *
479
501
  * @returns {void}
480
502
  */
503
+ _defineProperty(_this, "_clearSyncCaches", function () {
504
+ _this._lastBalanceCbor = null;
505
+ _this._lastBalanceMap = null;
506
+ _this._lastUsedAddressesCbor = null;
507
+ _this._lastUsedAddresses = null;
508
+ _this._lastUnusedAddressesCbor = null;
509
+ _this._lastUnusedAddresses = null;
510
+ _this._lastChangeAddressCbor = null;
511
+ _this._lastChangeAddress = null;
512
+ });
481
513
  _defineProperty(_this, "disconnect", function () {
482
514
  _this.activeWallet = undefined;
483
515
  _this.api = undefined;
516
+ _this._clearSyncCaches();
484
517
  window.localStorage.removeItem(WalletObserver.PERSISTENCE_CACHE_KEY);
485
518
  _this.dispatch(_events.EWalletObserverEvents.DISCONNECT);
486
519
  });
@@ -490,7 +523,7 @@ var WalletObserver = exports.WalletObserver = /*#__PURE__*/function (_WalletObse
490
523
  * @returns {Promise<string | Error>} The change address, or an error.
491
524
  */
492
525
  _defineProperty(_this, "getChangeAddress", /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee6() {
493
- var start, _yield$Promise$all3, _yield$Promise$all4, Cardano, typedHex, cbor, data, end;
526
+ var start, _yield$Promise$all3, _yield$Promise$all4, Cardano, typedHex, cbor, _end, data, end;
494
527
  return _regeneratorRuntime().wrap(function _callee6$(_context6) {
495
528
  while (1) switch (_context6.prev = _context6.next) {
496
529
  case 0:
@@ -520,13 +553,25 @@ var WalletObserver = exports.WalletObserver = /*#__PURE__*/function (_WalletObse
520
553
  _context6.t0 = _context6["catch"](9);
521
554
  return _context6.abrupt("return", _context6.t0);
522
555
  case 18:
556
+ if (!(cbor === _this._lastChangeAddressCbor && _this._lastChangeAddress)) {
557
+ _context6.next = 22;
558
+ break;
559
+ }
560
+ _end = performance.now();
561
+ if (_this._options.debug) {
562
+ console.log("getChangeAddress (cached): ".concat(_end - start, "ms"));
563
+ }
564
+ return _context6.abrupt("return", _this._lastChangeAddress);
565
+ case 22:
523
566
  data = Cardano.Address.fromBytes(typedHex(cbor)).toBech32();
567
+ _this._lastChangeAddressCbor = cbor;
568
+ _this._lastChangeAddress = data;
524
569
  end = performance.now();
525
570
  if (_this._options.debug) {
526
571
  console.log("getChangeAddress: ".concat(end - start, "ms"));
527
572
  }
528
573
  return _context6.abrupt("return", data);
529
- case 22:
574
+ case 28:
530
575
  case "end":
531
576
  return _context6.stop();
532
577
  }
@@ -539,7 +584,7 @@ var WalletObserver = exports.WalletObserver = /*#__PURE__*/function (_WalletObse
539
584
  */
540
585
  _defineProperty(_this, "getBalanceMap", /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee7() {
541
586
  var _data$multiasset$keys, _data$multiasset, _data$multiasset$entr, _data$multiasset2;
542
- var start, _yield$Promise$all5, _yield$Promise$all6, Serialization, typedHex, cbor, data, multiassetKeys, metadata, balanceMap, multiassetEntries, _iterator, _step, _step$value, id, amount, end;
587
+ var start, _yield$Promise$all5, _yield$Promise$all6, Serialization, typedHex, cbor, _end2, data, multiassetKeys, metadata, balanceMap, multiassetEntries, _iterator, _step, _step$value, id, amount, end;
543
588
  return _regeneratorRuntime().wrap(function _callee7$(_context7) {
544
589
  while (1) switch (_context7.prev = _context7.next) {
545
590
  case 0:
@@ -570,11 +615,24 @@ var WalletObserver = exports.WalletObserver = /*#__PURE__*/function (_WalletObse
570
615
  _context7.t0 = _context7["catch"](10);
571
616
  return _context7.abrupt("return", _context7.t0);
572
617
  case 19:
618
+ if (!(cbor === _this._lastBalanceCbor && _this._lastBalanceMap)) {
619
+ _context7.next = 24;
620
+ break;
621
+ }
622
+ _this.dispatch(_events.EWalletObserverEvents.GET_BALANCE_MAP_END, {
623
+ balanceMap: _this._lastBalanceMap
624
+ });
625
+ _end2 = performance.now();
626
+ if (_this._options.debug) {
627
+ console.log("getBalanceMap (cached): ".concat(_end2 - start, "ms"));
628
+ }
629
+ return _context7.abrupt("return", _this._lastBalanceMap);
630
+ case 24:
573
631
  data = Serialization.Value.fromCbor(typedHex(cbor));
574
632
  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 : [];
575
- _context7.next = 23;
633
+ _context7.next = 28;
576
634
  return _this.__metadataResolverWithCache([_constants.ADA_ASSET_ID].concat(_toConsumableArray(multiassetKeys)));
577
- case 23:
635
+ case 28:
578
636
  metadata = _context7.sent;
579
637
  balanceMap = new _WalletBalanceMapClass.WalletBalanceMap(_this);
580
638
  balanceMap.set(_constants.ADA_ASSET_ID, new _asset.AssetAmount(data.coin(), metadata.get(_constants.ADA_ASSET_ID)));
@@ -592,6 +650,8 @@ var WalletObserver = exports.WalletObserver = /*#__PURE__*/function (_WalletObse
592
650
  _iterator.f();
593
651
  }
594
652
  }
653
+ _this._lastBalanceCbor = cbor;
654
+ _this._lastBalanceMap = balanceMap;
595
655
  _this.dispatch(_events.EWalletObserverEvents.GET_BALANCE_MAP_END, {
596
656
  balanceMap: balanceMap
597
657
  });
@@ -600,7 +660,7 @@ var WalletObserver = exports.WalletObserver = /*#__PURE__*/function (_WalletObse
600
660
  console.log("getBalanceMap: ".concat(end - start, "ms"));
601
661
  }
602
662
  return _context7.abrupt("return", balanceMap);
603
- case 32:
663
+ case 39:
604
664
  case "end":
605
665
  return _context7.stop();
606
666
  }
@@ -653,7 +713,7 @@ var WalletObserver = exports.WalletObserver = /*#__PURE__*/function (_WalletObse
653
713
  * @returns {Promise<string[]>} The list of addresses.
654
714
  */
655
715
  _defineProperty(_this, "getUsedAddresses", /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee9() {
656
- var start, _yield$Promise$all7, _yield$Promise$all8, Cardano, typedHex, cbor, data, end;
716
+ var start, _yield$Promise$all7, _yield$Promise$all8, Cardano, typedHex, cbor, _end3, data, end;
657
717
  return _regeneratorRuntime().wrap(function _callee9$(_context9) {
658
718
  while (1) switch (_context9.prev = _context9.next) {
659
719
  case 0:
@@ -683,15 +743,29 @@ var WalletObserver = exports.WalletObserver = /*#__PURE__*/function (_WalletObse
683
743
  _context9.t0 = _context9["catch"](9);
684
744
  return _context9.abrupt("return", _context9.t0);
685
745
  case 18:
746
+ if (!(_this._lastUsedAddressesCbor && _this._lastUsedAddresses && cbor.length === _this._lastUsedAddressesCbor.length && cbor.every(function (v, i) {
747
+ return v === _this._lastUsedAddressesCbor[i];
748
+ }))) {
749
+ _context9.next = 22;
750
+ break;
751
+ }
752
+ _end3 = performance.now();
753
+ if (_this._options.debug) {
754
+ console.log("getUsedAddresses (cached): ".concat(_end3 - start, "ms"));
755
+ }
756
+ return _context9.abrupt("return", _this._lastUsedAddresses);
757
+ case 22:
686
758
  data = cbor.map(function (val) {
687
759
  return Cardano.Address.fromBytes(typedHex(val)).toBech32();
688
760
  });
761
+ _this._lastUsedAddressesCbor = cbor;
762
+ _this._lastUsedAddresses = data;
689
763
  end = performance.now();
690
764
  if (_this._options.debug) {
691
765
  console.log("getUsedAddresses: ".concat(end - start, "ms"));
692
766
  }
693
767
  return _context9.abrupt("return", data);
694
- case 22:
768
+ case 28:
695
769
  case "end":
696
770
  return _context9.stop();
697
771
  }
@@ -703,7 +777,7 @@ var WalletObserver = exports.WalletObserver = /*#__PURE__*/function (_WalletObse
703
777
  * @returns {Promise<string[] | Error>} The list of addresses or an Error returned by the wallet.
704
778
  */
705
779
  _defineProperty(_this, "getUnusedAddresses", /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee10() {
706
- var start, _yield$Promise$all9, _yield$Promise$all10, Cardano, typedHex, cbor, data, end;
780
+ var start, _yield$Promise$all9, _yield$Promise$all10, Cardano, typedHex, cbor, _end4, data, end;
707
781
  return _regeneratorRuntime().wrap(function _callee10$(_context10) {
708
782
  while (1) switch (_context10.prev = _context10.next) {
709
783
  case 0:
@@ -733,15 +807,29 @@ var WalletObserver = exports.WalletObserver = /*#__PURE__*/function (_WalletObse
733
807
  _context10.t0 = _context10["catch"](9);
734
808
  return _context10.abrupt("return", _context10.t0);
735
809
  case 18:
810
+ if (!(_this._lastUnusedAddressesCbor && _this._lastUnusedAddresses && cbor.length === _this._lastUnusedAddressesCbor.length && cbor.every(function (v, i) {
811
+ return v === _this._lastUnusedAddressesCbor[i];
812
+ }))) {
813
+ _context10.next = 22;
814
+ break;
815
+ }
816
+ _end4 = performance.now();
817
+ if (_this._options.debug) {
818
+ console.log("getUnusedAddresses (cached): ".concat(_end4 - start, "ms"));
819
+ }
820
+ return _context10.abrupt("return", _this._lastUnusedAddresses);
821
+ case 22:
736
822
  data = cbor.map(function (val) {
737
823
  return Cardano.Address.fromBytes(typedHex(val)).toBech32();
738
824
  });
825
+ _this._lastUnusedAddressesCbor = cbor;
826
+ _this._lastUnusedAddresses = data;
739
827
  end = performance.now();
740
828
  if (_this._options.debug) {
741
829
  console.log("getUnusedAddresses: ".concat(end - start, "ms"));
742
830
  }
743
831
  return _context10.abrupt("return", data);
744
- case 22:
832
+ case 28:
745
833
  case "end":
746
834
  return _context10.stop();
747
835
  }
@@ -914,7 +1002,7 @@ var WalletObserver = exports.WalletObserver = /*#__PURE__*/function (_WalletObse
914
1002
  _defineProperty(_this, "__metadataResolverWithCache", /*#__PURE__*/function () {
915
1003
  var _ref14 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee14(assetIds) {
916
1004
  var _this$_metadataAbortC3;
917
- var start, cachedKeys, inputKeys, _end, currentController, attempts, newMetadata, end;
1005
+ var start, cachedKeys, inputKeys, _end5, currentController, attempts, newMetadata, end;
918
1006
  return _regeneratorRuntime().wrap(function _callee14$(_context14) {
919
1007
  while (1) switch (_context14.prev = _context14.next) {
920
1008
  case 0:
@@ -931,9 +1019,9 @@ var WalletObserver = exports.WalletObserver = /*#__PURE__*/function (_WalletObse
931
1019
  _context14.next = 8;
932
1020
  break;
933
1021
  }
934
- _end = performance.now();
1022
+ _end5 = performance.now();
935
1023
  if (_this._options.debug) {
936
- console.log("metadataResolver (cached): ".concat(_end - start, "ms"));
1024
+ console.log("metadataResolver (cached): ".concat(_end5 - start, "ms"));
937
1025
  }
938
1026
  return _context14.abrupt("return", _this._cachedMetadata);
939
1027
  case 8: