@algorandfoundation/algokit-utils 6.3.0-beta.1 → 7.0.0-beta.10

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 (360) hide show
  1. package/README.md +3 -25
  2. package/account/account.d.ts +8 -9
  3. package/account/account.js +7 -7
  4. package/account/account.js.map +1 -1
  5. package/account/account.mjs +7 -7
  6. package/account/account.mjs.map +1 -1
  7. package/account/get-account-config-from-environment.d.ts +0 -1
  8. package/account/get-account-config-from-environment.js.map +1 -1
  9. package/account/get-account-config-from-environment.mjs.map +1 -1
  10. package/account/get-account.d.ts +2 -3
  11. package/account/get-account.js +1 -1
  12. package/account/get-account.js.map +1 -1
  13. package/account/get-account.mjs +1 -1
  14. package/account/get-account.mjs.map +1 -1
  15. package/account/get-dispenser-account.d.ts +1 -2
  16. package/account/get-dispenser-account.js +1 -1
  17. package/account/get-dispenser-account.js.map +1 -1
  18. package/account/get-dispenser-account.mjs +1 -1
  19. package/account/get-dispenser-account.mjs.map +1 -1
  20. package/account/index.d.ts +0 -1
  21. package/account/mnemonic-account.d.ts +1 -2
  22. package/account/mnemonic-account.js +1 -1
  23. package/account/mnemonic-account.js.map +1 -1
  24. package/account/mnemonic-account.mjs +1 -1
  25. package/account/mnemonic-account.mjs.map +1 -1
  26. package/amount.d.ts +14 -5
  27. package/amount.js +6 -0
  28. package/amount.js.map +1 -1
  29. package/amount.mjs +6 -0
  30. package/amount.mjs.map +1 -1
  31. package/app-client.d.ts +15 -1
  32. package/app-client.js +15 -0
  33. package/app-client.js.map +1 -1
  34. package/app-client.mjs +15 -0
  35. package/app-client.mjs.map +1 -1
  36. package/app-deploy.d.ts +18 -2
  37. package/app-deploy.js +140 -333
  38. package/app-deploy.js.map +1 -1
  39. package/app-deploy.mjs +143 -336
  40. package/app-deploy.mjs.map +1 -1
  41. package/app.d.ts +39 -3
  42. package/app.js +116 -369
  43. package/app.js.map +1 -1
  44. package/app.mjs +117 -370
  45. package/app.mjs.map +1 -1
  46. package/asset.d.ts +5 -6
  47. package/asset.js +5 -8
  48. package/asset.js.map +1 -1
  49. package/asset.mjs +5 -8
  50. package/asset.mjs.map +1 -1
  51. package/config.d.ts +0 -1
  52. package/config.js.map +1 -1
  53. package/config.mjs.map +1 -1
  54. package/debugging/debugging.d.ts +3 -5
  55. package/debugging/debugging.js +4 -128
  56. package/debugging/debugging.js.map +1 -1
  57. package/debugging/debugging.mjs +4 -109
  58. package/debugging/debugging.mjs.map +1 -1
  59. package/debugging/index.d.ts +0 -2
  60. package/dispenser-client.d.ts +0 -1
  61. package/dispenser-client.js.map +1 -1
  62. package/dispenser-client.mjs.map +1 -1
  63. package/index.d.ts +4 -4
  64. package/index.js +31 -26
  65. package/index.js.map +1 -1
  66. package/index.mjs +4 -4
  67. package/indexer-lookup.d.ts +0 -1
  68. package/indexer-lookup.js.map +1 -1
  69. package/indexer-lookup.mjs.map +1 -1
  70. package/localnet/get-kmd-wallet-account.d.ts +1 -2
  71. package/localnet/get-kmd-wallet-account.js +1 -1
  72. package/localnet/get-kmd-wallet-account.js.map +1 -1
  73. package/localnet/get-kmd-wallet-account.mjs +1 -1
  74. package/localnet/get-kmd-wallet-account.mjs.map +1 -1
  75. package/localnet/get-localnet-dispenser-account.d.ts +1 -2
  76. package/localnet/get-localnet-dispenser-account.js +1 -1
  77. package/localnet/get-localnet-dispenser-account.js.map +1 -1
  78. package/localnet/get-localnet-dispenser-account.mjs +1 -1
  79. package/localnet/get-localnet-dispenser-account.mjs.map +1 -1
  80. package/localnet/get-or-create-kmd-wallet-account.d.ts +1 -2
  81. package/localnet/get-or-create-kmd-wallet-account.js +1 -1
  82. package/localnet/get-or-create-kmd-wallet-account.js.map +1 -1
  83. package/localnet/get-or-create-kmd-wallet-account.mjs +1 -1
  84. package/localnet/get-or-create-kmd-wallet-account.mjs.map +1 -1
  85. package/localnet/index.d.ts +0 -1
  86. package/localnet/is-localnet.d.ts +1 -2
  87. package/localnet/is-localnet.js +1 -1
  88. package/localnet/is-localnet.js.map +1 -1
  89. package/localnet/is-localnet.mjs +1 -1
  90. package/localnet/is-localnet.mjs.map +1 -1
  91. package/network-client.d.ts +2 -3
  92. package/network-client.js +2 -2
  93. package/network-client.js.map +1 -1
  94. package/network-client.mjs +2 -2
  95. package/network-client.mjs.map +1 -1
  96. package/package.json +1 -1
  97. package/testing/_asset.d.ts +0 -1
  98. package/testing/account.d.ts +0 -1
  99. package/testing/account.js.map +1 -1
  100. package/testing/account.mjs.map +1 -1
  101. package/testing/fixtures/algokit-log-capture-fixture.d.ts +0 -1
  102. package/testing/fixtures/algokit-log-capture-fixture.js.map +1 -1
  103. package/testing/fixtures/algokit-log-capture-fixture.mjs.map +1 -1
  104. package/testing/fixtures/algorand-fixture.d.ts +0 -1
  105. package/testing/fixtures/algorand-fixture.js +12 -12
  106. package/testing/fixtures/algorand-fixture.js.map +1 -1
  107. package/testing/fixtures/algorand-fixture.mjs +12 -12
  108. package/testing/fixtures/algorand-fixture.mjs.map +1 -1
  109. package/testing/fixtures/index.d.ts +0 -1
  110. package/testing/index.d.ts +0 -1
  111. package/testing/indexer.d.ts +0 -1
  112. package/testing/indexer.js.map +1 -1
  113. package/testing/indexer.mjs.map +1 -1
  114. package/testing/test-logger.d.ts +0 -1
  115. package/testing/test-logger.js +1 -3
  116. package/testing/test-logger.js.map +1 -1
  117. package/testing/test-logger.mjs +1 -3
  118. package/testing/test-logger.mjs.map +1 -1
  119. package/testing/transaction-logger.d.ts +0 -1
  120. package/testing/transaction-logger.js.map +1 -1
  121. package/testing/transaction-logger.mjs.map +1 -1
  122. package/transaction/index.d.ts +0 -1
  123. package/transaction/legacy-bridge.d.ts +31 -6
  124. package/transaction/legacy-bridge.js +100 -6
  125. package/transaction/legacy-bridge.js.map +1 -1
  126. package/transaction/legacy-bridge.mjs +99 -8
  127. package/transaction/legacy-bridge.mjs.map +1 -1
  128. package/transaction/perform-atomic-transaction-composer-simulate.d.ts +0 -1
  129. package/transaction/perform-atomic-transaction-composer-simulate.js.map +1 -1
  130. package/transaction/perform-atomic-transaction-composer-simulate.mjs.map +1 -1
  131. package/transaction/transaction.d.ts +41 -6
  132. package/transaction/transaction.js +107 -45
  133. package/transaction/transaction.js.map +1 -1
  134. package/transaction/transaction.mjs +107 -46
  135. package/transaction/transaction.mjs.map +1 -1
  136. package/transfer/index.d.ts +0 -1
  137. package/transfer/transfer-algos.d.ts +1 -2
  138. package/transfer/transfer-algos.js +1 -1
  139. package/transfer/transfer-algos.js.map +1 -1
  140. package/transfer/transfer-algos.mjs +1 -1
  141. package/transfer/transfer-algos.mjs.map +1 -1
  142. package/transfer/transfer.d.ts +1 -2
  143. package/transfer/transfer.js +3 -3
  144. package/transfer/transfer.js.map +1 -1
  145. package/transfer/transfer.mjs +3 -3
  146. package/transfer/transfer.mjs.map +1 -1
  147. package/types/account-manager.d.ts +14 -6
  148. package/types/account-manager.js +18 -4
  149. package/types/account-manager.js.map +1 -1
  150. package/types/account-manager.mjs +18 -4
  151. package/types/account-manager.mjs.map +1 -1
  152. package/types/account.d.ts +0 -1
  153. package/types/account.js.map +1 -1
  154. package/types/account.mjs.map +1 -1
  155. package/types/algo-http-client-with-retry.d.ts +0 -1
  156. package/types/algo-http-client-with-retry.js.map +1 -1
  157. package/types/algo-http-client-with-retry.mjs.map +1 -1
  158. package/types/algorand-client-interface.d.ts +28 -0
  159. package/types/algorand-client-interface.js +3 -0
  160. package/types/algorand-client-interface.js.map +1 -0
  161. package/types/algorand-client-interface.mjs +2 -0
  162. package/types/algorand-client-interface.mjs.map +1 -0
  163. package/types/algorand-client-transaction-creator.d.ts +450 -21
  164. package/types/algorand-client-transaction-creator.js +406 -22
  165. package/types/algorand-client-transaction-creator.js.map +1 -1
  166. package/types/algorand-client-transaction-creator.mjs +406 -22
  167. package/types/algorand-client-transaction-creator.mjs.map +1 -1
  168. package/types/algorand-client-transaction-sender.d.ts +758 -33
  169. package/types/algorand-client-transaction-sender.js +444 -14
  170. package/types/algorand-client-transaction-sender.js.map +1 -1
  171. package/types/algorand-client-transaction-sender.mjs +444 -14
  172. package/types/algorand-client-transaction-sender.mjs.map +1 -1
  173. package/types/algorand-client.d.ts +18 -10
  174. package/types/algorand-client.js +23 -10
  175. package/types/algorand-client.js.map +1 -1
  176. package/types/algorand-client.mjs +23 -10
  177. package/types/algorand-client.mjs.map +1 -1
  178. package/types/amount.d.ts +10 -11
  179. package/types/amount.js +7 -7
  180. package/types/amount.js.map +1 -1
  181. package/types/amount.mjs +7 -7
  182. package/types/amount.mjs.map +1 -1
  183. package/types/app-arc56.d.ts +348 -0
  184. package/types/app-arc56.js +184 -0
  185. package/types/app-arc56.js.map +1 -0
  186. package/types/app-arc56.mjs +175 -0
  187. package/types/app-arc56.mjs.map +1 -0
  188. package/types/app-client.d.ts +1496 -9
  189. package/types/app-client.js +903 -21
  190. package/types/app-client.js.map +1 -1
  191. package/types/app-client.mjs +904 -23
  192. package/types/app-client.mjs.map +1 -1
  193. package/types/app-deployer.d.ts +126 -0
  194. package/types/app-deployer.js +354 -0
  195. package/types/app-deployer.js.map +1 -0
  196. package/types/app-deployer.mjs +352 -0
  197. package/types/app-deployer.mjs.map +1 -0
  198. package/types/app-factory.d.ts +846 -0
  199. package/types/app-factory.js +411 -0
  200. package/types/app-factory.js.map +1 -0
  201. package/types/app-factory.mjs +409 -0
  202. package/types/app-factory.mjs.map +1 -0
  203. package/types/app-manager.d.ts +244 -0
  204. package/types/app-manager.js +334 -0
  205. package/types/app-manager.js.map +1 -0
  206. package/types/app-manager.mjs +332 -0
  207. package/types/app-manager.mjs.map +1 -0
  208. package/types/app-spec.d.ts +2 -1
  209. package/types/app-spec.js +121 -0
  210. package/types/app-spec.js.map +1 -1
  211. package/types/app-spec.mjs +120 -0
  212. package/types/app-spec.mjs.map +1 -1
  213. package/types/app.d.ts +53 -13
  214. package/types/app.js +1 -1
  215. package/types/app.js.map +1 -1
  216. package/types/app.mjs +1 -1
  217. package/types/app.mjs.map +1 -1
  218. package/types/asset-manager.d.ts +4 -4
  219. package/types/asset-manager.js +3 -4
  220. package/types/asset-manager.js.map +1 -1
  221. package/types/asset-manager.mjs +3 -4
  222. package/types/asset-manager.mjs.map +1 -1
  223. package/types/asset.d.ts +0 -1
  224. package/types/async-event-emitter.d.ts +23 -0
  225. package/types/async-event-emitter.js +55 -0
  226. package/types/async-event-emitter.js.map +1 -0
  227. package/types/async-event-emitter.mjs +53 -0
  228. package/types/async-event-emitter.mjs.map +1 -0
  229. package/types/client-manager.d.ts +133 -51
  230. package/types/client-manager.js +147 -23
  231. package/types/client-manager.js.map +1 -1
  232. package/types/client-manager.mjs +148 -24
  233. package/types/client-manager.mjs.map +1 -1
  234. package/types/composer.d.ts +232 -49
  235. package/types/composer.js +307 -65
  236. package/types/composer.js.map +1 -1
  237. package/types/composer.mjs +308 -66
  238. package/types/composer.mjs.map +1 -1
  239. package/types/config.d.ts +3 -6
  240. package/types/config.js +5 -44
  241. package/types/config.js.map +1 -1
  242. package/types/config.mjs +5 -27
  243. package/types/config.mjs.map +1 -1
  244. package/types/debugging.d.ts +29 -101
  245. package/types/debugging.js +16 -109
  246. package/types/debugging.js.map +1 -1
  247. package/types/debugging.mjs +12 -107
  248. package/types/debugging.mjs.map +1 -1
  249. package/types/dispenser-client.d.ts +1 -2
  250. package/types/dispenser-client.js +6 -5
  251. package/types/dispenser-client.js.map +1 -1
  252. package/types/dispenser-client.mjs +6 -5
  253. package/types/dispenser-client.mjs.map +1 -1
  254. package/types/expand.d.ts +7 -0
  255. package/types/expand.js +3 -0
  256. package/types/expand.js.map +1 -0
  257. package/types/expand.mjs +2 -0
  258. package/types/expand.mjs.map +1 -0
  259. package/types/indexer.d.ts +0 -1
  260. package/types/indexer.js.map +1 -1
  261. package/types/indexer.mjs.map +1 -1
  262. package/types/kmd-account-manager.d.ts +0 -1
  263. package/types/kmd-account-manager.js +2 -2
  264. package/types/kmd-account-manager.js.map +1 -1
  265. package/types/kmd-account-manager.mjs +2 -2
  266. package/types/kmd-account-manager.mjs.map +1 -1
  267. package/types/logging.d.ts +0 -1
  268. package/types/logging.js.map +1 -1
  269. package/types/logging.mjs.map +1 -1
  270. package/types/logic-error.d.ts +0 -1
  271. package/types/logic-error.js.map +1 -1
  272. package/types/logic-error.mjs.map +1 -1
  273. package/types/network-client.d.ts +13 -1
  274. package/types/network-client.js.map +1 -1
  275. package/types/network-client.mjs.map +1 -1
  276. package/types/testing.d.ts +3 -4
  277. package/types/transaction.d.ts +17 -4
  278. package/types/transfer.d.ts +0 -1
  279. package/types/urlTokenBaseHTTPClient.d.ts +0 -1
  280. package/types/urlTokenBaseHTTPClient.js +1 -1
  281. package/types/urlTokenBaseHTTPClient.js.map +1 -1
  282. package/types/urlTokenBaseHTTPClient.mjs +1 -1
  283. package/types/urlTokenBaseHTTPClient.mjs.map +1 -1
  284. package/util.d.ts +2 -2
  285. package/util.js +11 -10
  286. package/util.js.map +1 -1
  287. package/util.mjs +11 -10
  288. package/util.mjs.map +1 -1
  289. package/account/account.d.ts.map +0 -1
  290. package/account/get-account-config-from-environment.d.ts.map +0 -1
  291. package/account/get-account.d.ts.map +0 -1
  292. package/account/get-dispenser-account.d.ts.map +0 -1
  293. package/account/index.d.ts.map +0 -1
  294. package/account/mnemonic-account.d.ts.map +0 -1
  295. package/amount.d.ts.map +0 -1
  296. package/app-client.d.ts.map +0 -1
  297. package/app-deploy.d.ts.map +0 -1
  298. package/app.d.ts.map +0 -1
  299. package/asset.d.ts.map +0 -1
  300. package/config.d.ts.map +0 -1
  301. package/debugging/debugging.d.ts.map +0 -1
  302. package/debugging/index.d.ts.map +0 -1
  303. package/debugging/simulate-and-persist-response.d.ts +0 -20
  304. package/debugging/simulate-and-persist-response.d.ts.map +0 -1
  305. package/debugging/simulate-and-persist-response.js +0 -108
  306. package/debugging/simulate-and-persist-response.js.map +0 -1
  307. package/debugging/simulate-and-persist-response.mjs +0 -89
  308. package/debugging/simulate-and-persist-response.mjs.map +0 -1
  309. package/dispenser-client.d.ts.map +0 -1
  310. package/index.d.ts.map +0 -1
  311. package/indexer-lookup.d.ts.map +0 -1
  312. package/localnet/get-kmd-wallet-account.d.ts.map +0 -1
  313. package/localnet/get-localnet-dispenser-account.d.ts.map +0 -1
  314. package/localnet/get-or-create-kmd-wallet-account.d.ts.map +0 -1
  315. package/localnet/index.d.ts.map +0 -1
  316. package/localnet/is-localnet.d.ts.map +0 -1
  317. package/network-client.d.ts.map +0 -1
  318. package/testing/_asset.d.ts.map +0 -1
  319. package/testing/account.d.ts.map +0 -1
  320. package/testing/fixtures/algokit-log-capture-fixture.d.ts.map +0 -1
  321. package/testing/fixtures/algorand-fixture.d.ts.map +0 -1
  322. package/testing/fixtures/index.d.ts.map +0 -1
  323. package/testing/index.d.ts.map +0 -1
  324. package/testing/indexer.d.ts.map +0 -1
  325. package/testing/test-logger.d.ts.map +0 -1
  326. package/testing/transaction-logger.d.ts.map +0 -1
  327. package/transaction/index.d.ts.map +0 -1
  328. package/transaction/legacy-bridge.d.ts.map +0 -1
  329. package/transaction/perform-atomic-transaction-composer-simulate.d.ts.map +0 -1
  330. package/transaction/transaction.d.ts.map +0 -1
  331. package/transfer/index.d.ts.map +0 -1
  332. package/transfer/transfer-algos.d.ts.map +0 -1
  333. package/transfer/transfer.d.ts.map +0 -1
  334. package/types/account-manager.d.ts.map +0 -1
  335. package/types/account.d.ts.map +0 -1
  336. package/types/algo-http-client-with-retry.d.ts.map +0 -1
  337. package/types/algorand-client-transaction-creator.d.ts.map +0 -1
  338. package/types/algorand-client-transaction-sender.d.ts.map +0 -1
  339. package/types/algorand-client.d.ts.map +0 -1
  340. package/types/amount.d.ts.map +0 -1
  341. package/types/app-client.d.ts.map +0 -1
  342. package/types/app-spec.d.ts.map +0 -1
  343. package/types/app.d.ts.map +0 -1
  344. package/types/asset-manager.d.ts.map +0 -1
  345. package/types/asset.d.ts.map +0 -1
  346. package/types/client-manager.d.ts.map +0 -1
  347. package/types/composer.d.ts.map +0 -1
  348. package/types/config.d.ts.map +0 -1
  349. package/types/debugging.d.ts.map +0 -1
  350. package/types/dispenser-client.d.ts.map +0 -1
  351. package/types/indexer.d.ts.map +0 -1
  352. package/types/kmd-account-manager.d.ts.map +0 -1
  353. package/types/logging.d.ts.map +0 -1
  354. package/types/logic-error.d.ts.map +0 -1
  355. package/types/network-client.d.ts.map +0 -1
  356. package/types/testing.d.ts.map +0 -1
  357. package/types/transaction.d.ts.map +0 -1
  358. package/types/transfer.d.ts.map +0 -1
  359. package/types/urlTokenBaseHTTPClient.d.ts.map +0 -1
  360. package/util.d.ts.map +0 -1
