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

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 (117) 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/kmd-account-manager.d.ts +70 -0
  109. package/types/kmd-account-manager.d.ts.map +1 -0
  110. package/types/kmd-account-manager.js +144 -0
  111. package/types/kmd-account-manager.js.map +1 -0
  112. package/types/kmd-account-manager.mjs +142 -0
  113. package/types/kmd-account-manager.mjs.map +1 -0
  114. package/types/network-client.d.ts +2 -2
  115. package/types/network-client.d.ts.map +1 -1
  116. package/types/testing.d.ts +9 -6
  117. package/types/testing.d.ts.map +1 -1
@@ -1,90 +1,54 @@
1
- import algosdk from 'algosdk';
2
- import { AlgoHttpClientWithRetry } from './types/algo-http-client-with-retry.mjs';
1
+ import { ClientManager } from './types/client-manager.mjs';
3
2
 
4
- var Indexer = algosdk.Indexer;
5
- var Kmd = algosdk.Kmd;
6
- var IntDecoding = algosdk.IntDecoding;
7
- /** Retrieve configurations from environment variables when defined or get defaults (expects to be called from a Node.js environment not algod-side) */
3
+ /**
4
+ * @deprecated Use `ClientManager.getConfigFromEnvironmentOrLocalNet()` instead.
5
+ *
6
+ * Retrieve configurations from environment variables when defined or get defaults (expects to be called from a Node.js environment not algod-side)
7
+ */
8
8
  function getConfigFromEnvOrDefaults() {
9
- if (!process || !process.env) {
10
- throw new Error('Attempt to get default algod configuration from a non Node.js context; supply the config instead');
11
- }
12
- const algodConfig = !process.env.ALGOD_SERVER
13
- ? getDefaultLocalNetConfig('algod')
14
- : { server: process.env.ALGOD_SERVER, port: process.env.ALGOD_PORT, token: process.env.ALGOD_TOKEN };
15
- const indexerConfig = !process.env.INDEXER_SERVER
16
- ? getDefaultLocalNetConfig('indexer')
17
- : {
18
- server: process.env.INDEXER_SERVER,
19
- port: process.env.INDEXER_PORT,
20
- token: process.env.INDEXER_TOKEN,
21
- };
22
- return {
23
- algodConfig,
24
- indexerConfig,
25
- kmdConfig: process && process.env && process.env.ALGOD_SERVER
26
- ? { ...algodConfig, port: process?.env?.KMD_PORT ?? '4002' }
27
- : getDefaultLocalNetConfig('kmd'),
28
- };
9
+ return ClientManager.getConfigFromEnvironmentOrLocalNet();
29
10
  }
30
- /** Retrieve the algod configuration from environment variables (expects to be called from a Node.js environment not algod-side) */
11
+ /**
12
+ * @deprecated Use `ClientManager.getAlgodConfigFromEnvironment()` instead.
13
+ *
14
+ * Retrieve the algod configuration from environment variables (expects to be called from a Node.js environment not algod-side)
15
+ */
31
16
  function getAlgodConfigFromEnvironment() {
32
- if (!process || !process.env) {
33
- throw new Error('Attempt to get default algod configuration from a non Node.js context; supply the config instead');
34
- }
35
- if (!process.env.ALGOD_SERVER) {
36
- throw new Error('Attempt to get default algod configuration without specifying ALGOD_SERVER in the environment variables');
37
- }
38
- return {
39
- server: process.env.ALGOD_SERVER,
40
- port: process.env.ALGOD_PORT,
41
- token: process.env.ALGOD_TOKEN,
42
- };
17
+ return ClientManager.getAlgodConfigFromEnvironment();
43
18
  }
44
- /** Retrieve the indexer configuration from environment variables (expects to be called from a Node.js environment not algod-side) */
19
+ /**
20
+ * @deprecated Use `ClientManager.getIndexerConfigFromEnvironment()` instead.
21
+ *
22
+ * Retrieve the indexer configuration from environment variables (expects to be called from a Node.js environment not algod-side)
23
+ */
45
24
  function getIndexerConfigFromEnvironment() {
46
- if (!process || !process.env) {
47
- throw new Error('Attempt to get default indexer configuration from a non Node.js context; supply the config instead');
48
- }
49
- if (!process.env.INDEXER_SERVER) {
50
- throw new Error('Attempt to get default indexer configuration without specifying INDEXER_SERVER in the environment variables');
51
- }
52
- return {
53
- server: process.env.INDEXER_SERVER,
54
- port: process.env.INDEXER_PORT,
55
- token: process.env.INDEXER_TOKEN,
56
- };
25
+ return ClientManager.getIndexerConfigFromEnvironment();
57
26
  }
58
- /** Returns the Algorand configuration to point to the AlgoNode service
27
+ /**
28
+ * @deprecated Use `ClientManager.getAlgoNodeConfig(network, config)` instead.
29
+ *
30
+ * Returns the Algorand configuration to point to the AlgoNode service
59
31
  *
60
32
  * @param network Which network to connect to - TestNet or MainNet
61
33
  * @param config Which algod config to return - Algod or Indexer
62
34
  */
63
35
  function getAlgoNodeConfig(network, config) {
64
- return {
65
- server: `https://${network}-${config === 'algod' ? 'api' : 'idx'}.algonode.cloud/`,
66
- port: 443,
67
- };
36
+ return ClientManager.getAlgoNodeConfig(network, config);
68
37
  }
69
- /** Returns the Algorand configuration to point to the default LocalNet
38
+ /**
39
+ * @deprecated Use `ClientManager.getDefaultLocalNetConfig(configOrPort)` instead.
40
+ *
41
+ * Returns the Algorand configuration to point to the default LocalNet
70
42
  *
71
43
  * @param configOrPort Which algod config to return - algod, kmd, or indexer OR a port number
72
44
  */
73
45
  function getDefaultLocalNetConfig(configOrPort) {
74
- return {
75
- server: `http://localhost`,
76
- port: configOrPort === 'algod' ? 4001 : configOrPort === 'indexer' ? 8980 : configOrPort === 'kmd' ? 4002 : configOrPort,
77
- token: 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa',
78
- };
46
+ return ClientManager.getDefaultLocalNetConfig(configOrPort);
79
47
  }
