@algorandfoundation/algokit-utils 6.1.0-beta.1 → 6.1.0-beta.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (121) hide show
  1. package/README.md +8 -0
  2. package/account/account.d.ts +24 -3
  3. package/account/account.d.ts.map +1 -1
  4. package/account/account.js +29 -53
  5. package/account/account.js.map +1 -1
  6. package/account/account.mjs +29 -53
  7. package/account/account.mjs.map +1 -1
  8. package/account/get-account.d.ts +2 -2
  9. package/account/get-account.d.ts.map +1 -1
  10. package/account/get-account.js +9 -29
  11. package/account/get-account.js.map +1 -1
  12. package/account/get-account.mjs +4 -24
  13. package/account/get-account.mjs.map +1 -1
  14. package/account/get-dispenser-account.d.ts +7 -2
  15. package/account/get-dispenser-account.d.ts.map +1 -1
  16. package/account/get-dispenser-account.js +7 -8
  17. package/account/get-dispenser-account.js.map +1 -1
  18. package/account/get-dispenser-account.mjs +7 -8
  19. package/account/get-dispenser-account.mjs.map +1 -1
  20. package/account/mnemonic-account.d.ts +4 -1
  21. package/account/mnemonic-account.d.ts.map +1 -1
  22. package/account/mnemonic-account.js +4 -1
  23. package/account/mnemonic-account.js.map +1 -1
  24. package/account/mnemonic-account.mjs +4 -1
  25. package/account/mnemonic-account.mjs.map +1 -1
  26. package/dispenser-client.d.ts +2 -0
  27. package/dispenser-client.d.ts.map +1 -1
  28. package/dispenser-client.js +2 -0
  29. package/dispenser-client.js.map +1 -1
  30. package/dispenser-client.mjs +2 -0
  31. package/dispenser-client.mjs.map +1 -1
  32. package/index.d.ts +7 -7
  33. package/index.d.ts.map +1 -1
  34. package/index.js +31 -31
  35. package/index.mjs +9 -9
  36. package/localnet/get-kmd-wallet-account.d.ts +2 -0
  37. package/localnet/get-kmd-wallet-account.d.ts.map +1 -1
  38. package/localnet/get-kmd-wallet-account.js +5 -30
  39. package/localnet/get-kmd-wallet-account.js.map +1 -1
  40. package/localnet/get-kmd-wallet-account.mjs +5 -30
  41. package/localnet/get-kmd-wallet-account.mjs.map +1 -1
  42. package/localnet/get-localnet-dispenser-account.d.ts +2 -0
  43. package/localnet/get-localnet-dispenser-account.d.ts.map +1 -1
  44. package/localnet/get-localnet-dispenser-account.js +5 -7
  45. package/localnet/get-localnet-dispenser-account.js.map +1 -1
  46. package/localnet/get-localnet-dispenser-account.mjs +5 -7
  47. package/localnet/get-localnet-dispenser-account.mjs.map +1 -1
  48. package/localnet/get-or-create-kmd-wallet-account.d.ts +2 -0
  49. package/localnet/get-or-create-kmd-wallet-account.d.ts.map +1 -1
  50. package/localnet/get-or-create-kmd-wallet-account.js +5 -27
  51. package/localnet/get-or-create-kmd-wallet-account.js.map +1 -1
  52. package/localnet/get-or-create-kmd-wallet-account.mjs +5 -27
  53. package/localnet/get-or-create-kmd-wallet-account.mjs.map +1 -1
  54. package/localnet/is-localnet.d.ts +4 -1
  55. package/localnet/is-localnet.d.ts.map +1 -1
  56. package/localnet/is-localnet.js +7 -3
  57. package/localnet/is-localnet.js.map +1 -1
  58. package/localnet/is-localnet.mjs +7 -3
  59. package/localnet/is-localnet.mjs.map +1 -1
  60. package/network-client.d.ts +36 -8
  61. package/network-client.d.ts.map +1 -1
  62. package/network-client.js +49 -88
  63. package/network-client.js.map +1 -1
  64. package/network-client.mjs +49 -88
  65. package/network-client.mjs.map +1 -1
  66. package/package.json +3 -2
  67. package/testing/account.d.ts +3 -5
  68. package/testing/account.d.ts.map +1 -1
  69. package/testing/account.js +6 -9
  70. package/testing/account.js.map +1 -1
  71. package/testing/account.mjs +6 -9
  72. package/testing/account.mjs.map +1 -1
  73. package/testing/fixtures/algorand-fixture.d.ts +20 -2
  74. package/testing/fixtures/algorand-fixture.d.ts.map +1 -1
  75. package/testing/fixtures/algorand-fixture.js +11 -30
  76. package/testing/fixtures/algorand-fixture.js.map +1 -1
  77. package/testing/fixtures/algorand-fixture.mjs +11 -30
  78. package/testing/fixtures/algorand-fixture.mjs.map +1 -1
  79. package/transaction/transaction.d.ts.map +1 -1
  80. package/transaction/transaction.js +8 -8
  81. package/transaction/transaction.js.map +1 -1
  82. package/transaction/transaction.mjs +8 -8
  83. package/transaction/transaction.mjs.map +1 -1
  84. package/transfer/transfer.js +4 -4
  85. package/transfer/transfer.js.map +1 -1
  86. package/transfer/transfer.mjs +4 -4
  87. package/transfer/transfer.mjs.map +1 -1
  88. package/types/account-manager.d.ts +108 -24
  89. package/types/account-manager.d.ts.map +1 -1
  90. package/types/account-manager.js +167 -34
  91. package/types/account-manager.js.map +1 -1
  92. package/types/account-manager.mjs +166 -34
  93. package/types/account-manager.mjs.map +1 -1
  94. package/types/account.d.ts +13 -11
  95. package/types/account.d.ts.map +1 -1
  96. package/types/algorand-client.d.ts +12 -6
  97. package/types/algorand-client.d.ts.map +1 -1
  98. package/types/algorand-client.js +20 -15
  99. package/types/algorand-client.js.map +1 -1
  100. package/types/algorand-client.mjs +20 -15
  101. package/types/algorand-client.mjs.map +1 -1
  102. package/types/client-manager.d.ts +197 -4
  103. package/types/client-manager.d.ts.map +1 -1
  104. package/types/client-manager.js +284 -7
  105. package/types/client-manager.js.map +1 -1
  106. package/types/client-manager.mjs +284 -7
  107. package/types/client-manager.mjs.map +1 -1
  108. package/types/indexer.d.ts +11 -2
  109. package/types/indexer.d.ts.map +1 -1
  110. package/types/indexer.js.map +1 -1
  111. package/types/indexer.mjs.map +1 -1
  112. package/types/kmd-account-manager.d.ts +70 -0
  113. package/types/kmd-account-manager.d.ts.map +1 -0
  114. package/types/kmd-account-manager.js +144 -0
  115. package/types/kmd-account-manager.js.map +1 -0
  116. package/types/kmd-account-manager.mjs +142 -0
  117. package/types/kmd-account-manager.mjs.map +1 -0
  118. package/types/network-client.d.ts +2 -2
  119. package/types/network-client.d.ts.map +1 -1
  120. package/types/testing.d.ts +9 -6
  121. package/types/testing.d.ts.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"account-manager.d.ts","sourceRoot":"","sources":["../../src/types/account-manager.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAA;AAc7B,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAA;AACxF,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AAGnD,oGAAoG;AACpG,qBAAa,cAAc;IACzB,OAAO,CAAC,cAAc,CAAe;IACrC,OAAO,CAAC,SAAS,CAAsD;IACvE,OAAO,CAAC,cAAc,CAAC,CAA2B;IAElD;;;OAGG;gBACS,aAAa,EAAE,aAAa;IAIxC;;;;;;;OAOG;IACI,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,iBAAiB,GAAG,wBAAwB,GAAG,cAAc;IAKrG;;;OAGG;IACH,OAAO,CAAC,aAAa;IASrB;;;;;OAKG;IACI,oBAAoB,CAAC,OAAO,EAAE,wBAAwB,GAAG,mBAAmB;IAKnF;;;;;OAKG;IACI,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,iBAAiB;IAKlE;;;;;;;OAOG;IACI,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB;IAM3D;;;;OAIG;IACI,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,wBAAwB;IAM3D;;;;;;;;;;;;OAYG;IACU,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,wBAAwB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAInG;;;;;;;;;;;;;;OAcG;IACU,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,wBAAwB,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM;IAIpG;;;;;;;;;;;;OAYG;IACI,YAAY,CAAC,cAAc,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;;;IAK3D;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACU,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,UAAU;;;IAIhE;;;;;;;;;;;;;;OAcG;IACU,OAAO,CAClB,IAAI,EAAE,MAAM,EAEZ,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,OAAO,EACrD,MAAM,CAAC,EAAE,MAAM;;;IAOjB;;;;;;;;;;;OAWG;IACI,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC,gBAAgB,EAAE,eAAe,EAAE,CAAC,OAAO,CAAC,OAAO,GAAG,cAAc,CAAC,EAAE;;;IAI/G;;;;;;;;;;OAUG;IACI,QAAQ,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC;;;IAI7D;;;;;;;;OAQG;IACI,MAAM;;;IAIb;;;;;;;;;;OAUG;IACU,SAAS;;;IAItB;;;;;;;;OAQG;IACU,iBAAiB;;;CAG/B"}