@@ -1,8 +1,11 @@
1
1
  import algosdk from 'algosdk';
2
2
  import { MultisigAccount, SigningAccount, TransactionSignerAccount } from './account';
3
3
  import { AccountManager } from './account-manager';
4
+ import { AlgorandClientInterface } from './algorand-client-interface';
4
5
  import { AlgorandClientTransactionCreator } from './algorand-client-transaction-creator';
5
6
  import { AlgorandClientTransactionSender } from './algorand-client-transaction-sender';
7
+ import { AppDeployer } from './app-deployer';
8
+ import { AppManager } from './app-manager';
6
9
  import { AssetManager } from './asset-manager';
7
10
  import { AlgoSdkClients, ClientManager } from './client-manager';
8
11
  import AlgoKitComposer from './composer';
@@ -12,9 +15,11 @@ import LogicSigAccount = algosdk.LogicSigAccount;
12
15
  /**
13
16
  * A client that brokers easy access to Algorand functionality.
14
17
  */
15
- export declare class AlgorandClient {
18
+ export declare class AlgorandClient implements AlgorandClientInterface {
16
19
  private _clientManager;
17
20
  private _accountManager;
21
+ private _appManager;
22
+ private _appDeployer;
18
23
  private _assetManager;
19
24
  private _transactionSender;
20
25
  private _transactionCreator;
@@ -36,7 +41,7 @@ export declare class AlgorandClient {
36
41
  */
37
42
  setDefaultSigner(signer: algosdk.TransactionSigner | TransactionSignerAccount): AlgorandClient;
38
43
  /**
39
- * Tracks the given account for later signing.
44
+ * Tracks the given account (object that encapsulates an address and a signer) for later signing.
40
45
  * @param account The account to register, which can be a `TransactionSignerAccount` or
41
46
  * a `algosdk.Account`, `algosdk.LogicSigAccount`, `SigningAccount` or `MultisigAccount`
42
47
  * @example
@@ -52,25 +57,25 @@ export declare class AlgorandClient {
52
57
  */
53
58
  setSignerFromAccount(account: TransactionSignerAccount | TransactionSignerAccount | Account | LogicSigAccount | SigningAccount | MultisigAccount): this;
54
59
  /**
55
- * Tracks the given account for later signing.
60
+ * Tracks the given signer against the given sender for later signing.
56
61
  * @param sender The sender address to use this signer for
57
62
  * @param signer The signer to sign transactions with for the given sender
58
63
  * @returns The `AlgorandClient` so method calls can be chained
59
64
  */
60
65
  setSigner(sender: string, signer: algosdk.TransactionSigner): this;
61
66
  /**
62
- * Sets a cache value to use for suggested params.
67
+ * Sets a cache value to use for suggested transaction params.
63
68
  * @param suggestedParams The suggested params to use
64
69
  * @param until A date until which to cache, or if not specified then the timeout is used
65
70
  * @returns The `AlgorandClient` so method calls can be chained
66
71
  */
67
- setSuggestedParams(suggestedParams: algosdk.SuggestedParams, until?: Date): this;
72
+ setSuggestedParamsCache(suggestedParams: algosdk.SuggestedParams, until?: Date): this;
68
73
  /**
69
74
  * Sets the timeout for caching suggested params.
70
75
  * @param timeout The timeout in milliseconds
71
76
  * @returns The `AlgorandClient` so method calls can be chained
72
77
  */
73
- setSuggestedParamsTimeout(timeout: number): this;
78
+ setSuggestedParamsCacheTimeout(timeout: number): this;
74
79
  /** Get suggested params for a transaction (either cached or from algod if the cache is stale or empty) */
75
80
  getSuggestedParams(): Promise<algosdk.SuggestedParams>;
76
81
  /** Get clients, including algosdk clients and app clients. */
@@ -79,16 +84,20 @@ export declare class AlgorandClient {
79
84
  get account(): AccountManager;
80
85
  /** Methods for interacting with assets. */
81
86
  get asset(): AssetManager;
87
+ /** Methods for interacting with apps. */
88
+ get app(): AppManager;
89
+ /** Methods for deploying apps and managing app deployment metadata. */
90
+ get appDeployer(): AppDeployer;
82
91
  /** Start a new `AlgoKitComposer` transaction group */
83
92
  newGroup(): AlgoKitComposer;
84
93
  /**
85
- * Methods for sending a single transaction.
94
+ * Methods for sending a transaction.
86
95
  */
87
96
  get send(): AlgorandClientTransactionSender;
88
97
  /**
89
- * Methods for building transactions
98
+ * Methods for creating a transaction.
90
99
  */
91
- get transactions(): AlgorandClientTransactionCreator;
100
+ get createTransaction(): AlgorandClientTransactionCreator;
92
101
  /**
93
102
  * Returns an `AlgorandClient` pointing at default LocalNet ports and API token.
94
103
  * @returns The `AlgorandClient`
@@ -136,4 +145,3 @@ export declare class AlgorandClient {
136
145
  static fromConfig(config: AlgoConfig): AlgorandClient;
137
146
  }
138
147
  export default AlgorandClient;
139
- //# sourceMappingURL=algorand-client.d.ts.map
@@ -5,6 +5,8 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  var types_accountManager = require('./account-manager.js');
6
6
  var types_algorandClientTransactionCreator = require('./algorand-client-transaction-creator.js');
7
7
  var types_algorandClientTransactionSender = require('./algorand-client-transaction-sender.js');
8
+ var types_appDeployer = require('./app-deployer.js');
9
+ var types_appManager = require('./app-manager.js');
8
10
  var types_assetManager = require('./asset-manager.js');
9
11
  var types_clientManager = require('./client-manager.js');
10
12
  var types_composer = require('./composer.js');
@@ -16,11 +18,13 @@ class AlgorandClient {
16
18
  constructor(config) {
17
19
  this._cachedSuggestedParamsTimeout = 3000; // three seconds
18
20
  this._defaultValidityWindow = undefined;
19
- this._clientManager = new types_clientManager.ClientManager(config);
21
+ this._clientManager = new types_clientManager.ClientManager(config, this);
20
22
  this._accountManager = new types_accountManager.AccountManager(this._clientManager);
23
+ this._appManager = new types_appManager.AppManager(this._clientManager.algod);
21
24
  this._assetManager = new types_assetManager.AssetManager(this._clientManager.algod, () => this.newGroup());
22
- this._transactionSender = new types_algorandClientTransactionSender.AlgorandClientTransactionSender(() => this.newGroup(), this._assetManager);
25
+ this._transactionSender = new types_algorandClientTransactionSender.AlgorandClientTransactionSender(() => this.newGroup(), this._assetManager, this._appManager);
23
26
  this._transactionCreator = new types_algorandClientTransactionCreator.AlgorandClientTransactionCreator(() => this.newGroup());
27
+ this._appDeployer = new types_appDeployer.AppDeployer(this._appManager, this._transactionSender, this._clientManager.indexerIfPresent);
24
28
  }
25
29
  /**
26
30
  * Sets the default validity window for transactions.
@@ -41,7 +45,7 @@ class AlgorandClient {
41
45
  return this;
42
46
  }
43
47
  /**
44
- * Tracks the given account for later signing.
48
+ * Tracks the given account (object that encapsulates an address and a signer) for later signing.
45
49
  * @param account The account to register, which can be a `TransactionSignerAccount` or
46
50
  * a `algosdk.Account`, `algosdk.LogicSigAccount`, `SigningAccount` or `MultisigAccount`
47
51
  * @example
@@ -60,7 +64,7 @@ class AlgorandClient {
60
64
  return this;
61
65
  }
62
66
  /**
63
- * Tracks the given account for later signing.
67
+ * Tracks the given signer against the given sender for later signing.
64
68
  * @param sender The sender address to use this signer for
65
69
  * @param signer The signer to sign transactions with for the given sender
66
70
  * @returns The `AlgorandClient` so method calls can be chained
@@ -70,12 +74,12 @@ class AlgorandClient {
70
74
  return this;
71
75
  }
72
76
  /**
73
- * Sets a cache value to use for suggested params.
77
+ * Sets a cache value to use for suggested transaction params.
74
78
  * @param suggestedParams The suggested params to use
75
79
  * @param until A date until which to cache, or if not specified then the timeout is used
76
80
  * @returns The `AlgorandClient` so method calls can be chained
77
81
  */
78
- setSuggestedParams(suggestedParams, until) {
82
+ setSuggestedParamsCache(suggestedParams, until) {
79
83
  this._cachedSuggestedParams = suggestedParams;
80
84
  this._cachedSuggestedParamsExpiry = until ?? new Date(+new Date() + this._cachedSuggestedParamsTimeout);
81
85
  return this;
@@ -85,7 +89,7 @@ class AlgorandClient {
85
89
  * @param timeout The timeout in milliseconds
86
90
  * @returns The `AlgorandClient` so method calls can be chained
87
91
  */
88
- setSuggestedParamsTimeout(timeout) {
92
+ setSuggestedParamsCacheTimeout(timeout) {
89
93
  this._cachedSuggestedParamsTimeout = timeout;
90
94
  return this;
91
95
  }
@@ -114,6 +118,14 @@ class AlgorandClient {
114
118
  get asset() {
115
119
  return this._assetManager;
116
120
  }
121
+ /** Methods for interacting with apps. */
122
+ get app() {
123
+ return this._appManager;
124
+ }
125
+ /** Methods for deploying apps and managing app deployment metadata. */
126
+ get appDeployer() {
127
+ return this._appDeployer;
128
+ }
117
129
  /** Start a new `AlgoKitComposer` transaction group */
118
130
  newGroup() {
119
131
  return new types_composer.default({
@@ -121,18 +133,19 @@ class AlgorandClient {
121
133
  getSigner: (addr) => this.account.getSigner(addr),
122
134
  getSuggestedParams: () => this.getSuggestedParams(),
123
135
  defaultValidityWindow: this._defaultValidityWindow,
136
+ appManager: this._appManager,
124
137
  });
125
138
  }
126
139
  /**
127
- * Methods for sending a single transaction.
140
+ * Methods for sending a transaction.
128
141
  */
129
142
  get send() {
130
143
  return this._transactionSender;
131
144
  }
132
145
  /**
133
- * Methods for building transactions
146
+ * Methods for creating a transaction.
134
147
  */
135
- get transactions() {
148
+ get createTransaction() {
136
149
  return this._transactionCreator;
137
150
  }
138
151
  // Static methods to create an `AlgorandClient`
@@ -1 +1 @@
1
- {"version":3,"file":"algorand-client.js","sources":["../../src/types/algorand-client.ts"],"sourcesContent":[null],"names":["ClientManager","AccountManager","AssetManager","AlgorandClientTransactionSender","AlgorandClientTransactionCreator","AlgoKitComposer"],"mappings":"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"}
1
+ {"version":3,"file":"algorand-client.js","sources":["../../src/types/algorand-client.ts"],"sourcesContent":["import algosdk from 'algosdk'\nimport { MultisigAccount, SigningAccount, TransactionSignerAccount } from './account'\nimport { AccountManager } from './account-manager'\nimport { AlgorandClientInterface } from './algorand-client-interface'\nimport { AlgorandClientTransactionCreator } from './algorand-client-transaction-creator'\nimport { AlgorandClientTransactionSender } from './algorand-client-transaction-sender'\nimport { AppDeployer } from './app-deployer'\nimport { AppManager } from './app-manager'\nimport { AssetManager } from './asset-manager'\nimport { AlgoSdkClients, ClientManager } from './client-manager'\nimport AlgoKitComposer from './composer'\nimport { AlgoConfig } from './network-client'\nimport Account = algosdk.Account\nimport LogicSigAccount = algosdk.LogicSigAccount\n\n/**\n * A client that brokers easy access to Algorand functionality.\n */\nexport class AlgorandClient implements AlgorandClientInterface {\n private _clientManager: ClientManager\n private _accountManager: AccountManager\n private _appManager: AppManager\n private _appDeployer: AppDeployer\n private _assetManager: AssetManager\n private _transactionSender: AlgorandClientTransactionSender\n private _transactionCreator: AlgorandClientTransactionCreator\n\n private _cachedSuggestedParams?: algosdk.SuggestedParams\n private _cachedSuggestedParamsExpiry?: Date\n private _cachedSuggestedParamsTimeout: number = 3_000 // three seconds\n\n private _defaultValidityWindow: number | undefined = undefined\n\n private constructor(config: AlgoConfig | AlgoSdkClients) {\n this._clientManager = new ClientManager(config, this)\n this._accountManager = new AccountManager(this._clientManager)\n this._appManager = new AppManager(this._clientManager.algod)\n this._assetManager = new AssetManager(this._clientManager.algod, () => this.newGroup())\n this._transactionSender = new AlgorandClientTransactionSender(() => this.newGroup(), this._assetManager, this._appManager)\n this._transactionCreator = new AlgorandClientTransactionCreator(() => this.newGroup())\n this._appDeployer = new AppDeployer(this._appManager, this._transactionSender, this._clientManager.indexerIfPresent)\n }\n\n /**\n * Sets the default validity window for transactions.\n * @param validityWindow The number of rounds between the first and last valid rounds\n * @returns The `AlgorandClient` so method calls can be chained\n */\n public setDefaultValidityWindow(validityWindow: number) {\n this._defaultValidityWindow = validityWindow\n return this\n }\n\n /**\n * Sets the default signer to use if no other signer is specified.\n * @param signer The signer to use, either a `TransactionSigner` or a `TransactionSignerAccount`\n * @returns The `AlgorandClient` so method calls can be chained\n */\n public setDefaultSigner(signer: algosdk.TransactionSigner | TransactionSignerAccount): AlgorandClient {\n this._accountManager.setDefaultSigner(signer)\n return this\n }\n\n /**\n * Tracks the given account (object that encapsulates an address and a signer) for later signing.\n * @param account The account to register, which can be a `TransactionSignerAccount` or\n * a `algosdk.Account`, `algosdk.LogicSigAccount`, `SigningAccount` or `MultisigAccount`\n * @example\n * ```typescript\n * const accountManager = AlgorandClient.mainnet()\n * .setSignerFromAccount(algosdk.generateAccount())\n * .setSignerFromAccount(new algosdk.LogicSigAccount(program, args))\n * .setSignerFromAccount(new SigningAccount(mnemonic, sender))\n * .setSignerFromAccount(new MultisigAccount({version: 1, threshold: 1, addrs: [\"ADDRESS1...\", \"ADDRESS2...\"]}, [account1, account2]))\n * .setSignerFromAccount({addr: \"SENDERADDRESS\", signer: transactionSigner})\n * ```\n * @returns The `AlgorandClient` so method calls can be chained\n */\n public setSignerFromAccount(\n account: TransactionSignerAccount | TransactionSignerAccount | Account | LogicSigAccount | SigningAccount | MultisigAccount,\n ) {\n this._accountManager.setSignerFromAccount(account)\n return this\n }\n\n /**\n * Tracks the given signer against the given sender for later signing.\n * @param sender The sender address to use this signer for\n * @param signer The signer to sign transactions with for the given sender\n * @returns The `AlgorandClient` so method calls can be chained\n */\n public setSigner(sender: string, signer: algosdk.TransactionSigner) {\n this._accountManager.setSigner(sender, signer)\n return this\n }\n\n /**\n * Sets a cache value to use for suggested transaction params.\n * @param suggestedParams The suggested params to use\n * @param until A date until which to cache, or if not specified then the timeout is used\n * @returns The `AlgorandClient` so method calls can be chained\n */\n public setSuggestedParamsCache(suggestedParams: algosdk.SuggestedParams, until?: Date) {\n this._cachedSuggestedParams = suggestedParams\n this._cachedSuggestedParamsExpiry = until ?? new Date(+new Date() + this._cachedSuggestedParamsTimeout)\n return this\n }\n\n /**\n * Sets the timeout for caching suggested params.\n * @param timeout The timeout in milliseconds\n * @returns The `AlgorandClient` so method calls can be chained\n */\n public setSuggestedParamsCacheTimeout(timeout: number) {\n this._cachedSuggestedParamsTimeout = timeout\n return this\n }\n\n /** Get suggested params for a transaction (either cached or from algod if the cache is stale or empty) */\n public async getSuggestedParams(): Promise<algosdk.SuggestedParams> {\n if (this._cachedSuggestedParams && (!this._cachedSuggestedParamsExpiry || this._cachedSuggestedParamsExpiry > new Date())) {\n return {\n ...this._cachedSuggestedParams,\n }\n }\n\n this._cachedSuggestedParams = await this._clientManager.algod.getTransactionParams().do()\n this._cachedSuggestedParamsExpiry = new Date(new Date().getTime() + this._cachedSuggestedParamsTimeout)\n\n return {\n ...this._cachedSuggestedParams,\n }\n }\n\n /** Get clients, including algosdk clients and app clients. */\n public get client() {\n return this._clientManager\n }\n\n /** Get or create accounts that can sign transactions. */\n public get account() {\n return this._accountManager\n }\n\n /** Methods for interacting with assets. */\n public get asset() {\n return this._assetManager\n }\n\n /** Methods for interacting with apps. */\n public get app() {\n return this._appManager\n }\n\n /** Methods for deploying apps and managing app deployment metadata. */\n public get appDeployer() {\n return this._appDeployer\n }\n\n /** Start a new `AlgoKitComposer` transaction group */\n public newGroup() {\n return new AlgoKitComposer({\n algod: this.client.algod,\n getSigner: (addr: string) => this.account.getSigner(addr),\n getSuggestedParams: () => this.getSuggestedParams(),\n defaultValidityWindow: this._defaultValidityWindow,\n appManager: this._appManager,\n })\n }\n\n /**\n * Methods for sending a transaction.\n */\n public get send() {\n return this._transactionSender\n }\n\n /**\n * Methods for creating a transaction.\n */\n public get createTransaction() {\n return this._transactionCreator\n }\n\n // Static methods to create an `AlgorandClient`\n\n /**\n * Returns an `AlgorandClient` pointing at default LocalNet ports and API token.\n * @returns The `AlgorandClient`\n */\n public static defaultLocalNet() {\n return new AlgorandClient({\n algodConfig: ClientManager.getDefaultLocalNetConfig('algod'),\n indexerConfig: ClientManager.getDefaultLocalNetConfig('indexer'),\n kmdConfig: ClientManager.getDefaultLocalNetConfig('kmd'),\n })\n }\n\n /**\n * Returns an `AlgorandClient` pointing at TestNet using AlgoNode.\n * @returns The `AlgorandClient`\n */\n public static testNet() {\n return new AlgorandClient({\n algodConfig: ClientManager.getAlgoNodeConfig('testnet', 'algod'),\n indexerConfig: ClientManager.getAlgoNodeConfig('testnet', 'indexer'),\n kmdConfig: undefined,\n })\n }\n\n /**\n * Returns an `AlgorandClient` pointing at MainNet using AlgoNode.\n * @returns The `AlgorandClient`\n */\n public static mainNet() {\n return new AlgorandClient({\n algodConfig: ClientManager.getAlgoNodeConfig('mainnet', 'algod'),\n indexerConfig: ClientManager.getAlgoNodeConfig('mainnet', 'indexer'),\n kmdConfig: undefined,\n })\n }\n\n /**\n * Returns an `AlgorandClient` pointing to the given client(s).\n * @param clients The clients to use\n * @returns The `AlgorandClient`\n */\n public static fromClients(clients: AlgoSdkClients) {\n return new AlgorandClient(clients)\n }\n\n /**\n * Returns an `AlgorandClient` loading the configuration from environment variables.\n *\n * Retrieve configurations from environment variables when defined or get default LocalNet configuration if they aren't defined.\n *\n * Expects to be called from a Node.js environment.\n *\n * If `process.env.ALGOD_SERVER` is defined it will use that along with optional `process.env.ALGOD_PORT` and `process.env.ALGOD_TOKEN`.\n *\n * If `process.env.INDEXER_SERVER` is defined it will use that along with optional `process.env.INDEXER_PORT` and `process.env.INDEXER_TOKEN`.\n *\n * If either aren't defined it will use the default LocalNet config.\n *\n * It will return a KMD configuration that uses `process.env.KMD_PORT` (or port 4002) if `process.env.ALGOD_SERVER` is defined,\n * otherwise it will use the default LocalNet config unless it detects testnet or mainnet.\n * @returns The `AlgorandClient`\n */\n public static fromEnvironment() {\n return new AlgorandClient(ClientManager.getConfigFromEnvironmentOrLocalNet())\n }\n\n /**\n * Returns an `AlgorandClient` from the given config.\n * @param config The config to use\n * @returns The `AlgorandClient`\n */\n public static fromConfig(config: AlgoConfig) {\n return new AlgorandClient(config)\n }\n}\n\nexport default AlgorandClient\n"],"names":["ClientManager","AccountManager","AppManager","AssetManager","AlgorandClientTransactionSender","AlgorandClientTransactionCreator","AppDeployer","AlgoKitComposer"],"mappings":";;;;;;;;;;;;;AAeA;;AAEG;MACU,cAAc,CAAA;AAezB,IAAA,WAAA,CAAoB,MAAmC,EAAA;AAJ/C,QAAA,IAAA,CAAA,6BAA6B,GAAW,IAAK,CAAA;QAE7C,IAAsB,CAAA,sBAAA,GAAuB,SAAS,CAAA;QAG5D,IAAI,CAAC,cAAc,GAAG,IAAIA,iCAAa,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;QACrD,IAAI,CAAC,eAAe,GAAG,IAAIC,mCAAc,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;AAC9D,QAAA,IAAI,CAAC,WAAW,GAAG,IAAIC,2BAAU,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA;QAC5D,IAAI,CAAC,aAAa,GAAG,IAAIC,+BAAY,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAA;QACvF,IAAI,CAAC,kBAAkB,GAAG,IAAIC,qEAA+B,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,CAAA;AAC1H,QAAA,IAAI,CAAC,mBAAmB,GAAG,IAAIC,uEAAgC,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAA;QACtF,IAAI,CAAC,YAAY,GAAG,IAAIC,6BAAW,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAA;KACrH;AAED;;;;AAIG;AACI,IAAA,wBAAwB,CAAC,cAAsB,EAAA;AACpD,QAAA,IAAI,CAAC,sBAAsB,GAAG,cAAc,CAAA;AAC5C,QAAA,OAAO,IAAI,CAAA;KACZ;AAED;;;;AAIG;AACI,IAAA,gBAAgB,CAAC,MAA4D,EAAA;AAClF,QAAA,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAA;AAC7C,QAAA,OAAO,IAAI,CAAA;KACZ;AAED;;;;;;;;;;;;;;AAcG;AACI,IAAA,oBAAoB,CACzB,OAA2H,EAAA;AAE3H,QAAA,IAAI,CAAC,eAAe,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAA;AAClD,QAAA,OAAO,IAAI,CAAA;KACZ;AAED;;;;;AAKG;IACI,SAAS,CAAC,MAAc,EAAE,MAAiC,EAAA;QAChE,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AAC9C,QAAA,OAAO,IAAI,CAAA;KACZ;AAED;;;;;AAKG;IACI,uBAAuB,CAAC,eAAwC,EAAE,KAAY,EAAA;AACnF,QAAA,IAAI,CAAC,sBAAsB,GAAG,eAAe,CAAA;AAC7C,QAAA,IAAI,CAAC,4BAA4B,GAAG,KAAK,IAAI,IAAI,IAAI,CAAC,CAAC,IAAI,IAAI,EAAE,GAAG,IAAI,CAAC,6BAA6B,CAAC,CAAA;AACvG,QAAA,OAAO,IAAI,CAAA;KACZ;AAED;;;;AAIG;AACI,IAAA,8BAA8B,CAAC,OAAe,EAAA;AACnD,QAAA,IAAI,CAAC,6BAA6B,GAAG,OAAO,CAAA;AAC5C,QAAA,OAAO,IAAI,CAAA;KACZ;;AAGM,IAAA,MAAM,kBAAkB,GAAA;AAC7B,QAAA,IAAI,IAAI,CAAC,sBAAsB,KAAK,CAAC,IAAI,CAAC,4BAA4B,IAAI,IAAI,CAAC,4BAA4B,GAAG,IAAI,IAAI,EAAE,CAAC,EAAE;YACzH,OAAO;gBACL,GAAG,IAAI,CAAC,sBAAsB;aAC/B,CAAA;SACF;AAED,QAAA,IAAI,CAAC,sBAAsB,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,oBAAoB,EAAE,CAAC,EAAE,EAAE,CAAA;AACzF,QAAA,IAAI,CAAC,4BAA4B,GAAG,IAAI,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,6BAA6B,CAAC,CAAA;QAEvG,OAAO;YACL,GAAG,IAAI,CAAC,sBAAsB;SAC/B,CAAA;KACF;;AAGD,IAAA,IAAW,MAAM,GAAA;QACf,OAAO,IAAI,CAAC,cAAc,CAAA;KAC3B;;AAGD,IAAA,IAAW,OAAO,GAAA;QAChB,OAAO,IAAI,CAAC,eAAe,CAAA;KAC5B;;AAGD,IAAA,IAAW,KAAK,GAAA;QACd,OAAO,IAAI,CAAC,aAAa,CAAA;KAC1B;;AAGD,IAAA,IAAW,GAAG,GAAA;QACZ,OAAO,IAAI,CAAC,WAAW,CAAA;KACxB;;AAGD,IAAA,IAAW,WAAW,GAAA;QACpB,OAAO,IAAI,CAAC,YAAY,CAAA;KACzB;;IAGM,QAAQ,GAAA;QACb,OAAO,IAAIC,sBAAe,CAAC;AACzB,YAAA,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK;AACxB,YAAA,SAAS,EAAE,CAAC,IAAY,KAAK,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC;AACzD,YAAA,kBAAkB,EAAE,MAAM,IAAI,CAAC,kBAAkB,EAAE;YACnD,qBAAqB,EAAE,IAAI,CAAC,sBAAsB;YAClD,UAAU,EAAE,IAAI,CAAC,WAAW;AAC7B,SAAA,CAAC,CAAA;KACH;AAED;;AAEG;AACH,IAAA,IAAW,IAAI,GAAA;QACb,OAAO,IAAI,CAAC,kBAAkB,CAAA;KAC/B;AAED;;AAEG;AACH,IAAA,IAAW,iBAAiB,GAAA;QAC1B,OAAO,IAAI,CAAC,mBAAmB,CAAA;KAChC;;AAID;;;AAGG;AACI,IAAA,OAAO,eAAe,GAAA;QAC3B,OAAO,IAAI,cAAc,CAAC;AACxB,YAAA,WAAW,EAAEP,iCAAa,CAAC,wBAAwB,CAAC,OAAO,CAAC;AAC5D,YAAA,aAAa,EAAEA,iCAAa,CAAC,wBAAwB,CAAC,SAAS,CAAC;AAChE,YAAA,SAAS,EAAEA,iCAAa,CAAC,wBAAwB,CAAC,KAAK,CAAC;AACzD,SAAA,CAAC,CAAA;KACH;AAED;;;AAGG;AACI,IAAA,OAAO,OAAO,GAAA;QACnB,OAAO,IAAI,cAAc,CAAC;YACxB,WAAW,EAAEA,iCAAa,CAAC,iBAAiB,CAAC,SAAS,EAAE,OAAO,CAAC;YAChE,aAAa,EAAEA,iCAAa,CAAC,iBAAiB,CAAC,SAAS,EAAE,SAAS,CAAC;AACpE,YAAA,SAAS,EAAE,SAAS;AACrB,SAAA,CAAC,CAAA;KACH;AAED;;;AAGG;AACI,IAAA,OAAO,OAAO,GAAA;QACnB,OAAO,IAAI,cAAc,CAAC;YACxB,WAAW,EAAEA,iCAAa,CAAC,iBAAiB,CAAC,SAAS,EAAE,OAAO,CAAC;YAChE,aAAa,EAAEA,iCAAa,CAAC,iBAAiB,CAAC,SAAS,EAAE,SAAS,CAAC;AACpE,YAAA,SAAS,EAAE,SAAS;AACrB,SAAA,CAAC,CAAA;KACH;AAED;;;;AAIG;IACI,OAAO,WAAW,CAAC,OAAuB,EAAA;AAC/C,QAAA,OAAO,IAAI,cAAc,CAAC,OAAO,CAAC,CAAA;KACnC;AAED;;;;;;;;;;;;;;;;AAgBG;AACI,IAAA,OAAO,eAAe,GAAA;QAC3B,OAAO,IAAI,cAAc,CAACA,iCAAa,CAAC,kCAAkC,EAAE,CAAC,CAAA;KAC9E;AAED;;;;AAIG;IACI,OAAO,UAAU,CAAC,MAAkB,EAAA;AACzC,QAAA,OAAO,IAAI,cAAc,CAAC,MAAM,CAAC,CAAA;KAClC;AACF;;;;;"}
@@ -1,6 +1,8 @@
1
1
  import { AccountManager } from './account-manager.mjs';
2
2
  import { AlgorandClientTransactionCreator } from './algorand-client-transaction-creator.mjs';
3
3
  import { AlgorandClientTransactionSender } from './algorand-client-transaction-sender.mjs';
4
+ import { AppDeployer } from './app-deployer.mjs';
5
+ import { AppManager } from './app-manager.mjs';
4
6
  import { AssetManager } from './asset-manager.mjs';
5
7
  import { ClientManager } from './client-manager.mjs';
6
8
  import AlgoKitComposer from './composer.mjs';
@@ -12,11 +14,13 @@ class AlgorandClient {
12
14
  constructor(config) {
13
15
  this._cachedSuggestedParamsTimeout = 3000; // three seconds
14
16
  this._defaultValidityWindow = undefined;
15
- this._clientManager = new ClientManager(config);
17
+ this._clientManager = new ClientManager(config, this);
16
18
  this._accountManager = new AccountManager(this._clientManager);
19
+ this._appManager = new AppManager(this._clientManager.algod);
17
20
  this._assetManager = new AssetManager(this._clientManager.algod, () => this.newGroup());
18
- this._transactionSender = new AlgorandClientTransactionSender(() => this.newGroup(), this._assetManager);
21
+ this._transactionSender = new AlgorandClientTransactionSender(() => this.newGroup(), this._assetManager, this._appManager);
19
22
  this._transactionCreator = new AlgorandClientTransactionCreator(() => this.newGroup());
23
+ this._appDeployer = new AppDeployer(this._appManager, this._transactionSender, this._clientManager.indexerIfPresent);
20
24
  }
21
25
  /**
22
26
  * Sets the default validity window for transactions.
@@ -37,7 +41,7 @@ class AlgorandClient {
37
41
  return this;
38
42
  }
39
43
  /**
40
- * Tracks the given account for later signing.
44
+ * Tracks the given account (object that encapsulates an address and a signer) for later signing.
41
45
  * @param account The account to register, which can be a `TransactionSignerAccount` or
42
46
  * a `algosdk.Account`, `algosdk.LogicSigAccount`, `SigningAccount` or `MultisigAccount`
43
47
  * @example
@@ -56,7 +60,7 @@ class AlgorandClient {
56
60
  return this;
57
61
  }
58
62
  /**
59
- * Tracks the given account for later signing.
63
+ * Tracks the given signer against the given sender for later signing.
60
64
  * @param sender The sender address to use this signer for
61
65
  * @param signer The signer to sign transactions with for the given sender
62
66
  * @returns The `AlgorandClient` so method calls can be chained
@@ -66,12 +70,12 @@ class AlgorandClient {
66
70
  return this;
67
71
  }
68
72
  /**
69
- * Sets a cache value to use for suggested params.
73
+ * Sets a cache value to use for suggested transaction params.
70
74
  * @param suggestedParams The suggested params to use
71
75
  * @param until A date until which to cache, or if not specified then the timeout is used
72
76
  * @returns The `AlgorandClient` so method calls can be chained
73
77
  */
74
- setSuggestedParams(suggestedParams, until) {
78
+ setSuggestedParamsCache(suggestedParams, until) {
75
79
  this._cachedSuggestedParams = suggestedParams;
76
80
  this._cachedSuggestedParamsExpiry = until ?? new Date(+new Date() + this._cachedSuggestedParamsTimeout);
77
81
  return this;
@@ -81,7 +85,7 @@ class AlgorandClient {
81
85
  * @param timeout The timeout in milliseconds
82
86
  * @returns The `AlgorandClient` so method calls can be chained
83
87
  */
84
- setSuggestedParamsTimeout(timeout) {
88
+ setSuggestedParamsCacheTimeout(timeout) {
85
89
  this._cachedSuggestedParamsTimeout = timeout;
86
90
  return this;
87
91
  }
@@ -110,6 +114,14 @@ class AlgorandClient {
110
114
  get asset() {
111
115
  return this._assetManager;
112
116
  }
117
+ /** Methods for interacting with apps. */
118
+ get app() {
119
+ return this._appManager;
120
+ }
121
+ /** Methods for deploying apps and managing app deployment metadata. */
122
+ get appDeployer() {
123
+ return this._appDeployer;
124
+ }
113
125
  /** Start a new `AlgoKitComposer` transaction group */
114
126
  newGroup() {
115
127
  return new AlgoKitComposer({
@@ -117,18 +129,19 @@ class AlgorandClient {
117
129
  getSigner: (addr) => this.account.getSigner(addr),
118
130
  getSuggestedParams: () => this.getSuggestedParams(),
119
131
  defaultValidityWindow: this._defaultValidityWindow,
132
+ appManager: this._appManager,
120
133
  });
121
134
  }
122
135
  /**
123
- * Methods for sending a single transaction.
136
+ * Methods for sending a transaction.
124
137
  */
125
138
  get send() {
126
139
  return this._transactionSender;
127
140
  }
128
141
  /**
129
- * Methods for building transactions
142
+ * Methods for creating a transaction.
130
143
  */
131
- get transactions() {
144
+ get createTransaction() {
132
145
  return this._transactionCreator;
133
146
  }
134
147
  // Static methods to create an `AlgorandClient`
@@ -1 +1 @@
1
- {"version":3,"file":"algorand-client.mjs","sources":["../../src/types/algorand-client.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"algorand-client.mjs","sources":["../../src/types/algorand-client.ts"],"sourcesContent":["import algosdk from 'algosdk'\nimport { MultisigAccount, SigningAccount, TransactionSignerAccount } from './account'\nimport { AccountManager } from './account-manager'\nimport { AlgorandClientInterface } from './algorand-client-interface'\nimport { AlgorandClientTransactionCreator } from './algorand-client-transaction-creator'\nimport { AlgorandClientTransactionSender } from './algorand-client-transaction-sender'\nimport { AppDeployer } from './app-deployer'\nimport { AppManager } from './app-manager'\nimport { AssetManager } from './asset-manager'\nimport { AlgoSdkClients, ClientManager } from './client-manager'\nimport AlgoKitComposer from './composer'\nimport { AlgoConfig } from './network-client'\nimport Account = algosdk.Account\nimport LogicSigAccount = algosdk.LogicSigAccount\n\n/**\n * A client that brokers easy access to Algorand functionality.\n */\nexport class AlgorandClient implements AlgorandClientInterface {\n private _clientManager: ClientManager\n private _accountManager: AccountManager\n private _appManager: AppManager\n private _appDeployer: AppDeployer\n private _assetManager: AssetManager\n private _transactionSender: AlgorandClientTransactionSender\n private _transactionCreator: AlgorandClientTransactionCreator\n\n private _cachedSuggestedParams?: algosdk.SuggestedParams\n private _cachedSuggestedParamsExpiry?: Date\n private _cachedSuggestedParamsTimeout: number = 3_000 // three seconds\n\n private _defaultValidityWindow: number | undefined = undefined\n\n private constructor(config: AlgoConfig | AlgoSdkClients) {\n this._clientManager = new ClientManager(config, this)\n this._accountManager = new AccountManager(this._clientManager)\n this._appManager = new AppManager(this._clientManager.algod)\n this._assetManager = new AssetManager(this._clientManager.algod, () => this.newGroup())\n this._transactionSender = new AlgorandClientTransactionSender(() => this.newGroup(), this._assetManager, this._appManager)\n this._transactionCreator = new AlgorandClientTransactionCreator(() => this.newGroup())\n this._appDeployer = new AppDeployer(this._appManager, this._transactionSender, this._clientManager.indexerIfPresent)\n }\n\n /**\n * Sets the default validity window for transactions.\n * @param validityWindow The number of rounds between the first and last valid rounds\n * @returns The `AlgorandClient` so method calls can be chained\n */\n public setDefaultValidityWindow(validityWindow: number) {\n this._defaultValidityWindow = validityWindow\n return this\n }\n\n /**\n * Sets the default signer to use if no other signer is specified.\n * @param signer The signer to use, either a `TransactionSigner` or a `TransactionSignerAccount`\n * @returns The `AlgorandClient` so method calls can be chained\n */\n public setDefaultSigner(signer: algosdk.TransactionSigner | TransactionSignerAccount): AlgorandClient {\n this._accountManager.setDefaultSigner(signer)\n return this\n }\n\n /**\n * Tracks the given account (object that encapsulates an address and a signer) for later signing.\n * @param account The account to register, which can be a `TransactionSignerAccount` or\n * a `algosdk.Account`, `algosdk.LogicSigAccount`, `SigningAccount` or `MultisigAccount`\n * @example\n * ```typescript\n * const accountManager = AlgorandClient.mainnet()\n * .setSignerFromAccount(algosdk.generateAccount())\n * .setSignerFromAccount(new algosdk.LogicSigAccount(program, args))\n * .setSignerFromAccount(new SigningAccount(mnemonic, sender))\n * .setSignerFromAccount(new MultisigAccount({version: 1, threshold: 1, addrs: [\"ADDRESS1...\", \"ADDRESS2...\"]}, [account1, account2]))\n * .setSignerFromAccount({addr: \"SENDERADDRESS\", signer: transactionSigner})\n * ```\n * @returns The `AlgorandClient` so method calls can be chained\n */\n public setSignerFromAccount(\n account: TransactionSignerAccount | TransactionSignerAccount | Account | LogicSigAccount | SigningAccount | MultisigAccount,\n ) {\n this._accountManager.setSignerFromAccount(account)\n return this\n }\n\n /**\n * Tracks the given signer against the given sender for later signing.\n * @param sender The sender address to use this signer for\n * @param signer The signer to sign transactions with for the given sender\n * @returns The `AlgorandClient` so method calls can be chained\n */\n public setSigner(sender: string, signer: algosdk.TransactionSigner) {\n this._accountManager.setSigner(sender, signer)\n return this\n }\n\n /**\n * Sets a cache value to use for suggested transaction params.\n * @param suggestedParams The suggested params to use\n * @param until A date until which to cache, or if not specified then the timeout is used\n * @returns The `AlgorandClient` so method calls can be chained\n */\n public setSuggestedParamsCache(suggestedParams: algosdk.SuggestedParams, until?: Date) {\n this._cachedSuggestedParams = suggestedParams\n this._cachedSuggestedParamsExpiry = until ?? new Date(+new Date() + this._cachedSuggestedParamsTimeout)\n return this\n }\n\n /**\n * Sets the timeout for caching suggested params.\n * @param timeout The timeout in milliseconds\n * @returns The `AlgorandClient` so method calls can be chained\n */\n public setSuggestedParamsCacheTimeout(timeout: number) {\n this._cachedSuggestedParamsTimeout = timeout\n return this\n }\n\n /** Get suggested params for a transaction (either cached or from algod if the cache is stale or empty) */\n public async getSuggestedParams(): Promise<algosdk.SuggestedParams> {\n if (this._cachedSuggestedParams && (!this._cachedSuggestedParamsExpiry || this._cachedSuggestedParamsExpiry > new Date())) {\n return {\n ...this._cachedSuggestedParams,\n }\n }\n\n this._cachedSuggestedParams = await this._clientManager.algod.getTransactionParams().do()\n this._cachedSuggestedParamsExpiry = new Date(new Date().getTime() + this._cachedSuggestedParamsTimeout)\n\n return {\n ...this._cachedSuggestedParams,\n }\n }\n\n /** Get clients, including algosdk clients and app clients. */\n public get client() {\n return this._clientManager\n }\n\n /** Get or create accounts that can sign transactions. */\n public get account() {\n return this._accountManager\n }\n\n /** Methods for interacting with assets. */\n public get asset() {\n return this._assetManager\n }\n\n /** Methods for interacting with apps. */\n public get app() {\n return this._appManager\n }\n\n /** Methods for deploying apps and managing app deployment metadata. */\n public get appDeployer() {\n return this._appDeployer\n }\n\n /** Start a new `AlgoKitComposer` transaction group */\n public newGroup() {\n return new AlgoKitComposer({\n algod: this.client.algod,\n getSigner: (addr: string) => this.account.getSigner(addr),\n getSuggestedParams: () => this.getSuggestedParams(),\n defaultValidityWindow: this._defaultValidityWindow,\n appManager: this._appManager,\n })\n }\n\n /**\n * Methods for sending a transaction.\n */\n public get send() {\n return this._transactionSender\n }\n\n /**\n * Methods for creating a transaction.\n */\n public get createTransaction() {\n return this._transactionCreator\n }\n\n // Static methods to create an `AlgorandClient`\n\n /**\n * Returns an `AlgorandClient` pointing at default LocalNet ports and API token.\n * @returns The `AlgorandClient`\n */\n public static defaultLocalNet() {\n return new AlgorandClient({\n algodConfig: ClientManager.getDefaultLocalNetConfig('algod'),\n indexerConfig: ClientManager.getDefaultLocalNetConfig('indexer'),\n kmdConfig: ClientManager.getDefaultLocalNetConfig('kmd'),\n })\n }\n\n /**\n * Returns an `AlgorandClient` pointing at TestNet using AlgoNode.\n * @returns The `AlgorandClient`\n */\n public static testNet() {\n return new AlgorandClient({\n algodConfig: ClientManager.getAlgoNodeConfig('testnet', 'algod'),\n indexerConfig: ClientManager.getAlgoNodeConfig('testnet', 'indexer'),\n kmdConfig: undefined,\n })\n }\n\n /**\n * Returns an `AlgorandClient` pointing at MainNet using AlgoNode.\n * @returns The `AlgorandClient`\n */\n public static mainNet() {\n return new AlgorandClient({\n algodConfig: ClientManager.getAlgoNodeConfig('mainnet', 'algod'),\n indexerConfig: ClientManager.getAlgoNodeConfig('mainnet', 'indexer'),\n kmdConfig: undefined,\n })\n }\n\n /**\n * Returns an `AlgorandClient` pointing to the given client(s).\n * @param clients The clients to use\n * @returns The `AlgorandClient`\n */\n public static fromClients(clients: AlgoSdkClients) {\n return new AlgorandClient(clients)\n }\n\n /**\n * Returns an `AlgorandClient` loading the configuration from environment variables.\n *\n * Retrieve configurations from environment variables when defined or get default LocalNet configuration if they aren't defined.\n *\n * Expects to be called from a Node.js environment.\n *\n * If `process.env.ALGOD_SERVER` is defined it will use that along with optional `process.env.ALGOD_PORT` and `process.env.ALGOD_TOKEN`.\n *\n * If `process.env.INDEXER_SERVER` is defined it will use that along with optional `process.env.INDEXER_PORT` and `process.env.INDEXER_TOKEN`.\n *\n * If either aren't defined it will use the default LocalNet config.\n *\n * It will return a KMD configuration that uses `process.env.KMD_PORT` (or port 4002) if `process.env.ALGOD_SERVER` is defined,\n * otherwise it will use the default LocalNet config unless it detects testnet or mainnet.\n * @returns The `AlgorandClient`\n */\n public static fromEnvironment() {\n return new AlgorandClient(ClientManager.getConfigFromEnvironmentOrLocalNet())\n }\n\n /**\n * Returns an `AlgorandClient` from the given config.\n * @param config The config to use\n * @returns The `AlgorandClient`\n */\n public static fromConfig(config: AlgoConfig) {\n return new AlgorandClient(config)\n }\n}\n\nexport default AlgorandClient\n"],"names":[],"mappings":"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"}
package/types/amount.d.ts CHANGED
@@ -2,21 +2,21 @@
2
2
  export declare class AlgoAmount {
3
3
  private amountInMicroAlgo;
4
4
  /** Return the amount as a number in µAlgo */
5
- get microAlgos(): number;
5
+ get microAlgos(): bigint;
6
6
  /** Return the amount as a number in µAlgo */
7
- get microAlgo(): number;
7
+ get microAlgo(): bigint;
8
8
  /** Return the amount as a number in Algo */
9
9
  get algos(): number;
10
10
  /** Return the amount as a number in Algo */
11
11
  get algo(): number;
12
12
  constructor(amount: {
13
- algos: number;
13
+ algos: number | bigint;
14
14
  } | {
15
- algo: number;
15
+ algo: number | bigint;
16
16
  } | {
17
- microAlgos: number;
17
+ microAlgos: number | bigint;
18
18
  } | {
19
- microAlgo: number;
19
+ microAlgo: number | bigint;
20
20
  });
21
21
  toString(): string;
22
22
  /** valueOf allows you to use `AlgoAmount` in comparison operations such as `<` and `>=` etc.,
@@ -25,12 +25,11 @@ export declare class AlgoAmount {
25
25
  */
26
26
  valueOf(): number;
27
27
  /** Create a `AlgoAmount` object representing the given number of Algo */
28
- static Algos(amount: number): AlgoAmount;
28
+ static Algos(amount: number | bigint): AlgoAmount;
29
29
  /** Create a `AlgoAmount` object representing the given number of Algo */
30
- static Algo(amount: number): AlgoAmount;
30
+ static Algo(amount: number | bigint): AlgoAmount;
31
31
  /** Create a `AlgoAmount` object representing the given number of µAlgo */
32
- static MicroAlgos(amount: number): AlgoAmount;
32
+ static MicroAlgos(amount: number | bigint): AlgoAmount;
33
33
  /** Create a `AlgoAmount` object representing the given number of µAlgo */
34
- static MicroAlgo(amount: number): AlgoAmount;
34
+ static MicroAlgo(amount: number | bigint): AlgoAmount;
35
35
  }
36
- //# sourceMappingURL=amount.d.ts.map
package/types/amount.js CHANGED
@@ -14,21 +14,21 @@ class AlgoAmount {
14
14
  }
15
15
  /** Return the amount as a number in Algo */
16
16
  get algos() {
17
- return algosdk.microalgosToAlgos(this.amountInMicroAlgo);
17
+ return algosdk.microalgosToAlgos(Number(this.amountInMicroAlgo));
18
18
  }
19
19
  /** Return the amount as a number in Algo */
20
20
  get algo() {
21
- return algosdk.microalgosToAlgos(this.amountInMicroAlgo);
21
+ return algosdk.microalgosToAlgos(Number(this.amountInMicroAlgo));
22
22
  }
23
23
  constructor(amount) {
24
24
  this.amountInMicroAlgo =
25
25
  'microAlgos' in amount
26
- ? amount.microAlgos
26
+ ? BigInt(amount.microAlgos)
27
27
  : 'microAlgo' in amount
28
- ? amount.microAlgo
28
+ ? BigInt(amount.microAlgo)
29
29
  : 'algos' in amount
30
- ? algosdk.algosToMicroalgos(amount.algos)
31
- : algosdk.algosToMicroalgos(amount.algo);
30
+ ? BigInt(algosdk.algosToMicroalgos(Number(amount.algos)))
31
+ : BigInt(algosdk.algosToMicroalgos(Number(amount.algo)));
32
32
  }
33
33
  toString() {
34
34
  return `${this.microAlgo.toLocaleString('en-US')} µALGO`;
@@ -38,7 +38,7 @@ class AlgoAmount {
38
38
  * the algos or microAlgos properties
39
39
  */
40
40
  valueOf() {
41
- return this.microAlgo;
41
+ return Number(this.microAlgo);
42
42
  }
43
43
  /** Create a `AlgoAmount` object representing the given number of Algo */
44
44
  static Algos(amount) {
@@ -1 +1 @@
1
- {"version":3,"file":"amount.js","sources":["../../src/types/amount.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAEA;MACa,UAAU,CAAA;;AAIrB,IAAA,IAAI,UAAU,GAAA;QACZ,OAAO,IAAI,CAAC,iBAAiB,CAAA;KAC9B;;AAGD,IAAA,IAAI,SAAS,GAAA;QACX,OAAO,IAAI,CAAC,iBAAiB,CAAA;KAC9B;;AAGD,IAAA,IAAI,KAAK,GAAA;QACP,OAAO,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;KACzD;;AAGD,IAAA,IAAI,IAAI,GAAA;QACN,OAAO,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;KACzD;AAED,IAAA,WAAA,CAAY,MAA6F,EAAA;AACvG,QAAA,IAAI,CAAC,iBAAiB;AACpB,YAAA,YAAY,IAAI,MAAM;kBAClB,MAAM,CAAC,UAAU;kBACjB,WAAW,IAAI,MAAM;sBACnB,MAAM,CAAC,SAAS;sBAChB,OAAO,IAAI,MAAM;0BACf,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC,KAAK,CAAC;0BACvC,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;KACjD;IAED,QAAQ,GAAA;QACN,OAAO,CAAA,EAAG,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA,MAAA,CAAQ,CAAA;KACzD;AAED;;;AAGG;IACH,OAAO,GAAA;QACL,OAAO,IAAI,CAAC,SAAS,CAAA;KACtB;;IAGD,OAAO,KAAK,CAAC,MAAc,EAAA;QACzB,OAAO,IAAI,UAAU,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;KACzC;;IAGD,OAAO,IAAI,CAAC,MAAc,EAAA;QACxB,OAAO,IAAI,UAAU,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;KACzC;;IAGD,OAAO,UAAU,CAAC,MAAc,EAAA;QAC9B,OAAO,IAAI,UAAU,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAA;KAC9C;;IAGD,OAAO,SAAS,CAAC,MAAc,EAAA;QAC7B,OAAO,IAAI,UAAU,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAA;KAC9C;AACF;;;;"}
1
+ {"version":3,"file":"amount.js","sources":["../../src/types/amount.ts"],"sourcesContent":["import algosdk from 'algosdk'\n\n/** Wrapper class to ensure safe, explicit conversion between µAlgo, Algo and numbers */\nexport class AlgoAmount {\n private amountInMicroAlgo: bigint\n\n /** Return the amount as a number in µAlgo */\n get microAlgos() {\n return this.amountInMicroAlgo\n }\n\n /** Return the amount as a number in µAlgo */\n get microAlgo() {\n return this.amountInMicroAlgo\n }\n\n /** Return the amount as a number in Algo */\n get algos() {\n return algosdk.microalgosToAlgos(Number(this.amountInMicroAlgo))\n }\n\n /** Return the amount as a number in Algo */\n get algo() {\n return algosdk.microalgosToAlgos(Number(this.amountInMicroAlgo))\n }\n\n constructor(\n amount: { algos: number | bigint } | { algo: number | bigint } | { microAlgos: number | bigint } | { microAlgo: number | bigint },\n ) {\n this.amountInMicroAlgo =\n 'microAlgos' in amount\n ? BigInt(amount.microAlgos)\n : 'microAlgo' in amount\n ? BigInt(amount.microAlgo)\n : 'algos' in amount\n ? BigInt(algosdk.algosToMicroalgos(Number(amount.algos)))\n : BigInt(algosdk.algosToMicroalgos(Number(amount.algo)))\n }\n\n toString(): string {\n return `${this.microAlgo.toLocaleString('en-US')} µALGO`\n }\n\n /** valueOf allows you to use `AlgoAmount` in comparison operations such as `<` and `>=` etc.,\n * but it's not recommended to use this to convert to a number, it's much safer to explicitly call\n * the algos or microAlgos properties\n */\n valueOf(): number {\n return Number(this.microAlgo)\n }\n\n /** Create a `AlgoAmount` object representing the given number of Algo */\n static Algos(amount: number | bigint) {\n return new AlgoAmount({ algos: amount })\n }\n\n /** Create a `AlgoAmount` object representing the given number of Algo */\n static Algo(amount: number | bigint) {\n return new AlgoAmount({ algos: amount })\n }\n\n /** Create a `AlgoAmount` object representing the given number of µAlgo */\n static MicroAlgos(amount: number | bigint) {\n return new AlgoAmount({ microAlgos: amount })\n }\n\n /** Create a `AlgoAmount` object representing the given number of µAlgo */\n static MicroAlgo(amount: number | bigint) {\n return new AlgoAmount({ microAlgos: amount })\n }\n}\n"],"names":[],"mappings":";;;;AAEA;MACa,UAAU,CAAA;;AAIrB,IAAA,IAAI,UAAU,GAAA;QACZ,OAAO,IAAI,CAAC,iBAAiB,CAAA;KAC9B;;AAGD,IAAA,IAAI,SAAS,GAAA;QACX,OAAO,IAAI,CAAC,iBAAiB,CAAA;KAC9B;;AAGD,IAAA,IAAI,KAAK,GAAA;QACP,OAAO,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAA;KACjE;;AAGD,IAAA,IAAI,IAAI,GAAA;QACN,OAAO,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAA;KACjE;AAED,IAAA,WAAA,CACE,MAAiI,EAAA;AAEjI,QAAA,IAAI,CAAC,iBAAiB;AACpB,YAAA,YAAY,IAAI,MAAM;AACpB,kBAAE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC;kBACzB,WAAW,IAAI,MAAM;AACrB,sBAAE,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;sBACxB,OAAO,IAAI,MAAM;AACjB,0BAAE,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AACzD,0BAAE,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;KACjE;IAED,QAAQ,GAAA;QACN,OAAO,CAAA,EAAG,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA,MAAA,CAAQ,CAAA;KACzD;AAED;;;AAGG;IACH,OAAO,GAAA;AACL,QAAA,OAAO,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;KAC9B;;IAGD,OAAO,KAAK,CAAC,MAAuB,EAAA;QAClC,OAAO,IAAI,UAAU,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;KACzC;;IAGD,OAAO,IAAI,CAAC,MAAuB,EAAA;QACjC,OAAO,IAAI,UAAU,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;KACzC;;IAGD,OAAO,UAAU,CAAC,MAAuB,EAAA;QACvC,OAAO,IAAI,UAAU,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAA;KAC9C;;IAGD,OAAO,SAAS,CAAC,MAAuB,EAAA;QACtC,OAAO,IAAI,UAAU,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAA;KAC9C;AACF;;;;"}
package/types/amount.mjs CHANGED
@@ -12,21 +12,21 @@ class AlgoAmount {
12
12
  }
13
13
  /** Return the amount as a number in Algo */
14
14
  get algos() {
15
- return algosdk.microalgosToAlgos(this.amountInMicroAlgo);
15
+ return algosdk.microalgosToAlgos(Number(this.amountInMicroAlgo));
16
16
  }
17
17
  /** Return the amount as a number in Algo */
18
18
  get algo() {
19
- return algosdk.microalgosToAlgos(this.amountInMicroAlgo);
19
+ return algosdk.microalgosToAlgos(Number(this.amountInMicroAlgo));
20
20
  }
21
21
  constructor(amount) {
22
22
  this.amountInMicroAlgo =
23
23
  'microAlgos' in amount
24
- ? amount.microAlgos
24
+ ? BigInt(amount.microAlgos)
25
25
  : 'microAlgo' in amount
26
- ? amount.microAlgo
26
+ ? BigInt(amount.microAlgo)
27
27
  : 'algos' in amount
28
- ? algosdk.algosToMicroalgos(amount.algos)
29
- : algosdk.algosToMicroalgos(amount.algo);
28
+ ? BigInt(algosdk.algosToMicroalgos(Number(amount.algos)))
29
+ : BigInt(algosdk.algosToMicroalgos(Number(amount.algo)));
30
30
  }
31
31
  toString() {
32
32
  return `${this.microAlgo.toLocaleString('en-US')} µALGO`;
@@ -36,7 +36,7 @@ class AlgoAmount {
36
36
  * the algos or microAlgos properties
37
37
  */
38
38
  valueOf() {
39
- return this.microAlgo;
39
+ return Number(this.microAlgo);
40
40
  }
41
41
  /** Create a `AlgoAmount` object representing the given number of Algo */
42
42
  static Algos(amount) {
@@ -1 +1 @@
1
- {"version":3,"file":"amount.mjs","sources":["../../src/types/amount.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAEA;MACa,UAAU,CAAA;;AAIrB,IAAA,IAAI,UAAU,GAAA;QACZ,OAAO,IAAI,CAAC,iBAAiB,CAAA;KAC9B;;AAGD,IAAA,IAAI,SAAS,GAAA;QACX,OAAO,IAAI,CAAC,iBAAiB,CAAA;KAC9B;;AAGD,IAAA,IAAI,KAAK,GAAA;QACP,OAAO,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;KACzD;;AAGD,IAAA,IAAI,IAAI,GAAA;QACN,OAAO,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;KACzD;AAED,IAAA,WAAA,CAAY,MAA6F,EAAA;AACvG,QAAA,IAAI,CAAC,iBAAiB;AACpB,YAAA,YAAY,IAAI,MAAM;kBAClB,MAAM,CAAC,UAAU;kBACjB,WAAW,IAAI,MAAM;sBACnB,MAAM,CAAC,SAAS;sBAChB,OAAO,IAAI,MAAM;0BACf,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC,KAAK,CAAC;0BACvC,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;KACjD;IAED,QAAQ,GAAA;QACN,OAAO,CAAA,EAAG,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA,MAAA,CAAQ,CAAA;KACzD;AAED;;;AAGG;IACH,OAAO,GAAA;QACL,OAAO,IAAI,CAAC,SAAS,CAAA;KACtB;;IAGD,OAAO,KAAK,CAAC,MAAc,EAAA;QACzB,OAAO,IAAI,UAAU,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;KACzC;;IAGD,OAAO,IAAI,CAAC,MAAc,EAAA;QACxB,OAAO,IAAI,UAAU,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;KACzC;;IAGD,OAAO,UAAU,CAAC,MAAc,EAAA;QAC9B,OAAO,IAAI,UAAU,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAA;KAC9C;;IAGD,OAAO,SAAS,CAAC,MAAc,EAAA;QAC7B,OAAO,IAAI,UAAU,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAA;KAC9C;AACF;;;;"}
1
+ {"version":3,"file":"amount.mjs","sources":["../../src/types/amount.ts"],"sourcesContent":["import algosdk from 'algosdk'\n\n/** Wrapper class to ensure safe, explicit conversion between µAlgo, Algo and numbers */\nexport class AlgoAmount {\n private amountInMicroAlgo: bigint\n\n /** Return the amount as a number in µAlgo */\n get microAlgos() {\n return this.amountInMicroAlgo\n }\n\n /** Return the amount as a number in µAlgo */\n get microAlgo() {\n return this.amountInMicroAlgo\n }\n\n /** Return the amount as a number in Algo */\n get algos() {\n return algosdk.microalgosToAlgos(Number(this.amountInMicroAlgo))\n }\n\n /** Return the amount as a number in Algo */\n get algo() {\n return algosdk.microalgosToAlgos(Number(this.amountInMicroAlgo))\n }\n\n constructor(\n amount: { algos: number | bigint } | { algo: number | bigint } | { microAlgos: number | bigint } | { microAlgo: number | bigint },\n ) {\n this.amountInMicroAlgo =\n 'microAlgos' in amount\n ? BigInt(amount.microAlgos)\n : 'microAlgo' in amount\n ? BigInt(amount.microAlgo)\n : 'algos' in amount\n ? BigInt(algosdk.algosToMicroalgos(Number(amount.algos)))\n : BigInt(algosdk.algosToMicroalgos(Number(amount.algo)))\n }\n\n toString(): string {\n return `${this.microAlgo.toLocaleString('en-US')} µALGO`\n }\n\n /** valueOf allows you to use `AlgoAmount` in comparison operations such as `<` and `>=` etc.,\n * but it's not recommended to use this to convert to a number, it's much safer to explicitly call\n * the algos or microAlgos properties\n */\n valueOf(): number {\n return Number(this.microAlgo)\n }\n\n /** Create a `AlgoAmount` object representing the given number of Algo */\n static Algos(amount: number | bigint) {\n return new AlgoAmount({ algos: amount })\n }\n\n /** Create a `AlgoAmount` object representing the given number of Algo */\n static Algo(amount: number | bigint) {\n return new AlgoAmount({ algos: amount })\n }\n\n /** Create a `AlgoAmount` object representing the given number of µAlgo */\n static MicroAlgos(amount: number | bigint) {\n return new AlgoAmount({ microAlgos: amount })\n }\n\n /** Create a `AlgoAmount` object representing the given number of µAlgo */\n static MicroAlgo(amount: number | bigint) {\n return new AlgoAmount({ microAlgos: amount })\n }\n}\n"],"names":[],"mappings":";;AAEA;MACa,UAAU,CAAA;;AAIrB,IAAA,IAAI,UAAU,GAAA;QACZ,OAAO,IAAI,CAAC,iBAAiB,CAAA;KAC9B;;AAGD,IAAA,IAAI,SAAS,GAAA;QACX,OAAO,IAAI,CAAC,iBAAiB,CAAA;KAC9B;;AAGD,IAAA,IAAI,KAAK,GAAA;QACP,OAAO,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAA;KACjE;;AAGD,IAAA,IAAI,IAAI,GAAA;QACN,OAAO,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAA;KACjE;AAED,IAAA,WAAA,CACE,MAAiI,EAAA;AAEjI,QAAA,IAAI,CAAC,iBAAiB;AACpB,YAAA,YAAY,IAAI,MAAM;AACpB,kBAAE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC;kBACzB,WAAW,IAAI,MAAM;AACrB,sBAAE,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;sBACxB,OAAO,IAAI,MAAM;AACjB,0BAAE,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AACzD,0BAAE,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;KACjE;IAED,QAAQ,GAAA;QACN,OAAO,CAAA,EAAG,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA,MAAA,CAAQ,CAAA;KACzD;AAED;;;AAGG;IACH,OAAO,GAAA;AACL,QAAA,OAAO,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;KAC9B;;IAGD,OAAO,KAAK,CAAC,MAAuB,EAAA;QAClC,OAAO,IAAI,UAAU,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;KACzC;;IAGD,OAAO,IAAI,CAAC,MAAuB,EAAA;QACjC,OAAO,IAAI,UAAU,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;KACzC;;IAGD,OAAO,UAAU,CAAC,MAAuB,EAAA;QACvC,OAAO,IAAI,UAAU,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAA;KAC9C;;IAGD,OAAO,SAAS,CAAC,MAAuB,EAAA;QACtC,OAAO,IAAI,UAAU,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAA;KAC9C;AACF;;;;"}