80
- function getAlgoTokenHeader(server, token, defaultHeader) {
81
- // Purestake uses a slightly different API key header than the default
82
- if (server.includes('purestake.io') && typeof token === 'string')
83
- return { 'X-API-Key': token };
84
- // Because we override the default HTTP Client construction (to get retries) we need to put a string token into the standard header ourselves
85
- return typeof token === 'string' ? { [defaultHeader ?? 'X-Algo-API-Token']: token } : token ?? {};
86
- }
87
- /** Returns an algod SDK client that automatically retries on idempotent calls
48
+ /**
49
+ * @deprecated Use `ClientManager.getAlgodClient(config)` or `ClientManager.getAlgodClientFromEnvironment()` instead.
50
+ *
51
+ * Returns an algod SDK client that automatically retries transient failures on idempotent calls
88
52
  *
89
53
  * @param config The config if you want to override the default (getting config from process.env)
90
54
  * @example Default (load from environment variables)
@@ -112,11 +76,12 @@ function getAlgoTokenHeader(server, token, defaultHeader) {
112
76
  * ```
113
77
  */
114
78
  function getAlgoClient(config) {
115
- const { token, server, port } = config ?? getAlgodConfigFromEnvironment();
116
- const httpClientWithRetry = new AlgoHttpClientWithRetry(getAlgoTokenHeader(server, token), server, port);
117
- return new algosdk.Algodv2(httpClientWithRetry, server);
79
+ return config ? ClientManager.getAlgodClient(config) : ClientManager.getAlgodClientFromEnvironment();
118
80
  }
119
- /** Returns an indexer SDK client that automatically retries on idempotent calls
81
+ /**
82
+ * @deprecated Use `ClientManager.getIndexerClient(config, overrideIntDecoding)` or `ClientManager.getIndexerClientFromEnvironment(overrideIntDecoding)` instead.
83
+ *
84
+ * Returns an indexer SDK client that automatically retries transient failures on idempotent calls
120
85
  *
121
86
  * @param config The config if you want to override the default (getting config from process.env)
122
87
  * @param overrideIntDecoding Override the default int decoding for responses, uses MIXED by default to avoid lost precision for big integers
@@ -148,15 +113,14 @@ function getAlgoClient(config) {
148
113
  * ```
149
114
  */
150
115
  function getAlgoIndexerClient(config, overrideIntDecoding) {
151
- const { token, server, port } = config ?? getIndexerConfigFromEnvironment();
152
- const httpClientWithRetry = new AlgoHttpClientWithRetry(getAlgoTokenHeader(server, token, 'X-Indexer-API-Token'), server, port);
153
- const indexer = new Indexer(httpClientWithRetry);
154
- // Use mixed int decoding by default so bigints don't have lost precision
155
- indexer.setIntEncoding(overrideIntDecoding ?? IntDecoding.MIXED);
156
- return indexer;
116
+ return config
117
+ ? ClientManager.getIndexerClient(config, overrideIntDecoding)
118
+ : ClientManager.getIndexerClientFromEnvironment(overrideIntDecoding);
157
119
  }
158
120
  /**
159
- * Returns a KMD SDK client that automatically retries on idempotent calls
121
+ * @deprecated Use `ClientManager.getKmdClient(config)` or `ClientManager.getKmdClientFromEnvironment()` instead.
122
+ *
123
+ * Returns a KMD SDK client that automatically retries transient failures on idempotent calls.
160
124
  *
161
125
  * KMD client allows you to export private keys, which is useful to get the default account in a LocalNet network.
162
126
  *
@@ -173,18 +137,15 @@ function getAlgoIndexerClient(config, overrideIntDecoding) {
173
137
  * ```
174
138
  */
175
139
  function getAlgoKmdClient(config) {
176
- const { token, server } = config ?? getAlgodConfigFromEnvironment();
177
- // We can only use Kmd on the LocalNet otherwise it's not exposed so this makes some assumptions
178
- // (e.g. same token and server as algod and port 4002 by default)
179
- return new Kmd(token, server, process?.env?.KMD_PORT ?? '4002');
140
+ return config ? ClientManager.getKmdClient(config) : ClientManager.getKmdClientFromEnvironment();
180
141
  }
142
+ /** @deprecated Use `await algorandClient.client.isTestNet()` or `await new ClientManager({ algod }).isTestNet()` instead. */
181
143
  async function isTestNet(algod) {
182
- const params = await algod.getTransactionParams().do();
183
- return ['testnet-v1.0', 'testnet-v1', 'testnet'].includes(params.genesisID);
144
+ return await new ClientManager({ algod }).isTestNet();
184
145
  }
146
+ /** @deprecated Use `await algorandClient.client.isMainNet()` or `await new ClientManager({ algod }).isMainNet()` instead. */
185
147
  async function isMainNet(algod) {
186
- const params = await algod.getTransactionParams().do();
187
- return ['mainnet-v1.0', 'mainnet-v1', 'mainnet'].includes(params.genesisID);
148
+ return await new ClientManager({ algod }).isMainNet();
188
149
  }
189
150
 
190
151
  export { getAlgoClient, getAlgoIndexerClient, getAlgoKmdClient, getAlgoNodeConfig, getAlgodConfigFromEnvironment, getConfigFromEnvOrDefaults, getDefaultLocalNetConfig, getIndexerConfigFromEnvironment, isMainNet, isTestNet };