1
+ {"version":3,"file":"account-manager.d.ts","sourceRoot":"","sources":["../../src/types/account-manager.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAA;AAC7B,OAAO,EAAE,kBAAkB,EAAqB,eAAe,EAAE,cAAc,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAA;AAC5H,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AACzD,OAAO,eAAe,GAAG,OAAO,CAAC,eAAe,CAAA;AAChD,OAAO,OAAO,GAAG,OAAO,CAAC,OAAO,CAAA;AAahC;;;;;GAKG;AACH,eAAO,MAAM,2BAA2B,6IAQtC,CAAA;AAEF,oGAAoG;AACpG,qBAAa,cAAc;IACzB,OAAO,CAAC,cAAc,CAAe;IACrC,OAAO,CAAC,kBAAkB,CAAmB;IAC7C,OAAO,CAAC,SAAS,CAAsD;IACvE,OAAO,CAAC,cAAc,CAAC,CAA2B;IAElD;;;;;;;OAOG;gBACS,aAAa,EAAE,aAAa;IAKxC,uFAAuF;IACvF,IAAW,GAAG,sBAEb;IAED;;;;;;;;;;;;;;;OAeG;IACI,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,iBAAiB,GAAG,wBAAwB,GAAG,cAAc;IAKrG;;;OAGG;IACH,OAAO,CAAC,aAAa;IAWrB;;;;;;;;;;;;;;;;;OAiBG;IACI,oBAAoB,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,GAAG,eAAe,GAAG,cAAc,GAAG,eAAe;IAK5H;;;;;;;;;;OAUG;IACI,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,iBAAiB;IAKlE;;;;;;;;;;;;OAYG;IACI,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB;IAM3D;;;;;;;;;;;;;;OAcG;IACI,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,wBAAwB;IAM3D;;;;;;;;;;;;OAYG;IACU,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,wBAAwB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAyBnG;;;;;;;;;;;;;;OAcG;IACU,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,wBAAwB,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM;;;;;;IAapG;;;;;;;;;;;;OAYG;IACI,YAAY,CAAC,cAAc,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;;;IAK3D;;;;;;;;;;;OAWG;IACI,OAAO,CAAC,OAAO,EAAE,wBAAwB,EAAE,MAAM,EAAE,MAAM;;;;;;IAIhE;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACU,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,UAAU;;;IAqBhE;;;;;;;;;;;;;;OAcG;IACU,OAAO,CAClB,IAAI,EAAE,MAAM,EAEZ,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,OAAO,EACrD,MAAM,CAAC,EAAE,MAAM;;;IAOjB;;;;;;;;;;;OAWG;IACI,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC,gBAAgB,EAAE,eAAe,EAAE,CAAC,OAAO,CAAC,OAAO,GAAG,cAAc,CAAC,EAAE;;;IAI/G;;;;;;;;;;OAUG;IACI,QAAQ,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC;;;IAI7D;;;;;;;;OAQG;IACI,MAAM;;;IAIb;;;;;;;;;;;;;;;OAeG;IACU,wBAAwB;;;IAUrC;;;;;;;;OAQG;IACU,iBAAiB;;;CAI/B"}
@@ -1,23 +1,50 @@
1
1
  'use strict';
2
2
 
3
3
  var algosdk = require('algosdk');
4
- var account = require('../account/account.js');
5
- var getDispenserAccount = require('../account/get-dispenser-account.js');
6
- var mnemonicAccount = require('../account/mnemonic-account.js');
7
- var getKmdWalletAccount = require('../localnet/get-kmd-wallet-account.js');
8
- var getLocalnetDispenserAccount = require('../localnet/get-localnet-dispenser-account.js');
9
- var transaction = require('../transaction/transaction.js');
4
+ var types_account = require('./account.js');
5
+ var types_kmdAccountManager = require('./kmd-account-manager.js');
10
6
 
11
7
  var LogicSigAccount = algosdk.LogicSigAccount;
8
+ var AccountInformationModel = algosdk.modelsv2.Account;
9
+ const memoize = (fn) => {
10
+ const cache = new Map();
11
+ const cached = function (val) {
12
+ return cache.has(val) ? cache.get(val) : cache.set(val, fn.call(this, val)) && cache.get(val);
13
+ };
14
+ cached.cache = cache;
15
+ return cached;
16
+ };
17
+ /**
18
+ * Returns a `TransactionSigner` for the given account that can sign a transaction.
19
+ * This function has memoization, so will return the same transaction signer for a given account.
20
+ * @param account An account that can sign a transaction
21
+ * @returns A transaction signer
22
+ */
23
+ const getAccountTransactionSigner = memoize(function (account) {
24
+ return 'signer' in account
25
+ ? account.signer
26
+ : 'lsig' in account
27
+ ? algosdk.makeLogicSigAccountTransactionSigner(account)
28
+ : algosdk.makeBasicAccountTransactionSigner(account);
29
+ });
12
30
  /** Creates and keeps track of signing accounts that can sign transactions for a sending address. */
13
31
  class AccountManager {
14
32
  /**
15
33
  * Create a new account manager.
16
34
  * @param clientManager The ClientManager client to use for algod and kmd clients
35
+ * @example Create a new account manager
36
+ * ```typescript
37
+ * const accountManager = new AccountManager(clientManager)
38
+ * ```
17
39
  */
18
40
  constructor(clientManager) {
19
41
  this._accounts = {};
20
42
  this._clientManager = clientManager;
43
+ this._kmdAccountManager = new types_kmdAccountManager.KmdAccountManager(clientManager);
44
+ }
45
+ /** KMD account manager that allows you to easily get and create accounts using KMD. */
46
+ get kmd() {
47
+ return this._kmdAccountManager;
21
48
  }
22
49
  /**
23
50
  * Sets the default signer to use if no other signer is specified.
@@ -25,6 +52,14 @@ class AccountManager {
25
52
  * If this isn't set an a transaction needs signing for a given sender
26
53
  * then an error will be thrown from `getSigner` / `getAccount`.
27
54
  * @param signer The signer to use, either a `TransactionSigner` or a `TransactionSignerAccount`
55
+ * @example
56
+ * ```typescript
57
+ * const signer = accountManager.random() // Can be anything that returns a `algosdk.TransactionSigner` or `TransactionSignerAccount`
58
+ * accountManager.setDefaultSigner(signer)
59
+ *
60
+ * // When signing a transaction, if there is no signer registered for the sender then the default signer will be used
61
+ * const signer = accountManager.getSigner("{SENDERADDRESS}")
62
+ * ```
28
63
  * @returns The `AccountManager` so method calls can be chained
29
64
  */
30
65
  setDefaultSigner(signer) {
@@ -32,21 +67,33 @@ class AccountManager {
32
67
  return this;
33
68
  }
34
69
  /**
35
- * Records the given account against the address of the account for later
36
- * retrieval and returns a `TransactionSignerAccount`.
70
+ * Records the given account (that can sign) against the address of the provided account for later
71
+ * retrieval and returns a `TransactionSignerAccount` along with the original account in an `account` property.
37
72
  */
38
73
  signerAccount(account) {
39
74
  const acc = {
40
- addr: transaction.getSenderAddress(account),
41
- signer: transaction.getSenderTransactionSigner(account),
75
+ addr: 'addr' in account ? account.addr : account.address(),
76
+ signer: getAccountTransactionSigner(account),
42
77
  };
43
78
  this._accounts[acc.addr] = acc;
44
79
  return { ...acc, account };
45
80
  }
46
81
  /**
47
82
  * Tracks the given account for later signing.
48
- * @param account The account to register, which can be a `TransactionSignerAccount`
49
- * or any `SendTransactionFrom` compatible account object
83
+ *
84
+ * Note: If you are generating accounts via the various methods on `AccountManager`
85
+ * (like `random`, `fromMnemonic`, `logicsig`, etc.) then they automatically get tracked.
86
+ * @param account The account to register, which can be a `TransactionSignerAccount` or
87
+ * a `algosdk.Account`, `algosdk.LogicSigAccount`, `SigningAccount` or `MultisigAccount`
88
+ * @example
89
+ * ```typescript
90
+ * const accountManager = new AccountManager(clientManager)
91
+ * .setSignerFromAccount(algosdk.generateAccount())
92
+ * .setSignerFromAccount(new algosdk.LogicSigAccount(program, args))
93
+ * .setSignerFromAccount(new SigningAccount(mnemonic, sender))
94
+ * .setSignerFromAccount(new MultisigAccount({version: 1, threshold: 1, addrs: ["ADDRESS1...", "ADDRESS2..."]}, [account1, account2]))
95
+ * .setSignerFromAccount({addr: "SENDERADDRESS", signer: transactionSigner})
96
+ * ```
50
97
  * @returns The `AccountManager` instance for method chaining
51
98
  */
52
99
  setSignerFromAccount(account) {
@@ -54,9 +101,14 @@ class AccountManager {
54
101
  return this;
55
102
  }
56
103
  /**
57
- * Tracks the given account for later signing.
104
+ * Tracks the given `algosdk.TransactionSigner` against the given sender address for later signing.
58
105
  * @param sender The sender address to use this signer for
59
- * @param signer The signer to sign transactions with for the given sender
106
+ * @param signer The `algosdk.TransactionSigner` to sign transactions with for the given sender
107
+ * @example
108
+ * ```typescript
109
+ * const accountManager = new AccountManager(clientManager)
110
+ * .setSigner("SENDERADDRESS", transactionSigner)
111
+ * ```
60
112
  * @returns The `AccountManager` instance for method chaining
61
113
  */
62
114
  setSigner(sender, signer) {
@@ -64,12 +116,17 @@ class AccountManager {
64
116
  return this;
65
117
  }
66
118
  /**
67
- * Returns the `TransactionSigner` for the given sender address.
119
+ * Returns the `TransactionSigner` for the given sender address, ready to sign a transaction for that sender.
68
120
  *
69
- * If no signer has been registered for that address then the default signer is used if registered.
121
+ * If no signer has been registered for that address then the default signer is used if registered and
122
+ * if not then an error is thrown.
70
123
  *
71
124
  * @param sender The sender address
72
- * @returns The `TransactionSigner` or throws an error if not found
125
+ * @example
126
+ * ```typescript
127
+ * const signer = accountManager.getSigner("SENDERADDRESS")
128
+ * ```
129
+ * @returns The `TransactionSigner` or throws an error if not found and no default signer is set
73
130
  */
74
131
  getSigner(sender) {
75
132
  const signer = this._accounts[sender]?.signer ?? this._defaultSigner;
@@ -79,7 +136,17 @@ class AccountManager {
79
136
  }
80
137
  /**
81
138
  * Returns the `TransactionSignerAccount` for the given sender address.
139
+ *
140
+ * If no signer has been registered for that address then an error is thrown.
82
141
  * @param sender The sender address
142
+ * @example
143
+ * ```typescript
144
+ * const account = accountManager.random()
145
+ * const sender = account.addr
146
+ * // ...
147
+ * // Returns the `TransactionSignerAccount` for `sender` that has previously been registered
148
+ * const account = accountManager.getAccount(sender)
149
+ * ```
83
150
  * @returns The `TransactionSignerAccount` or throws an error if not found
84
151
  */
85
152
  getAccount(sender) {
@@ -102,7 +169,25 @@ class AccountManager {
102
169
  * @returns The account information
103
170
  */
104
171
  async getInformation(sender) {
105
- return account.getAccountInformation(sender, this._clientManager.algod);
172
+ const account = AccountInformationModel.from_obj_for_encoding(await this._clientManager.algod.accountInformation(typeof sender === 'string' ? sender : sender.addr).do());
173
+ return {
174
+ ...account,
175
+ // None of these can practically overflow 2^53
176
+ amount: Number(account.amount),
177
+ amountWithoutPendingRewards: Number(account.amountWithoutPendingRewards),
178
+ minBalance: Number(account.minBalance),
179
+ pendingRewards: Number(account.pendingRewards),
180
+ rewards: Number(account.rewards),
181
+ round: Number(account.round),
182
+ totalAppsOptedIn: Number(account.totalAppsOptedIn),
183
+ totalAssetsOptedIn: Number(account.totalAssetsOptedIn),
184
+ totalCreatedApps: Number(account.totalCreatedApps),
185
+ totalCreatedAssets: Number(account.totalCreatedAssets),
186
+ appsTotalExtraPages: account.appsTotalExtraPages ? Number(account.appsTotalExtraPages) : undefined,
187
+ rewardBase: account.rewardBase ? Number(account.rewardBase) : undefined,
188
+ totalBoxBytes: account.totalBoxBytes ? Number(account.totalBoxBytes) : undefined,
189
+ totalBoxes: account.totalBoxes ? Number(account.totalBoxes) : undefined,
190
+ };
106
191
  }
107
192
  /**
108
193
  * Returns the given sender account's asset holding for a given asset.
@@ -120,7 +205,15 @@ class AccountManager {
120
205
  * @returns The account asset holding information
121
206
  */
122
207
  async getAssetInformation(sender, assetId) {
123
- return account.getAccountAssetInformation(sender, assetId, this._clientManager.algod);
208
+ const info = await this._clientManager.algod
209
+ .accountAssetInformation(typeof sender === 'string' ? sender : sender.addr, Number(assetId))
210
+ .do();
211
+ return {
212
+ assetId: BigInt(assetId),
213
+ balance: BigInt(info['asset-holding']['amount']),
214
+ frozen: info['asset-holding']['is-frozen'] === 'true',
215
+ round: BigInt(info['round']),
216
+ };
124
217
  }
125
218
  /**
126
219
  * Tracks and returns an Algorand account with secret key loaded (i.e. that can sign transactions) by taking the mnemonic secret.
@@ -136,8 +229,23 @@ class AccountManager {
136
229
  * @returns The account
137
230
  */
138
231
  fromMnemonic(mnemonicSecret, sender) {
139
- const account$1 = mnemonicAccount.mnemonicAccount(mnemonicSecret);
140
- return this.signerAccount(sender ? account.rekeyedAccount(account$1, sender) : account$1);
232
+ const account = algosdk.mnemonicToSecretKey(mnemonicSecret);
233
+ return this.signerAccount(new types_account.SigningAccount(account, sender));
234
+ }
235
+ /**
236
+ * Tracks and returns an Algorand account that is a rekeyed version of the given account to a new sender.
237
+ *
238
+ * @example
239
+ * ```typescript
240
+ * const account = await account.fromMnemonic("mnemonic secret ...")
241
+ * const rekeyedAccount = await account.rekeyed(account, "SENDERADDRESS...")
242
+ * ```
243
+ * @param account The account to use as the signer for this new rekeyed account
244
+ * @param sender The sender address to use as the new sender
245
+ * @returns The account
246
+ */
247
+ rekeyed(account, sender) {
248
+ return this.signerAccount({ addr: sender, signer: account.signer });
141
249
  }
142
250
  /**
143
251
  * Tracks and returns an Algorand account with private key loaded by convention from environment variables based on the given name identifier.
@@ -167,7 +275,20 @@ class AccountManager {
167
275
  * @returns The account
168
276
  */
169
277
  async fromEnvironment(name, fundWith) {
170
- return this.signerAccount(await account.mnemonicAccountFromEnvironment({ name, fundWith }, this._clientManager.algod, this._clientManager.kmd));
278
+ if (!process || !process.env) {
279
+ throw new Error('Attempt to get account with private key from a non Node.js context; this is not supported!');
280
+ }
281
+ const accountMnemonic = process.env[`${name.toUpperCase()}_MNEMONIC`];
282
+ const sender = process.env[`${name.toUpperCase()}_SENDER`];
283
+ if (accountMnemonic) {
284
+ const signer = algosdk.mnemonicToSecretKey(accountMnemonic);
285
+ return this.signerAccount(new types_account.SigningAccount(signer, sender));
286
+ }
287
+ if (await this._clientManager.isLocalNet()) {
288
+ const account = await this._kmdAccountManager.getOrCreateWalletAccount(name, fundWith);
289
+ return this.signerAccount(account.account);
290
+ }
291
+ throw new Error(`Missing environment variable ${name.toUpperCase()}_MNEMONIC when looking for account ${name}`);
171
292
  }
172
293
  /**
173
294
  * Tracks and returns an Algorand account with private key loaded from the given KMD wallet (identified by name).
@@ -187,10 +308,10 @@ class AccountManager {
187
308
  async fromKmd(name,
188
309
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
189
310
  predicate, sender) {
190
- const account$1 = await getKmdWalletAccount.getKmdWalletAccount({ name, predicate }, this._clientManager.algod, this._clientManager.kmd);
191
- if (!account$1)
311
+ const account = await this.kmd.getWalletAccount(name, predicate, sender);
312
+ if (!account)
192
313
  throw new Error(`Unable to find KMD account ${name}${predicate ? ' with predicate' : ''}`);
193
- return this.signerAccount(sender ? account.rekeyedAccount(account$1, sender) : account$1);
314
+ return this.signerAccount(account.account);
194
315
  }
195
316
  /**
196
317
  * Tracks and returns an account that supports partial or full multisig signing.
@@ -205,7 +326,7 @@ class AccountManager {
205
326
  * @returns A multisig account wrapper
206
327
  */
207
328
  multisig(multisigParams, signingAccounts) {
208
- return this.signerAccount(account.multisigAccount(multisigParams, signingAccounts));
329
+ return this.signerAccount(new types_account.MultisigAccount(multisigParams, signingAccounts));
209
330
  }
210
331
  /**
211
332
  * Tracks and returns an account that represents a logic signature.
@@ -231,21 +352,31 @@ class AccountManager {
231
352
  * @returns The account
232
353
  */
233
354
  random() {
234
- return this.signerAccount(account.randomAccount());
355
+ return this.signerAccount(algosdk.generateAccount());
235
356
  }
236
357
  /**
237
- * Returns an account (with private key loaded) that can act as a dispenser.
358
+ * Returns an account (with private key loaded) that can act as a dispenser from
359
+ * environment variables, or against default LocalNet if no environment variables present.
360
+ *
361
+ * Note: requires a Node.js environment to execute.
362
+ *
363
+ * If present, it will load the account mnemonic stored in process.env.DISPENSER_MNEMONIC and optionally
364
+ * process.env.DISPENSER_SENDER if it's a rekeyed account.
238
365
  *
239
366
  * @example
240
367
  * ```typescript
241
- * const account = await account.dispenser()
368
+ * const account = await account.dispenserFromEnvironment()
242
369
  * ```
243
- * If running on LocalNet then it will return the default dispenser account automatically,
244
- * otherwise it will load the account mnemonic stored in process.env.DISPENSER_MNEMONIC.
370
+ *
245
371
  * @returns The account
246
372
  */
247
- async dispenser() {
248
- return this.signerAccount(await getDispenserAccount.getDispenserAccount(this._clientManager.algod, this._clientManager.kmd));
373
+ async dispenserFromEnvironment() {
374
+ if (!process || !process.env) {
375
+ throw new Error('Attempt to get dispenser from environment from a non Node.js context; this is not supported!');
376
+ }
377
+ return process.env[`${types_account.DISPENSER_ACCOUNT.toUpperCase()}_MNEMONIC`]
378
+ ? await this.fromEnvironment(types_account.DISPENSER_ACCOUNT)
379
+ : await this.localNetDispenser();
249
380
  }
250
381
  /**
251
382
  * Returns an Algorand account with private key loaded for the default LocalNet dispenser account (that can be used to fund other accounts).
@@ -257,9 +388,11 @@ class AccountManager {
257
388
  * @returns The account
258
389
  */
259
390
  async localNetDispenser() {
260
- return this.signerAccount(await getLocalnetDispenserAccount.getLocalNetDispenserAccount(this._clientManager.algod, this._clientManager.kmd));
391
+ const dispenser = await this._kmdAccountManager.getLocalNetDispenserAccount();
392
+ return this.signerAccount(dispenser.account);
261
393
  }
262
394
  }
263
395
 
264
396
  exports.AccountManager = AccountManager;
397
+ exports.getAccountTransactionSigner = getAccountTransactionSigner;
265
398
  //# sourceMappingURL=account-manager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"account-manager.js","sources":["../../src/types/account-manager.ts"],"sourcesContent":[null],"names":["getSenderAddress","getSenderTransactionSigner","getAccountInformation","getAccountAssetInformation","account","mnemonicAccount","rekeyedAccount","mnemonicAccountFromEnvironment","getKmdWalletAccount","multisigAccount","randomAccount","getDispenserAccount","getLocalNetDispenserAccount"],"mappings":"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"}
1
+ {"version":3,"file":"account-manager.js","sources":["../../src/types/account-manager.ts"],"sourcesContent":[null],"names":["KmdAccountManager","SigningAccount","MultisigAccount","DISPENSER_ACCOUNT"],"mappings":"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"}