@manahippo/aptos-wallet-adapter 0.3.8 → 0.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/README.md +18 -6
  2. package/dist/WalletAdapters/BaseAdapter.d.ts +19 -2
  3. package/dist/WalletAdapters/BaseAdapter.d.ts.map +1 -1
  4. package/dist/WalletAdapters/BaseAdapter.js +6 -14
  5. package/dist/WalletAdapters/BaseAdapter.js.map +1 -1
  6. package/dist/WalletAdapters/FewchaWallet.d.ts +2 -2
  7. package/dist/WalletAdapters/FewchaWallet.d.ts.map +1 -1
  8. package/dist/WalletAdapters/FewchaWallet.js +127 -152
  9. package/dist/WalletAdapters/FewchaWallet.js.map +1 -1
  10. package/dist/WalletAdapters/HippoExtensionWallet.d.ts +1 -1
  11. package/dist/WalletAdapters/HippoExtensionWallet.d.ts.map +1 -1
  12. package/dist/WalletAdapters/HippoExtensionWallet.js +97 -119
  13. package/dist/WalletAdapters/HippoExtensionWallet.js.map +1 -1
  14. package/dist/WalletAdapters/HippoWallet.js +105 -131
  15. package/dist/WalletAdapters/HippoWallet.js.map +1 -1
  16. package/dist/WalletAdapters/MartianWallet.d.ts +3 -5
  17. package/dist/WalletAdapters/MartianWallet.d.ts.map +1 -1
  18. package/dist/WalletAdapters/MartianWallet.js +110 -130
  19. package/dist/WalletAdapters/MartianWallet.js.map +1 -1
  20. package/dist/WalletAdapters/NightlyWallet.js +1 -5
  21. package/dist/WalletAdapters/NightlyWallet.js.map +1 -1
  22. package/dist/WalletAdapters/{AptosWallet.d.ts → PetraWallet.d.ts} +4 -6
  23. package/dist/WalletAdapters/PetraWallet.d.ts.map +1 -0
  24. package/dist/WalletAdapters/PetraWallet.js +151 -0
  25. package/dist/WalletAdapters/PetraWallet.js.map +1 -0
  26. package/dist/WalletAdapters/PontemWallet.js +102 -128
  27. package/dist/WalletAdapters/PontemWallet.js.map +1 -1
  28. package/dist/WalletAdapters/SpikaWallet.d.ts.map +1 -1
  29. package/dist/WalletAdapters/SpikaWallet.js +112 -137
  30. package/dist/WalletAdapters/SpikaWallet.js.map +1 -1
  31. package/dist/WalletAdapters/index.d.ts +1 -1
  32. package/dist/WalletAdapters/index.js +8 -24
  33. package/dist/WalletAdapters/index.js.map +1 -1
  34. package/dist/WalletProviders/WalletProvider.d.ts.map +1 -1
  35. package/dist/WalletProviders/WalletProvider.js +91 -102
  36. package/dist/WalletProviders/WalletProvider.js.map +1 -1
  37. package/dist/WalletProviders/errors.js +19 -41
  38. package/dist/WalletProviders/errors.js.map +1 -1
  39. package/dist/WalletProviders/index.js +3 -19
  40. package/dist/WalletProviders/index.js.map +1 -1
  41. package/dist/WalletProviders/useWallet.d.ts +3 -3
  42. package/dist/WalletProviders/useWallet.d.ts.map +1 -1
  43. package/dist/WalletProviders/useWallet.js +4 -8
  44. package/dist/WalletProviders/useWallet.js.map +1 -1
  45. package/dist/config/aptosConstants.js +10 -13
  46. package/dist/config/aptosConstants.js.map +1 -1
  47. package/dist/hooks/useLocalStorage.js +5 -9
  48. package/dist/hooks/useLocalStorage.js.map +1 -1
  49. package/dist/hooks/useSSR.js +4 -8
  50. package/dist/hooks/useSSR.js.map +1 -1
  51. package/dist/index.js +2 -18
  52. package/dist/index.js.map +1 -1
  53. package/dist/utilities/util.js +1 -5
  54. package/dist/utilities/util.js.map +1 -1
  55. package/package.json +3 -3
  56. package/src/WalletAdapters/BaseAdapter.ts +25 -2
  57. package/src/WalletAdapters/FewchaWallet.ts +4 -2
  58. package/src/WalletAdapters/HippoExtensionWallet.ts +1 -1
  59. package/src/WalletAdapters/MartianWallet.ts +10 -5
  60. package/src/WalletAdapters/{AptosWallet.ts → PetraWallet.ts} +10 -5
  61. package/src/WalletAdapters/SpikaWallet.ts +1 -1
  62. package/src/WalletAdapters/index.ts +1 -1
  63. package/src/WalletProviders/WalletProvider.tsx +40 -42
  64. package/src/WalletProviders/useWallet.ts +6 -2
  65. package/dist/WalletAdapters/AptosWallet.d.ts.map +0 -1
  66. package/dist/WalletAdapters/AptosWallet.js +0 -174
  67. package/dist/WalletAdapters/AptosWallet.js.map +0 -1
@@ -1,6 +1,6 @@
1
1
  /// <reference types="react" />