@@ -1 +1 @@
1
- {"version":3,"file":"network-client.mjs","sources":["../src/network-client.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"network-client.mjs","sources":["../src/network-client.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAQA;;;;AAIG;SACa,0BAA0B,GAAA;AACxC,IAAA,OAAO,aAAa,CAAC,kCAAkC,EAAE,CAAA;AAC3D,CAAC;AAED;;;;AAIG;SACa,6BAA6B,GAAA;AAC3C,IAAA,OAAO,aAAa,CAAC,6BAA6B,EAAE,CAAA;AACtD,CAAC;AAED;;;;AAIG;SACa,+BAA+B,GAAA;AAC7C,IAAA,OAAO,aAAa,CAAC,+BAA+B,EAAE,CAAA;AACxD,CAAC;AAED;;;;;;;AAOG;AACa,SAAA,iBAAiB,CAAC,OAA8B,EAAE,MAA2B,EAAA;IAC3F,OAAO,aAAa,CAAC,iBAAiB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;AACzD,CAAC;AAED;;;;;;AAMG;AACG,SAAU,wBAAwB,CAAC,YAAkD,EAAA;AACzF,IAAA,OAAO,aAAa,CAAC,wBAAwB,CAAC,YAAY,CAAC,CAAA;AAC7D,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BG;AACG,SAAU,aAAa,CAAC,MAAyB,EAAA;AACrD,IAAA,OAAO,MAAM,GAAG,aAAa,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG,aAAa,CAAC,6BAA6B,EAAE,CAAA;AACtG,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiCG;AACa,SAAA,oBAAoB,CAAC,MAAyB,EAAE,mBAAiC,EAAA;AAC/F,IAAA,OAAO,MAAM;UACT,aAAa,CAAC,gBAAgB,CAAC,MAAM,EAAE,mBAAmB,CAAC;AAC7D,UAAE,aAAa,CAAC,+BAA+B,CAAC,mBAAmB,CAAC,CAAA;AACxE,CAAC;AAED;;;;;;;;;;;;;;;;;;AAkBG;AACG,SAAU,gBAAgB,CAAC,MAAyB,EAAA;AACxD,IAAA,OAAO,MAAM,GAAG,aAAa,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,aAAa,CAAC,2BAA2B,EAAE,CAAA;AAClG,CAAC;AAED;AACO,eAAe,SAAS,CAAC,KAAc,EAAA;IAC5C,OAAO,MAAM,IAAI,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,SAAS,EAAE,CAAA;AACvD,CAAC;AAED;AACO,eAAe,SAAS,CAAC,KAAc,EAAA;IAC5C,OAAO,MAAM,IAAI,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,SAAS,EAAE,CAAA;AACvD;;;;"}
package/package.json CHANGED
@@ -6,7 +6,7 @@
6
6
  "**"
7
7
  ],
8
8
  "name": "@algorandfoundation/algokit-utils",
9
- "version": "6.1.0-beta.1",
9
+ "version": "6.1.0-beta.2",
10
10
  "private": false,
11
11
  "description": "A set of core Algorand utilities written in TypeScript and released via npm that make it easier to build solutions on Algorand.",
12
12
  "author": "Algorand Foundation",
@@ -37,7 +37,8 @@
37
37
  },
38
38
  "overrides": {
39
39
  "semver": "7.5.2",
40
- "eslint-plugin-prettier": "5.0.0"
40
+ "eslint-plugin-prettier": "5.0.0",
41
+ "braces": "3.0.3"
41
42
  },
