@txnlab/use-wallet 1.1.5 → 1.2.0

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.
@@ -5,8 +5,9 @@ import exodus from "./exodus";
5
5
  import algosigner from "./algosigner";
6
6
  import walletconnect from "./walletconnect";
7
7
  import kmd from "./kmd";
8
- export { pera, myalgo, defly, exodus, algosigner, walletconnect, kmd };
8
+ import mnemonic from "./mnemonic";
9
+ export { pera, myalgo, defly, exodus, algosigner, walletconnect, kmd, mnemonic, };
9
10
  declare const _default: {
10
- [x: string]: typeof pera | typeof myalgo | typeof defly | typeof exodus | typeof algosigner | typeof walletconnect | typeof kmd;
11
+ [x: string]: typeof pera | typeof myalgo | typeof defly | typeof exodus | typeof algosigner | typeof walletconnect | typeof kmd | typeof mnemonic;
11
12
  };
12
13
  export default _default;
@@ -23,6 +23,7 @@ declare class KMDWalletClient extends BaseWallet {
23
23
  releaseToken(token: string): Promise<void>;
24
24
  listWallets(): Promise<Record<string, string>>;
25
25
  listAccounts(wallet: string, password: string): Promise<Array<Account>>;
26
+ getWalletId(): Promise<string>;
26
27
  signTransactions(connectedAccounts: string[], transactions: Uint8Array[], indexesToSign?: number[], returnGroup?: boolean): Promise<Uint8Array[]>;
27
28
  signEncodedTransactions(transactions: TransactionsArray): Promise<Uint8Array[]>;
28
29
  }
@@ -0,0 +1,24 @@
1
+ import BaseWallet from "../base";
2
+ import { PROVIDER_ID } from "../../constants";
3
+ import type { Wallet, TransactionsArray, Network } from "../../types";
4
+ import { InitParams, MnemonicWalletClientConstructor } from "./types";
5
+ declare class MnemonicWalletClient extends BaseWallet {
6
+ #private;
7
+ id: PROVIDER_ID;
8
+ network: Network;
9
+ constructor({ metadata, id, algosdk, algodClient, network, }: MnemonicWalletClientConstructor);
10
+ static metadata: {
11
+ id: PROVIDER_ID;
12
+ name: string;
13
+ icon: string;
14
+ isWalletConnect: boolean;
15
+ };
16
+ static init({ algodOptions, algosdkStatic, network, }: InitParams): Promise<MnemonicWalletClient | null>;
17
+ connect(): Promise<Wallet>;
18
+ disconnect(): Promise<void>;
19
+ reconnect(): Promise<Wallet | null>;
20
+ requestPassword(): Promise<string>;
21
+ signTransactions(connectedAccounts: string[], transactions: Uint8Array[], indexesToSign?: number[], returnGroup?: boolean): Promise<Uint8Array[]>;
22
+ signEncodedTransactions(transactions: TransactionsArray): Promise<Uint8Array[]>;
23
+ }
24
+ export default MnemonicWalletClient;
@@ -0,0 +1 @@
1
+ export declare const ICON = "data:image/svg+xml,%3c%3fxml version='1.0' encoding='UTF-8'%3f%3e %3c!-- Generated by Pixelmator Pro 3.2.2 --%3e %3csvg width='409' height='210' viewBox='0 0 409 210' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3e%3ctext id='MNEMONIC' xml:space='preserve' x='0' y='129' font-family='Helvetica' font-size='72' fill='black'%3eMNEMONIC%3c/text%3e%3c/svg%3e";
@@ -0,0 +1,2 @@
1
+ import mnemonic from "./client";
2
+ export default mnemonic;
@@ -0,0 +1,28 @@
1
+ import type _algosdk from "algosdk";
2
+ import type { AlgodClientOptions, Network, Metadata } from "../../types";
3
+ import { PROVIDER_ID } from "../../constants";
4
+ export declare type ClientOptions = {
5
+ wallet: string;
6
+ password: string;
7
+ host: string;
8
+ token: string;
9
+ port: string;
10
+ };
11
+ export interface InitWalletHandle {
12
+ wallet_handle_token: string;
13
+ message?: string;
14
+ error?: boolean;
15
+ }
16
+ export declare type MnemonicWalletClientConstructor = {
17
+ metadata: Metadata;
18
+ id: PROVIDER_ID;
19
+ algosdk: typeof _algosdk;
20
+ algodClient: _algosdk.Algodv2;
21
+ network: Network;
22
+ };
23
+ export declare type InitParams = {
24
+ clientOptions?: ClientOptions;
25
+ algodOptions?: AlgodClientOptions;
26
+ algosdkStatic?: typeof _algosdk;
27
+ network?: Network;
28
+ };
@@ -6,7 +6,8 @@ export declare enum PROVIDER_ID {
6
6
  ALGOSIGNER = "algosigner",
7
7
  DEFLY = "defly",
8
8
  EXODUS = "exodus",
9
- WALLETCONNECT = "walletconnect"
9
+ WALLETCONNECT = "walletconnect",
10
+ MNEMONIC = "mnemonic"
10
11
  }
11
12
  export declare const DEFAULT_NETWORK: Network;
12
13
  export declare const DEFAULT_NODE_BASEURL = "https://mainnet-api.algonode.cloud";
@@ -10,6 +10,7 @@ export default function useWallet(): {
10
10
  defly: Promise<import("../clients/base/base").default | null>;
11
11
  exodus: Promise<import("../clients/base/base").default | null>;
12
12
  walletconnect: Promise<import("../clients/base/base").default | null>;
13
+ mnemonic: Promise<import("../clients/base/base").default | null>;
13
14
  }> | null;
14
15
  providers: Provider[] | null;
15
16
  connectedAccounts: import("../types").Account[];
package/dist/cjs/index.js CHANGED
@@ -2,6 +2,7 @@
2
2
 
3
3
  var require$$0 = require('react');
4
4
  var utils = require('@json-rpc-tools/utils');
5
+ var algosdk = require('algosdk');
5
6
 
6
7
  exports.PROVIDER_ID = void 0;