2
2
  import { TransactionPayload, HexEncodedBytes } from 'aptos/src/generated';
3
- import { AccountKeys, WalletAdapter, WalletName, WalletReadyState } from '../WalletAdapters/BaseAdapter';
3
+ import { AccountKeys, SignMessagePayload, SignMessageResponse, WalletAdapter, WalletName, WalletReadyState } from '../WalletAdapters/BaseAdapter';
4
4
  export interface Wallet {
5
5
  adapter: WalletAdapter;
6
6
  readyState: WalletReadyState;
@@ -14,13 +14,13 @@ export interface WalletContextState {
14
14
  connected: boolean;
15
15
  disconnecting: boolean;
16
16
  select(walletName: WalletName): void;
17
- connect(walletName: string): Promise<void>;
17
+ connect(): Promise<void>;
18
18
  disconnect(): Promise<void>;
19
19
  signAndSubmitTransaction(transaction: TransactionPayload, options?: any): Promise<{
20
20
  hash: HexEncodedBytes;
21
21
  }>;
22
22
  signTransaction(transaction: TransactionPayload, options?: any): Promise<Uint8Array>;
23
- signMessage(message: string): Promise<string>;
23
+ signMessage(message: string | SignMessagePayload | Uint8Array): Promise<SignMessageResponse | string>;
24
24
  }
25
25
  export declare const WalletContext: import("react").Context<WalletContextState>;
26
26
  export declare function useWallet(): WalletContextState;
@@ -1 +1 @@
1
- {"version":3,"file":"useWallet.d.ts","sourceRoot":"","sources":["../../src/WalletProviders/useWallet.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE1E,OAAO,EACL,WAAW,EACX,aAAa,EACb,UAAU,EACV,gBAAgB,EACjB,MAAM,+BAA+B,CAAC;AAEvC,MAAM,WAAW,MAAM;IACrB,OAAO,EAAE,aAAa,CAAC;IACvB,UAAU,EAAE,gBAAgB,CAAC;CAC9B;AAED,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,OAAO,EAAE,WAAW,GAAG,IAAI,CAAC;IAC5B,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,EAAE,OAAO,CAAC;IACvB,MAAM,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;IACrC,OAAO,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,wBAAwB,CACtB,WAAW,EAAE,kBAAkB,EAC/B,OAAO,CAAC,EAAE,GAAG,GACZ,OAAO,CAAC;QAAE,IAAI,EAAE,eAAe,CAAA;KAAE,CAAC,CAAC;IACtC,eAAe,CAAC,WAAW,EAAE,kBAAkB,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACrF,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC/C;AASD,eAAO,MAAM,aAAa,6CAEzB,CAAC;AAEF,wBAAgB,SAAS,IAAI,kBAAkB,CAE9C"}
1
+ {"version":3,"file":"useWallet.d.ts","sourceRoot":"","sources":["../../src/WalletProviders/useWallet.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE1E,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,mBAAmB,EACnB,aAAa,EACb,UAAU,EACV,gBAAgB,EACjB,MAAM,+BAA+B,CAAC;AAEvC,MAAM,WAAW,MAAM;IACrB,OAAO,EAAE,aAAa,CAAC;IACvB,UAAU,EAAE,gBAAgB,CAAC;CAC9B;AAED,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,OAAO,EAAE,WAAW,GAAG,IAAI,CAAC;IAC5B,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,EAAE,OAAO,CAAC;IACvB,MAAM,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;IACrC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,wBAAwB,CACtB,WAAW,EAAE,kBAAkB,EAC/B,OAAO,CAAC,EAAE,GAAG,GACZ,OAAO,CAAC;QAAE,IAAI,EAAE,eAAe,CAAA;KAAE,CAAC,CAAC;IACtC,eAAe,CAAC,WAAW,EAAE,kBAAkB,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACrF,WAAW,CACT,OAAO,EAAE,MAAM,GAAG,kBAAkB,GAAG,UAAU,GAChD,OAAO,CAAC,mBAAmB,GAAG,MAAM,CAAC,CAAC;CAC1C;AASD,eAAO,MAAM,aAAa,6CAEzB,CAAC;AAEF,wBAAgB,SAAS,IAAI,kBAAkB,CAE9C"}
@@ -1,16 +1,12 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.useWallet = exports.WalletContext = void 0;
4
- const react_1 = require("react");
1
+ import { createContext, useContext } from 'react';
5
2
  const DEFAULT_CONTEXT = {
6
3
  autoConnect: false,
7
4
  connecting: false,
8
5
  connected: false,
9
6
  disconnecting: false
10
7
  };
11
- exports.WalletContext = (0, react_1.createContext)(DEFAULT_CONTEXT);
12
- function useWallet() {
13
- return (0, react_1.useContext)(exports.WalletContext);
8
+ export const WalletContext = createContext(DEFAULT_CONTEXT);
9
+ export function useWallet() {
10
+ return useContext(WalletContext);
14
11
  }
15
- exports.useWallet = useWallet;
16
12
  //# sourceMappingURL=useWallet.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useWallet.js","sourceRoot":"","sources":["../../src/WalletProviders/useWallet.ts"],"names":[],"mappings":";;;AACA,iCAAkD;AAgClD,MAAM,eAAe,GAAG;IACtB,WAAW,EAAE,KAAK;IAClB,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE,KAAK;IAChB,aAAa,EAAE,KAAK;CACC,CAAC;AAEX,QAAA,aAAa,GAAG,IAAA,qBAAa,EACxC,eAAqC,CACtC,CAAC;AAEF,SAAgB,SAAS;IACvB,OAAO,IAAA,kBAAU,EAAC,qBAAa,CAAC,CAAC;AACnC,CAAC;AAFD,8BAEC"}
1
+ {"version":3,"file":"useWallet.js","sourceRoot":"","sources":["../../src/WalletProviders/useWallet.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAoClD,MAAM,eAAe,GAAG;IACtB,WAAW,EAAE,KAAK;IAClB,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE,KAAK;IAChB,aAAa,EAAE,KAAK;CACC,CAAC;AAExB,MAAM,CAAC,MAAM,aAAa,GAAG,aAAa,CACxC,eAAqC,CACtC,CAAC;AAEF,MAAM,UAAU,SAAS;IACvB,OAAO,UAAU,CAAC,aAAa,CAAC,CAAC;AACnC,CAAC"}
@@ -1,15 +1,12 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.faucetClient = exports.aptosClient = exports.FAUCET_URL = exports.NODE_URL = exports.DEVNET_FAUCET_URL = exports.LOCAL_FAUCET_URL = exports.DEVNET_NODE_URL = exports.LOCAL_NODE_URL = exports.WEBWALLET_URL = void 0;
4
- const aptos_1 = require("aptos");
5
- exports.WEBWALLET_URL = 'https://hippo-wallet-test.web.app';
1
+ import { AptosClient, FaucetClient } from 'aptos';
2
+ export const WEBWALLET_URL = 'https://hippo-wallet-test.web.app';
6
3
  // export const WEBWALLET_URL = 'http://localhost:3030';
7
- exports.LOCAL_NODE_URL = 'http://127.0.0.1:8080';
8
- exports.DEVNET_NODE_URL = 'https://fullnode.devnet.aptoslabs.com/v1';
9
- exports.LOCAL_FAUCET_URL = 'http://127.0.0.1:8081';
10
- exports.DEVNET_FAUCET_URL = 'https://faucet.devnet.aptoslabs.com';
11
- exports.NODE_URL = exports.DEVNET_NODE_URL;
12
- exports.FAUCET_URL = exports.DEVNET_FAUCET_URL;
13
- exports.aptosClient = new aptos_1.AptosClient(exports.NODE_URL);
14
- exports.faucetClient = new aptos_1.FaucetClient(exports.NODE_URL, exports.FAUCET_URL);
4
+ export const LOCAL_NODE_URL = 'http://127.0.0.1:8080';
5
+ export const DEVNET_NODE_URL = 'https://fullnode.devnet.aptoslabs.com/v1';
6
+ export const LOCAL_FAUCET_URL = 'http://127.0.0.1:8081';
7
+ export const DEVNET_FAUCET_URL = 'https://faucet.devnet.aptoslabs.com';
8
+ export const NODE_URL = DEVNET_NODE_URL;
9
+ export const FAUCET_URL = DEVNET_FAUCET_URL;
10
+ export const aptosClient = new AptosClient(NODE_URL);
11
+ export const faucetClient = new FaucetClient(NODE_URL, FAUCET_URL);
15
12
  //# sourceMappingURL=aptosConstants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"aptosConstants.js","sourceRoot":"","sources":["../../src/config/aptosConstants.ts"],"names":[],"mappings":";;;AAAA,iCAAkD;AAErC,QAAA,aAAa,GAAG,mCAAmC,CAAC;AACjE,wDAAwD;AAE3C,QAAA,cAAc,GAAG,uBAAuB,CAAC;AACzC,QAAA,eAAe,GAAG,0CAA0C,CAAC;AAC7D,QAAA,gBAAgB,GAAG,uBAAuB,CAAC;AAC3C,QAAA,iBAAiB,GAAG,qCAAqC,CAAC;AAE1D,QAAA,QAAQ,GAAG,uBAAe,CAAC;AAC3B,QAAA,UAAU,GAAG,yBAAiB,CAAC;AAE/B,QAAA,WAAW,GAAG,IAAI,mBAAW,CAAC,gBAAQ,CAAC,CAAC;AACxC,QAAA,YAAY,GAAG,IAAI,oBAAY,CAAC,gBAAQ,EAAE,kBAAU,CAAC,CAAC"}
1
+ {"version":3,"file":"aptosConstants.js","sourceRoot":"","sources":["../../src/config/aptosConstants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAElD,MAAM,CAAC,MAAM,aAAa,GAAG,mCAAmC,CAAC;AACjE,wDAAwD;AAExD,MAAM,CAAC,MAAM,cAAc,GAAG,uBAAuB,CAAC;AACtD,MAAM,CAAC,MAAM,eAAe,GAAG,0CAA0C,CAAC;AAC1E,MAAM,CAAC,MAAM,gBAAgB,GAAG,uBAAuB,CAAC;AACxD,MAAM,CAAC,MAAM,iBAAiB,GAAG,qCAAqC,CAAC;AAEvE,MAAM,CAAC,MAAM,QAAQ,GAAG,eAAe,CAAC;AACxC,MAAM,CAAC,MAAM,UAAU,GAAG,iBAAiB,CAAC;AAE5C,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,QAAQ,CAAC,CAAC;AACrD,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC"}
@@ -1,9 +1,6 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.useLocalStorage = void 0;
4
- const react_1 = require("react");
5
- function useLocalStorage(key, defaultState) {
6
- const state = (0, react_1.useState)(() => {
1
+ import { useEffect, useRef, useState } from 'react';
2
+ export function useLocalStorage(key, defaultState) {
3
+ const state = useState(() => {
7
4
  try {
8
5
  const value = localStorage.getItem(key);
9
6
  if (value)
@@ -17,8 +14,8 @@ function useLocalStorage(key, defaultState) {
17
14
  return defaultState;
18
15
  });
19
16
  const value = state[0];
20
- const isFirstRender = (0, react_1.useRef)(true);
21
- (0, react_1.useEffect)(() => {
17
+ const isFirstRender = useRef(true);
18
+ useEffect(() => {
22
19
  if (isFirstRender.current) {
23
20
  isFirstRender.current = false;
24
21
  return;
@@ -39,5 +36,4 @@ function useLocalStorage(key, defaultState) {
39
36
  }, [value, key]);
40
37
  return state;
41
38
  }
42
- exports.useLocalStorage = useLocalStorage;
43
39
  //# sourceMappingURL=useLocalStorage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useLocalStorage.js","sourceRoot":"","sources":["../../src/hooks/useLocalStorage.ts"],"names":[],"mappings":";;;AACA,iCAAoD;AAEpD,SAAgB,eAAe,CAAI,GAAW,EAAE,YAAe;IAC7D,MAAM,KAAK,GAAG,IAAA,gBAAQ,EAAI,GAAG,EAAE;QAC7B,IAAI;YACF,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACxC,IAAI,KAAK;gBAAE,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAM,CAAC;SAC1C;QAAC,OAAO,KAAU,EAAE;YACnB,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;gBACjC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;aACtB;SACF;QAED,OAAO,YAAY,CAAC;IACtB,CAAC,CAAC,CAAC;IACH,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAEvB,MAAM,aAAa,GAAG,IAAA,cAAM,EAAC,IAAI,CAAC,CAAC;IACnC,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,aAAa,CAAC,OAAO,EAAE;YACzB,aAAa,CAAC,OAAO,GAAG,KAAK,CAAC;YAC9B,OAAO;SACR;QACD,IAAI;YACF,IAAI,KAAK,KAAK,IAAI,EAAE;gBAClB,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;aAC9B;iBAAM;gBACL,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;aAClD;SACF;QAAC,OAAO,KAAU,EAAE;YACnB,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;gBACjC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;aACtB;SACF;IACH,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;IAEjB,OAAO,KAAK,CAAC;AACf,CAAC;AAnCD,0CAmCC"}
1
+ {"version":3,"file":"useLocalStorage.js","sourceRoot":"","sources":["../../src/hooks/useLocalStorage.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEpD,MAAM,UAAU,eAAe,CAAI,GAAW,EAAE,YAAe;IAC7D,MAAM,KAAK,GAAG,QAAQ,CAAI,GAAG,EAAE;QAC7B,IAAI;YACF,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACxC,IAAI,KAAK;gBAAE,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAM,CAAC;SAC1C;QAAC,OAAO,KAAU,EAAE;YACnB,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;gBACjC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;aACtB;SACF;QAED,OAAO,YAAY,CAAC;IACtB,CAAC,CAAC,CAAC;IACH,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAEvB,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IACnC,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,aAAa,CAAC,OAAO,EAAE;YACzB,aAAa,CAAC,OAAO,GAAG,KAAK,CAAC;YAC9B,OAAO;SACR;QACD,IAAI;YACF,IAAI,KAAK,KAAK,IAAI,EAAE;gBAClB,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;aAC9B;iBAAM;gBACL,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;aAClD;SACF;QAAC,OAAO,KAAU,EAAE;YACnB,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;gBACjC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;aACtB;SACF;IACH,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;IAEjB,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -1,10 +1,7 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.useSSR = void 0;
4
- const react_1 = require("react");
5
- const useSSR = () => {
6
- const [isClient, setIsClient] = (0, react_1.useState)(false);
7
- (0, react_1.useEffect)(() => {
1
+ import { useEffect, useState } from 'react';
2
+ export const useSSR = () => {
3
+ const [isClient, setIsClient] = useState(false);
4
+ useEffect(() => {
8
5
  if (typeof window !== 'undefined') {
9
6
  setIsClient(true);
10
7
  }
@@ -13,5 +10,4 @@ const useSSR = () => {
13
10
  isClient
14
11
  };
15
12
  };
16
- exports.useSSR = useSSR;
17
13
  //# sourceMappingURL=useSSR.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useSSR.js","sourceRoot":"","sources":["../../src/hooks/useSSR.ts"],"names":[],"mappings":";;;AAAA,iCAA4C;AAErC,MAAM,MAAM,GAAG,GAAG,EAAE;IACzB,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAC;IAEhD,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;YACjC,WAAW,CAAC,IAAI,CAAC,CAAC;SACnB;IACH,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO;QACL,QAAQ;KACT,CAAC;AACJ,CAAC,CAAC;AAZW,QAAA,MAAM,UAYjB"}
1
+ {"version":3,"file":"useSSR.js","sourceRoot":"","sources":["../../src/hooks/useSSR.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAE5C,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,EAAE;IACzB,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEhD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;YACjC,WAAW,CAAC,IAAI,CAAC,CAAC;SACnB;IACH,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO;QACL,QAAQ;KACT,CAAC;AACJ,CAAC,CAAC"}
package/dist/index.js CHANGED
@@ -1,19 +1,3 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./WalletProviders"), exports);
18
- __exportStar(require("./WalletAdapters"), exports);
1
+ export * from './WalletProviders';
2
+ export * from './WalletAdapters';
19
3
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAAkC;AAClC,mDAAiC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC"}
@@ -1,7 +1,4 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.payloadV1ToV0 = void 0;
4
- const payloadV1ToV0 = (payload) => {
1
+ export const payloadV1ToV0 = (payload) => {
5
2
  const v1 = payload;
6
3
  return {
7
4
  type: 'script_function_payload',
@@ -10,5 +7,4 @@ const payloadV1ToV0 = (payload) => {
10
7
  arguments: v1.arguments
11
8
  };
12
9
  };
13
- exports.payloadV1ToV0 = payloadV1ToV0;
14
10
  //# sourceMappingURL=util.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/utilities/util.ts"],"names":[],"mappings":";;;AAEO,MAAM,aAAa,GAAG,CAAC,OAA2B,EAAE,EAAE;IAC3D,MAAM,EAAE,GAAG,OAAkD,CAAC;IAC9D,OAAO;QACL,IAAI,EAAE,yBAAyB;QAC/B,QAAQ,EAAE,EAAE,CAAC,QAAQ;QACrB,cAAc,EAAE,EAAE,CAAC,cAAc;QACjC,SAAS,EAAE,EAAE,CAAC,SAAS;KACxB,CAAC;AACJ,CAAC,CAAC;AARW,QAAA,aAAa,iBAQxB"}
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/utilities/util.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,OAA2B,EAAE,EAAE;IAC3D,MAAM,EAAE,GAAG,OAAkD,CAAC;IAC9D,OAAO;QACL,IAAI,EAAE,yBAAyB;QAC/B,QAAQ,EAAE,EAAE,CAAC,QAAQ;QACrB,cAAc,EAAE,EAAE,CAAC,cAAc;QACjC,SAAS,EAAE,EAAE,CAAC,SAAS;KACxB,CAAC;AACJ,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@manahippo/aptos-wallet-adapter",
3
- "version": "0.3.8",
3
+ "version": "0.4.1",
4
4
  "main": "dist/index.js",
5
5
  "typings": "dist/index.d.ts",
6
6
  "files": [
@@ -24,11 +24,11 @@
24
24
  "typescript": "^4.7.4"
25
25
  },
26
26
  "dependencies": {
27
- "@fewcha/web3": "^0.1.25",
27
+ "@fewcha/web3": "^0.1.28",
28
28
  "@types/jest": "^27.0.1",
29
29
  "@types/node": "^18.7.6",
30
30
  "@types/react": "^18.0.17",
31
- "aptos": "^1.3.12",
31
+ "aptos": "1.3.14",
32
32
  "eventemitter3": "^4.0.7"
33
33
  }
34
34
  }
@@ -65,12 +65,33 @@ export interface WalletAdapterProps<Name extends string = string> {
65
65
  options?: any
66
66
  ): Promise<{ hash: HexEncodedBytes }>;
67
67
  signTransaction(transaction: TransactionPayload, options?: any): Promise<Uint8Array>;
68
- signMessage(message: string): Promise<string>;
68
+ signMessage(
69
+ message: string | SignMessagePayload | Uint8Array
70
+ ): Promise<string | SignMessageResponse>;
69
71
  }
70
72
 
71
73
  export type WalletAdapter<Name extends string = string> = WalletAdapterProps<Name> &
72
74
  EventEmitter<WalletAdapterEvents>;
73
75
 
76
+ export interface SignMessagePayload {
77
+ address?: boolean; // Should we include the address of the account in the message
78
+ application?: boolean; // Should we include the domain of the dapp
79
+ chainId?: boolean; // Should we include the current chain id the wallet is connected to
80
+ message: string; // The message to be signed and displayed to the user
81
+ nonce: string; // A nonce the dapp should generate
82
+ }
83
+
84
+ export interface SignMessageResponse {
85
+ address: string;
86
+ application: string;
87
+ chainId: number;
88
+ fullMessage: string; // The message that was generated to sign
89
+ message: string; // The message passed in by the user
90
+ nonce: string;
91
+ prefix: string; // Should always be APTOS
92
+ signature: string; // The signed full message
93
+ }
94
+
74
95
  export abstract class BaseWalletAdapter
75
96
  extends EventEmitter<WalletAdapterEvents>
76
97
  implements WalletAdapter
@@ -99,7 +120,9 @@ export abstract class BaseWalletAdapter
99
120
 
100
121
  abstract signTransaction(transaction: TransactionPayload): Promise<Uint8Array>;
101
122
 
102
- abstract signMessage(message: string): Promise<string>;
123
+ abstract signMessage(
124
+ message: string | SignMessagePayload | Uint8Array
125
+ ): Promise<string | SignMessageResponse>;
103
126
  }
104
127
 
105
128
  export function scopePollingDetectionStrategy(detect: () => boolean): void {
@@ -12,6 +12,8 @@ import {
12
12
  AccountKeys,
13
13
  BaseWalletAdapter,
14
14
  scopePollingDetectionStrategy,
15
+ SignMessagePayload,
16
+ SignMessageResponse,
15
17
  WalletName,
16
18
  WalletReadyState
17
19
  } from './BaseAdapter';
@@ -211,12 +213,12 @@ export class FewchaWalletAdapter extends BaseWalletAdapter {
211
213
  }
212
214
  }
213
215
 
214
- async signMessage(message: string): Promise<string> {
216
+ async signMessage(msgPayload: SignMessagePayload): Promise<SignMessageResponse> {
215
217
  try {
216
218
  const wallet = this._wallet;
217
219
  const provider = this._provider || window.fewcha;
218
220
  if (!wallet || !provider) throw new WalletNotConnectedError();
219
- const response = await provider?.signMessage(message);
221
+ const response = await provider?.signMessage(msgPayload);
220
222
  if (response) {
221
223
  return response.data;
222
224
  } else {
@@ -25,7 +25,7 @@ interface IHippoWallet {
25
25
  account: () => Promise<string>;
26
26
  isConnected: () => Promise<boolean>;
27
27
  signAndSubmitTransaction(transaction: any): Promise<any>;
28
- signTransaction(transaction: any): Promise<void>;
28
+ signTransaction(transaction: any): Promise<Uint8Array>;
29
29
  signMessage(message: string): Promise<string>;
30
30
  disconnect(): Promise<void>;
31
31
  }
@@ -12,6 +12,8 @@ import {
12
12
  AccountKeys,
13
13
  BaseWalletAdapter,
14
14
  scopePollingDetectionStrategy,
15
+ SignMessagePayload,
16
+ SignMessageResponse,
15
17
  WalletName,
16
18
  WalletReadyState
17
19
  } from './BaseAdapter';
@@ -36,7 +38,7 @@ interface IMartianWallet {
36
38
  generateTransaction(sender: MaybeHexString, payload: any, options?: any): Promise<any>;
37
39
  signAndSubmitTransaction(transaction: TransactionPayload): Promise<HexEncodedBytes>;
38
40
  signTransaction(transaction: TransactionPayload): Promise<Uint8Array>;
39
- signMessage(message: string): Promise<{ signature: string }>;
41
+ signMessage(message: SignMessagePayload): Promise<SignMessageResponse>;
40
42
  disconnect(): Promise<void>;
41
43
  }
42
44
 
@@ -217,14 +219,17 @@ export class MartianWalletAdapter extends BaseWalletAdapter {
217
219
  }
218
220
  }
219
221
 
220
- async signMessage(message: string): Promise<string> {
222
+ async signMessage(msgPayload: SignMessagePayload): Promise<SignMessageResponse> {
221
223
  try {
222
224
  const wallet = this._wallet;
223
225
  const provider = this._provider || window.martian;
224
226
  if (!wallet || !provider) throw new WalletNotConnectedError();
225
- const response = await provider?.signMessage(message);
226
- if (response?.signature) {
227
- return response?.signature;
227
+ if (typeof msgPayload !== 'object' || !msgPayload.nonce) {
228
+ throw new WalletSignMessageError('Invalid signMessage Payload');
229
+ }
230
+ const response = await provider?.signMessage(msgPayload);
231
+ if (response) {
232
+ return response;
228
233
  } else {
229
234
  throw new Error('Sign Message failed');
230
235
  }
@@ -11,6 +11,8 @@ import {
11
11
  AccountKeys,
12
12
  BaseWalletAdapter,
13
13
  scopePollingDetectionStrategy,
14
+ SignMessagePayload,
15
+ SignMessageResponse,
14
16
  WalletName,
15
17
  WalletReadyState
16
18
  } from './BaseAdapter';
@@ -30,7 +32,7 @@ interface IAptosWallet {
30
32
  options?: any
31
33
  ): Promise<{ hash: HexEncodedBytes } | IApotsErrorResult>;
32
34
  signTransaction(transaction: any, options?: any): Promise<Uint8Array | IApotsErrorResult>;
33
- signMessage(message: string): Promise<{ signature: string }>;
35
+ signMessage(message: SignMessagePayload): Promise<SignMessageResponse>;
34
36
  disconnect(): Promise<void>;
35
37
  }
36
38
 
@@ -203,14 +205,17 @@ export class AptosWalletAdapter extends BaseWalletAdapter {
203
205
  }
204
206
  }
205
207
 
206
- async signMessage(message: string): Promise<string> {
208
+ async signMessage(msgPayload: SignMessagePayload): Promise<SignMessageResponse> {
207
209
  try {
208
210
  const wallet = this._wallet;
209
211
  const provider = this._provider || window.aptos;
210
212
  if (!wallet || !provider) throw new WalletNotConnectedError();
211
- const response = await provider?.signMessage(message);
212
- if (response?.signature) {
213
- return response.signature;
213
+ if (typeof msgPayload !== 'object' || !msgPayload.nonce) {
214
+ throw new WalletSignMessageError('Invalid signMessage Payload');
215
+ }
216
+ const response = await provider?.signMessage(msgPayload);
217
+ if (response) {
218
+ return response;
214
219
  } else {
215
220
  throw new Error('Sign Message failed');
216
221
  }
@@ -44,7 +44,7 @@ export class SpikaWalletAdapter extends BaseWalletAdapter {
44
44
 
45
45
  url = 'https://chrome.google.com/webstore/detail/spika/fadkojdgchhfkdkklllhcphknohbmjmb';
46
46
 
47
- icon = 'https://pbs.twimg.com/profile_images/1562544739181887488/vSqEIeyh_400x400.png';
47
+ icon = 'https://spika.app/assets/logo_400_nb.png';
48
48
 
49
49
  protected _provider: ISpikaWallet | undefined;
50
50
 
@@ -1,4 +1,4 @@
1
- export * from './AptosWallet';
1
+ export * from './PetraWallet';
2
2
  export * from './BaseAdapter';
3
3
  export * from './HippoExtensionWallet';
4
4
  export * from './HippoWallet';
@@ -1,4 +1,3 @@
1
- import { useLocalStorage } from '../hooks/useLocalStorage';
2
1
  import { FC, ReactNode, useCallback, useEffect, useRef, useState } from 'react';
3
2
  import { TransactionPayload } from 'aptos/src/generated';
4
3
  import {
@@ -7,8 +6,10 @@ import {
7
6
  WalletNotReadyError,
8
7
  WalletNotSelectedError
9
8
  } from './errors';
9
+ import { useLocalStorage } from '../hooks/useLocalStorage';
10
10
  import {
11
11
  AccountKeys,
12
+ SignMessagePayload,
12
13
  WalletAdapter,
13
14
  WalletName,
14
15
  WalletReadyState
@@ -118,21 +119,26 @@ export const WalletProvider: FC<WalletProviderProps> = ({
118
119
  // If the window is closing or reloading, ignore disconnect and error events from the adapter
119
120
  useEffect(() => {
120
121
  function listener() {
122
+ if (!autoConnect) {
123
+ setName(null);
124
+ }
121
125
  isUnloading.current = true;
122
126
  }
123
127
 
124
128
  window.addEventListener('beforeunload', listener);
125
129
  return () => window.removeEventListener('beforeunload', listener);
126
- }, [isUnloading]);
130
+ }, [isUnloading, autoConnect]);
127
131
 
128
132
  // Handle the adapter's connect event
129
133
  const handleConnect = useCallback(() => {
130
134
  if (!adapter) return;
131
- setState((state) => ({
132
- ...state,
133
- connected: adapter.connected,
134
- account: adapter.publicAccount
135
- }));
135
+ setState((state) => {
136
+ return {
137
+ ...state,
138
+ connected: adapter.connected,
139
+ account: adapter.publicAccount
140
+ };
141
+ });
136
142
  }, [adapter]);
137
143
 
138
144
  // Handle the adapter's disconnect event
@@ -200,43 +206,35 @@ export const WalletProvider: FC<WalletProviderProps> = ({
200
206
  }, [isConnecting, connected, autoConnect, adapter, readyState, setName]);
201
207
 
202
208
  // Connect the adapter to the wallet
203
- const connect = useCallback(
204
- async (walletName: WalletName) => {
205
- if (isConnecting.current || isDisconnecting.current || connected) return;
206
- if (!name) {
207
- setName(walletName);
208
- } else {
209
- if (!adapter) throw handleError(new WalletNotSelectedError());
209
+ const connect = useCallback(async () => {
210
+ if (isConnecting.current || isDisconnecting.current || connected) return;
210
211
 
211
- if (
212
- !(readyState === WalletReadyState.Installed || readyState === WalletReadyState.Loadable)
213
- ) {
214
- // Clear the selected wallet
215
- setName(null);
212
+ if (!adapter) throw handleError(new WalletNotSelectedError());
216
213
 
217
- if (typeof window !== 'undefined') {
218
- window.open(adapter.url, '_blank');
219
- }
214
+ if (!(readyState === WalletReadyState.Installed || readyState === WalletReadyState.Loadable)) {
215
+ // Clear the selected wallet
216
+ setName(null);
220
217
 
221
- throw handleError(new WalletNotReadyError());
222
- }
223
- isConnecting.current = true;
224
- setConnecting(true);
225
- try {
226
- await adapter.connect();
227
- } catch (error: any) {
228
- // Clear the selected wallet
229
- setName(null);
230
- // Rethrow the error, and handleError will also be called
231
- throw error;
232
- } finally {
233
- setConnecting(false);
234
- isConnecting.current = false;
235
- }
218
+ if (typeof window !== 'undefined') {
219
+ window.open(adapter.url, '_blank');
236
220
  }
237
- },
238
- [isConnecting, isDisconnecting, connected, adapter, readyState, handleError, setName, name]
239
- );
221
+
222
+ throw handleError(new WalletNotReadyError());
223
+ }
224
+ isConnecting.current = true;
225
+ setConnecting(true);
226
+ try {
227
+ await adapter.connect();
228
+ } catch (error: any) {
229
+ // Clear the selected wallet
230
+ setName(null);
231
+ // Rethrow the error, and handleError will also be called
232
+ throw error;
233
+ } finally {
234
+ setConnecting(false);
235
+ isConnecting.current = false;
236
+ }
237
+ }, [isConnecting, isDisconnecting, connected, adapter, readyState, handleError, setName]);
240
238
 
241
239
  // Disconnect the adapter from the wallet
242
240
  const disconnect = useCallback(async () => {
@@ -279,10 +277,10 @@ export const WalletProvider: FC<WalletProviderProps> = ({
279
277
  );
280
278
 
281
279
  const signMessage = useCallback(
282
- async (message: string) => {
280
+ async (msgPayload: string | SignMessagePayload | Uint8Array) => {
283
281
  if (!adapter) throw handleError(new WalletNotSelectedError());
284
282
  if (!connected) throw handleError(new WalletNotConnectedError());
285
- return adapter.signMessage(message);
283
+ return adapter.signMessage(msgPayload);
286
284
  },
287
285
  [adapter, handleError, connected]
288
286
  );
@@ -2,6 +2,8 @@ import { TransactionPayload, HexEncodedBytes } from 'aptos/src/generated';
2
2
  import { createContext, useContext } from 'react';
3
3
  import {
4
4
  AccountKeys,
5
+ SignMessagePayload,
6
+ SignMessageResponse,
5
7
  WalletAdapter,
6
8
  WalletName,
7
9
  WalletReadyState
@@ -21,14 +23,16 @@ export interface WalletContextState {
21
23
  connected: boolean;
22
24
  disconnecting: boolean;
23
25
  select(walletName: WalletName): void;
24
- connect(walletName: string): Promise<void>;
26
+ connect(): Promise<void>;
25
27
  disconnect(): Promise<void>;
26
28
  signAndSubmitTransaction(
27
29
  transaction: TransactionPayload,
28
30
  options?: any
29
31
  ): Promise<{ hash: HexEncodedBytes }>;
30
32
  signTransaction(transaction: TransactionPayload, options?: any): Promise<Uint8Array>;
31
- signMessage(message: string): Promise<string>;
33
+ signMessage(
34
+ message: string | SignMessagePayload | Uint8Array
35
+ ): Promise<SignMessageResponse | string>;
32
36
  }
33
37
 
34
38
  const DEFAULT_CONTEXT = {
@@ -1 +0,0 @@
1
- {"version":3,"file":"AptosWallet.d.ts","sourceRoot":"","sources":["../../src/WalletAdapters/AptosWallet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAS1E,OAAO,EACL,WAAW,EACX,iBAAiB,EAEjB,UAAU,EACV,gBAAgB,EACjB,MAAM,eAAe,CAAC;AAEvB,UAAU,iBAAiB;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,YAAY;IACpB,OAAO,EAAE,MAAM,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/D,OAAO,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/B,WAAW,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IACpC,wBAAwB,CACtB,WAAW,EAAE,GAAG,EAChB,OAAO,CAAC,EAAE,GAAG,GACZ,OAAO,CAAC;QAAE,IAAI,EAAE,eAAe,CAAA;KAAE,GAAG,iBAAiB,CAAC,CAAC;IAC1D,eAAe,CAAC,WAAW,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,UAAU,GAAG,iBAAiB,CAAC,CAAC;IAC1F,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC7D,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7B;AAQD,eAAO,MAAM,eAAe,qBAAiC,CAAC;AAE9D,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,EAAE,YAAY,CAAC;IAExB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,kBAAmB,SAAQ,iBAAiB;IACvD,IAAI,sBAAmB;IAEvB,GAAG,SAAwD;IAE3D,IAAI,SAAwE;IAE5E,SAAS,CAAC,SAAS,EAAE,YAAY,GAAG,SAAS,CAAC;IAG9C,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC;IAE3B,SAAS,CAAC,WAAW,EAAE,gBAAgB,CAGJ;IAEnC,SAAS,CAAC,WAAW,EAAE,OAAO,CAAC;IAE/B,SAAS,CAAC,OAAO,EAAE,GAAG,GAAG,IAAI,CAAC;gBAElB,EAGV,OAAe,EAChB,GAAE,wBAA6B;IAqBhC,IAAI,aAAa,IAAI,WAAW,CAM/B;IAED,IAAI,UAAU,IAAI,OAAO,CAExB;IAED,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,IAAI,UAAU,IAAI,gBAAgB,CAEjC;IAEK,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAkCxB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAgB3B,eAAe,CAAC,WAAW,EAAE,kBAAkB,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC;IAkBpF,wBAAwB,CAC5B,WAAW,EAAE,kBAAkB,EAC/B,OAAO,CAAC,EAAE,GAAG,GACZ,OAAO,CAAC;QAAE,IAAI,EAAE,eAAe,CAAA;KAAE,CAAC;IAkB/B,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAiBpD"}