42
43
  "dependencies": {
43
44
  "buffer": "^6.0.3"
@@ -1,17 +1,15 @@
1
1
  import algosdk from 'algosdk';
2
+ import { AlgorandClient } from '../';
2
3
  import { GetTestAccountParams } from '../types/testing';
3
4
  import Account = algosdk.Account;
4
- import Algodv2 = algosdk.Algodv2;
5
- import Kmd = algosdk.Kmd;
6
5
  /**
7
6
  * Creates an ephemeral Algorand account for the purposes of testing.
8
7
  * Returns a newly created random test account that is funded from the dispenser
9
8
  * DO NOT USE THIS TO CREATE A MAINNET ACCOUNT!
10
9
  * Note: By default this will log the mnemonic of the account.
11
10
  * @param param0 The config for the test account to generate
12
- * @param algod An algod client
13
- * @param kmd A KMD client, if not specified then a default KMD client will be loaded from environment variables
11
+ * @param algorand An AlgorandClient client
14
12
  * @returns The account, with private key loaded
15
13
  */
16
- export declare function getTestAccount({ suppressLog, initialFunds, accountGetter }: GetTestAccountParams, algod: Algodv2, kmd?: Kmd): Promise<Account>;
14
+ export declare function getTestAccount({ suppressLog, initialFunds, accountGetter }: GetTestAccountParams, algorand: AlgorandClient): Promise<Account>;
17
15
  //# sourceMappingURL=account.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"account.d.ts","sourceRoot":"","sources":["../../src/testing/account.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAA;AAG7B,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AACvD,OAAO,OAAO,GAAG,OAAO,CAAC,OAAO,CAAA;AAChC,OAAO,OAAO,GAAG,OAAO,CAAC,OAAO,CAAA;AAChC,OAAO,GAAG,GAAG,OAAO,CAAC,GAAG,CAAA;AAExB;;;;;;;;;GASG;AACH,wBAAsB,cAAc,CAClC,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,EAAE,oBAAoB,EAClE,KAAK,EAAE,OAAO,EACd,GAAG,CAAC,EAAE,GAAG,GACR,OAAO,CAAC,OAAO,CAAC,CAgBlB"}
1
+ {"version":3,"file":"account.d.ts","sourceRoot":"","sources":["../../src/testing/account.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAA;AAC7B,OAAO,EAAE,cAAc,EAAU,MAAM,KAAK,CAAA;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AACvD,OAAO,OAAO,GAAG,OAAO,CAAC,OAAO,CAAA;AAEhC;;;;;;;;GAQG;AACH,wBAAsB,cAAc,CAClC,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,EAAE,oBAAoB,EAClE,QAAQ,EAAE,cAAc,GACvB,OAAO,CAAC,OAAO,CAAC,CAmBlB"}
@@ -1,9 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var algosdk = require('algosdk');
4
- var transferAlgos = require('../transfer/transfer-algos.js');
5
4
  var config = require('../config.js');
6
- var getDispenserAccount = require('../account/get-dispenser-account.js');
7
5
 
8
6
  /**
9
7
  * Creates an ephemeral Algorand account for the purposes of testing.
@@ -11,16 +9,15 @@ var getDispenserAccount = require('../account/get-dispenser-account.js');
11
9
  * DO NOT USE THIS TO CREATE A MAINNET ACCOUNT!
12
10
  * Note: By default this will log the mnemonic of the account.
13
11
  * @param param0 The config for the test account to generate
14
- * @param algod An algod client
15
- * @param kmd A KMD client, if not specified then a default KMD client will be loaded from environment variables
12
+ * @param algorand An AlgorandClient client
16
13
  * @returns The account, with private key loaded
17
14
  */
18
- async function getTestAccount({ suppressLog, initialFunds, accountGetter }, algod, kmd) {
19
- const account = accountGetter ? await accountGetter(algod, kmd) : algosdk.generateAccount();
15
+ async function getTestAccount({ suppressLog, initialFunds, accountGetter }, algorand) {
16
+ const account = accountGetter ? await accountGetter(algorand) : algosdk.generateAccount();
20
17
  config.Config.getLogger(suppressLog).info(`New test account created with address '${account.addr}' and mnemonic '${algosdk.secretKeyToMnemonic(account.sk)}'.`);
21
- const dispenser = await getDispenserAccount.getDispenserAccount(algod, kmd);
22
- await transferAlgos.transferAlgos({ from: dispenser, to: account.addr, amount: initialFunds, note: 'Funding test account', suppressLog }, algod);
23
- const accountInfo = await algod.accountInformation(account.addr).do();
18
+ const dispenser = await algorand.account.dispenserFromEnvironment();
19
+ await algorand.send.payment({ sender: dispenser.addr, receiver: account.addr, amount: initialFunds, note: 'Funding test account' }, { suppressLog });
20
+ const accountInfo = await algorand.account.getInformation(account.addr);
24
21
  config.Config.getLogger(suppressLog).info('Test account funded; account balance: %d µAlgos', accountInfo.amount);
25
22
  return account;
26
23
  }
@@ -1 +1 @@
1
- {"version":3,"file":"account.js","sources":["../../src/testing/account.ts"],"sourcesContent":[null],"names":["Config","getDispenserAccount","transferAlgos"],"mappings":";;;;;;;AAQA;;;;;;;;;AASG;AACI,eAAe,cAAc,CAClC,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,EAAwB,EAClE,KAAc,EACd,GAAS,EAAA;IAET,MAAM,OAAO,GAAG,aAAa,GAAG,MAAM,aAAa,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,eAAe,EAAE,CAAA;IAE3FA,aAAM,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,IAAI,CAChC,CAAA,uCAAA,EAA0C,OAAO,CAAC,IAAI,CAAmB,gBAAA,EAAA,OAAO,CAAC,mBAAmB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAI,EAAA,CAAA,CACrH,CAAA;IAED,MAAM,SAAS,GAAG,MAAMC,uCAAmB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;IAEvD,MAAMC,2BAAa,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,sBAAsB,EAAE,WAAW,EAAE,EAAE,KAAK,CAAC,CAAA;AAElI,IAAA,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAA;AAErE,IAAAF,aAAM,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,iDAAiD,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;AAEzG,IAAA,OAAO,OAAO,CAAA;AAChB;;;;"}
1
+ {"version":3,"file":"account.js","sources":["../../src/testing/account.ts"],"sourcesContent":[null],"names":["Config"],"mappings":";;;;;AAKA;;;;;;;;AAQG;AACI,eAAe,cAAc,CAClC,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,EAAwB,EAClE,QAAwB,EAAA;AAExB,IAAA,MAAM,OAAO,GAAG,aAAa,GAAG,MAAM,aAAa,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,eAAe,EAAE,CAAA;IAEzFA,aAAM,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,IAAI,CAChC,CAAA,uCAAA,EAA0C,OAAO,CAAC,IAAI,CAAmB,gBAAA,EAAA,OAAO,CAAC,mBAAmB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAI,EAAA,CAAA,CACrH,CAAA;IAED,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,wBAAwB,EAAE,CAAA;AAEnE,IAAA,MAAM,QAAQ,CAAC,IAAI,CAAC,OAAO,CACzB,EAAE,MAAM,EAAE,SAAS,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,sBAAsB,EAAE,EACtG,EAAE,WAAW,EAAE,CAChB,CAAA;AAED,IAAA,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;AAEvE,IAAAA,aAAM,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,iDAAiD,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;AAEzG,IAAA,OAAO,OAAO,CAAA;AAChB;;;;"}
@@ -1,7 +1,5 @@
1
1
  import algosdk from 'algosdk';
2
- import { transferAlgos } from '../transfer/transfer-algos.mjs';
3
2
  import { Config } from '../config.mjs';
4
- import { getDispenserAccount } from '../account/get-dispenser-account.mjs';
5
3
 
6
4
  /**
7
5
  * Creates an ephemeral Algorand account for the purposes of testing.
@@ -9,16 +7,15 @@ import { getDispenserAccount } from '../account/get-dispenser-account.mjs';
9
7
  * DO NOT USE THIS TO CREATE A MAINNET ACCOUNT!
10
8
  * Note: By default this will log the mnemonic of the account.
11
9
  * @param param0 The config for the test account to generate
12
- * @param algod An algod client
13
- * @param kmd A KMD client, if not specified then a default KMD client will be loaded from environment variables
10
+ * @param algorand An AlgorandClient client
14
11
  * @returns The account, with private key loaded
15
12
  */
16
- async function getTestAccount({ suppressLog, initialFunds, accountGetter }, algod, kmd) {
17
- const account = accountGetter ? await accountGetter(algod, kmd) : algosdk.generateAccount();
13
+ async function getTestAccount({ suppressLog, initialFunds, accountGetter }, algorand) {
14
+ const account = accountGetter ? await accountGetter(algorand) : algosdk.generateAccount();
18
15
  Config.getLogger(suppressLog).info(`New test account created with address '${account.addr}' and mnemonic '${algosdk.secretKeyToMnemonic(account.sk)}'.`);
19
- const dispenser = await getDispenserAccount(algod, kmd);
20
- await transferAlgos({ from: dispenser, to: account.addr, amount: initialFunds, note: 'Funding test account', suppressLog }, algod);
21
- const accountInfo = await algod.accountInformation(account.addr).do();
16
+ const dispenser = await algorand.account.dispenserFromEnvironment();
17
+ await algorand.send.payment({ sender: dispenser.addr, receiver: account.addr, amount: initialFunds, note: 'Funding test account' }, { suppressLog });
18
+ const accountInfo = await algorand.account.getInformation(account.addr);
22
19
  Config.getLogger(suppressLog).info('Test account funded; account balance: %d µAlgos', accountInfo.amount);
23
20
  return account;
24
21
  }
@@ -1 +1 @@
1
- {"version":3,"file":"account.mjs","sources":["../../src/testing/account.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;AAQA;;;;;;;;;AASG;AACI,eAAe,cAAc,CAClC,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,EAAwB,EAClE,KAAc,EACd,GAAS,EAAA;IAET,MAAM,OAAO,GAAG,aAAa,GAAG,MAAM,aAAa,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,eAAe,EAAE,CAAA;IAE3F,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,IAAI,CAChC,CAAA,uCAAA,EAA0C,OAAO,CAAC,IAAI,CAAmB,gBAAA,EAAA,OAAO,CAAC,mBAAmB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAI,EAAA,CAAA,CACrH,CAAA;IAED,MAAM,SAAS,GAAG,MAAM,mBAAmB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;IAEvD,MAAM,aAAa,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,sBAAsB,EAAE,WAAW,EAAE,EAAE,KAAK,CAAC,CAAA;AAElI,IAAA,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAA;AAErE,IAAA,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,iDAAiD,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;AAEzG,IAAA,OAAO,OAAO,CAAA;AAChB;;;;"}
1
+ {"version":3,"file":"account.mjs","sources":["../../src/testing/account.ts"],"sourcesContent":[null],"names":[],"mappings":";;;AAKA;;;;;;;;AAQG;AACI,eAAe,cAAc,CAClC,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,EAAwB,EAClE,QAAwB,EAAA;AAExB,IAAA,MAAM,OAAO,GAAG,aAAa,GAAG,MAAM,aAAa,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,eAAe,EAAE,CAAA;IAEzF,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,IAAI,CAChC,CAAA,uCAAA,EAA0C,OAAO,CAAC,IAAI,CAAmB,gBAAA,EAAA,OAAO,CAAC,mBAAmB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAI,EAAA,CAAA,CACrH,CAAA;IAED,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,wBAAwB,EAAE,CAAA;AAEnE,IAAA,MAAM,QAAQ,CAAC,IAAI,CAAC,OAAO,CACzB,EAAE,MAAM,EAAE,SAAS,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,sBAAsB,EAAE,EACtG,EAAE,WAAW,EAAE,CAChB,CAAA;AAED,IAAA,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;AAEvE,IAAA,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,iDAAiD,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;AAEzG,IAAA,OAAO,OAAO,CAAA;AAChB;;;;"}
@@ -5,9 +5,10 @@ import { AlgorandFixture, AlgorandFixtureConfig } from '../../types/testing';
5
5
  * By default it tests against an environment variable specified client
6
6
  * if the standard environment variables are specified, otherwise against
7
7
  * a default LocalNet instance, but you can pass in an algod, indexer
8
- * and/or kmd if you want to test against an explicitly defined network.
8
+ * and/or kmd (or their respective config) if you want to test against
9
+ * an explicitly defined network.
9
10
  *
10
- * @example
11
+ * @example No config
11
12
  * ```typescript
12
13
  * const algorand = algorandFixture()
13
14
  *
@@ -19,11 +20,28 @@ import { AlgorandFixture, AlgorandFixtureConfig } from '../../types/testing';
19
20
  * })
20
21
  * ```
21
22
  *
23
+ * @example With config
24
+ * ```typescript
25
+ * const algorand = algorandFixture({
26
+ * algod: new Algodv2('localhost', 12345, 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'),
27
+ * // ...
28
+ * })
29
+ *
30
+ * beforeEach(algorand.beforeEach, 10_000)
31
+ *
32
+ * test('My test', async () => {
33
+ * const {algod, indexer, testAccount, ...} = algorand.context
34
+ * // test things...
35
+ * })
36
+ * ```
37
+ *
22
38
  * @param fixtureConfig The fixture configuration
23
39
  * @returns The fixture
24
40
  */
25
41
  export declare function algorandFixture(fixtureConfig?: AlgorandFixtureConfig): AlgorandFixture;
26
42
  /**
43
+ * @deprecated Config can be passed in directly to fixture config now.
44
+ *
27
45
  * Creates a test fixture for automated testing against Algorand.
28
46
  * By default it tests against an environment variable specified client
29
47
  * if the standard environment variables are specified, otherwise against
@@ -1 +1 @@
1
- {"version":3,"file":"algorand-fixture.d.ts","sourceRoot":"","sources":["../../../src/testing/fixtures/algorand-fixture.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AACvD,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAuD,MAAM,qBAAqB,CAAA;AAKjI;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,eAAe,CAAC,aAAa,CAAC,EAAE,qBAAqB,GAAG,eAAe,CAAA;AAEvF;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,eAAe,CAAC,aAAa,EAAE,qBAAqB,GAAG,SAAS,EAAE,MAAM,EAAE,UAAU,GAAG,eAAe,CAAA"}
1
+ {"version":3,"file":"algorand-fixture.d.ts","sourceRoot":"","sources":["../../../src/testing/fixtures/algorand-fixture.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AACvD,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAuD,MAAM,qBAAqB,CAAA;AAKjI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,wBAAgB,eAAe,CAAC,aAAa,CAAC,EAAE,qBAAqB,GAAG,eAAe,CAAA;AAEvF;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,eAAe,CAAC,aAAa,EAAE,qBAAqB,GAAG,SAAS,EAAE,MAAM,EAAE,UAAU,GAAG,eAAe,CAAA"}
@@ -1,59 +1,40 @@
1
1
  'use strict';
2
2
 
3
3
  var types_algorandClient = require('../../types/algorand-client.js');
4
+ var types_clientManager = require('../../types/client-manager.js');
4
5
  var account = require('../account.js');
5
6
  var indexer = require('../indexer.js');
6
7
  var transactionLogger = require('../transaction-logger.js');
7
- var networkClient = require('../../network-client.js');
8
8
  var amount = require('../../amount.js');
9
9
  var indexerLookup = require('../../indexer-lookup.js');
10
10
  var config = require('../../config.js');
11
11
 
12
- /**
13
- * Creates a test fixture for automated testing against Algorand.
14
- * By default it tests against an environment variable specified client
15
- * if the standard environment variables are specified, otherwise against
16
- * a default LocalNet instance, but you can pass in an algod, indexer
17
- * and/or kmd if you want to test against an explicitly defined network.
18
- *
19
- * @example
20
- * ```typescript
21
- * const algorand = algorandFixture(undefined, getConfigFromEnvOrDefaults())
22
- *
23
- * beforeEach(algorand.beforeEach, 10_000)
24
- *
25
- * test('My test', async () => {
26
- * const {algod, indexer, testAccount, ...} = algorand.context
27
- * // test things...
28
- * })
29
- * ```
30
- *
31
- * @param fixtureConfig The fixture configuration
32
- * @param config The algo configuration
33
- * @returns The fixture
34
- */
35
12
  function algorandFixture(fixtureConfig, config$1) {
36
- config$1 = config$1 || networkClient.getConfigFromEnvOrDefaults();
37
- const algod = fixtureConfig?.algod ?? networkClient.getAlgoClient(config$1.algodConfig);
38
- const indexer$1 = fixtureConfig?.indexer ?? networkClient.getAlgoIndexerClient(config$1.indexerConfig);
39
- const kmd = fixtureConfig?.kmd ?? networkClient.getAlgoKmdClient(config$1.kmdConfig);
13
+ fixtureConfig = { ...fixtureConfig, ...config$1 };
14
+ if (!fixtureConfig.algod || !fixtureConfig.indexer || !fixtureConfig.kmd) {
15
+ fixtureConfig = { ...types_clientManager.ClientManager.getConfigFromEnvironmentOrLocalNet(), ...fixtureConfig };
16
+ }
17
+ const algod = fixtureConfig.algod ?? types_clientManager.ClientManager.getAlgodClient(fixtureConfig.algodConfig);
18
+ const indexer$1 = fixtureConfig.indexer ?? types_clientManager.ClientManager.getIndexerClient(fixtureConfig.indexerConfig);
19
+ const kmd = fixtureConfig.kmd ?? types_clientManager.ClientManager.getKmdClient(fixtureConfig.kmdConfig);
40
20
  let context;
41
21
  let algorandClient;
42
22
  const beforeEach = async () => {
43
23
  config.Config.configure({ debug: true });
44
24
  const transactionLogger$1 = new transactionLogger.TransactionLogger();
45
25
  const transactionLoggerAlgod = transactionLogger$1.capture(algod);
46
- const acc = await account.getTestAccount({ initialFunds: fixtureConfig?.testAccountFunding ?? amount.algos(10), suppressLog: true }, transactionLoggerAlgod, kmd);
47
26
  algorandClient = algorandClient ?? types_algorandClient.AlgorandClient.fromClients({ algod: transactionLoggerAlgod, indexer: indexer$1, kmd });
27
+ const acc = await account.getTestAccount({ initialFunds: fixtureConfig?.testAccountFunding ?? amount.algos(10), suppressLog: true }, algorandClient);
48
28
  algorandClient.setSignerFromAccount(acc).setDefaultValidityWindow(1000).setSuggestedParamsTimeout(0);
49
29
  const testAccount = { ...acc, signer: algorandClient.account.getSigner(acc.addr) };
50
30
  context = {
31
+ algorand: algorandClient,
51
32
  algod: transactionLoggerAlgod,
52
33
  indexer: indexer$1,
53
34
  kmd: kmd,
54
35
  testAccount,
55
36
  generateAccount: async (params) => {
56
- const account$1 = await account.getTestAccount(params, transactionLoggerAlgod, kmd);
37
+ const account$1 = await account.getTestAccount(params, algorandClient);
57
38
  algorandClient.setSignerFromAccount(account$1);
58
39
  return { ...account$1, signer: algorandClient.account.getSigner(account$1.addr) };
59
40
  },
@@ -1 +1 @@
1
- {"version":3,"file":"algorand-fixture.js","sources":["../../../src/testing/fixtures/algorand-fixture.ts"],"sourcesContent":[null],"names":["config","getConfigFromEnvOrDefaults","getAlgoClient","indexer","getAlgoIndexerClient","getAlgoKmdClient","Config","transactionLogger","TransactionLogger","getTestAccount","algos","AlgorandClient","account","runWhenIndexerCaughtUp","lookupTransactionById"],"mappings":";;;;;;;;;;;AAiEA;;;;;;;;;;;;;;;;;;;;;;AAsBG;AACa,SAAA,eAAe,CAAC,aAAqC,EAAEA,QAAmB,EAAA;AACxF,IAAAA,QAAM,GAAGA,QAAM,IAAIC,wCAA0B,EAAE,CAAA;AAE/C,IAAA,MAAM,KAAK,GAAG,aAAa,EAAE,KAAK,IAAIC,2BAAa,CAACF,QAAM,CAAC,WAAW,CAAC,CAAA;AACvE,IAAA,MAAMG,SAAO,GAAG,aAAa,EAAE,OAAO,IAAIC,kCAAoB,CAACJ,QAAM,CAAC,aAAa,CAAC,CAAA;AACpF,IAAA,MAAM,GAAG,GAAG,aAAa,EAAE,GAAG,IAAIK,8BAAgB,CAACL,QAAM,CAAC,SAAS,CAAC,CAAA;AACpE,IAAA,IAAI,OAAsC,CAAA;AAC1C,IAAA,IAAI,cAA8B,CAAA;AAElC,IAAA,MAAM,UAAU,GAAG,YAAW;QAC5BM,aAAM,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;AACjC,QAAA,MAAMC,mBAAiB,GAAG,IAAIC,mCAAiB,EAAE,CAAA;QACjD,MAAM,sBAAsB,GAAGD,mBAAiB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QAC/D,MAAM,GAAG,GAAG,MAAME,sBAAc,CAC9B,EAAE,YAAY,EAAE,aAAa,EAAE,kBAAkB,IAAIC,YAAK,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,EACnF,sBAAsB,EACtB,GAAG,CACJ,CAAA;AACD,QAAA,cAAc,GAAG,cAAc,IAAIC,mCAAc,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,sBAAsB,WAAER,SAAO,EAAE,GAAG,EAAE,CAAC,CAAA;AAC9G,QAAA,cAAc,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAA;AACpG,QAAA,MAAM,WAAW,GAAG,EAAE,GAAG,GAAG,EAAE,MAAM,EAAE,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAA;AAClF,QAAA,OAAO,GAAG;AACR,YAAA,KAAK,EAAE,sBAAsB;AAC7B,YAAA,OAAO,EAAEA,SAAO;AAChB,YAAA,GAAG,EAAE,GAAG;YACR,WAAW;AACX,YAAA,eAAe,EAAE,OAAO,MAA4B,KAAI;gBACtD,MAAMS,SAAO,GAAG,MAAMH,sBAAc,CAAC,MAAM,EAAE,sBAAsB,EAAE,GAAG,CAAC,CAAA;AACzE,gBAAA,cAAc,CAAC,oBAAoB,CAACG,SAAO,CAAC,CAAA;AAC5C,gBAAA,OAAO,EAAE,GAAGA,SAAO,EAAE,MAAM,EAAE,cAAc,CAAC,OAAO,CAAC,SAAS,CAACA,SAAO,CAAC,IAAI,CAAC,EAAE,CAAA;aAC9E;AACD,YAAA,iBAAiB,EAAEL,mBAAiB;YACpC,cAAc,EAAE,MAAMA,mBAAiB,CAAC,cAAc,CAACJ,SAAO,CAAC;AAC/D,YAAA,yBAAyB,EAAE,CAAC,aAAqB,KAAKU,8BAAsB,CAAC,MAAMC,mCAAqB,CAAC,aAAa,EAAEX,SAAO,CAAC,CAAC;SAClI,CAAA;AACH,KAAC,CAAA;IAED,OAAO;AACL,QAAA,IAAI,OAAO,GAAA;AACT,YAAA,OAAO,OAAO,CAAA;SACf;AACD,QAAA,IAAI,QAAQ,GAAA;AACV,YAAA,OAAO,cAAc,CAAA;SACtB;QACD,UAAU;KACX,CAAA;AACH;;;;"}
1
+ {"version":3,"file":"algorand-fixture.js","sources":["../../../src/testing/fixtures/algorand-fixture.ts"],"sourcesContent":[null],"names":["config","ClientManager","indexer","Config","transactionLogger","TransactionLogger","AlgorandClient","getTestAccount","algos","account","runWhenIndexerCaughtUp","lookupTransactionById"],"mappings":"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"}
@@ -1,57 +1,38 @@
1
1
  import { AlgorandClient } from '../../types/algorand-client.mjs';
2
+ import { ClientManager } from '../../types/client-manager.mjs';
2
3
  import { getTestAccount } from '../account.mjs';
3
4
  import { runWhenIndexerCaughtUp } from '../indexer.mjs';
4
5
  import { TransactionLogger } from '../transaction-logger.mjs';
5
- import { getConfigFromEnvOrDefaults, getAlgoClient, getAlgoIndexerClient, getAlgoKmdClient } from '../../network-client.mjs';
6
6
  import { algos } from '../../amount.mjs';
7
7
  import { lookupTransactionById } from '../../indexer-lookup.mjs';
8
8
  import { Config } from '../../config.mjs';
9
9
 
10
- /**
11
- * Creates a test fixture for automated testing against Algorand.
12
- * By default it tests against an environment variable specified client
13
- * if the standard environment variables are specified, otherwise against
14
- * a default LocalNet instance, but you can pass in an algod, indexer
15
- * and/or kmd if you want to test against an explicitly defined network.
16
- *
17
- * @example
18
- * ```typescript
19
- * const algorand = algorandFixture(undefined, getConfigFromEnvOrDefaults())
20
- *
21
- * beforeEach(algorand.beforeEach, 10_000)
22
- *
23
- * test('My test', async () => {
24
- * const {algod, indexer, testAccount, ...} = algorand.context
25
- * // test things...
26
- * })
27
- * ```
28
- *
29
- * @param fixtureConfig The fixture configuration
30
- * @param config The algo configuration
31
- * @returns The fixture
32
- */
33
10
  function algorandFixture(fixtureConfig, config) {
34
- config = config || getConfigFromEnvOrDefaults();
35
- const algod = fixtureConfig?.algod ?? getAlgoClient(config.algodConfig);
36
- const indexer = fixtureConfig?.indexer ?? getAlgoIndexerClient(config.indexerConfig);
37
- const kmd = fixtureConfig?.kmd ?? getAlgoKmdClient(config.kmdConfig);
11
+ fixtureConfig = { ...fixtureConfig, ...config };
12
+ if (!fixtureConfig.algod || !fixtureConfig.indexer || !fixtureConfig.kmd) {
13
+ fixtureConfig = { ...ClientManager.getConfigFromEnvironmentOrLocalNet(), ...fixtureConfig };
14
+ }
15
+ const algod = fixtureConfig.algod ?? ClientManager.getAlgodClient(fixtureConfig.algodConfig);
16
+ const indexer = fixtureConfig.indexer ?? ClientManager.getIndexerClient(fixtureConfig.indexerConfig);
17
+ const kmd = fixtureConfig.kmd ?? ClientManager.getKmdClient(fixtureConfig.kmdConfig);
38
18
  let context;
39
19
  let algorandClient;
40
20
  const beforeEach = async () => {
41
21
  Config.configure({ debug: true });
42
22
  const transactionLogger = new TransactionLogger();
43
23
  const transactionLoggerAlgod = transactionLogger.capture(algod);
44
- const acc = await getTestAccount({ initialFunds: fixtureConfig?.testAccountFunding ?? algos(10), suppressLog: true }, transactionLoggerAlgod, kmd);
45
24
  algorandClient = algorandClient ?? AlgorandClient.fromClients({ algod: transactionLoggerAlgod, indexer, kmd });
25
+ const acc = await getTestAccount({ initialFunds: fixtureConfig?.testAccountFunding ?? algos(10), suppressLog: true }, algorandClient);
46
26
  algorandClient.setSignerFromAccount(acc).setDefaultValidityWindow(1000).setSuggestedParamsTimeout(0);
47
27
  const testAccount = { ...acc, signer: algorandClient.account.getSigner(acc.addr) };
48
28
  context = {
29
+ algorand: algorandClient,
49
30
  algod: transactionLoggerAlgod,
50
31
  indexer: indexer,
51
32
  kmd: kmd,
52
33
  testAccount,
53
34
  generateAccount: async (params) => {
54
- const account = await getTestAccount(params, transactionLoggerAlgod, kmd);
35
+ const account = await getTestAccount(params, algorandClient);
55
36
  algorandClient.setSignerFromAccount(account);
56
37
  return { ...account, signer: algorandClient.account.getSigner(account.addr) };
57
38
  },
@@ -1 +1 @@
1
- {"version":3,"file":"algorand-fixture.mjs","sources":["../../../src/testing/fixtures/algorand-fixture.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;AAiEA;;;;;;;;;;;;;;;;;;;;;;AAsBG;AACa,SAAA,eAAe,CAAC,aAAqC,EAAE,MAAmB,EAAA;AACxF,IAAA,MAAM,GAAG,MAAM,IAAI,0BAA0B,EAAE,CAAA;AAE/C,IAAA,MAAM,KAAK,GAAG,aAAa,EAAE,KAAK,IAAI,aAAa,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;AACvE,IAAA,MAAM,OAAO,GAAG,aAAa,EAAE,OAAO,IAAI,oBAAoB,CAAC,MAAM,CAAC,aAAa,CAAC,CAAA;AACpF,IAAA,MAAM,GAAG,GAAG,aAAa,EAAE,GAAG,IAAI,gBAAgB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;AACpE,IAAA,IAAI,OAAsC,CAAA;AAC1C,IAAA,IAAI,cAA8B,CAAA;AAElC,IAAA,MAAM,UAAU,GAAG,YAAW;QAC5B,MAAM,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;AACjC,QAAA,MAAM,iBAAiB,GAAG,IAAI,iBAAiB,EAAE,CAAA;QACjD,MAAM,sBAAsB,GAAG,iBAAiB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QAC/D,MAAM,GAAG,GAAG,MAAM,cAAc,CAC9B,EAAE,YAAY,EAAE,aAAa,EAAE,kBAAkB,IAAI,KAAK,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,EACnF,sBAAsB,EACtB,GAAG,CACJ,CAAA;AACD,QAAA,cAAc,GAAG,cAAc,IAAI,cAAc,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,sBAAsB,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAA;AAC9G,QAAA,cAAc,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAA;AACpG,QAAA,MAAM,WAAW,GAAG,EAAE,GAAG,GAAG,EAAE,MAAM,EAAE,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAA;AAClF,QAAA,OAAO,GAAG;AACR,YAAA,KAAK,EAAE,sBAAsB;AAC7B,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,GAAG,EAAE,GAAG;YACR,WAAW;AACX,YAAA,eAAe,EAAE,OAAO,MAA4B,KAAI;gBACtD,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE,sBAAsB,EAAE,GAAG,CAAC,CAAA;AACzE,gBAAA,cAAc,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAA;AAC5C,gBAAA,OAAO,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAA;aAC9E;AACD,YAAA,iBAAiB,EAAE,iBAAiB;YACpC,cAAc,EAAE,MAAM,iBAAiB,CAAC,cAAc,CAAC,OAAO,CAAC;AAC/D,YAAA,yBAAyB,EAAE,CAAC,aAAqB,KAAK,sBAAsB,CAAC,MAAM,qBAAqB,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;SAClI,CAAA;AACH,KAAC,CAAA;IAED,OAAO;AACL,QAAA,IAAI,OAAO,GAAA;AACT,YAAA,OAAO,OAAO,CAAA;SACf;AACD,QAAA,IAAI,QAAQ,GAAA;AACV,YAAA,OAAO,cAAc,CAAA;SACtB;QACD,UAAU;KACX,CAAA;AACH;;;;"}
1
+ {"version":3,"file":"algorand-fixture.mjs","sources":["../../../src/testing/fixtures/algorand-fixture.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;AA4EgB,SAAA,eAAe,CAAC,aAAqC,EAAE,MAAmB,EAAA;IACxF,aAAa,GAAG,EAAE,GAAG,aAAa,EAAE,GAAG,MAAM,EAAE,CAAA;AAC/C,IAAA,IAAI,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC,aAAa,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE;QACxE,aAAa,GAAG,EAAE,GAAG,aAAa,CAAC,kCAAkC,EAAE,EAAE,GAAG,aAAa,EAAE,CAAA;KAC5F;AAED,IAAA,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,IAAI,aAAa,CAAC,cAAc,CAAC,aAAa,CAAC,WAAY,CAAC,CAAA;AAC7F,IAAA,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,IAAI,aAAa,CAAC,gBAAgB,CAAC,aAAa,CAAC,aAAc,CAAC,CAAA;AACrG,IAAA,MAAM,GAAG,GAAG,aAAa,CAAC,GAAG,IAAI,aAAa,CAAC,YAAY,CAAC,aAAa,CAAC,SAAU,CAAC,CAAA;AACrF,IAAA,IAAI,OAAsC,CAAA;AAC1C,IAAA,IAAI,cAA8B,CAAA;AAElC,IAAA,MAAM,UAAU,GAAG,YAAW;QAC5B,MAAM,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;AACjC,QAAA,MAAM,iBAAiB,GAAG,IAAI,iBAAiB,EAAE,CAAA;QACjD,MAAM,sBAAsB,GAAG,iBAAiB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;AAC/D,QAAA,cAAc,GAAG,cAAc,IAAI,cAAc,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,sBAAsB,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAA;QAC9G,MAAM,GAAG,GAAG,MAAM,cAAc,CAAC,EAAE,YAAY,EAAE,aAAa,EAAE,kBAAkB,IAAI,KAAK,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,cAAc,CAAC,CAAA;AACrI,QAAA,cAAc,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAA;AACpG,QAAA,MAAM,WAAW,GAAG,EAAE,GAAG,GAAG,EAAE,MAAM,EAAE,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAA;AAClF,QAAA,OAAO,GAAG;AACR,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,KAAK,EAAE,sBAAsB;AAC7B,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,GAAG,EAAE,GAAG;YACR,WAAW;AACX,YAAA,eAAe,EAAE,OAAO,MAA4B,KAAI;gBACtD,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;AAC5D,gBAAA,cAAc,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAA;AAC5C,gBAAA,OAAO,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAA;aAC9E;AACD,YAAA,iBAAiB,EAAE,iBAAiB;YACpC,cAAc,EAAE,MAAM,iBAAiB,CAAC,cAAc,CAAC,OAAO,CAAC;AAC/D,YAAA,yBAAyB,EAAE,CAAC,aAAqB,KAAK,sBAAsB,CAAC,MAAM,qBAAqB,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;SAClI,CAAA;AACH,KAAC,CAAA;IAED,OAAO;AACL,QAAA,IAAI,OAAO,GAAA;AACT,YAAA,OAAO,OAAO,CAAA;SACf;AACD,QAAA,IAAI,QAAQ,GAAA;AACV,YAAA,OAAO,cAAc,CAAA;SACtB;QACD,UAAU;KACX,CAAA;AACH;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../src/transaction/transaction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../src/transaction/transaction.ts"],"names":[],"mappings":"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"}
@@ -85,14 +85,6 @@ function encodeLease(lease) {
85
85
  const getSenderAddress = function (sender) {
86
86
  return typeof sender === 'string' ? sender : 'addr' in sender ? sender.addr : sender.address();
87
87
  };
88
- const memoize = (fn) => {
89
- const cache = new Map();
90
- const cached = function (val) {
91
- return cache.has(val) ? cache.get(val) : cache.set(val, fn.call(this, val)) && cache.get(val);
92
- };
93
- cached.cache = cache;
94
- return cached;
95
- };
96
88
  /**
97
89
  * Given a transaction in a variety of supported formats, returns a TransactionWithSigner object ready to be passed to an
98
90
  * AtomicTransactionComposer's addTransaction method.
@@ -123,6 +115,14 @@ const getTransactionWithSigner = async (transaction, defaultSender) => {
123
115
  signer: getSenderTransactionSigner(defaultSender),
124
116
  };
125
117
  };
118
+ const memoize = (fn) => {
119
+ const cache = new Map();
120
+ const cached = function (val) {
121
+ return cache.has(val) ? cache.get(val) : cache.set(val, fn.call(this, val)) && cache.get(val);
122
+ };
123
+ cached.cache = cache;
124
+ return cached;
125
+ };
126
126
  /**
127
127
  * Returns a `TransactionSigner` for the given transaction sender.
128
128
  * This function has memoization, so will return the same transaction signer for a given sender.