@sundaeswap/wallet-lite 0.0.14 → 0.0.16
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 +73 -32
- package/dist/cjs/classes/WalletObserver.class.js.map +1 -1
- package/dist/cjs/react-components/WalletObserverProvider/hooks/useWalletObserverState.js +30 -10
- 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/useWalletObserver.js +2 -1
- 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 +26 -1
- package/dist/esm/classes/WalletObserver.class.js.map +1 -1
- package/dist/esm/react-components/WalletObserverProvider/hooks/useWalletObserverState.js +12 -0
- 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/useWalletObserver.js +2 -1
- package/dist/esm/react-components/hooks/useWalletObserver.js.map +1 -1
- package/dist/types/@types/observer.d.ts +3 -1
- package/dist/types/@types/observer.d.ts.map +1 -1
- package/dist/types/classes/WalletObserver.class.d.ts +7 -0
- package/dist/types/classes/WalletObserver.class.d.ts.map +1 -1
- package/dist/types/react-components/WalletObserverProvider/hooks/useWalletObserverState.d.ts +3 -0
- package/dist/types/react-components/WalletObserverProvider/hooks/useWalletObserverState.d.ts.map +1 -1
- package/dist/types/react-components/contexts/observer/types.d.ts +4 -1
- package/dist/types/react-components/contexts/observer/types.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 +12 -3
- package/src/__data__/eternl.ts +18 -0
- package/src/classes/WalletObserver.class.ts +35 -2
- package/src/react-components/WalletObserverProvider/hooks/useWalletObserverState.ts +15 -0
- package/src/react-components/__tests__/RenderWalletHandles.test.tsx +0 -7
- package/src/react-components/contexts/observer/types.ts +4 -0
- package/src/react-components/hooks/useWalletObserver.ts +2 -0
package/package.json
CHANGED
package/src/@types/observer.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { TransactionUnspentOutput } from "@cardano-sdk/core/dist/cjs/Serialization/index.js";
|
|
1
2
|
import type { Cip30WalletApi } from "@cardano-sdk/dapp-connector";
|
|
2
3
|
import type { DAppPeerConnect } from "@fabianbormann/cardano-peer-connect";
|
|
3
4
|
import type { DAppPeerConnectParameters } from "@fabianbormann/cardano-peer-connect/dist/src/types.js";
|
|
@@ -9,12 +10,19 @@ import { WalletBalanceMap } from "../classes/WalletBalanceMap.class.js";
|
|
|
9
10
|
* A list of support CIP-30 wallet extensions in the browser.
|
|
10
11
|
*/
|
|
11
12
|
export type TSupportedWalletExtensions =
|
|
13
|
+
| "nami"
|
|
12
14
|
| "eternl"
|
|
13
|
-
| "
|
|
15
|
+
| "typhoncip30"
|
|
16
|
+
| "ccvault"
|
|
14
17
|
| "typhon"
|
|
15
|
-
| "
|
|
18
|
+
| "yoroi"
|
|
16
19
|
| "flint"
|
|
17
|
-
| "
|
|
20
|
+
| "gerowallet"
|
|
21
|
+
| "cardwallet"
|
|
22
|
+
| "nufi"
|
|
23
|
+
| "begin"
|
|
24
|
+
| "lace"
|
|
25
|
+
| "sorbet";
|
|
18
26
|
|
|
19
27
|
/**
|
|
20
28
|
* Interface to describe window extension.
|
|
@@ -92,5 +100,6 @@ export interface IWalletObserverSync<
|
|
|
92
100
|
balanceMap: WalletBalanceMap<AssetMetadata>;
|
|
93
101
|
usedAddresses: string[];
|
|
94
102
|
unusedAddresses: string[];
|
|
103
|
+
utxos?: TransactionUnspentOutput[];
|
|
95
104
|
network: number;
|
|
96
105
|
}
|
package/src/__data__/eternl.ts
CHANGED
|
@@ -133,3 +133,21 @@ export const balance =
|
|
|
133
133
|
"821b00000004c09febb6b818581c06dd6a12db0a3eb41a9fa243dd53df588418d4819f245f36d8c45f49aa4b5265776172645374616b65014f546173746554657374506f6c6963790150526577617264466f6c64506f6c6963790151436f6c6c656374466f6c64506f6c6963790151546f6b656e486f6c646572506f6c696379015254617374655465737456616c696461746f720153526577617264466f6c6456616c696461746f720154436f6c6c656374466f6c6456616c696461746f720154546f6b656e486f6c64657256616c696461746f7201575461737465546573745374616b6556616c696461746f7201581c14e957a7799ee1feb0afe68a7abeb6f642832d28045e71fb0003b1cba1495454507265766965771b0000001878e4fd18581c2fe3c3364b443194b10954771c95819b8d6ed464033c21f03f8facb5a144695553441b0000000185d7560a581c4086577ed57c514f8e29b78f42ef4f379363355a3b65b9a032ee30c9a1446c70202d1a00bcd161581c44a1eb2d9f58add4eb1932bd0048e6a1947e85e3fe4f32956a110414a458200014df10035002e600d25a96003ecd1746007f59bac2788355687d18c79271191a00214ed558200014df102e74e6af9739616dd021f547bca1f68c937b566bb6ca2e4782e760011a0042f18658200014df10bd9437d9ec1a559d053f05dc38d337c32d1d0746952ea961f874c39a1abe4fb74958200014df10fe7606868521244f4a86d5e88ef483de7a441b286f4d751550518ff81a37c01cb3581c633a136877ed6ad0ab33e69a22611319673474c8bd0a79a4c76d9289a158200014df101750b21414d4198763ee4d442f5c03a295a13a6028def9be4a7854631a009ca627581c6c6011f808562c80d7d24b9462e3eec41bea9d96e3e7a51e620a061ea344425443621a97883a4d444a5059621b000019f16e3daf24464d41544943621b000000024dda5412581c8140c4b89428fc264e90b10c71c53a4c3f9ce52b676bf1d9b51eb9caa458200014df100ae1b3f34bfbf30e2fb38305f3a6c27aece138ba7febe13d5db3e1341a7960ea6b58200014df1034c2b9d553d3a74b3ac67cc8cefb423af0f77fc84664420090e099901a19c9dd1f58200014df105b3955db22793705b4e6f34871ef5429bace12e909fb1ccf862c60e91a0006d2ed58200014df108bf66e915c450ad94866abb02802821b599e32f43536a42470b21ea21a005bfec8581c824faecc3a7312f5cad0397dd9ffb96e15dd4cf6a3cf16e23d7352b3a1401b000000e8d4a51000581c919d4c2c9455016289341b1a14dedf697687af31751170d56a31466ea14874434c41524954591b000000cf898883f8581c99b071ce8580d6a3a11b4902145adb8bfd0d2a03935af8cf66403e15b14443484f431a01696cc444555344431a0bebc200465242455252591b000000ba8c6bfdef465342455252591b0000596460ffa1ed48544553545f4e4654014874526577617264731a203046184a546573744173736574311a009896804a546573744173736574321a009896804a546573744173736574331a009896804a546573744173736574341a009896804a546573744173736574351a009896804a546573744173736574361a009896804a546573744173736574371a009896804a546573744173736574381a009896804a546573744173736574391a009896804b54657374417373657431301a009884405153616c7361536f6c61726973233031343101581c99e7cd5c0aca25bc3e90be7e318326a188f913a07bbfe09b3bace0d4a1495454507265766965771b00000417d7b93b42581ca51963f936f00b0def70fc1196e70603cb95c85f18e836be6ba2ad8ba149446966667573696f6e1b000000016506cbcb581cb89bdcb78010912ce6e98c97d5ab38e8e62f3d0851cdca0811e4ae92aa4b5265776172645374616b65014f546173746554657374506f6c6963790150526577617264466f6c64506f6c6963790151436f6c6c656374466f6c64506f6c6963790151546f6b656e486f6c646572506f6c696379015254617374655465737456616c696461746f720153526577617264466f6c6456616c696461746f720154436f6c6c656374466f6c6456616c696461746f720154546f6b656e486f6c64657256616c696461746f7201575461737465546573745374616b6556616c696461746f7201581cba0062b8f68bb8f80d4509e53d97a554381030b5e84832115376cb0aa148544553545f4e465401581ccaaaa4dd8b3b5c9dae65573cdb0bc2e989c43c3963d06b93d37687f1a150537461626c6520446966667573696f6e1a00273a8a581ccadd6bf1f7535eed785b01169b03fc800360b396ab5617b560fccd4ea448544553545f4e465401514e45574d5f566f74655f507265766965771b00002d794ca2a4225353616c7361536f6c61726973446973636f696e196d60554e45574d5f50726f706f73616c5f5072657669657702581cd35c752af635d9e9cb79aea44537a57a5ecd91e23133cd7f210f0070a1456d544f53491822581cd441227553a0f1a965fee7d60a0f724b368dd1bddbc208730fccebcfa1465242455252591a0167e3da581cd606298f0f892cce3f4df1585d3723f3817be8198abbc0c83bb89fadaa4b5265776172645374616b65014f546173746554657374506f6c6963790150526577617264466f6c64506f6c6963790151436f6c6c656374466f6c64506f6c6963790151546f6b656e486f6c646572506f6c696379015254617374655465737456616c696461746f720153526577617264466f6c6456616c696461746f720154436f6c6c656374466f6c6456616c696461746f720154546f6b656e486f6c64657256616c696461746f7201575461737465546573745374616b6556616c696461746f7201581cd805c13981d8b6b239ab4df3a3c6de653fcb426312b768e90304fa41a7581f46534e0f050513190d2dffcc8ea86a615c8cbb9690f367e439071e8d3a241c01581f46534e4bab725e4899fb4b628f8e4773fcdffcbd1b34666736d2a4d9935b6d01581f46534e6e12a1701cb5b4173e4e21bd8ffa98f4ccd2a9b90cc325f561d972f301581f46534e7ae7c9465ccc850e25cacec07820883be9e1a972931511d63d078d9401581f46534e7fa42f43b2d7e1a9d8e3276f68d37b9b8a0746991b3f7a420673aca001581f46534eb0158422435c0130845b3141353463420e28f42696c18cef305a7c3101581f46534efeae1e5d3310dab9193f315e3124e97fc462b0b523b545e235c4704b01581cd8906ca5c7ba124a0407a32dab37b2c82b13b3dcd9111e42940dcea4a1480014df105553444d1b00000037e11d5fff581cf99a0cc5bac393156aa088bbe28993679feb59de74ccdb0c8586213aa158200014df10fc2c4a6ae8048b0b5affc169dfd496a7ace7d08288c476d9d7a5804e1a000f4240581cfa3eff2047fdf9293c5feef4dc85ce58097ea1c6da4845a351535183a14574494e44591a0fbd2529";
|
|
134
134
|
|
|
135
135
|
export const network = 0;
|
|
136
|
+
|
|
137
|
+
export const utxos = [
|
|
138
|
+
"828258202ffa2cb637456ddc2326ff71ca525cc3c066b74aa0e7251df708640280782a6f0082583900c279a3fb3b4e62bbc78e288783b58045d4ae82a18867d8352d02775a121fd22e0b57ac206fefc763f8bfa0771919f5218b40691eea4514d01ab2d05e00",
|
|
139
|
+
"82825820739753ecb91d7ca749748e789f114db73650d70ee3241fb937abe8dba37dcb920182583900c279a3fb3b4e62bbc78e288783b58045d4ae82a18867d8352d02775a121fd22e0b57ac206fefc763f8bfa0771919f5218b40691eea4514d0821a1d56b205a1581c44a1eb2d9f58add4eb1932bd0048e6a1947e85e3fe4f32956a110414a158200014df10035002e600d25a96003ecd1746007f59bac2788355687d18c79271191a00214ed5",
|
|
140
|
+
"8282582068869e3b2181917a443240a11e865352010138b63b60fb28869779cdd459c07c0182583900c279a3fb3b4e62bbc78e288783b58045d4ae82a18867d8352d02775a121fd22e0b57ac206fefc763f8bfa0771919f5218b40691eea4514d0821a1109e7c0a1581c99b071ce8580d6a3a11b4902145adb8bfd0d2a03935af8cf66403e15a1465242455252591a00603449",
|
|
141
|
+
"82825820e44e2b827ba57ea87f9b1ae58baec750043977b6df6c7723a012cb2c56518fe90282583900c279a3fb3b4e62bbc78e288783b58045d4ae82a18867d8352d02775a121fd22e0b57ac206fefc763f8bfa0771919f5218b40691eea4514d01a071fdcc0",
|
|
142
|
+
"828258207726e613624ffd58855e14c5763ef878964e16271b77a778ceefd1ceedb0fcd20282583900c279a3fb3b4e62bbc78e288783b58045d4ae82a18867d8352d02775a121fd22e0b57ac206fefc763f8bfa0771919f5218b40691eea4514d01a62d293a6",
|
|
143
|
+
"828258206ea2f82ee156e9106b1e47b766e2f61a1c19c8b61eeb24e91cce465655c5ec610282583900c279a3fb3b4e62bbc78e288783b58045d4ae82a18867d8352d02775a121fd22e0b57ac206fefc763f8bfa0771919f5218b40691eea4514d01ac93d1fc5",
|
|
144
|
+
"828258207731bd825b2d67f41bf183711886036290d464a3653a7298fba2712f9dfc8b970182583900c279a3fb3b4e62bbc78e288783b58045d4ae82a18867d8352d02775a121fd22e0b57ac206fefc763f8bfa0771919f5218b40691eea4514d0821a004efdeea1581c99b071ce8580d6a3a11b4902145adb8bfd0d2a03935af8cf66403e15a1465242455252591a2239d241",
|
|
145
|
+
"828258208be1eb6f5d2b8f9a5d3e507f9f63d99264072a12e2db165f4516d406a0c01dfc0282583900c279a3fb3b4e62bbc78e288783b58045d4ae82a18867d8352d02775a121fd22e0b57ac206fefc763f8bfa0771919f5218b40691eea4514d01b0000000293c615e3",
|
|
146
|
+
"828258205b79717fb587c46c69d95e178867c6c5dd0e61212bbe5ee4a44b9eb097413f4d0282583900c279a3fb3b4e62bbc78e288783b58045d4ae82a18867d8352d02775a121fd22e0b57ac206fefc763f8bfa0771919f5218b40691eea4514d01a0dcb3190",
|
|
147
|
+
"82825820626e9e5265e5c4ee3ced0041772a84cb53e531eda12f78908ff2cc4caf2ac7a40282583900c279a3fb3b4e62bbc78e288783b58045d4ae82a18867d8352d02775a121fd22e0b57ac206fefc763f8bfa0771919f5218b40691eea4514d0821a00bb51faa1581c99b071ce8580d6a3a11b4902145adb8bfd0d2a03935af8cf66403e15a1465242455252591a092dfde0",
|
|
148
|
+
"82825820aa46ff8f84d0e49fe4a0dffaff29247c7fc7c53b96012e016accab016fb51d300182583900c279a3fb3b4e62bbc78e288783b58045d4ae82a18867d8352d02775a121fd22e0b57ac206fefc763f8bfa0771919f5218b40691eea4514d0821a00b2c014b818581c06dd6a12db0a3eb41a9fa243dd53df588418d4819f245f36d8c45f49aa4b5265776172645374616b65014f546173746554657374506f6c6963790150526577617264466f6c64506f6c6963790151436f6c6c656374466f6c64506f6c6963790151546f6b656e486f6c646572506f6c696379015254617374655465737456616c696461746f720153526577617264466f6c6456616c696461746f720154436f6c6c656374466f6c6456616c696461746f720154546f6b656e486f6c64657256616c696461746f7201575461737465546573745374616b6556616c696461746f7201581c14e957a7799ee1feb0afe68a7abeb6f642832d28045e71fb0003b1cba1495454507265766965771b0000001878e4fd18581c2fe3c3364b443194b10954771c95819b8d6ed464033c21f03f8facb5a144695553441b0000000185d7560a581c4086577ed57c514f8e29b78f42ef4f379363355a3b65b9a032ee30c9a1446c70202d1a00bcd161581c44a1eb2d9f58add4eb1932bd0048e6a1947e85e3fe4f32956a110414a358200014df102e74e6af9739616dd021f547bca1f68c937b566bb6ca2e4782e760011a0042f18658200014df10bd9437d9ec1a559d053f05dc38d337c32d1d0746952ea961f874c39a1abe4fb74958200014df10fe7606868521244f4a86d5e88ef483de7a441b286f4d751550518ff81a37c01cb3581c633a136877ed6ad0ab33e69a22611319673474c8bd0a79a4c76d9289a158200014df101750b21414d4198763ee4d442f5c03a295a13a6028def9be4a7854631a009ca627581c6c6011f808562c80d7d24b9462e3eec41bea9d96e3e7a51e620a061ea344425443621a97883a4d444a5059621b000019f16e3daf24464d41544943621b000000024dda5412581c8140c4b89428fc264e90b10c71c53a4c3f9ce52b676bf1d9b51eb9caa458200014df100ae1b3f34bfbf30e2fb38305f3a6c27aece138ba7febe13d5db3e1341a7960ea6b58200014df1034c2b9d553d3a74b3ac67cc8cefb423af0f77fc84664420090e099901a19c9dd1f58200014df105b3955db22793705b4e6f34871ef5429bace12e909fb1ccf862c60e91a0006d2ed58200014df108bf66e915c450ad94866abb02802821b599e32f43536a42470b21ea21a005bfec8581c824faecc3a7312f5cad0397dd9ffb96e15dd4cf6a3cf16e23d7352b3a1401b000000e8d4a51000581c919d4c2c9455016289341b1a14dedf697687af31751170d56a31466ea14874434c41524954591b000000cf898883f8581c99b071ce8580d6a3a11b4902145adb8bfd0d2a03935af8cf66403e15b14443484f431a01696cc444555344431a0bebc200465242455252591b000000ba5b74e529465342455252591b0000596460ffa1ed48544553545f4e4654014874526577617264731a203046184a546573744173736574311a009896804a546573744173736574321a009896804a546573744173736574331a009896804a546573744173736574341a009896804a546573744173736574351a009896804a546573744173736574361a009896804a546573744173736574371a009896804a546573744173736574381a009896804a546573744173736574391a009896804b54657374417373657431301a009884405153616c7361536f6c61726973233031343101581c99e7cd5c0aca25bc3e90be7e318326a188f913a07bbfe09b3bace0d4a1495454507265766965771b00000417d7b93b42581ca51963f936f00b0def70fc1196e70603cb95c85f18e836be6ba2ad8ba149446966667573696f6e1b000000016506cbcb581cb89bdcb78010912ce6e98c97d5ab38e8e62f3d0851cdca0811e4ae92aa4b5265776172645374616b65014f546173746554657374506f6c6963790150526577617264466f6c64506f6c6963790151436f6c6c656374466f6c64506f6c6963790151546f6b656e486f6c646572506f6c696379015254617374655465737456616c696461746f720153526577617264466f6c6456616c696461746f720154436f6c6c656374466f6c6456616c696461746f720154546f6b656e486f6c64657256616c696461746f7201575461737465546573745374616b6556616c696461746f7201581cba0062b8f68bb8f80d4509e53d97a554381030b5e84832115376cb0aa148544553545f4e465401581ccaaaa4dd8b3b5c9dae65573cdb0bc2e989c43c3963d06b93d37687f1a150537461626c6520446966667573696f6e1a00273a8a581ccadd6bf1f7535eed785b01169b03fc800360b396ab5617b560fccd4ea448544553545f4e465401514e45574d5f566f74655f507265766965771b00002d794ca2a4225353616c7361536f6c61726973446973636f696e196d60554e45574d5f50726f706f73616c5f5072657669657702581cd35c752af635d9e9cb79aea44537a57a5ecd91e23133cd7f210f0070a1456d544f53491822581cd441227553a0f1a965fee7d60a0f724b368dd1bddbc208730fccebcfa1465242455252591a0167e3da581cd606298f0f892cce3f4df1585d3723f3817be8198abbc0c83bb89fadaa4b5265776172645374616b65014f546173746554657374506f6c6963790150526577617264466f6c64506f6c6963790151436f6c6c656374466f6c64506f6c6963790151546f6b656e486f6c646572506f6c696379015254617374655465737456616c696461746f720153526577617264466f6c6456616c696461746f720154436f6c6c656374466f6c6456616c696461746f720154546f6b656e486f6c64657256616c696461746f7201575461737465546573745374616b6556616c696461746f7201581cd805c13981d8b6b239ab4df3a3c6de653fcb426312b768e90304fa41a7581f46534e0f050513190d2dffcc8ea86a615c8cbb9690f367e439071e8d3a241c01581f46534e4bab725e4899fb4b628f8e4773fcdffcbd1b34666736d2a4d9935b6d01581f46534e6e12a1701cb5b4173e4e21bd8ffa98f4ccd2a9b90cc325f561d972f301581f46534e7ae7c9465ccc850e25cacec07820883be9e1a972931511d63d078d9401581f46534e7fa42f43b2d7e1a9d8e3276f68d37b9b8a0746991b3f7a420673aca001581f46534eb0158422435c0130845b3141353463420e28f42696c18cef305a7c3101581f46534efeae1e5d3310dab9193f315e3124e97fc462b0b523b545e235c4704b01581cd8906ca5c7ba124a0407a32dab37b2c82b13b3dcd9111e42940dcea4a1480014df105553444d1b00000037e11d5fff581cf99a0cc5bac393156aa088bbe28993679feb59de74ccdb0c8586213aa158200014df10fc2c4a6ae8048b0b5affc169dfd496a7ace7d08288c476d9d7a5804e1a000f4240581cfa3eff2047fdf9293c5feef4dc85ce58097ea1c6da4845a351535183a14574494e44591a0fbd2529",
|
|
149
|
+
"82825820aa46ff8f84d0e49fe4a0dffaff29247c7fc7c53b96012e016accab016fb51d300282583900c279a3fb3b4e62bbc78e288783b58045d4ae82a18867d8352d02775a121fd22e0b57ac206fefc763f8bfa0771919f5218b40691eea4514d01a012ec474",
|
|
150
|
+
"82825820babbe340a5ab0d5a9d7d7b68644e49cf807de321d87e9f21e47eff5d62ff03df0282583900c279a3fb3b4e62bbc78e288783b58045d4ae82a18867d8352d02775a121fd22e0b57ac206fefc763f8bfa0771919f5218b40691eea4514d0821a00775e20a1581c99b071ce8580d6a3a11b4902145adb8bfd0d2a03935af8cf66403e15a1465242455252591a052f145c",
|
|
151
|
+
"82825820a2eea54d0d54c0bd120dfe28b28da6770938764ef6a9e421ff136e67720f72630182583900c279a3fb3b4e62bbc78e288783b58045d4ae82a18867d8352d02775a121fd22e0b57ac206fefc763f8bfa0771919f5218b40691eea4514d01a05ac1642",
|
|
152
|
+
"82825820e0828e37187b0aace1aae10a207f4603efee98d31f9fb0335c211c510f55bb360282583900c279a3fb3b4e62bbc78e288783b58045d4ae82a18867d8352d02775a121fd22e0b57ac206fefc763f8bfa0771919f5218b40691eea4514d0821a001ef94aa1581c4086577ed57c514f8e29b78f42ef4f379363355a3b65b9a032ee30c9a1446c7020021a0043e171",
|
|
153
|
+
];
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
+
import type { TransactionUnspentOutput } from "@cardano-sdk/core/dist/cjs/Serialization/index.js";
|
|
1
2
|
import type { Cip30WalletApi } from "@cardano-sdk/dapp-connector";
|
|
2
3
|
import { AssetAmount, type IAssetAmountMetadata } from "@sundaeswap/asset";
|
|
3
|
-
|
|
4
4
|
import merge from "lodash/merge.js";
|
|
5
|
+
|
|
5
6
|
import { EWalletObserverEvents } from "../@types/events.js";
|
|
6
7
|
import type {
|
|
7
8
|
IResolvedWalletObserverOptions,
|
|
@@ -153,17 +154,19 @@ export class WalletObserver<
|
|
|
153
154
|
}
|
|
154
155
|
}
|
|
155
156
|
|
|
156
|
-
const [newBalanceMap, newUsedAddresses, newUnusedAddresses] =
|
|
157
|
+
const [newBalanceMap, newUsedAddresses, newUnusedAddresses, newOutputs] =
|
|
157
158
|
await Promise.all([
|
|
158
159
|
this.getBalanceMap(),
|
|
159
160
|
this.getUsedAddresses(),
|
|
160
161
|
this.getUnusedAddresses(),
|
|
162
|
+
this.getUtxos(),
|
|
161
163
|
]);
|
|
162
164
|
|
|
163
165
|
const result = {
|
|
164
166
|
balanceMap: newBalanceMap,
|
|
165
167
|
usedAddresses: newUsedAddresses,
|
|
166
168
|
unusedAddresses: newUnusedAddresses,
|
|
169
|
+
utxos: newOutputs,
|
|
167
170
|
network: newNetwork,
|
|
168
171
|
};
|
|
169
172
|
|
|
@@ -457,6 +460,36 @@ export class WalletObserver<
|
|
|
457
460
|
return data;
|
|
458
461
|
};
|
|
459
462
|
|
|
463
|
+
/**
|
|
464
|
+
* Gets a list of wallet UTXOs.
|
|
465
|
+
*
|
|
466
|
+
* @returns {Promise<TransactionUnspentOutput[]>} The list of TransactionUnspentOutputs.
|
|
467
|
+
*/
|
|
468
|
+
getUtxos = async (): Promise<TransactionUnspentOutput[] | undefined> => {
|
|
469
|
+
if (!this.api) {
|
|
470
|
+
throw new Error("Attempted to query UTXOs without an API instance.");
|
|
471
|
+
}
|
|
472
|
+
|
|
473
|
+
const [cbor, { Serialization }, { typedHex }] = await Promise.all([
|
|
474
|
+
this.api.getUtxos(),
|
|
475
|
+
getCardanoCore(),
|
|
476
|
+
getCardanoUtil(),
|
|
477
|
+
]);
|
|
478
|
+
|
|
479
|
+
const data = cbor?.map((val) => {
|
|
480
|
+
let txOutput = Serialization.TransactionUnspentOutput.fromCbor(
|
|
481
|
+
typedHex(val)
|
|
482
|
+
);
|
|
483
|
+
|
|
484
|
+
// These methods must be bound to their initial creation instance.
|
|
485
|
+
txOutput.input = txOutput.input.bind(txOutput);
|
|
486
|
+
txOutput.output = txOutput.output.bind(txOutput);
|
|
487
|
+
return txOutput;
|
|
488
|
+
});
|
|
489
|
+
|
|
490
|
+
return data;
|
|
491
|
+
};
|
|
492
|
+
|
|
460
493
|
/**
|
|
461
494
|
* Resolves metadata for the given asset IDs, using a cached version if available.
|
|
462
495
|
*
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { TransactionUnspentOutput } from "@cardano-sdk/core/dist/cjs/Serialization/index.js";
|
|
1
2
|
import { AssetAmount } from "@sundaeswap/asset";
|
|
2
3
|
import { useCallback, useRef, useState } from "react";
|
|
3
4
|
|
|
@@ -32,6 +33,7 @@ export const useWalletObserverState = (observer: WalletObserver) => {
|
|
|
32
33
|
const [network, setNetwork] = useState<number | undefined>();
|
|
33
34
|
const [usedAddresses, setUsedAddresses] = useState<string[]>([]);
|
|
34
35
|
const [unusedAddresses, setUnusedAddresses] = useState<string[]>([]);
|
|
36
|
+
const [utxos, setUtxos] = useState<TransactionUnspentOutput[]>();
|
|
35
37
|
const [ready, setReady] = useState(false);
|
|
36
38
|
const [isCip45, setIsCip45] = useState(false);
|
|
37
39
|
|
|
@@ -49,6 +51,7 @@ export const useWalletObserverState = (observer: WalletObserver) => {
|
|
|
49
51
|
setUnusedAddresses([]);
|
|
50
52
|
setActiveWallet(undefined);
|
|
51
53
|
setNetwork(undefined);
|
|
54
|
+
setUtxos(undefined);
|
|
52
55
|
return;
|
|
53
56
|
}
|
|
54
57
|
|
|
@@ -90,6 +93,16 @@ export const useWalletObserverState = (observer: WalletObserver) => {
|
|
|
90
93
|
prevValue === freshData.network ? prevValue : freshData.network
|
|
91
94
|
);
|
|
92
95
|
|
|
96
|
+
setUtxos((prevValue) => {
|
|
97
|
+
const prevValueRep = prevValue?.map((v) => v.toCbor());
|
|
98
|
+
const newValueRep = freshData.utxos?.map((v) => v.toCbor());
|
|
99
|
+
if (prevValueRep !== newValueRep) {
|
|
100
|
+
return freshData.utxos;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
return prevValue;
|
|
104
|
+
});
|
|
105
|
+
|
|
93
106
|
setReady(true);
|
|
94
107
|
setIsCip45(newWallet.includes("p2p"));
|
|
95
108
|
}, [observer]);
|
|
@@ -111,6 +124,8 @@ export const useWalletObserverState = (observer: WalletObserver) => {
|
|
|
111
124
|
setUnusedAddresses,
|
|
112
125
|
usedAddresses,
|
|
113
126
|
setUsedAddresses,
|
|
127
|
+
utxos,
|
|
128
|
+
setUtxos,
|
|
114
129
|
syncWallet,
|
|
115
130
|
ready,
|
|
116
131
|
setReady,
|
|
@@ -50,13 +50,6 @@ describe("RenderWalletHandles", () => {
|
|
|
50
50
|
() => async () => mockHandleMetadata
|
|
51
51
|
);
|
|
52
52
|
|
|
53
|
-
// Necessary because we are mocking transitions and this will return false.
|
|
54
|
-
// const spiedOnUseDerivedState = spyOn(derivedStateHook, "useDerivedState");
|
|
55
|
-
// spiedOnUseDerivedState.mockImplementation(() => ({
|
|
56
|
-
// mainAddress: "0c279a3fb3b4e62bbc78e288783b58045d4ae82a18867d8352d02775a121fd22e0b57ac206fefc763f8bfa0771919f5218b40691eea4514d00",
|
|
57
|
-
// stakeAddress: "",
|
|
58
|
-
// }));
|
|
59
|
-
|
|
60
53
|
const { container, getByTestId, queryByTestId, rerender } = render(
|
|
61
54
|
<RenderWalletHandles render={TestComponent} />,
|
|
62
55
|
{
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { TransactionUnspentOutput } from "@cardano-sdk/core/dist/cjs/Serialization/index.js";
|
|
1
2
|
import type { IHandle } from "@koralabs/adahandle-sdk";
|
|
2
3
|
import type { AssetAmount, IAssetAmountMetadata } from "@sundaeswap/asset";
|
|
3
4
|
import type { Dispatch, MutableRefObject, SetStateAction } from "react";
|
|
@@ -58,6 +59,8 @@ export interface IWalletObserverState<
|
|
|
58
59
|
>;
|
|
59
60
|
adaBalance: AssetAmount<AssetMetadata>;
|
|
60
61
|
balance: WalletBalanceMap<AssetMetadata>;
|
|
62
|
+
utxos?: TransactionUnspentOutput[];
|
|
63
|
+
setUtxos: Dispatch<SetStateAction<TransactionUnspentOutput[] | undefined>>;
|
|
61
64
|
setBalance: Dispatch<SetStateAction<WalletBalanceMap<AssetMetadata>>>;
|
|
62
65
|
observer: WalletObserver;
|
|
63
66
|
mainAddress?: string;
|
|
@@ -95,4 +98,5 @@ export type TUseWalletObserverState<
|
|
|
95
98
|
| "setUsedAddresses"
|
|
96
99
|
| "setReady"
|
|
97
100
|
| "setIsCip45"
|
|
101
|
+
| "setUtxos"
|
|
98
102
|
>;
|
|
@@ -26,6 +26,7 @@ export const useWalletObserver = <
|
|
|
26
26
|
mainAddress: state.mainAddress,
|
|
27
27
|
stakeAddress: state.stakeAddress,
|
|
28
28
|
network: state.network,
|
|
29
|
+
utxos: state.utxos,
|
|
29
30
|
observer: state.observer,
|
|
30
31
|
syncWallet: state.syncWallet,
|
|
31
32
|
unusedAddresses: state.unusedAddresses,
|
|
@@ -44,6 +45,7 @@ export const useWalletObserver = <
|
|
|
44
45
|
state.syncWallet,
|
|
45
46
|
state.unusedAddresses,
|
|
46
47
|
state.usedAddresses,
|
|
48
|
+
state.utxos,
|
|
47
49
|
state.ready,
|
|
48
50
|
state.isCip45,
|
|
49
51
|
]);
|