7
8
  (function (PROVIDER_ID) {
@@ -12,6 +13,7 @@ exports.PROVIDER_ID = void 0;
12
13
  PROVIDER_ID["DEFLY"] = "defly";
13
14
  PROVIDER_ID["EXODUS"] = "exodus";
14
15
  PROVIDER_ID["WALLETCONNECT"] = "walletconnect";
16
+ PROVIDER_ID["MNEMONIC"] = "mnemonic";
15
17
  })(exports.PROVIDER_ID || (exports.PROVIDER_ID = {}));
16
18
  const DEFAULT_NETWORK$1 = "mainnet";
17
19
  const DEFAULT_NODE_BASEURL = "https://mainnet-api.algonode.cloud";
@@ -1076,7 +1078,7 @@ class BaseClient {
1076
1078
  }
1077
1079
  }
1078
1080
 
1079
- const ICON$6 = "data:image/svg+xml;base64," +
1081
+ const ICON$7 = "data:image/svg+xml;base64," +
1080
1082
  "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIGlkPSJMYXllcl8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNzcgMTg3Ij48cmVjdCB4PSItMTEuMzgiIHk9Ii0yNS45NyIgd2lkdGg9IjIwMC4wMiIgaGVpZ2h0PSIyMzEuNTMiIHN0eWxlPSJmaWxsOiNmZTU7Ii8+PHBhdGggZD0iTTk0LjA1LDU5LjYxYzIuMDUsOC40OCwxLjM2LDE1Ljk0LTEuNTUsMTYuNjYtMi45LC43Mi02LjkxLTUuNTctOC45Ni0xNC4wNS0yLjA1LTguNDgtMS4zNi0xNS45NCwxLjU1LTE2LjY2LDIuOS0uNzIsNi45MSw1LjU3LDguOTYsMTQuMDVaIiBzdHlsZT0iZmlsbDojMWMxYzFjOyIvPjxwYXRoIGQ9Ik0xMjcuODUsNjYuOWMtNC41My00LjgxLTEzLjU1LTMuNS0yMC4xNSwyLjkxLTYuNTksNi40MS04LjI2LDE1LjUtMy43MywyMC4zMSw0LjUzLDQuOCwxMy41NSwzLjUsMjAuMTUtMi45MXM4LjI2LTE1LjUsMy43My0yMC4zMVoiIHN0eWxlPSJmaWxsOiMxYzFjMWM7Ii8+PHBhdGggZD0iTTkxLjc5LDE0MC40N2MyLjktLjcyLDMuNDktOC42LDEuMzItMTcuNjEtMi4xNy05LTYuMjktMTUuNzEtOS4xOS0xNC45OS0yLjksLjcyLTMuNDksOC42LTEuMzIsMTcuNjEsMi4xNyw5LDYuMjksMTUuNzEsOS4xOSwxNC45OVoiIHN0eWxlPSJmaWxsOiMxYzFjMWM7Ii8+PHBhdGggZD0iTTYyLjIyLDcxLjNjOC4zNywyLjQ3LDE0LjQ4LDYuOCwxMy42Niw5LjY3LS44MywyLjg3LTguMjgsMy4yLTE2LjY1LC43My04LjM3LTIuNDctMTQuNDgtNi44LTEzLjY2LTkuNjcsLjgzLTIuODcsOC4yOC0zLjIsMTYuNjUtLjczWiIgc3R5bGU9ImZpbGw6IzFjMWMxYzsiLz48cGF0aCBkPSJNMTE2LjU0LDEwMy43NGM4Ljg4LDIuNjIsMTUuNDEsNy4wNywxNC41OSw5Ljk0LS44MywyLjg3LTguNywzLjA4LTE3LjU4LC40Ni04Ljg4LTIuNjItMTUuNDEtNy4wNy0xNC41OS05Ljk0LC44My0yLjg3LDguNy0zLjA4LDE3LjU4LS40NloiIHN0eWxlPSJmaWxsOiMxYzFjMWM7Ii8+PHBhdGggZD0iTTcxLjY0LDk3LjcxYy0yLjA4LTIuMTUtOC44OCwuOTgtMTUuMiw2Ljk5LTYuMzIsNi4wMS05Ljc2LDEyLjYzLTcuNjksMTQuNzgsMi4wOCwyLjE1LDguODgtLjk4LDE1LjItNi45OSw2LjMyLTYuMDEsOS43Ni0xMi42Myw3LjY5LTE0Ljc4WiIgc3R5bGU9ImZpbGw6IzFjMWMxYzsiLz48L3N2Zz4=";
1081
1083
 
1082
1084
  class PeraWalletClient extends BaseClient {
@@ -1091,7 +1093,7 @@ class PeraWalletClient extends BaseClient {
1091
1093
  static metadata = {
1092
1094
  id: exports.PROVIDER_ID.PERA,
1093
1095
  name: "Pera",
1094
- icon: ICON$6,
1096
+ icon: ICON$7,
1095
1097
  isWalletConnect: true,
1096
1098
  };
1097
1099
  static async init({ clientOptions, algodOptions, clientStatic, algosdkStatic, network = DEFAULT_NETWORK$1, }) {
@@ -1245,7 +1247,7 @@ class PeraWalletClient extends BaseClient {
1245
1247
  }
1246
1248
  }
1247
1249
 
1248
- const ICON$5 = "data:image/svg+xml;base64," +
1250
+ const ICON$6 = "data:image/svg+xml;base64," +
1249
1251
  "PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHZpZXdCb3g9IjAgMCAzMiAzMiI+CiAgPHBhdGggZmlsbD0iIzI0NUVDNiIgZD0iTTE2LDMyYy0zLjIsMC02LjItMC45LTguOS0yLjdjLTIuNi0xLjgtNC43LTQuMy01LjktNy4yQzAsMTkuMi0wLjMsMTYsMC4zLDEyLjlDMC45LDkuOCwyLjQsNyw0LjcsNC43IEM2LjIsMy4yLDcuOSwyLDkuOSwxLjJDMTEuOCwwLjQsMTMuOSwwLDE2LDBzNC4yLDAuNCw2LjEsMS4yYzEuOSwwLjgsMy43LDIsNS4yLDMuNXMyLjcsMy4zLDMuNSw1LjJjMC44LDEuOSwxLjIsNCwxLjIsNi4xIHMtMC40LDQuMi0xLjIsNi4xYy0wLjgsMS45LTIsMy43LTMuNSw1LjJjLTEuNSwxLjUtMy4yLDIuNy01LjIsMy41QzIwLjIsMzEuNiwxOC4xLDMyLDE2LDMyTDE2LDMyeiBNMjAuMiwxMS4ybDAuMSwwLjVsMi42LDkuNWgyLjEgTDIxLjUsOC45bC0wLjEtMC4zaC0xLjlsMCwwLjFsLTEuNywzLjFMMTYsMTQuOWwwLDAuMWwwLTAuMWwtMC4yLTAuOGwtMC42LTIuNGwtMC4xLTAuMmwtMC43LTIuNmwtMC4xLTAuM2gtMS45bDAsMC4xbC0xLjcsMy4xIGwtMS44LDMuMkw3LjEsMThsLTEuOCwzLjJoMi4xTDkuMiwxOGwxLjgtMy4ybDEuOC0zLjJsMC4zLTAuNWwwLjEsMC41bDAuNSwyLjFsMC43LDIuNmwwLjIsMC45TDE0LjIsMThsLTEuOCwzLjJoMi4xbDAuOC0xLjMgbDEuMy0yLjNsMS41LTIuN2wxLjgtMy4yTDIwLjIsMTEuMkwyMC4yLDExLjJ6Ii8+Cjwvc3ZnPgo=";
1250
1252
 
1251
1253
  /**
@@ -1264,7 +1266,7 @@ class MyAlgoWalletClient extends BaseClient {
1264
1266
  static metadata = {
1265
1267
  id: exports.PROVIDER_ID.MYALGO,
1266
1268
  name: "MyAlgo",
1267
- icon: ICON$5,
1269
+ icon: ICON$6,
1268
1270
  isWalletConnect: false,
1269
1271
  };
1270
1272
  static async init({ clientOptions, algodOptions, clientStatic, algosdkStatic, network = DEFAULT_NETWORK$1, }) {
@@ -1372,7 +1374,7 @@ class MyAlgoWalletClient extends BaseClient {
1372
1374
  }
1373
1375
  }
1374
1376
 
1375
- const ICON$4 = "data:image/svg+xml;base64," +
1377
+ const ICON$5 = "data:image/svg+xml;base64," +
1376
1378
  "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+Cjxzdmcgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3BhY2U9InByZXNlcnZlIiB4bWxuczpzZXJpZj0iaHR0cDovL3d3dy5zZXJpZi5jb20vIiBzdHlsZT0iZmlsbC1ydWxlOmV2ZW5vZGQ7Y2xpcC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO3N0cm9rZS1taXRlcmxpbWl0OjI7Ij4KICAgIDxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDI0IiBoZWlnaHQ9IjEwMjQiLz4KICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KDEuNjgyMDksMCwwLDEuNjgyMDksMjI2LjM2OCwyMTIuODE4KSI+CiAgICAgICAgPHBhdGggZD0iTTMyNy4wNDksMjgwLjE5MkwxNjkuNTI0LDEzTDEyLDI4MC4xOTJMMTY5LjUyNCwxODkuMDg0TDMyNy4wNDksMjgwLjE5MloiIHN0eWxlPSJmaWxsOndoaXRlO2ZpbGwtcnVsZTpub256ZXJvOyIvPgogICAgPC9nPgogICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMS42ODIwOSwwLDAsMS42ODIwOSwyMjYuMzY4LDIxMi44MTgpIj4KICAgICAgICA8cGF0aCBkPSJNMjk5LjU0NiwzMDdMMTY5LjUyNSwyMzguNDczTDM5LjUwNCwzMDdMMTY5LjUyNSwyNjQuNjdMMjk5LjU0NiwzMDdaIiBzdHlsZT0iZmlsbDp3aGl0ZTtmaWxsLXJ1bGU6bm9uemVybzsiLz4KICAgIDwvZz4KPC9zdmc+Cg==";
1377
1379
 
1378
1380
  class DeflyWalletClient extends BaseClient {
@@ -1387,7 +1389,7 @@ class DeflyWalletClient extends BaseClient {
1387
1389
  static metadata = {
1388
1390
  id: exports.PROVIDER_ID.DEFLY,
1389
1391
  name: "Defly",
1390
- icon: ICON$4,
1392
+ icon: ICON$5,
1391
1393
  isWalletConnect: true,
1392
1394
  };
1393
1395
  static async init({ clientOptions, algodOptions, clientStatic, algosdkStatic, network = DEFAULT_NETWORK$1, }) {
@@ -1542,7 +1544,7 @@ class DeflyWalletClient extends BaseClient {
1542
1544
  }
1543
1545
  }
1544
1546
 
1545
- const ICON$3 = "data:image/svg+xml;base64," +
1547
+ const ICON$4 = "data:image/svg+xml;base64," +
1546
1548
  "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDI2LjUuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCAzMDAgMzAwIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAzMDAgMzAwOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+Cgkuc3Qwe2ZpbGw6dXJsKCNTVkdJRF8xXyk7fQoJLnN0MXtmaWxsOnVybCgjU1ZHSURfMDAwMDAwNDM0MjYxNjcxNDAxMDY1ODIyNzAwMDAwMDIxMzA3Njg5MDYwNzMxMTM0ODRfKTt9Cgkuc3Qye2ZpbGw6dXJsKCNTVkdJRF8wMDAwMDEwMjUxOTMxNjAxNTI3NjU4MTY0MDAwMDAxNjI3NDExMjM4MzE3NTY0MTc1OV8pO2ZpbHRlcjp1cmwoI0Fkb2JlX09wYWNpdHlNYXNrRmlsdGVyKTt9Cgkuc3Qze2ZpbGw6dXJsKCNTVkdJRF8wMDAwMDEzODU2MzM4MjQ2MjA4NjAyMDM1MDAwMDAxNDg3ODQ5MDI3MDc4MjA3MTIwN18pO30KCS5zdDR7bWFzazp1cmwoI21hc2swXzE2NjFfMjk1XzAwMDAwMDg4MTMyMjUxNTk3NDQxNTczNDkwMDAwMDExNjkzNjEyMDE4NTA2NjgxNDgxXyk7fQoJLnN0NXtmaWxsOnVybCgjU1ZHSURfMDAwMDAxMDYxMjA2MzI0NjE3OTI4NzExNjAwMDAwMDc0MzM5MTMwMzgzMzc3NjY1NzZfKTt9Cjwvc3R5bGU+CjxnPgoJCgkJPGxpbmVhckdyYWRpZW50IGlkPSJTVkdJRF8xXyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSIyNDYuNjAzIiB5MT0iOS4yMjEyIiB4Mj0iMTc0LjE1OCIgeTI9IjMwOC41NDI2IiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDEgMCAwIC0xIDAgMzAyKSI+CgkJPHN0b3AgIG9mZnNldD0iMCIgc3R5bGU9InN0b3AtY29sb3I6IzBCNDZGOSIvPgoJCTxzdG9wICBvZmZzZXQ9IjEiIHN0eWxlPSJzdG9wLWNvbG9yOiNCQkZCRTAiLz4KCTwvbGluZWFyR3JhZGllbnQ+Cgk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNMjc0LjcsOTMuOUwxNjYuNiwyM3YzOS42bDY5LjQsNDUuMWwtOC4yLDI1LjhoLTYxLjJ2MzIuOWg2MS4ybDguMiwyNS44bC02OS40LDQ1LjFWMjc3bDEwOC4yLTcwLjdMMjU3LDE1MC4xCgkJTDI3NC43LDkzLjl6Ii8+CgkKCQk8bGluZWFyR3JhZGllbnQgaWQ9IlNWR0lEXzAwMDAwMDE4MjI4MjM3MTUxMjM5MTUxMzIwMDAwMDE3ODM4NjY0MjU5NzY2MjczOTI1XyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSIxMjkuMzUxNiIgeTE9Ii0xOS4xNTczIiB4Mj0iNTYuOTA2NiIgeTI9IjI4MC4xNjQxIiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDEgMCAwIC0xIDAgMzAyKSI+CgkJPHN0b3AgIG9mZnNldD0iMCIgc3R5bGU9InN0b3AtY29sb3I6IzBCNDZGOSIvPgoJCTxzdG9wICBvZmZzZXQ9IjEiIHN0eWxlPSJzdG9wLWNvbG9yOiNCQkZCRTAiLz4KCTwvbGluZWFyR3JhZGllbnQ+Cgk8cGF0aCBzdHlsZT0iZmlsbDp1cmwoI1NWR0lEXzAwMDAwMDE4MjI4MjM3MTUxMjM5MTUxMzIwMDAwMDE3ODM4NjY0MjU5NzY2MjczOTI1Xyk7IiBkPSJNNzIuNSwxNjYuNGg2MXYtMzIuOUg3Mi4ybC03LjktMjUuOAoJCWw2OS4yLTQ1LjFWMjNMMjUuMyw5My45TDQzLDE1MC4xbC0xNy43LDU2LjJMMTMzLjcsMjc3di0zOS42bC02OS40LTQ1LjFMNzIuNSwxNjYuNHoiLz4KCTxkZWZzPgoJCTxmaWx0ZXIgaWQ9IkFkb2JlX09wYWNpdHlNYXNrRmlsdGVyIiBmaWx0ZXJVbml0cz0idXNlclNwYWNlT25Vc2UiIHg9IjI1LjQiIHk9IjIzIiB3aWR0aD0iMjQ3LjYiIGhlaWdodD0iMjU0Ij4KCQkJPGZlQ29sb3JNYXRyaXggIHR5cGU9Im1hdHJpeCIgdmFsdWVzPSIxIDAgMCAwIDAgIDAgMSAwIDAgMCAgMCAwIDEgMCAwICAwIDAgMCAxIDAiLz4KCQk8L2ZpbHRlcj4KCTwvZGVmcz4KCQoJCTxtYXNrIG1hc2tVbml0cz0idXNlclNwYWNlT25Vc2UiIHg9IjI1LjQiIHk9IjIzIiB3aWR0aD0iMjQ3LjYiIGhlaWdodD0iMjU0IiBpZD0ibWFzazBfMTY2MV8yOTVfMDAwMDAwODgxMzIyNTE1OTc0NDE1NzM0OTAwMDAwMTE2OTM2MTIwMTg1MDY2ODE0ODFfIj4KCQkKCQkJPGxpbmVhckdyYWRpZW50IGlkPSJTVkdJRF8wMDAwMDE2NTkyOTcyNDMwMzE2NDIwMzAwMDAwMDAwNzEwMTkwNDk4NDUxOTkxNTE2Ml8iIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iMjQ2LjYwMzgiIHkxPSI5LjIyMTQiIHgyPSIxNzQuMTU4OCIgeTI9IjMwOC41NDI4IiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDEgMCAwIC0xIDAgMzAyKSI+CgkJCTxzdG9wICBvZmZzZXQ9IjAiIHN0eWxlPSJzdG9wLWNvbG9yOiMwQjQ2RjkiLz4KCQkJPHN0b3AgIG9mZnNldD0iMSIgc3R5bGU9InN0b3AtY29sb3I6I0JCRkJFMCIvPgoJCTwvbGluZWFyR3JhZGllbnQ+CgkJPHBhdGggc3R5bGU9ImZpbGw6dXJsKCNTVkdJRF8wMDAwMDE2NTkyOTcyNDMwMzE2NDIwMzAwMDAwMDAwNzEwMTkwNDk4NDUxOTkxNTE2Ml8pO2ZpbHRlcjp1cmwoI0Fkb2JlX09wYWNpdHlNYXNrRmlsdGVyKTsiIGQ9IgoJCQlNMjc0LjcsOTMuOUwxNjYuNiwyM3YzOS42bDY5LjQsNDUuMWwtOC4yLDI1LjhoLTYxLjJ2MzIuOWg2MS4ybDguMiwyNS44bC02OS40LDQ1LjFWMjc3bDEwOC4yLTcwLjdMMjU3LDE1MC4xTDI3NC43LDkzLjl6Ii8+CgkJCgkJCTxsaW5lYXJHcmFkaWVudCBpZD0iU1ZHSURfMDAwMDAxMTk4MTE3MDc2MjE0NzI4MTQyNzAwMDAwMTA4Mjk2NTkzODM4NTEyMDI0OTFfIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjEyOS4zNTIxIiB5MT0iLTE5LjE1NzEiIHgyPSI1Ni45MDcxIiB5Mj0iMjgwLjE2NDIiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMSAwIDAgLTEgMCAzMDIpIj4KCQkJPHN0b3AgIG9mZnNldD0iMCIgc3R5bGU9InN0b3AtY29sb3I6IzBCNDZGOSIvPgoJCQk8c3RvcCAgb2Zmc2V0PSIxIiBzdHlsZT0ic3RvcC1jb2xvcjojQkJGQkUwIi8+CgkJPC9saW5lYXJHcmFkaWVudD4KCQk8cGF0aCBzdHlsZT0iZmlsbDp1cmwoI1NWR0lEXzAwMDAwMTE5ODExNzA3NjIxNDcyODE0MjcwMDAwMDEwODI5NjU5MzgzODUxMjAyNDkxXyk7IiBkPSJNNzIuNSwxNjYuNGg2MXYtMzIuOUg3Mi4ybC03LjktMjUuOAoJCQlsNjkuMi00NS4xVjIzTDI1LjMsOTMuOUw0MywxNTAuMWwtMTcuNyw1Ni4yTDEzMy43LDI3N3YtMzkuNmwtNjkuNC00NS4xTDcyLjUsMTY2LjR6Ii8+Cgk8L21hc2s+Cgk8ZyBjbGFzcz0ic3Q0Ij4KCQkKCQkJPGxpbmVhckdyYWRpZW50IGlkPSJTVkdJRF8wMDAwMDEwOTAxOTkxODU1Nzc3MzA1MzQyMDAwMDAxNzYwMjQwNTkwODA2NzEyMDMwMF8iIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iNDYuNDY2MiIgeTE9IjIyOC43NTU0IiB4Mj0iMTcxLjg2MzgiIHkyPSIxMzUuMTAzOSIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgxIDAgMCAtMSAwIDMwMikiPgoJCQk8c3RvcCAgb2Zmc2V0PSIwLjExOTgiIHN0eWxlPSJzdG9wLWNvbG9yOiM4OTUyRkY7c3RvcC1vcGFjaXR5OjAuODciLz4KCQkJPHN0b3AgIG9mZnNldD0iMSIgc3R5bGU9InN0b3AtY29sb3I6I0RBQkRGRjtzdG9wLW9wYWNpdHk6MCIvPgoJCTwvbGluZWFyR3JhZGllbnQ+CgkJCgkJCTxyZWN0IHg9IjI1LjQiIHk9IjIzIiBzdHlsZT0iZmlsbDp1cmwoI1NWR0lEXzAwMDAwMTA5MDE5OTE4NTU3NzczMDUzNDIwMDAwMDE3NjAyNDA1OTA4MDY3MTIwMzAwXyk7IiB3aWR0aD0iMjQ3LjYiIGhlaWdodD0iMjU0Ii8+Cgk8L2c+CjwvZz4KPC9zdmc+Cg==";
1547
1549
 
1548
1550
  class ExodusClient extends BaseClient {
@@ -1559,7 +1561,7 @@ class ExodusClient extends BaseClient {
1559
1561
  static metadata = {
1560
1562
  id: exports.PROVIDER_ID.EXODUS,
1561
1563
  name: "Exodus",
1562
- icon: ICON$3,
1564
+ icon: ICON$4,
1563
1565
  isWalletConnect: false,
1564
1566
  };
1565
1567
  static async init({ clientOptions, algodOptions, algosdkStatic, network = DEFAULT_NETWORK$1, }) {
@@ -1582,7 +1584,8 @@ class ExodusClient extends BaseClient {
1582
1584
  });
1583
1585
  }
1584
1586
  catch (e) {
1585
- console.error("Error initializing...", e);
1587
+ console.warn(e);
1588
+ console.warn(`Error initializing ${ExodusClient.metadata.name}.`, "Do you have the extension installed?", "https://www.exodus.com/web3-wallet");
1586
1589
  return null;
1587
1590
  }
1588
1591
  }
@@ -1683,7 +1686,7 @@ class ExodusClient extends BaseClient {
1683
1686
  }
1684
1687
  }
1685
1688
 
1686
- const ICON$2 = "data:image/svg+xml;base64," +
1689
+ const ICON$3 = "data:image/svg+xml;base64," +
1687
1690
  "PHN2ZyB3aWR0aD0iMjM4IiBoZWlnaHQ9IjIzOCIgdmlld0JveD0iMCAwIDIzOCAyMzgiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxwYXRoIGQ9Ik01MS43MDUgMTQ1LjA0MkgxMTYuNzA1TDEwNy43MDUgMTU1LjA0Mkg1MS43MDVWMTQ1LjA0MloiIGZpbGw9IiNENjQ1MDAiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xNDcuNTE5IDE5MS41NTdMMTI5LjU3NyAxNDQuMzk0TDE0Mi40MDQgMTI3LjExMkwxNjcuODc1IDE5MS41NTdIMTQ3LjUxOVpNMTEwLjkzNiA5NS4zOTMyTDEyMC42MTMgMTIwLjgzMUwxMzMuMzU5IDEwNC4yMjhMMTE3LjQ3NSA2NC4wNDIyQzExNS45MjggNjAuMTI4IDExMi4xNDYgNTcuNTU2NSAxMDcuOTM4IDU3LjU1NjVDMTAzLjcyOSA1Ny41NTY1IDk5Ljk0NzQgNjAuMTI4IDk4LjQwMDMgNjQuMDQyMkw2Ny45NjU5IDE0MS4wNDJIODcuNzgwN0M5NS40MTUzIDEyMS4wMTEgMTAyLjg5MyAxMDEuMzk5IDEwNS4xOTggOTUuMzU0MUMxMDUuNjQxIDk0LjE5MTIgMTA2Ljc0MyA5My40NTk5IDEwNy45ODcgOTMuNDU5OUgxMDguMTMyQzEwOS4zNzggOTMuNDU5OSAxMTAuNDkzIDk0LjIyOTMgMTEwLjkzNiA5NS4zOTMyWk04MC45MjEgMTU5LjA0MkM3NC45Mjg5IDE3NC43NjggNjkuODY2MSAxODguMDYzIDY4LjU0NDcgMTkxLjU1N0g0OEw2MC44NTE0IDE1OS4wNDJIODAuOTIxWiIgZmlsbD0iIzIyMkI2MCIvPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTE3Ni4wMjYgNTQuNzUwOUMxNzcuOTk3IDUyLjA4NzIgMTgxLjc1NCA1MS41MjU3IDE4NC40MTggNTMuNDk2N0MxODcuMDgyIDU1LjQ2NzggMTg3LjY0MyA1OS4yMjUxIDE4NS42NzIgNjEuODg4OEwxMzAuMDEzIDEzNy4xMDdDMTI5LjcxNCAxMzcuNTEyIDEyOS4zNDEgMTM3Ljg1NyAxMjguOTEzIDEzOC4xMjNMMTE3Ljg1NiAxNDUuMDEzQzExNy4wODcgMTQ1LjQ5MyAxMTYuMTI4IDE0NC43ODMgMTE2LjM2MSAxNDMuOTA3TDExOS43MTggMTMxLjMxOEMxMTkuODQ3IDEzMC44MzIgMTIwLjA2OCAxMzAuMzc0IDEyMC4zNjcgMTI5Ljk3TDE3MC42NyA2MS45ODlMMTY5LjkyOSA2MS40NDA1QzE2OS40ODUgNjEuMTEyIDE2OC44NTkgNjEuMjA1NiAxNjguNTMgNjEuNjQ5NkwxNTIuMzExIDgzLjU2ODhDMTUyLjU4NiA4NC4yMDIzIDE1Mi41MjQgODQuOTYxMiAxNTIuMDg0IDg1LjU1NjJMMTQ5LjExIDg5LjU3NTVDMTQ4LjQ1MyA5MC40NjM0IDE0Ny4yMDEgOTAuNjUwNiAxNDYuMzEzIDg5Ljk5MzZDMTQ1LjQyNSA4OS4zMzY2IDE0NS4yMzggODguMDg0MSAxNDUuODk1IDg3LjE5NjJMMTQ3LjY3OSA4NC43ODQ3TDE0OC44NjkgODMuMTc2OUwxNjcuMzA4IDU4LjI1NzRDMTY4LjYyMiA1Ni40ODE1IDE3MS4xMjcgNTYuMTA3MiAxNzIuOTAzIDU3LjQyMTJMMTczLjY0NCA1Ny45Njk3TDE3Ni4wMjYgNTQuNzUwOVoiIGZpbGw9IiNENjQ1MDAiLz4KPC9zdmc+Cg==";
1688
1691
 
1689
1692
  const getNetwork = (network) => {
@@ -1709,7 +1712,7 @@ class AlgoSignerClient extends BaseClient {
1709
1712
  static metadata = {
1710
1713
  id: exports.PROVIDER_ID.ALGOSIGNER,
1711
1714
  name: "AlgoSigner",
1712
- icon: ICON$2,
1715
+ icon: ICON$3,
1713
1716
  isWalletConnect: false,
1714
1717
  };
1715
1718
  static async init({ algodOptions, algosdkStatic, network = DEFAULT_NETWORK$1, }) {
@@ -1731,7 +1734,8 @@ class AlgoSignerClient extends BaseClient {
1731
1734
  });
1732
1735
  }
1733
1736
  catch (e) {
1734
- console.error("Error initializing...", e);
1737
+ console.warn(e);
1738
+ console.warn(`Error initializing ${AlgoSignerClient.metadata.name}.`, "Do you have the extension installed?", "https://www.purestake.com/technology/algosigner");
1735
1739
  return null;
1736
1740
  }
1737
1741
  }
@@ -1850,7 +1854,7 @@ class AlgoSignerClient extends BaseClient {
1850
1854
  }
1851
1855
  }
1852
1856
 
1853
- const ICON$1 = "data:image/svg+xml;base64," +
1857
+ const ICON$2 = "data:image/svg+xml;base64," +
1854
1858
  "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJMYXllcl8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIKCSB2aWV3Qm94PSIwIDAgNDgwIDQ4MCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNDgwIDQ4MDsiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLnN0MHtmaWxsOiMzMzk2RkY7fQo8L3N0eWxlPgo8cGF0aCBjbGFzcz0ic3QwIiBkPSJNMTI2LjYsMTY4YzYyLjYtNjEuMywxNjQuMi02MS4zLDIyNi44LDBsNy41LDcuNGMzLjEsMy4xLDMuMSw4LDAsMTEuMWwtMjUuOCwyNS4yYy0xLjYsMS41LTQuMSwxLjUtNS43LDAKCWwtMTAuNC0xMC4yYy00My43LTQyLjgtMTE0LjUtNDIuOC0xNTguMiwwbC0xMS4xLDEwLjljLTEuNiwxLjUtNC4xLDEuNS01LjcsMGwtMjUuOC0yNS4yYy0zLjEtMy4xLTMuMS04LDAtMTEuMUwxMjYuNiwxNjh6CgkgTTQwNi43LDIyMC4ybDIyLjksMjIuNWMzLjEsMy4xLDMuMSw4LDAsMTEuMUwzMjYuMiwzNTUuMWMtMy4xLDMuMS04LjIsMy4xLTExLjMsMGwtNzMuNC03MS45Yy0wLjgtMC44LTIuMS0wLjgtMi44LDBsLTczLjQsNzEuOQoJYy0zLjEsMy4xLTguMiwzLjEtMTEuMywwTDUwLjMsMjUzLjhjLTMuMS0zLjEtMy4xLTgsMC0xMS4xbDIyLjktMjIuNWMzLjEtMy4xLDguMi0zLjEsMTEuMywwbDczLjQsNzEuOWMwLjgsMC44LDIuMSwwLjgsMi44LDAKCWw3My40LTcxLjljMy4xLTMuMSw4LjItMy4xLDExLjMsMGw3My40LDcxLjljMC44LDAuOCwyLjEsMC44LDIuOCwwbDczLjQtNzEuOUMzOTguNSwyMTcuMSw0MDMuNiwyMTcuMSw0MDYuNywyMjAuMkw0MDYuNywyMjAuMnoiLz4KPC9zdmc+Cg==";
1855
1859
  const DEFAULT_NETWORK = "mainnet";
1856
1860
 
@@ -1866,7 +1870,7 @@ class WalletConnectClient extends BaseClient {
1866
1870
  static metadata = {
1867
1871
  id: exports.PROVIDER_ID.WALLETCONNECT,
1868
1872
  name: "WalletConnect",
1869
- icon: ICON$1,
1873
+ icon: ICON$2,
1870
1874
  isWalletConnect: true,
1871
1875
  };
1872
1876
  static async init({ clientOptions, algodOptions, clientStatic, modalStatic, algosdkStatic, network = DEFAULT_NETWORK, }) {
@@ -2051,7 +2055,7 @@ class WalletConnectClient extends BaseClient {
2051
2055
  }
2052
2056
  }
2053
2057
 
2054
- const ICON = "data:image/svg+xml;base64," +
2058
+ const ICON$1 = "data:image/svg+xml;base64," +
2055
2059
  "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIGlkPSJMYXllcl8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDkuODMgMjEwLjMzIj48dGV4dCB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwIDE2MS4zMSkiIHN0eWxlPSJmb250LWZhbWlseTpJQk1QbGV4U2Fucy1NZWRtLCAmYXBvcztJQk0gUGxleCBTYW5zJmFwb3M7OyBmb250LXNpemU6MTkwcHg7Ij48dHNwYW4geD0iMCIgeT0iMCI+S01EPC90c3Bhbj48L3RleHQ+PC9zdmc+";
2056
2060
 
2057
2061
  class KMDWalletClient extends BaseClient {
@@ -2074,7 +2078,7 @@ class KMDWalletClient extends BaseClient {
2074
2078
  static metadata = {
2075
2079
  id: exports.PROVIDER_ID.KMD,
2076
2080
  name: "KMD",
2077
- icon: ICON,
2081
+ icon: ICON$1,
2078
2082
  isWalletConnect: false,
2079
2083
  };
2080
2084
  static async init({ clientOptions, algodOptions, algosdkStatic, network = DEFAULT_NETWORK$1, }) {
@@ -2114,7 +2118,7 @@ class KMDWalletClient extends BaseClient {
2114
2118
  }
2115
2119
  async requestPassword() {
2116
2120
  // TODO: store it locally?
2117
- const pw = prompt("gib password");
2121
+ const pw = prompt("KMD password");
2118
2122
  return pw ? pw : "";
2119
2123
  }
2120
2124
  async getWalletToken(walletId, password) {
@@ -2134,12 +2138,9 @@ class KMDWalletClient extends BaseClient {
2134
2138
  return walletMap;
2135
2139
  }
2136
2140
  async listAccounts(wallet, password) {
2137
- const walletMap = await this.listWallets();
2138
- if (!(wallet in walletMap))
2139
- throw Error("No wallet named: " + wallet);
2140
- this.walletId = walletMap[wallet];
2141
2141
  // Get a handle token
2142
- const token = await this.getWalletToken(this.walletId, password);
2142
+ const walletId = await this.getWalletId();
2143
+ const token = await this.getWalletToken(walletId, password);
2143
2144
  // Fetch accounts and format them as lib expects
2144
2145
  const listResponse = await this.#client.listKeys(token);
2145
2146
  const addresses = listResponse["addresses"];
@@ -2154,14 +2155,25 @@ class KMDWalletClient extends BaseClient {
2154
2155
  this.releaseToken(token);
2155
2156
  return mappedAccounts;
2156
2157
  }
2158
+ async getWalletId() {
2159
+ // Use cached if available
2160
+ if (this.walletId !== "")
2161
+ return this.walletId;
2162
+ const walletMap = await this.listWallets();
2163
+ if (!(this.#wallet in walletMap))
2164
+ throw Error("No wallet named: " + this.#wallet);
2165
+ this.walletId = walletMap[this.#wallet];
2166
+ return this.walletId;
2167
+ }
2157
2168
  async signTransactions(connectedAccounts, transactions, indexesToSign, returnGroup = true) {
2158
2169
  // Decode the transactions to access their properties.
2159
2170
  const decodedTxns = transactions.map((txn) => {
2160
2171
  return this.algosdk.decodeObj(txn);
2161
2172
  });
2162
2173
  // Get a handle token
2174
+ const walletId = await this.getWalletId();
2163
2175
  const pw = await this.requestPassword();
2164
- const token = await this.getWalletToken(this.walletId, pw);
2176
+ const token = await this.getWalletToken(walletId, pw);
2165
2177
  const signedTxns = [];
2166
2178
  // Sign them with the client.
2167
2179
  const signingPromises = [];
@@ -2211,6 +2223,129 @@ class KMDWalletClient extends BaseClient {
2211
2223
  }
2212
2224
  }
2213
2225
 
2226
+ const ICON = "data:image/svg+xml,%3c%3fxml version='1.0' encoding='UTF-8'%3f%3e %3c!-- Generated by Pixelmator Pro 3.2.2 --%3e %3csvg width='409' height='210' viewBox='0 0 409 210' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3e%3ctext id='MNEMONIC' xml:space='preserve' x='0' y='129' font-family='Helvetica' font-size='72' fill='black'%3eMNEMONIC%3c/text%3e%3c/svg%3e";
2227
+
2228
+ class MnemonicWalletClient extends BaseClient {
2229
+ #client;
2230
+ id;
2231
+ network;
2232
+ constructor({ metadata, id, algosdk, algodClient, network, }) {
2233
+ super(metadata, algosdk, algodClient);
2234
+ this.id = id;
2235
+ this.network = network;
2236
+ this.metadata = MnemonicWalletClient.metadata;
2237
+ }
2238
+ static metadata = {
2239
+ id: exports.PROVIDER_ID.MNEMONIC,
2240
+ name: "MNEMONIC",
2241
+ icon: ICON,
2242
+ isWalletConnect: false,
2243
+ };
2244
+ static async init({ algodOptions, algosdkStatic, network = DEFAULT_NETWORK$1, }) {
2245
+ try {
2246
+ const algosdk = algosdkStatic || (await Algod.init(algodOptions)).algosdk;
2247
+ const algodClient = await getAlgodClient(algosdk, algodOptions);
2248
+ console.log(network, algodClient);
2249
+ return new MnemonicWalletClient({
2250
+ metadata: MnemonicWalletClient.metadata,
2251
+ id: exports.PROVIDER_ID.MNEMONIC,
2252
+ algosdk: algosdk,
2253
+ algodClient: algodClient,
2254
+ network,
2255
+ });
2256
+ }
2257
+ catch (e) {
2258
+ console.error("Error initializing...", e);
2259
+ return null;
2260
+ }
2261
+ }
2262
+ async connect() {
2263
+ const password = await this.requestPassword();
2264
+ if (!password) {
2265
+ this.#client = undefined;
2266
+ throw new Error("Mnemonic passphrase is required");
2267
+ }
2268
+ this.#client = algosdk.mnemonicToSecretKey(password);
2269
+ return {
2270
+ ...MnemonicWalletClient.metadata,
2271
+ accounts: [
2272
+ {
2273
+ name: `MnemonicWallet 1`,
2274
+ address: this.#client.addr,
2275
+ providerId: MnemonicWalletClient.metadata.id,
2276
+ },
2277
+ ],
2278
+ };
2279
+ }
2280
+ async disconnect() {
2281
+ this.#client = undefined;
2282
+ return;
2283
+ }
2284
+ async reconnect() {
2285
+ return null;
2286
+ }
2287
+ async requestPassword() {
2288
+ // TODO: store it locally?
2289
+ const pass = prompt("enter mnemonic passphrase, 25 words");
2290
+ return pass ? pass : "";
2291
+ }
2292
+ signTransactions(connectedAccounts, transactions, indexesToSign, returnGroup = true) {
2293
+ if (!this.#client) {
2294
+ throw new Error("Client not connected");
2295
+ }
2296
+ // Decode the transactions to access their properties.
2297
+ const decodedTxns = transactions.map((txn) => {
2298
+ return this.algosdk.decodeObj(txn);
2299
+ });
2300
+ const signedTxns = [];
2301
+ // Sign them with the client.
2302
+ const signingResults = [];
2303
+ for (const idx in decodedTxns) {
2304
+ const dtxn = decodedTxns[idx];
2305
+ const isSigned = "txn" in dtxn;
2306
+ // push the incoming txn into signed, we'll overwrite it later
2307
+ signedTxns.push(transactions[idx]);
2308
+ // Its already signed, skip it
2309
+ if (isSigned) {
2310
+ continue;
2311
+ // Not specified in indexes to sign, skip it
2312
+ }
2313
+ else if (indexesToSign &&
2314
+ indexesToSign.length &&
2315
+ !indexesToSign.includes(Number(idx))) {
2316
+ continue;
2317
+ }
2318
+ // Not to be signed by our signer, skip it
2319
+ else if (!connectedAccounts.includes(this.algosdk.encodeAddress(dtxn.snd))) {
2320
+ continue;
2321
+ }
2322
+ // overwrite with an empty blob
2323
+ signedTxns[idx] = new Uint8Array();
2324
+ const txn = this.algosdk.Transaction.from_obj_for_encoding(dtxn);
2325
+ const signedTxn = txn.signTxn(this.#client.sk);
2326
+ signingResults.push(signedTxn);
2327
+ }
2328
+ // Restore the newly signed txns in the correct order
2329
+ let signedIdx = 0;
2330
+ const formattedTxns = signedTxns.reduce((acc, txn, i) => {
2331
+ // If its an empty array, infer that it is one of the
2332
+ // ones we wanted to have signed and overwrite the empty buff
2333
+ if (txn.length === 0) {
2334
+ acc.push(signingResults[signedIdx]);
2335
+ signedIdx += 1;
2336
+ }
2337
+ else if (returnGroup) {
2338
+ acc.push(txn);
2339
+ }
2340
+ return acc;
2341
+ }, []);
2342
+ return Promise.resolve(formattedTxns);
2343
+ }
2344
+ signEncodedTransactions(transactions) {
2345
+ throw new Error("Method not implemented.");
2346
+ }
2347
+ }
2348
+
2214
2349
  var allClients = {
2215
2350
  [PeraWalletClient.metadata.id]: PeraWalletClient,
2216
2351
  [MyAlgoWalletClient.metadata.id]: MyAlgoWalletClient,
@@ -2219,6 +2354,7 @@ var allClients = {
2219
2354
  [AlgoSignerClient.metadata.id]: AlgoSignerClient,
2220
2355
  [WalletConnectClient.metadata.id]: WalletConnectClient,
2221
2356
  [KMDWalletClient.metadata.id]: KMDWalletClient,
2357
+ [MnemonicWalletClient.metadata.id]: MnemonicWalletClient,
2222
2358
  };
2223
2359
 
2224
2360
  const clearActiveAccount = useWalletStore.getState().clearActiveAccount;
@@ -2441,7 +2577,7 @@ const initializeProviders = (providers, nodeConfig, algosdkStatic) => {
2441
2577
  const { network = DEFAULT_NETWORK$1, nodeServer = DEFAULT_NODE_BASEURL, nodePort = DEFAULT_NODE_PORT, nodeToken = DEFAULT_NODE_TOKEN, } = nodeConfig || {};
2442
2578
  if (!providers || providers.length === 0)
2443
2579
  for (const [id, client] of Object.entries(allClients)) {
2444
- if (id === "kmd") {
2580
+ if (id === "kmd" || id === "mnemonic") {
2445
2581
  continue;
2446
2582
  }
2447
2583
  initializedProviders[id] = client.init({
@@ -2485,6 +2621,7 @@ exports.defly = DeflyWalletClient;
2485
2621
  exports.exodus = ExodusClient;
2486
2622
  exports.initializeProviders = initializeProviders;
2487
2623
  exports.kmd = KMDWalletClient;
2624
+ exports.mnemonic = MnemonicWalletClient;
2488
2625
  exports.myalgo = MyAlgoWalletClient;
2489
2626
  exports.pera = PeraWalletClient;
2490
2627
  exports.reconnectProviders = reconnectProviders;