@algorandfoundation/algokit-utils 7.0.0-beta.8 → 7.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (189) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +7 -0
  3. package/account/account.js +6 -4
  4. package/account/account.js.map +1 -1
  5. package/account/account.mjs +6 -4
  6. package/account/account.mjs.map +1 -1
  7. package/account/get-account-config-from-environment.js.map +1 -1
  8. package/account/get-account-config-from-environment.mjs.map +1 -1
  9. package/account/get-account.js.map +1 -1
  10. package/account/get-account.mjs.map +1 -1
  11. package/account/get-dispenser-account.js.map +1 -1
  12. package/account/get-dispenser-account.mjs.map +1 -1
  13. package/account/mnemonic-account.js.map +1 -1
  14. package/account/mnemonic-account.mjs.map +1 -1
  15. package/amount.js.map +1 -1
  16. package/amount.mjs.map +1 -1
  17. package/app-client.js.map +1 -1
  18. package/app-client.mjs.map +1 -1
  19. package/app-deploy.js +2 -10
  20. package/app-deploy.js.map +1 -1
  21. package/app-deploy.mjs +3 -11
  22. package/app-deploy.mjs.map +1 -1
  23. package/app.d.ts +2 -2
  24. package/app.js +2 -2
  25. package/app.js.map +1 -1
  26. package/app.mjs +2 -2
  27. package/app.mjs.map +1 -1
  28. package/asset.js.map +1 -1
  29. package/asset.mjs.map +1 -1
  30. package/debugging/debugging.js.map +1 -1
  31. package/debugging/debugging.mjs.map +1 -1
  32. package/dispenser-client.js.map +1 -1
  33. package/dispenser-client.mjs.map +1 -1
  34. package/index.d.ts +1 -0
  35. package/index.js +6 -0
  36. package/index.js.map +1 -1
  37. package/index.mjs +2 -1
  38. package/index.mjs.map +1 -1
  39. package/indexer-lookup.js.map +1 -1
  40. package/indexer-lookup.mjs.map +1 -1
  41. package/localnet/get-kmd-wallet-account.js.map +1 -1
  42. package/localnet/get-kmd-wallet-account.mjs.map +1 -1
  43. package/localnet/get-localnet-dispenser-account.js.map +1 -1
  44. package/localnet/get-localnet-dispenser-account.mjs.map +1 -1
  45. package/localnet/get-or-create-kmd-wallet-account.js.map +1 -1
  46. package/localnet/get-or-create-kmd-wallet-account.mjs.map +1 -1
  47. package/localnet/is-localnet.js.map +1 -1
  48. package/localnet/is-localnet.mjs.map +1 -1
  49. package/network-client.js.map +1 -1
  50. package/network-client.mjs.map +1 -1
  51. package/package.json +5 -5
  52. package/testing/account.js.map +1 -1
  53. package/testing/account.mjs.map +1 -1
  54. package/testing/fixtures/algokit-log-capture-fixture.js.map +1 -1
  55. package/testing/fixtures/algokit-log-capture-fixture.mjs.map +1 -1
  56. package/testing/fixtures/algorand-fixture.js.map +1 -1
  57. package/testing/fixtures/algorand-fixture.mjs.map +1 -1
  58. package/testing/indexer.js.map +1 -1
  59. package/testing/indexer.mjs.map +1 -1
  60. package/testing/test-logger.js.map +1 -1
  61. package/testing/test-logger.mjs.map +1 -1
  62. package/testing/transaction-logger.js.map +1 -1
  63. package/testing/transaction-logger.mjs.map +1 -1
  64. package/transaction/legacy-bridge.js +2 -2
  65. package/transaction/legacy-bridge.js.map +1 -1
  66. package/transaction/legacy-bridge.mjs +3 -3
  67. package/transaction/legacy-bridge.mjs.map +1 -1
  68. package/transaction/perform-atomic-transaction-composer-simulate.js +1 -0
  69. package/transaction/perform-atomic-transaction-composer-simulate.js.map +1 -1
  70. package/transaction/perform-atomic-transaction-composer-simulate.mjs +1 -0
  71. package/transaction/perform-atomic-transaction-composer-simulate.mjs.map +1 -1
  72. package/transaction/transaction.d.ts +14 -7
  73. package/transaction/transaction.js +57 -31
  74. package/transaction/transaction.js.map +1 -1
  75. package/transaction/transaction.mjs +55 -30
  76. package/transaction/transaction.mjs.map +1 -1
  77. package/transfer/transfer-algos.js.map +1 -1
  78. package/transfer/transfer-algos.mjs.map +1 -1
  79. package/transfer/transfer.js.map +1 -1
  80. package/transfer/transfer.mjs.map +1 -1
  81. package/types/account-manager.d.ts +1 -1
  82. package/types/account-manager.js +10 -8
  83. package/types/account-manager.js.map +1 -1
  84. package/types/account-manager.mjs +11 -9
  85. package/types/account-manager.mjs.map +1 -1
  86. package/types/account.d.ts +9 -0
  87. package/types/account.js.map +1 -1
  88. package/types/account.mjs.map +1 -1
  89. package/types/algo-http-client-with-retry.js.map +1 -1
  90. package/types/algo-http-client-with-retry.mjs.map +1 -1
  91. package/types/algorand-client-interface.d.ts +2 -2
  92. package/types/algorand-client-transaction-creator.d.ts +5 -3
  93. package/types/algorand-client-transaction-creator.js +3 -1
  94. package/types/algorand-client-transaction-creator.js.map +1 -1
  95. package/types/algorand-client-transaction-creator.mjs +3 -1
  96. package/types/algorand-client-transaction-creator.mjs.map +1 -1
  97. package/types/algorand-client-transaction-sender.d.ts +12 -8
  98. package/types/algorand-client-transaction-sender.js +6 -2
  99. package/types/algorand-client-transaction-sender.js.map +1 -1
  100. package/types/algorand-client-transaction-sender.mjs +6 -2
  101. package/types/algorand-client-transaction-sender.mjs.map +1 -1
  102. package/types/algorand-client.d.ts +3 -4
  103. package/types/algorand-client.js +2 -5
  104. package/types/algorand-client.js.map +1 -1
  105. package/types/algorand-client.mjs +4 -4
  106. package/types/algorand-client.mjs.map +1 -1
  107. package/types/amount.js.map +1 -1
  108. package/types/amount.mjs.map +1 -1
  109. package/types/app-arc56.d.ts +31 -20
  110. package/types/app-arc56.js.map +1 -1
  111. package/types/app-arc56.mjs.map +1 -1
  112. package/types/app-client.d.ts +97 -78
  113. package/types/app-client.js +171 -54
  114. package/types/app-client.js.map +1 -1
  115. package/types/app-client.mjs +169 -52
  116. package/types/app-client.mjs.map +1 -1
  117. package/types/app-deployer.js +1 -1
  118. package/types/app-deployer.js.map +1 -1
  119. package/types/app-deployer.mjs +2 -2
  120. package/types/app-deployer.mjs.map +1 -1
  121. package/types/app-factory.d.ts +30 -10
  122. package/types/app-factory.js +26 -20
  123. package/types/app-factory.js.map +1 -1
  124. package/types/app-factory.mjs +26 -20
  125. package/types/app-factory.mjs.map +1 -1
  126. package/types/app-manager.js +105 -23
  127. package/types/app-manager.js.map +1 -1
  128. package/types/app-manager.mjs +105 -23
  129. package/types/app-manager.mjs.map +1 -1
  130. package/types/app-spec.js +8 -2
  131. package/types/app-spec.js.map +1 -1
  132. package/types/app-spec.mjs +8 -2
  133. package/types/app-spec.mjs.map +1 -1
  134. package/types/app.d.ts +8 -7
  135. package/types/app.js.map +1 -1
  136. package/types/app.mjs.map +1 -1
  137. package/types/asset-manager.d.ts +4 -4
  138. package/types/asset-manager.js +2 -2
  139. package/types/asset-manager.js.map +1 -1
  140. package/types/asset-manager.mjs +2 -2
  141. package/types/asset-manager.mjs.map +1 -1
  142. package/types/async-event-emitter.d.ts +1 -10
  143. package/types/async-event-emitter.js +0 -5
  144. package/types/async-event-emitter.js.map +1 -1
  145. package/types/async-event-emitter.mjs +1 -6
  146. package/types/async-event-emitter.mjs.map +1 -1
  147. package/types/client-manager.js +2 -2
  148. package/types/client-manager.js.map +1 -1
  149. package/types/client-manager.mjs +2 -2
  150. package/types/client-manager.mjs.map +1 -1
  151. package/types/composer.d.ts +40 -25
  152. package/types/composer.js +114 -40
  153. package/types/composer.js.map +1 -1
  154. package/types/composer.mjs +115 -39
  155. package/types/composer.mjs.map +1 -1
  156. package/types/config.js.map +1 -1
  157. package/types/config.mjs.map +1 -1
  158. package/types/debugging.d.ts +1 -1
  159. package/types/debugging.js +1 -1
  160. package/types/debugging.js.map +1 -1
  161. package/types/debugging.mjs +1 -1
  162. package/types/debugging.mjs.map +1 -1
  163. package/types/dispenser-client.js.map +1 -1
  164. package/types/dispenser-client.mjs.map +1 -1
  165. package/types/indexer.js.map +1 -1
  166. package/types/indexer.mjs.map +1 -1
  167. package/types/kmd-account-manager.js +1 -1
  168. package/types/kmd-account-manager.js.map +1 -1
  169. package/types/kmd-account-manager.mjs +2 -2
  170. package/types/kmd-account-manager.mjs.map +1 -1
  171. package/types/lifecycle-events.d.ts +10 -0
  172. package/types/lifecycle-events.js +8 -0
  173. package/types/lifecycle-events.js.map +1 -0
  174. package/types/lifecycle-events.mjs +8 -0
  175. package/types/lifecycle-events.mjs.map +1 -0
  176. package/types/logging.js.map +1 -1
  177. package/types/logging.mjs.map +1 -1
  178. package/types/logic-error.d.ts +2 -3
  179. package/types/logic-error.js +3 -3
  180. package/types/logic-error.js.map +1 -1
  181. package/types/logic-error.mjs +3 -3
  182. package/types/logic-error.mjs.map +1 -1
  183. package/types/network-client.js.map +1 -1
  184. package/types/network-client.mjs.map +1 -1
  185. package/types/testing.d.ts +1 -1
  186. package/types/urlTokenBaseHTTPClient.js.map +1 -1
  187. package/types/urlTokenBaseHTTPClient.mjs.map +1 -1
  188. package/util.js.map +1 -1
  189. package/util.mjs.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"test-logger.js","sources":["../../src/testing/test-logger.ts"],"sourcesContent":["import { Logger } from '../types/logging'\nimport { LogSnapshotConfig } from '../types/testing'\n\n/** Exposes an AlgoKit logger which captures log messages, while wrapping an original logger.\n * This is useful for automated testing.\n */\nexport class TestLogger implements Logger {\n private originalLogger: Logger | undefined\n private logs: string[]\n\n /**\n * Create a new test logger that wraps the given logger if provided.\n * @param originalLogger The optional original logger to wrap.\n */\n constructor(originalLogger?: Logger) {\n this.originalLogger = originalLogger\n this.logs = []\n }\n\n /** Returns all logs captured thus far. */\n get capturedLogs(): string[] {\n return this.logs\n }\n\n /** Clears all logs captured so far. */\n clear() {\n this.logs = []\n }\n\n /**\n * Returns a captured log snapshot.\n * This helps ensure that the provided configuration items won't appear\n * with random values in the log snapshot, but rather will get substituted with predictable ids.\n *\n * https://jestjs.io/docs/snapshot-testing#2-tests-should-be-deterministic\n *\n * @example Jest Example\n * ```typescript\n * const logger = new TestLogger()\n * ...\n * expect(logger.getLogSnapshot()).toMatchSnapshot()\n * ```\n * @param config The snapshot configuration\n * @returns The snapshotted logs.\n */\n getLogSnapshot(config?: LogSnapshotConfig) {\n const { transactions: transactionIds, accounts, apps } = config ?? {}\n let snapshot = this.capturedLogs.join('\\n')\n transactionIds?.forEach(\n (txn, id) => (snapshot = snapshot.replace(new RegExp(typeof txn === 'string' ? txn : txn.txID(), 'g'), `TXID_${id + 1}`)),\n )\n accounts?.forEach(\n (sender, id) =>\n (snapshot = snapshot.replace(\n new RegExp(typeof sender === 'string' ? sender : 'addr' in sender ? sender.addr : sender.address(), 'g'),\n `ACCOUNT_${id + 1}`,\n )),\n )\n apps?.forEach((app, id) => (snapshot = snapshot.replace(new RegExp(`\\\\b${app.toString()}\\\\b(?! bytes)`, 'g'), `APP_${id + 1}`)))\n return snapshot\n }\n\n error(message: string, ...optionalParams: unknown[]): void {\n this.originalLogger?.error(message, ...optionalParams)\n this.logs.push(`ERROR: ${message}${optionalParams.length ? ` | ${JSON.stringify(optionalParams)}` : ''}`)\n }\n warn(message: string, ...optionalParams: unknown[]): void {\n this.originalLogger?.warn(message, ...optionalParams)\n this.logs.push(`WARN: ${message}${optionalParams.length ? ` | ${JSON.stringify(optionalParams)}` : ''}`)\n }\n info(message: string, ...optionalParams: unknown[]): void {\n this.originalLogger?.info(message, ...optionalParams)\n this.logs.push(`INFO: ${message}${optionalParams.length ? ` | ${JSON.stringify(optionalParams)}` : ''}`)\n }\n verbose(message: string, ...optionalParams: unknown[]): void {\n this.originalLogger?.verbose(message, ...optionalParams)\n this.logs.push(`VERBOSE: ${message}${optionalParams.length ? ` | ${JSON.stringify(optionalParams)}` : ''}`)\n }\n debug(message: string, ...optionalParams: unknown[]): void {\n this.originalLogger?.debug(message, ...optionalParams)\n this.logs.push(`DEBUG: ${message}${optionalParams.length ? ` | ${JSON.stringify(optionalParams)}` : ''}`)\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"test-logger.js","sources":["../../src/testing/test-logger.ts"],"sourcesContent":["import { Logger } from '../types/logging'\nimport { LogSnapshotConfig } from '../types/testing'\n\n/** Exposes an AlgoKit logger which captures log messages, while wrapping an original logger.\n * This is useful for automated testing.\n */\nexport class TestLogger implements Logger {\n private originalLogger: Logger | undefined\n private logs: string[]\n\n /**\n * Create a new test logger that wraps the given logger if provided.\n * @param originalLogger The optional original logger to wrap.\n */\n constructor(originalLogger?: Logger) {\n this.originalLogger = originalLogger\n this.logs = []\n }\n\n /** Returns all logs captured thus far. */\n get capturedLogs(): string[] {\n return this.logs\n }\n\n /** Clears all logs captured so far. */\n clear() {\n this.logs = []\n }\n\n /**\n * Returns a captured log snapshot.\n * This helps ensure that the provided configuration items won't appear\n * with random values in the log snapshot, but rather will get substituted with predictable ids.\n *\n * https://jestjs.io/docs/snapshot-testing#2-tests-should-be-deterministic\n *\n * @example Jest Example\n * ```typescript\n * const logger = new TestLogger()\n * ...\n * expect(logger.getLogSnapshot()).toMatchSnapshot()\n * ```\n * @param config The snapshot configuration\n * @returns The snapshotted logs.\n */\n getLogSnapshot(config?: LogSnapshotConfig) {\n const { transactions: transactionIds, accounts, apps } = config ?? {}\n let snapshot = this.capturedLogs.join('\\n')\n transactionIds?.forEach(\n (txn, id) => (snapshot = snapshot.replace(new RegExp(typeof txn === 'string' ? txn : txn.txID(), 'g'), `TXID_${id + 1}`)),\n )\n accounts?.forEach(\n (sender, id) =>\n (snapshot = snapshot.replace(\n new RegExp(typeof sender === 'string' ? sender : 'addr' in sender ? sender.addr : sender.address(), 'g'),\n `ACCOUNT_${id + 1}`,\n )),\n )\n apps?.forEach((app, id) => (snapshot = snapshot.replace(new RegExp(`\\\\b${app.toString()}\\\\b(?! bytes)`, 'g'), `APP_${id + 1}`)))\n return snapshot\n }\n\n error(message: string, ...optionalParams: unknown[]): void {\n this.originalLogger?.error(message, ...optionalParams)\n this.logs.push(`ERROR: ${message}${optionalParams.length ? ` | ${JSON.stringify(optionalParams)}` : ''}`)\n }\n warn(message: string, ...optionalParams: unknown[]): void {\n this.originalLogger?.warn(message, ...optionalParams)\n this.logs.push(`WARN: ${message}${optionalParams.length ? ` | ${JSON.stringify(optionalParams)}` : ''}`)\n }\n info(message: string, ...optionalParams: unknown[]): void {\n this.originalLogger?.info(message, ...optionalParams)\n this.logs.push(`INFO: ${message}${optionalParams.length ? ` | ${JSON.stringify(optionalParams)}` : ''}`)\n }\n verbose(message: string, ...optionalParams: unknown[]): void {\n this.originalLogger?.verbose(message, ...optionalParams)\n this.logs.push(`VERBOSE: ${message}${optionalParams.length ? ` | ${JSON.stringify(optionalParams)}` : ''}`)\n }\n debug(message: string, ...optionalParams: unknown[]): void {\n this.originalLogger?.debug(message, ...optionalParams)\n this.logs.push(`DEBUG: ${message}${optionalParams.length ? ` | ${JSON.stringify(optionalParams)}` : ''}`)\n }\n}\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"test-logger.mjs","sources":["../../src/testing/test-logger.ts"],"sourcesContent":["import { Logger } from '../types/logging'\nimport { LogSnapshotConfig } from '../types/testing'\n\n/** Exposes an AlgoKit logger which captures log messages, while wrapping an original logger.\n * This is useful for automated testing.\n */\nexport class TestLogger implements Logger {\n private originalLogger: Logger | undefined\n private logs: string[]\n\n /**\n * Create a new test logger that wraps the given logger if provided.\n * @param originalLogger The optional original logger to wrap.\n */\n constructor(originalLogger?: Logger) {\n this.originalLogger = originalLogger\n this.logs = []\n }\n\n /** Returns all logs captured thus far. */\n get capturedLogs(): string[] {\n return this.logs\n }\n\n /** Clears all logs captured so far. */\n clear() {\n this.logs = []\n }\n\n /**\n * Returns a captured log snapshot.\n * This helps ensure that the provided configuration items won't appear\n * with random values in the log snapshot, but rather will get substituted with predictable ids.\n *\n * https://jestjs.io/docs/snapshot-testing#2-tests-should-be-deterministic\n *\n * @example Jest Example\n * ```typescript\n * const logger = new TestLogger()\n * ...\n * expect(logger.getLogSnapshot()).toMatchSnapshot()\n * ```\n * @param config The snapshot configuration\n * @returns The snapshotted logs.\n */\n getLogSnapshot(config?: LogSnapshotConfig) {\n const { transactions: transactionIds, accounts, apps } = config ?? {}\n let snapshot = this.capturedLogs.join('\\n')\n transactionIds?.forEach(\n (txn, id) => (snapshot = snapshot.replace(new RegExp(typeof txn === 'string' ? txn : txn.txID(), 'g'), `TXID_${id + 1}`)),\n )\n accounts?.forEach(\n (sender, id) =>\n (snapshot = snapshot.replace(\n new RegExp(typeof sender === 'string' ? sender : 'addr' in sender ? sender.addr : sender.address(), 'g'),\n `ACCOUNT_${id + 1}`,\n )),\n )\n apps?.forEach((app, id) => (snapshot = snapshot.replace(new RegExp(`\\\\b${app.toString()}\\\\b(?! bytes)`, 'g'), `APP_${id + 1}`)))\n return snapshot\n }\n\n error(message: string, ...optionalParams: unknown[]): void {\n this.originalLogger?.error(message, ...optionalParams)\n this.logs.push(`ERROR: ${message}${optionalParams.length ? ` | ${JSON.stringify(optionalParams)}` : ''}`)\n }\n warn(message: string, ...optionalParams: unknown[]): void {\n this.originalLogger?.warn(message, ...optionalParams)\n this.logs.push(`WARN: ${message}${optionalParams.length ? ` | ${JSON.stringify(optionalParams)}` : ''}`)\n }\n info(message: string, ...optionalParams: unknown[]): void {\n this.originalLogger?.info(message, ...optionalParams)\n this.logs.push(`INFO: ${message}${optionalParams.length ? ` | ${JSON.stringify(optionalParams)}` : ''}`)\n }\n verbose(message: string, ...optionalParams: unknown[]): void {\n this.originalLogger?.verbose(message, ...optionalParams)\n this.logs.push(`VERBOSE: ${message}${optionalParams.length ? ` | ${JSON.stringify(optionalParams)}` : ''}`)\n }\n debug(message: string, ...optionalParams: unknown[]): void {\n this.originalLogger?.debug(message, ...optionalParams)\n this.logs.push(`DEBUG: ${message}${optionalParams.length ? ` | ${JSON.stringify(optionalParams)}` : ''}`)\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"test-logger.mjs","sources":["../../src/testing/test-logger.ts"],"sourcesContent":["import { Logger } from '../types/logging'\nimport { LogSnapshotConfig } from '../types/testing'\n\n/** Exposes an AlgoKit logger which captures log messages, while wrapping an original logger.\n * This is useful for automated testing.\n */\nexport class TestLogger implements Logger {\n private originalLogger: Logger | undefined\n private logs: string[]\n\n /**\n * Create a new test logger that wraps the given logger if provided.\n * @param originalLogger The optional original logger to wrap.\n */\n constructor(originalLogger?: Logger) {\n this.originalLogger = originalLogger\n this.logs = []\n }\n\n /** Returns all logs captured thus far. */\n get capturedLogs(): string[] {\n return this.logs\n }\n\n /** Clears all logs captured so far. */\n clear() {\n this.logs = []\n }\n\n /**\n * Returns a captured log snapshot.\n * This helps ensure that the provided configuration items won't appear\n * with random values in the log snapshot, but rather will get substituted with predictable ids.\n *\n * https://jestjs.io/docs/snapshot-testing#2-tests-should-be-deterministic\n *\n * @example Jest Example\n * ```typescript\n * const logger = new TestLogger()\n * ...\n * expect(logger.getLogSnapshot()).toMatchSnapshot()\n * ```\n * @param config The snapshot configuration\n * @returns The snapshotted logs.\n */\n getLogSnapshot(config?: LogSnapshotConfig) {\n const { transactions: transactionIds, accounts, apps } = config ?? {}\n let snapshot = this.capturedLogs.join('\\n')\n transactionIds?.forEach(\n (txn, id) => (snapshot = snapshot.replace(new RegExp(typeof txn === 'string' ? txn : txn.txID(), 'g'), `TXID_${id + 1}`)),\n )\n accounts?.forEach(\n (sender, id) =>\n (snapshot = snapshot.replace(\n new RegExp(typeof sender === 'string' ? sender : 'addr' in sender ? sender.addr : sender.address(), 'g'),\n `ACCOUNT_${id + 1}`,\n )),\n )\n apps?.forEach((app, id) => (snapshot = snapshot.replace(new RegExp(`\\\\b${app.toString()}\\\\b(?! bytes)`, 'g'), `APP_${id + 1}`)))\n return snapshot\n }\n\n error(message: string, ...optionalParams: unknown[]): void {\n this.originalLogger?.error(message, ...optionalParams)\n this.logs.push(`ERROR: ${message}${optionalParams.length ? ` | ${JSON.stringify(optionalParams)}` : ''}`)\n }\n warn(message: string, ...optionalParams: unknown[]): void {\n this.originalLogger?.warn(message, ...optionalParams)\n this.logs.push(`WARN: ${message}${optionalParams.length ? ` | ${JSON.stringify(optionalParams)}` : ''}`)\n }\n info(message: string, ...optionalParams: unknown[]): void {\n this.originalLogger?.info(message, ...optionalParams)\n this.logs.push(`INFO: ${message}${optionalParams.length ? ` | ${JSON.stringify(optionalParams)}` : ''}`)\n }\n verbose(message: string, ...optionalParams: unknown[]): void {\n this.originalLogger?.verbose(message, ...optionalParams)\n this.logs.push(`VERBOSE: ${message}${optionalParams.length ? ` | ${JSON.stringify(optionalParams)}` : ''}`)\n }\n debug(message: string, ...optionalParams: unknown[]): void {\n this.originalLogger?.debug(message, ...optionalParams)\n this.logs.push(`DEBUG: ${message}${optionalParams.length ? ` | ${JSON.stringify(optionalParams)}` : ''}`)\n }\n}\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"transaction-logger.js","sources":["../../src/testing/transaction-logger.ts"],"sourcesContent":["import algosdk from 'algosdk'\nimport { runWhenIndexerCaughtUp } from './indexer'\nimport Algodv2 = algosdk.Algodv2\nimport decodeSignedTransaction = algosdk.decodeSignedTransaction\nimport Indexer = algosdk.Indexer\n\n/**\n * Allows you to keep track of Algorand transaction IDs by wrapping an `Algodv2` in a proxy.\n * Useful for automated tests.\n */\nexport class TransactionLogger {\n private _sentTransactionIds: string[] = []\n\n /**\n * The list of transaction IDs that has been logged thus far.\n */\n get sentTransactionIds(): Readonly<string[]> {\n return this._sentTransactionIds\n }\n\n /**\n * Clear all logged IDs.\n */\n clear() {\n this._sentTransactionIds = []\n }\n\n /**\n * The method that captures raw transactions and stores the transaction IDs.\n */\n logRawTransaction(signedTransactions: Uint8Array | Uint8Array[]) {\n if (Array.isArray(signedTransactions)) {\n for (const stxn of signedTransactions) {\n const decoded = decodeSignedTransaction(stxn)\n this._sentTransactionIds.push(decoded.txn.txID())\n }\n } else {\n const decoded = decodeSignedTransaction(signedTransactions)\n this._sentTransactionIds.push(decoded.txn.txID())\n }\n }\n\n /** Return a proxy that wraps the given Algodv2 with this transaction logger.\n *\n * @param algod The `Algodv2` to wrap\n * @returns The wrapped `Algodv2`, any transactions sent using this algod instance will be logged by this transaction logger\n */\n capture(algod: Algodv2): Algodv2 {\n return new Proxy<Algodv2>(algod, new TransactionLoggingAlgodv2ProxyHandler(this))\n }\n\n /** Wait until all logged transactions IDs appear in the given `Indexer`. */\n async waitForIndexer(indexer: Indexer) {\n await Promise.all(this._sentTransactionIds.map((txnId) => runWhenIndexerCaughtUp(() => indexer.lookupTransactionByID(txnId).do())))\n }\n}\n\nclass TransactionLoggingAlgodv2ProxyHandler implements ProxyHandler<Algodv2> {\n private transactionLogger: TransactionLogger\n\n constructor(transactionLogger: TransactionLogger) {\n this.transactionLogger = transactionLogger\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n get(target: Algodv2, property: string | symbol, receiver: any) {\n if (property === 'sendRawTransaction') {\n return (stxOrStxs: Uint8Array | Uint8Array[]) => {\n this.transactionLogger.logRawTransaction(stxOrStxs)\n return target[property].call(receiver, stxOrStxs)\n }\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return (target as any)[property]\n }\n}\n"],"names":["indexer","runWhenIndexerCaughtUp"],"mappings":";;;;;AAGA,IAAO,uBAAuB,GAAG,OAAO,CAAC,uBAAuB,CAAA;AAGhE;;;AAGG;MACU,iBAAiB,CAAA;AAA9B,IAAA,WAAA,GAAA;QACU,IAAmB,CAAA,mBAAA,GAAa,EAAE,CAAA;KA4C3C;AA1CC;;AAEG;AACH,IAAA,IAAI,kBAAkB,GAAA;QACpB,OAAO,IAAI,CAAC,mBAAmB,CAAA;KAChC;AAED;;AAEG;IACH,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAA;KAC9B;AAED;;AAEG;AACH,IAAA,iBAAiB,CAAC,kBAA6C,EAAA;AAC7D,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE;AACrC,YAAA,KAAK,MAAM,IAAI,IAAI,kBAAkB,EAAE;AACrC,gBAAA,MAAM,OAAO,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAA;AAC7C,gBAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAA;aAClD;SACF;aAAM;AACL,YAAA,MAAM,OAAO,GAAG,uBAAuB,CAAC,kBAAkB,CAAC,CAAA;AAC3D,YAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAA;SAClD;KACF;AAED;;;;AAIG;AACH,IAAA,OAAO,CAAC,KAAc,EAAA;QACpB,OAAO,IAAI,KAAK,CAAU,KAAK,EAAE,IAAI,qCAAqC,CAAC,IAAI,CAAC,CAAC,CAAA;KAClF;;IAGD,MAAM,cAAc,CAACA,SAAgB,EAAA;AACnC,QAAA,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,KAAK,KAAKC,8BAAsB,CAAC,MAAMD,SAAO,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA;KACpI;AACF,CAAA;AAED,MAAM,qCAAqC,CAAA;AAGzC,IAAA,WAAA,CAAY,iBAAoC,EAAA;AAC9C,QAAA,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAA;KAC3C;;AAGD,IAAA,GAAG,CAAC,MAAe,EAAE,QAAyB,EAAE,QAAa,EAAA;AAC3D,QAAA,IAAI,QAAQ,KAAK,oBAAoB,EAAE;YACrC,OAAO,CAAC,SAAoC,KAAI;AAC9C,gBAAA,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAA;gBACnD,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAA;AACnD,aAAC,CAAA;SACF;;AAED,QAAA,OAAQ,MAAc,CAAC,QAAQ,CAAC,CAAA;KACjC;AACF;;;;"}
1
+ {"version":3,"file":"transaction-logger.js","sources":["../../src/testing/transaction-logger.ts"],"sourcesContent":["import algosdk from 'algosdk'\nimport { runWhenIndexerCaughtUp } from './indexer'\nimport Algodv2 = algosdk.Algodv2\nimport decodeSignedTransaction = algosdk.decodeSignedTransaction\nimport Indexer = algosdk.Indexer\n\n/**\n * Allows you to keep track of Algorand transaction IDs by wrapping an `Algodv2` in a proxy.\n * Useful for automated tests.\n */\nexport class TransactionLogger {\n private _sentTransactionIds: string[] = []\n\n /**\n * The list of transaction IDs that has been logged thus far.\n */\n get sentTransactionIds(): Readonly<string[]> {\n return this._sentTransactionIds\n }\n\n /**\n * Clear all logged IDs.\n */\n clear() {\n this._sentTransactionIds = []\n }\n\n /**\n * The method that captures raw transactions and stores the transaction IDs.\n */\n logRawTransaction(signedTransactions: Uint8Array | Uint8Array[]) {\n if (Array.isArray(signedTransactions)) {\n for (const stxn of signedTransactions) {\n const decoded = decodeSignedTransaction(stxn)\n this._sentTransactionIds.push(decoded.txn.txID())\n }\n } else {\n const decoded = decodeSignedTransaction(signedTransactions)\n this._sentTransactionIds.push(decoded.txn.txID())\n }\n }\n\n /** Return a proxy that wraps the given Algodv2 with this transaction logger.\n *\n * @param algod The `Algodv2` to wrap\n * @returns The wrapped `Algodv2`, any transactions sent using this algod instance will be logged by this transaction logger\n */\n capture(algod: Algodv2): Algodv2 {\n return new Proxy<Algodv2>(algod, new TransactionLoggingAlgodv2ProxyHandler(this))\n }\n\n /** Wait until all logged transactions IDs appear in the given `Indexer`. */\n async waitForIndexer(indexer: Indexer) {\n await Promise.all(this._sentTransactionIds.map((txnId) => runWhenIndexerCaughtUp(() => indexer.lookupTransactionByID(txnId).do())))\n }\n}\n\nclass TransactionLoggingAlgodv2ProxyHandler implements ProxyHandler<Algodv2> {\n private transactionLogger: TransactionLogger\n\n constructor(transactionLogger: TransactionLogger) {\n this.transactionLogger = transactionLogger\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n get(target: Algodv2, property: string | symbol, receiver: any) {\n if (property === 'sendRawTransaction') {\n return (stxOrStxs: Uint8Array | Uint8Array[]) => {\n this.transactionLogger.logRawTransaction(stxOrStxs)\n return target[property].call(receiver, stxOrStxs)\n }\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return (target as any)[property]\n }\n}\n"],"names":["indexer","runWhenIndexerCaughtUp"],"mappings":";;;;;AAGA,IAAO,uBAAuB,GAAG,OAAO,CAAC,uBAAuB;AAGhE;;;AAGG;MACU,iBAAiB,CAAA;AAA9B,IAAA,WAAA,GAAA;QACU,IAAmB,CAAA,mBAAA,GAAa,EAAE;;AAE1C;;AAEG;AACH,IAAA,IAAI,kBAAkB,GAAA;QACpB,OAAO,IAAI,CAAC,mBAAmB;;AAGjC;;AAEG;IACH,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,mBAAmB,GAAG,EAAE;;AAG/B;;AAEG;AACH,IAAA,iBAAiB,CAAC,kBAA6C,EAAA;AAC7D,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE;AACrC,YAAA,KAAK,MAAM,IAAI,IAAI,kBAAkB,EAAE;AACrC,gBAAA,MAAM,OAAO,GAAG,uBAAuB,CAAC,IAAI,CAAC;AAC7C,gBAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;;;aAE9C;AACL,YAAA,MAAM,OAAO,GAAG,uBAAuB,CAAC,kBAAkB,CAAC;AAC3D,YAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;;;AAIrD;;;;AAIG;AACH,IAAA,OAAO,CAAC,KAAc,EAAA;QACpB,OAAO,IAAI,KAAK,CAAU,KAAK,EAAE,IAAI,qCAAqC,CAAC,IAAI,CAAC,CAAC;;;IAInF,MAAM,cAAc,CAACA,SAAgB,EAAA;AACnC,QAAA,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,KAAK,KAAKC,8BAAsB,CAAC,MAAMD,SAAO,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;;AAEtI;AAED,MAAM,qCAAqC,CAAA;AAGzC,IAAA,WAAA,CAAY,iBAAoC,EAAA;AAC9C,QAAA,IAAI,CAAC,iBAAiB,GAAG,iBAAiB;;;AAI5C,IAAA,GAAG,CAAC,MAAe,EAAE,QAAyB,EAAE,QAAa,EAAA;AAC3D,QAAA,IAAI,QAAQ,KAAK,oBAAoB,EAAE;YACrC,OAAO,CAAC,SAAoC,KAAI;AAC9C,gBAAA,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,SAAS,CAAC;gBACnD,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC;AACnD,aAAC;;;AAGH,QAAA,OAAQ,MAAc,CAAC,QAAQ,CAAC;;AAEnC;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"transaction-logger.mjs","sources":["../../src/testing/transaction-logger.ts"],"sourcesContent":["import algosdk from 'algosdk'\nimport { runWhenIndexerCaughtUp } from './indexer'\nimport Algodv2 = algosdk.Algodv2\nimport decodeSignedTransaction = algosdk.decodeSignedTransaction\nimport Indexer = algosdk.Indexer\n\n/**\n * Allows you to keep track of Algorand transaction IDs by wrapping an `Algodv2` in a proxy.\n * Useful for automated tests.\n */\nexport class TransactionLogger {\n private _sentTransactionIds: string[] = []\n\n /**\n * The list of transaction IDs that has been logged thus far.\n */\n get sentTransactionIds(): Readonly<string[]> {\n return this._sentTransactionIds\n }\n\n /**\n * Clear all logged IDs.\n */\n clear() {\n this._sentTransactionIds = []\n }\n\n /**\n * The method that captures raw transactions and stores the transaction IDs.\n */\n logRawTransaction(signedTransactions: Uint8Array | Uint8Array[]) {\n if (Array.isArray(signedTransactions)) {\n for (const stxn of signedTransactions) {\n const decoded = decodeSignedTransaction(stxn)\n this._sentTransactionIds.push(decoded.txn.txID())\n }\n } else {\n const decoded = decodeSignedTransaction(signedTransactions)\n this._sentTransactionIds.push(decoded.txn.txID())\n }\n }\n\n /** Return a proxy that wraps the given Algodv2 with this transaction logger.\n *\n * @param algod The `Algodv2` to wrap\n * @returns The wrapped `Algodv2`, any transactions sent using this algod instance will be logged by this transaction logger\n */\n capture(algod: Algodv2): Algodv2 {\n return new Proxy<Algodv2>(algod, new TransactionLoggingAlgodv2ProxyHandler(this))\n }\n\n /** Wait until all logged transactions IDs appear in the given `Indexer`. */\n async waitForIndexer(indexer: Indexer) {\n await Promise.all(this._sentTransactionIds.map((txnId) => runWhenIndexerCaughtUp(() => indexer.lookupTransactionByID(txnId).do())))\n }\n}\n\nclass TransactionLoggingAlgodv2ProxyHandler implements ProxyHandler<Algodv2> {\n private transactionLogger: TransactionLogger\n\n constructor(transactionLogger: TransactionLogger) {\n this.transactionLogger = transactionLogger\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n get(target: Algodv2, property: string | symbol, receiver: any) {\n if (property === 'sendRawTransaction') {\n return (stxOrStxs: Uint8Array | Uint8Array[]) => {\n this.transactionLogger.logRawTransaction(stxOrStxs)\n return target[property].call(receiver, stxOrStxs)\n }\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return (target as any)[property]\n }\n}\n"],"names":[],"mappings":";;;AAGA,IAAO,uBAAuB,GAAG,OAAO,CAAC,uBAAuB,CAAA;AAGhE;;;AAGG;MACU,iBAAiB,CAAA;AAA9B,IAAA,WAAA,GAAA;QACU,IAAmB,CAAA,mBAAA,GAAa,EAAE,CAAA;KA4C3C;AA1CC;;AAEG;AACH,IAAA,IAAI,kBAAkB,GAAA;QACpB,OAAO,IAAI,CAAC,mBAAmB,CAAA;KAChC;AAED;;AAEG;IACH,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAA;KAC9B;AAED;;AAEG;AACH,IAAA,iBAAiB,CAAC,kBAA6C,EAAA;AAC7D,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE;AACrC,YAAA,KAAK,MAAM,IAAI,IAAI,kBAAkB,EAAE;AACrC,gBAAA,MAAM,OAAO,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAA;AAC7C,gBAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAA;aAClD;SACF;aAAM;AACL,YAAA,MAAM,OAAO,GAAG,uBAAuB,CAAC,kBAAkB,CAAC,CAAA;AAC3D,YAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAA;SAClD;KACF;AAED;;;;AAIG;AACH,IAAA,OAAO,CAAC,KAAc,EAAA;QACpB,OAAO,IAAI,KAAK,CAAU,KAAK,EAAE,IAAI,qCAAqC,CAAC,IAAI,CAAC,CAAC,CAAA;KAClF;;IAGD,MAAM,cAAc,CAAC,OAAgB,EAAA;AACnC,QAAA,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,sBAAsB,CAAC,MAAM,OAAO,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA;KACpI;AACF,CAAA;AAED,MAAM,qCAAqC,CAAA;AAGzC,IAAA,WAAA,CAAY,iBAAoC,EAAA;AAC9C,QAAA,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAA;KAC3C;;AAGD,IAAA,GAAG,CAAC,MAAe,EAAE,QAAyB,EAAE,QAAa,EAAA;AAC3D,QAAA,IAAI,QAAQ,KAAK,oBAAoB,EAAE;YACrC,OAAO,CAAC,SAAoC,KAAI;AAC9C,gBAAA,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAA;gBACnD,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAA;AACnD,aAAC,CAAA;SACF;;AAED,QAAA,OAAQ,MAAc,CAAC,QAAQ,CAAC,CAAA;KACjC;AACF;;;;"}
1
+ {"version":3,"file":"transaction-logger.mjs","sources":["../../src/testing/transaction-logger.ts"],"sourcesContent":["import algosdk from 'algosdk'\nimport { runWhenIndexerCaughtUp } from './indexer'\nimport Algodv2 = algosdk.Algodv2\nimport decodeSignedTransaction = algosdk.decodeSignedTransaction\nimport Indexer = algosdk.Indexer\n\n/**\n * Allows you to keep track of Algorand transaction IDs by wrapping an `Algodv2` in a proxy.\n * Useful for automated tests.\n */\nexport class TransactionLogger {\n private _sentTransactionIds: string[] = []\n\n /**\n * The list of transaction IDs that has been logged thus far.\n */\n get sentTransactionIds(): Readonly<string[]> {\n return this._sentTransactionIds\n }\n\n /**\n * Clear all logged IDs.\n */\n clear() {\n this._sentTransactionIds = []\n }\n\n /**\n * The method that captures raw transactions and stores the transaction IDs.\n */\n logRawTransaction(signedTransactions: Uint8Array | Uint8Array[]) {\n if (Array.isArray(signedTransactions)) {\n for (const stxn of signedTransactions) {\n const decoded = decodeSignedTransaction(stxn)\n this._sentTransactionIds.push(decoded.txn.txID())\n }\n } else {\n const decoded = decodeSignedTransaction(signedTransactions)\n this._sentTransactionIds.push(decoded.txn.txID())\n }\n }\n\n /** Return a proxy that wraps the given Algodv2 with this transaction logger.\n *\n * @param algod The `Algodv2` to wrap\n * @returns The wrapped `Algodv2`, any transactions sent using this algod instance will be logged by this transaction logger\n */\n capture(algod: Algodv2): Algodv2 {\n return new Proxy<Algodv2>(algod, new TransactionLoggingAlgodv2ProxyHandler(this))\n }\n\n /** Wait until all logged transactions IDs appear in the given `Indexer`. */\n async waitForIndexer(indexer: Indexer) {\n await Promise.all(this._sentTransactionIds.map((txnId) => runWhenIndexerCaughtUp(() => indexer.lookupTransactionByID(txnId).do())))\n }\n}\n\nclass TransactionLoggingAlgodv2ProxyHandler implements ProxyHandler<Algodv2> {\n private transactionLogger: TransactionLogger\n\n constructor(transactionLogger: TransactionLogger) {\n this.transactionLogger = transactionLogger\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n get(target: Algodv2, property: string | symbol, receiver: any) {\n if (property === 'sendRawTransaction') {\n return (stxOrStxs: Uint8Array | Uint8Array[]) => {\n this.transactionLogger.logRawTransaction(stxOrStxs)\n return target[property].call(receiver, stxOrStxs)\n }\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return (target as any)[property]\n }\n}\n"],"names":[],"mappings":";;;AAGA,IAAO,uBAAuB,GAAG,OAAO,CAAC,uBAAuB;AAGhE;;;AAGG;MACU,iBAAiB,CAAA;AAA9B,IAAA,WAAA,GAAA;QACU,IAAmB,CAAA,mBAAA,GAAa,EAAE;;AAE1C;;AAEG;AACH,IAAA,IAAI,kBAAkB,GAAA;QACpB,OAAO,IAAI,CAAC,mBAAmB;;AAGjC;;AAEG;IACH,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,mBAAmB,GAAG,EAAE;;AAG/B;;AAEG;AACH,IAAA,iBAAiB,CAAC,kBAA6C,EAAA;AAC7D,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE;AACrC,YAAA,KAAK,MAAM,IAAI,IAAI,kBAAkB,EAAE;AACrC,gBAAA,MAAM,OAAO,GAAG,uBAAuB,CAAC,IAAI,CAAC;AAC7C,gBAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;;;aAE9C;AACL,YAAA,MAAM,OAAO,GAAG,uBAAuB,CAAC,kBAAkB,CAAC;AAC3D,YAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;;;AAIrD;;;;AAIG;AACH,IAAA,OAAO,CAAC,KAAc,EAAA;QACpB,OAAO,IAAI,KAAK,CAAU,KAAK,EAAE,IAAI,qCAAqC,CAAC,IAAI,CAAC,CAAC;;;IAInF,MAAM,cAAc,CAAC,OAAgB,EAAA;AACnC,QAAA,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,sBAAsB,CAAC,MAAM,OAAO,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;;AAEtI;AAED,MAAM,qCAAqC,CAAA;AAGzC,IAAA,WAAA,CAAY,iBAAoC,EAAA;AAC9C,QAAA,IAAI,CAAC,iBAAiB,GAAG,iBAAiB;;;AAI5C,IAAA,GAAG,CAAC,MAAe,EAAE,QAAyB,EAAE,QAAa,EAAA;AAC3D,QAAA,IAAI,QAAQ,KAAK,oBAAoB,EAAE;YACrC,OAAO,CAAC,SAAoC,KAAI;AAC9C,gBAAA,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,SAAS,CAAC;gBACnD,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC;AACnD,aAAC;;;AAGH,QAAA,OAAQ,MAAc,CAAC,QAAQ,CAAC;;AAEnC;;;;"}
@@ -12,7 +12,7 @@ var ABIMethod = algosdk.ABIMethod;
12
12
  /** @deprecated Bridges between legacy `sendTransaction` behaviour and new `AlgorandClient` behaviour. */
13
13
  async function legacySendTransactionBridge(algod, from, sendParams, params, txn, send, suggestedParams) {
14
14
  const appManager = new types_appManager.AppManager(algod);
15
- const newGroup = () => new types_composer.default({
15
+ const newGroup = () => new types_composer.TransactionComposer({
16
16
  algod,
17
17
  getSigner: () => transaction.getSenderTransactionSigner(from),
18
18
  getSuggestedParams: async () => (suggestedParams ? { ...suggestedParams } : await algod.getTransactionParams().do()),
@@ -34,7 +34,7 @@ async function legacySendTransactionBridge(algod, from, sendParams, params, txn,
34
34
  txns
35
35
  .map((txn, i) => ({
36
36
  txn,
37
- signer: 'signers' in transaction$1 ? transaction$1.signers.get(i) ?? transaction.getSenderTransactionSigner(from) : transaction.getSenderTransactionSigner(from),
37
+ signer: 'signers' in transaction$1 ? (transaction$1.signers.get(i) ?? transaction.getSenderTransactionSigner(from)) : transaction.getSenderTransactionSigner(from),
38
38
  }))
39
39
  .forEach((t) => sendParams.atc.addTransaction(t));
40
40
  // Populate ATC with method calls
@@ -1 +1 @@
1
- {"version":3,"file":"legacy-bridge.js","sources":["../../src/transaction/legacy-bridge.ts"],"sourcesContent":["import algosdk from 'algosdk'\nimport { AlgorandClientTransactionCreator } from '../types/algorand-client-transaction-creator'\nimport { AlgorandClientTransactionSender } from '../types/algorand-client-transaction-sender'\nimport { ABIAppCallArgs, BoxIdentifier as LegacyBoxIdentifier, BoxReference as LegacyBoxReference, RawAppCallArgs } from '../types/app'\nimport { AppManager, BoxReference } from '../types/app-manager'\nimport { AssetManager } from '../types/asset-manager'\nimport AlgoKitComposer, {\n AppCallMethodCall,\n AppCallParams,\n AppCreateMethodCall,\n AppCreateParams,\n AppDeleteMethodCall,\n AppDeleteParams,\n AppUpdateMethodCall,\n AppUpdateParams,\n BuiltTransactions,\n CommonTransactionParams,\n} from '../types/composer'\nimport {\n SendParams,\n SendSingleTransactionResult,\n SendTransactionFrom,\n SendTransactionParams,\n SendTransactionResult,\n TransactionNote,\n} from '../types/transaction'\nimport { encodeLease, encodeTransactionNote, getSenderAddress, getSenderTransactionSigner } from './transaction'\nimport Algodv2 = algosdk.Algodv2\nimport Transaction = algosdk.Transaction\nimport ABIMethod = algosdk.ABIMethod\n\n/** @deprecated Bridges between legacy `sendTransaction` behaviour and new `AlgorandClient` behaviour. */\nexport async function legacySendTransactionBridge<T extends CommonTransactionParams, TResult extends SendSingleTransactionResult>(\n algod: Algodv2,\n from: SendTransactionFrom,\n sendParams: SendTransactionParams,\n params: T,\n txn:\n | ((c: AlgorandClientTransactionCreator) => (params: T) => Promise<Transaction>)\n | ((c: AlgorandClientTransactionCreator) => (params: T) => Promise<BuiltTransactions>),\n send: (c: AlgorandClientTransactionSender) => (params: T & SendParams) => Promise<TResult>,\n suggestedParams?: algosdk.SuggestedParams,\n): Promise<(SendTransactionResult | TResult) & { transactions: Transaction[] }> {\n const appManager = new AppManager(algod)\n const newGroup = () =>\n new AlgoKitComposer({\n algod,\n getSigner: () => getSenderTransactionSigner(from),\n getSuggestedParams: async () => (suggestedParams ? { ...suggestedParams } : await algod.getTransactionParams().do()),\n appManager,\n })\n const transactionSender = new AlgorandClientTransactionSender(newGroup, new AssetManager(algod, newGroup), appManager)\n const transactionCreator = new AlgorandClientTransactionCreator(newGroup)\n\n if (sendParams.fee) {\n params.staticFee = sendParams.fee\n }\n\n if (sendParams.maxFee) {\n params.maxFee = sendParams.maxFee\n }\n\n if (sendParams.atc || sendParams.skipSending) {\n const transaction = await txn(transactionCreator)(params)\n const txns = 'transactions' in transaction ? transaction.transactions : [transaction]\n if (sendParams.atc) {\n const baseIndex = sendParams.atc.count()\n txns\n .map((txn, i) => ({\n txn,\n signer:\n 'signers' in transaction ? transaction.signers.get(i) ?? getSenderTransactionSigner(from) : getSenderTransactionSigner(from),\n }))\n .forEach((t) => sendParams.atc!.addTransaction(t))\n // Populate ATC with method calls\n if ('transactions' in transaction) {\n transaction.methodCalls.forEach((m, i) => sendParams.atc!['methodCalls'].set(i + baseIndex, m))\n }\n }\n return { transaction: txns.at(-1)!, transactions: txns }\n }\n\n return { ...(await send(transactionSender)({ ...sendParams, ...params })) }\n}\n\n/** @deprecated Bridges between legacy `sendTransaction` behaviour for app transactions and new `AlgorandClient` behaviour. */\nexport async function legacySendAppTransactionBridge<\n T extends\n | AppCreateParams\n | AppUpdateParams\n | AppDeleteParams\n | AppCallParams\n | AppCreateMethodCall\n | AppUpdateMethodCall\n | AppDeleteMethodCall\n | AppCallMethodCall,\n TResult extends SendSingleTransactionResult,\n>(\n algod: Algodv2,\n from: SendTransactionFrom,\n appArgs: RawAppCallArgs | ABIAppCallArgs | undefined,\n sendParams: SendTransactionParams & { note?: TransactionNote },\n params: Omit<T, 'accountReferences' | 'appReferences' | 'assetReferences' | 'boxReferences' | 'args' | 'lease' | 'rekeyTo' | 'note'>,\n txn:\n | ((c: AlgorandClientTransactionCreator) => (params: T) => Promise<Transaction>)\n | ((c: AlgorandClientTransactionCreator) => (params: T) => Promise<BuiltTransactions>),\n send: (c: AlgorandClientTransactionSender) => (params: T & SendParams) => Promise<TResult>,\n suggestedParams?: algosdk.SuggestedParams,\n): Promise<(SendTransactionResult | TResult) & { transactions: Transaction[] }> {\n const encoder = new TextEncoder()\n\n const paramsWithAppArgs = {\n ...params,\n accountReferences: appArgs?.accounts?.map((a) => (typeof a === 'string' ? a : algosdk.encodeAddress(a.publicKey))),\n appReferences: appArgs?.apps?.map((a) => BigInt(a)),\n assetReferences: appArgs?.assets?.map((a) => BigInt(a)),\n boxReferences: appArgs?.boxes?.map(_getBoxReference)?.map((r) => ({ appId: BigInt(r.appIndex), name: r.name }) satisfies BoxReference),\n lease: appArgs?.lease,\n rekeyTo: appArgs?.rekeyTo ? getSenderAddress(appArgs?.rekeyTo) : undefined,\n args: appArgs\n ? 'methodArgs' in appArgs\n ? (await _getAppArgsForABICall(appArgs, from)).methodArgs\n : appArgs?.appArgs?.map((a) => (typeof a === 'string' ? encoder.encode(a) : a))\n : undefined,\n note: encodeTransactionNote(sendParams?.note),\n } as T\n\n return await legacySendTransactionBridge(algod, from, sendParams, paramsWithAppArgs, txn, send, suggestedParams)\n}\n\n/**\n * @deprecated\n */\nexport async function _getAppArgsForABICall(args: ABIAppCallArgs, from: SendTransactionFrom) {\n const signer = getSenderTransactionSigner(from)\n const methodArgs = await Promise.all(\n ('methodArgs' in args ? args.methodArgs : args)?.map(async (a, index) => {\n if (a === undefined) {\n throw new Error(`Argument at position ${index} does not have a value`)\n }\n if (typeof a !== 'object') {\n return a\n }\n // Handle the various forms of transactions to wrangle them for ATC\n return 'txn' in a\n ? a\n : a instanceof Promise\n ? { txn: (await a).transaction, signer }\n : 'transaction' in a\n ? { txn: a.transaction, signer: 'signer' in a ? getSenderTransactionSigner(a.signer) : signer }\n : 'txID' in a\n ? { txn: a, signer }\n : a\n }),\n )\n return {\n method: 'txnCount' in args.method ? args.method : new ABIMethod(args.method),\n sender: getSenderAddress(from),\n signer: signer,\n boxes: args.boxes?.map(_getBoxReference),\n lease: encodeLease(args.lease),\n appForeignApps: args.apps,\n appForeignAssets: args.assets,\n appAccounts: args.accounts?.map(_getAccountAddress),\n methodArgs: methodArgs,\n rekeyTo: args?.rekeyTo ? (typeof args.rekeyTo === 'string' ? args.rekeyTo : getSenderAddress(args.rekeyTo)) : undefined,\n }\n}\n\nfunction _getAccountAddress(account: string | algosdk.Address) {\n return typeof account === 'string' ? account : algosdk.encodeAddress(account.publicKey)\n}\n\n/** @deprecated */\nexport function _getBoxReference(box: LegacyBoxIdentifier | LegacyBoxReference | algosdk.BoxReference): algosdk.BoxReference {\n const encoder = new TextEncoder()\n\n if (typeof box === 'object' && 'appIndex' in box) {\n return box\n }\n\n const ref = typeof box === 'object' && 'appId' in box ? box : { appId: 0, name: box }\n return {\n appIndex: ref.appId,\n name:\n typeof ref.name === 'string'\n ? encoder.encode(ref.name)\n : 'length' in ref.name\n ? ref.name\n : algosdk.decodeAddress(getSenderAddress(ref.name)).publicKey,\n } as algosdk.BoxReference\n}\n"],"names":["AppManager","AlgoKitComposer","getSenderTransactionSigner","AlgorandClientTransactionSender","AssetManager","AlgorandClientTransactionCreator","transaction","getSenderAddress","encodeTransactionNote","encodeLease"],"mappings":"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"}
1
+ {"version":3,"file":"legacy-bridge.js","sources":["../../src/transaction/legacy-bridge.ts"],"sourcesContent":["import algosdk from 'algosdk'\nimport { AlgorandClientTransactionCreator } from '../types/algorand-client-transaction-creator'\nimport { AlgorandClientTransactionSender } from '../types/algorand-client-transaction-sender'\nimport { ABIAppCallArgs, BoxIdentifier as LegacyBoxIdentifier, BoxReference as LegacyBoxReference, RawAppCallArgs } from '../types/app'\nimport { AppManager, BoxReference } from '../types/app-manager'\nimport { AssetManager } from '../types/asset-manager'\nimport {\n AppCallMethodCall,\n AppCallParams,\n AppCreateMethodCall,\n AppCreateParams,\n AppDeleteMethodCall,\n AppDeleteParams,\n AppUpdateMethodCall,\n AppUpdateParams,\n BuiltTransactions,\n CommonTransactionParams,\n TransactionComposer,\n} from '../types/composer'\nimport {\n SendParams,\n SendSingleTransactionResult,\n SendTransactionFrom,\n SendTransactionParams,\n SendTransactionResult,\n TransactionNote,\n} from '../types/transaction'\nimport { encodeLease, encodeTransactionNote, getSenderAddress, getSenderTransactionSigner } from './transaction'\nimport Algodv2 = algosdk.Algodv2\nimport Transaction = algosdk.Transaction\nimport ABIMethod = algosdk.ABIMethod\n\n/** @deprecated Bridges between legacy `sendTransaction` behaviour and new `AlgorandClient` behaviour. */\nexport async function legacySendTransactionBridge<T extends CommonTransactionParams, TResult extends SendSingleTransactionResult>(\n algod: Algodv2,\n from: SendTransactionFrom,\n sendParams: SendTransactionParams,\n params: T,\n txn:\n | ((c: AlgorandClientTransactionCreator) => (params: T) => Promise<Transaction>)\n | ((c: AlgorandClientTransactionCreator) => (params: T) => Promise<BuiltTransactions>),\n send: (c: AlgorandClientTransactionSender) => (params: T & SendParams) => Promise<TResult>,\n suggestedParams?: algosdk.SuggestedParams,\n): Promise<(SendTransactionResult | TResult) & { transactions: Transaction[] }> {\n const appManager = new AppManager(algod)\n const newGroup = () =>\n new TransactionComposer({\n algod,\n getSigner: () => getSenderTransactionSigner(from),\n getSuggestedParams: async () => (suggestedParams ? { ...suggestedParams } : await algod.getTransactionParams().do()),\n appManager,\n })\n const transactionSender = new AlgorandClientTransactionSender(newGroup, new AssetManager(algod, newGroup), appManager)\n const transactionCreator = new AlgorandClientTransactionCreator(newGroup)\n\n if (sendParams.fee) {\n params.staticFee = sendParams.fee\n }\n\n if (sendParams.maxFee) {\n params.maxFee = sendParams.maxFee\n }\n\n if (sendParams.atc || sendParams.skipSending) {\n const transaction = await txn(transactionCreator)(params)\n const txns = 'transactions' in transaction ? transaction.transactions : [transaction]\n if (sendParams.atc) {\n const baseIndex = sendParams.atc.count()\n txns\n .map((txn, i) => ({\n txn,\n signer:\n 'signers' in transaction ? (transaction.signers.get(i) ?? getSenderTransactionSigner(from)) : getSenderTransactionSigner(from),\n }))\n .forEach((t) => sendParams.atc!.addTransaction(t))\n // Populate ATC with method calls\n if ('transactions' in transaction) {\n transaction.methodCalls.forEach((m, i) => sendParams.atc!['methodCalls'].set(i + baseIndex, m))\n }\n }\n return { transaction: txns.at(-1)!, transactions: txns }\n }\n\n return { ...(await send(transactionSender)({ ...sendParams, ...params })) }\n}\n\n/** @deprecated Bridges between legacy `sendTransaction` behaviour for app transactions and new `AlgorandClient` behaviour. */\nexport async function legacySendAppTransactionBridge<\n T extends\n | AppCreateParams\n | AppUpdateParams\n | AppDeleteParams\n | AppCallParams\n | AppCreateMethodCall\n | AppUpdateMethodCall\n | AppDeleteMethodCall\n | AppCallMethodCall,\n TResult extends SendSingleTransactionResult,\n>(\n algod: Algodv2,\n from: SendTransactionFrom,\n appArgs: RawAppCallArgs | ABIAppCallArgs | undefined,\n sendParams: SendTransactionParams & { note?: TransactionNote },\n params: Omit<T, 'accountReferences' | 'appReferences' | 'assetReferences' | 'boxReferences' | 'args' | 'lease' | 'rekeyTo' | 'note'>,\n txn:\n | ((c: AlgorandClientTransactionCreator) => (params: T) => Promise<Transaction>)\n | ((c: AlgorandClientTransactionCreator) => (params: T) => Promise<BuiltTransactions>),\n send: (c: AlgorandClientTransactionSender) => (params: T & SendParams) => Promise<TResult>,\n suggestedParams?: algosdk.SuggestedParams,\n): Promise<(SendTransactionResult | TResult) & { transactions: Transaction[] }> {\n const encoder = new TextEncoder()\n\n const paramsWithAppArgs = {\n ...params,\n accountReferences: appArgs?.accounts?.map((a) => (typeof a === 'string' ? a : algosdk.encodeAddress(a.publicKey))),\n appReferences: appArgs?.apps?.map((a) => BigInt(a)),\n assetReferences: appArgs?.assets?.map((a) => BigInt(a)),\n boxReferences: appArgs?.boxes?.map(_getBoxReference)?.map((r) => ({ appId: BigInt(r.appIndex), name: r.name }) satisfies BoxReference),\n lease: appArgs?.lease,\n rekeyTo: appArgs?.rekeyTo ? getSenderAddress(appArgs?.rekeyTo) : undefined,\n args: appArgs\n ? 'methodArgs' in appArgs\n ? (await _getAppArgsForABICall(appArgs, from)).methodArgs\n : appArgs?.appArgs?.map((a) => (typeof a === 'string' ? encoder.encode(a) : a))\n : undefined,\n note: encodeTransactionNote(sendParams?.note),\n } as T\n\n return await legacySendTransactionBridge(algod, from, sendParams, paramsWithAppArgs, txn, send, suggestedParams)\n}\n\n/**\n * @deprecated\n */\nexport async function _getAppArgsForABICall(args: ABIAppCallArgs, from: SendTransactionFrom) {\n const signer = getSenderTransactionSigner(from)\n const methodArgs = await Promise.all(\n ('methodArgs' in args ? args.methodArgs : args)?.map(async (a, index) => {\n if (a === undefined) {\n throw new Error(`Argument at position ${index} does not have a value`)\n }\n if (typeof a !== 'object') {\n return a\n }\n // Handle the various forms of transactions to wrangle them for ATC\n return 'txn' in a\n ? a\n : a instanceof Promise\n ? { txn: (await a).transaction, signer }\n : 'transaction' in a\n ? { txn: a.transaction, signer: 'signer' in a ? getSenderTransactionSigner(a.signer) : signer }\n : 'txID' in a\n ? { txn: a, signer }\n : a\n }),\n )\n return {\n method: 'txnCount' in args.method ? args.method : new ABIMethod(args.method),\n sender: getSenderAddress(from),\n signer: signer,\n boxes: args.boxes?.map(_getBoxReference),\n lease: encodeLease(args.lease),\n appForeignApps: args.apps,\n appForeignAssets: args.assets,\n appAccounts: args.accounts?.map(_getAccountAddress),\n methodArgs: methodArgs,\n rekeyTo: args?.rekeyTo ? (typeof args.rekeyTo === 'string' ? args.rekeyTo : getSenderAddress(args.rekeyTo)) : undefined,\n }\n}\n\nfunction _getAccountAddress(account: string | algosdk.Address) {\n return typeof account === 'string' ? account : algosdk.encodeAddress(account.publicKey)\n}\n\n/** @deprecated */\nexport function _getBoxReference(box: LegacyBoxIdentifier | LegacyBoxReference | algosdk.BoxReference): algosdk.BoxReference {\n const encoder = new TextEncoder()\n\n if (typeof box === 'object' && 'appIndex' in box) {\n return box\n }\n\n const ref = typeof box === 'object' && 'appId' in box ? box : { appId: 0, name: box }\n return {\n appIndex: ref.appId,\n name:\n typeof ref.name === 'string'\n ? encoder.encode(ref.name)\n : 'length' in ref.name\n ? ref.name\n : algosdk.decodeAddress(getSenderAddress(ref.name)).publicKey,\n } as algosdk.BoxReference\n}\n"],"names":["AppManager","TransactionComposer","getSenderTransactionSigner","AlgorandClientTransactionSender","AssetManager","AlgorandClientTransactionCreator","transaction","getSenderAddress","encodeTransactionNote","encodeLease"],"mappings":"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"}
@@ -3,14 +3,14 @@ import { AlgorandClientTransactionCreator } from '../types/algorand-client-trans
3
3
  import { AlgorandClientTransactionSender } from '../types/algorand-client-transaction-sender.mjs';
4
4
  import { AppManager } from '../types/app-manager.mjs';
5
5
  import { AssetManager } from '../types/asset-manager.mjs';
6
- import AlgoKitComposer from '../types/composer.mjs';
6
+ import { TransactionComposer } from '../types/composer.mjs';
7
7
  import { getSenderTransactionSigner, getSenderAddress, encodeTransactionNote, encodeLease } from './transaction.mjs';
8
8
 
9
9
  var ABIMethod = algosdk.ABIMethod;
10
10
  /** @deprecated Bridges between legacy `sendTransaction` behaviour and new `AlgorandClient` behaviour. */
11
11
  async function legacySendTransactionBridge(algod, from, sendParams, params, txn, send, suggestedParams) {
12
12
  const appManager = new AppManager(algod);
13
- const newGroup = () => new AlgoKitComposer({
13
+ const newGroup = () => new TransactionComposer({
14
14
  algod,
15
15
  getSigner: () => getSenderTransactionSigner(from),
16
16
  getSuggestedParams: async () => (suggestedParams ? { ...suggestedParams } : await algod.getTransactionParams().do()),
@@ -32,7 +32,7 @@ async function legacySendTransactionBridge(algod, from, sendParams, params, txn,
32
32
  txns
33
33
  .map((txn, i) => ({
34
34
  txn,
35
- signer: 'signers' in transaction ? transaction.signers.get(i) ?? getSenderTransactionSigner(from) : getSenderTransactionSigner(from),
35
+ signer: 'signers' in transaction ? (transaction.signers.get(i) ?? getSenderTransactionSigner(from)) : getSenderTransactionSigner(from),
36
36
  }))
37
37
  .forEach((t) => sendParams.atc.addTransaction(t));
38
38
  // Populate ATC with method calls
@@ -1 +1 @@
1
- {"version":3,"file":"legacy-bridge.mjs","sources":["../../src/transaction/legacy-bridge.ts"],"sourcesContent":["import algosdk from 'algosdk'\nimport { AlgorandClientTransactionCreator } from '../types/algorand-client-transaction-creator'\nimport { AlgorandClientTransactionSender } from '../types/algorand-client-transaction-sender'\nimport { ABIAppCallArgs, BoxIdentifier as LegacyBoxIdentifier, BoxReference as LegacyBoxReference, RawAppCallArgs } from '../types/app'\nimport { AppManager, BoxReference } from '../types/app-manager'\nimport { AssetManager } from '../types/asset-manager'\nimport AlgoKitComposer, {\n AppCallMethodCall,\n AppCallParams,\n AppCreateMethodCall,\n AppCreateParams,\n AppDeleteMethodCall,\n AppDeleteParams,\n AppUpdateMethodCall,\n AppUpdateParams,\n BuiltTransactions,\n CommonTransactionParams,\n} from '../types/composer'\nimport {\n SendParams,\n SendSingleTransactionResult,\n SendTransactionFrom,\n SendTransactionParams,\n SendTransactionResult,\n TransactionNote,\n} from '../types/transaction'\nimport { encodeLease, encodeTransactionNote, getSenderAddress, getSenderTransactionSigner } from './transaction'\nimport Algodv2 = algosdk.Algodv2\nimport Transaction = algosdk.Transaction\nimport ABIMethod = algosdk.ABIMethod\n\n/** @deprecated Bridges between legacy `sendTransaction` behaviour and new `AlgorandClient` behaviour. */\nexport async function legacySendTransactionBridge<T extends CommonTransactionParams, TResult extends SendSingleTransactionResult>(\n algod: Algodv2,\n from: SendTransactionFrom,\n sendParams: SendTransactionParams,\n params: T,\n txn:\n | ((c: AlgorandClientTransactionCreator) => (params: T) => Promise<Transaction>)\n | ((c: AlgorandClientTransactionCreator) => (params: T) => Promise<BuiltTransactions>),\n send: (c: AlgorandClientTransactionSender) => (params: T & SendParams) => Promise<TResult>,\n suggestedParams?: algosdk.SuggestedParams,\n): Promise<(SendTransactionResult | TResult) & { transactions: Transaction[] }> {\n const appManager = new AppManager(algod)\n const newGroup = () =>\n new AlgoKitComposer({\n algod,\n getSigner: () => getSenderTransactionSigner(from),\n getSuggestedParams: async () => (suggestedParams ? { ...suggestedParams } : await algod.getTransactionParams().do()),\n appManager,\n })\n const transactionSender = new AlgorandClientTransactionSender(newGroup, new AssetManager(algod, newGroup), appManager)\n const transactionCreator = new AlgorandClientTransactionCreator(newGroup)\n\n if (sendParams.fee) {\n params.staticFee = sendParams.fee\n }\n\n if (sendParams.maxFee) {\n params.maxFee = sendParams.maxFee\n }\n\n if (sendParams.atc || sendParams.skipSending) {\n const transaction = await txn(transactionCreator)(params)\n const txns = 'transactions' in transaction ? transaction.transactions : [transaction]\n if (sendParams.atc) {\n const baseIndex = sendParams.atc.count()\n txns\n .map((txn, i) => ({\n txn,\n signer:\n 'signers' in transaction ? transaction.signers.get(i) ?? getSenderTransactionSigner(from) : getSenderTransactionSigner(from),\n }))\n .forEach((t) => sendParams.atc!.addTransaction(t))\n // Populate ATC with method calls\n if ('transactions' in transaction) {\n transaction.methodCalls.forEach((m, i) => sendParams.atc!['methodCalls'].set(i + baseIndex, m))\n }\n }\n return { transaction: txns.at(-1)!, transactions: txns }\n }\n\n return { ...(await send(transactionSender)({ ...sendParams, ...params })) }\n}\n\n/** @deprecated Bridges between legacy `sendTransaction` behaviour for app transactions and new `AlgorandClient` behaviour. */\nexport async function legacySendAppTransactionBridge<\n T extends\n | AppCreateParams\n | AppUpdateParams\n | AppDeleteParams\n | AppCallParams\n | AppCreateMethodCall\n | AppUpdateMethodCall\n | AppDeleteMethodCall\n | AppCallMethodCall,\n TResult extends SendSingleTransactionResult,\n>(\n algod: Algodv2,\n from: SendTransactionFrom,\n appArgs: RawAppCallArgs | ABIAppCallArgs | undefined,\n sendParams: SendTransactionParams & { note?: TransactionNote },\n params: Omit<T, 'accountReferences' | 'appReferences' | 'assetReferences' | 'boxReferences' | 'args' | 'lease' | 'rekeyTo' | 'note'>,\n txn:\n | ((c: AlgorandClientTransactionCreator) => (params: T) => Promise<Transaction>)\n | ((c: AlgorandClientTransactionCreator) => (params: T) => Promise<BuiltTransactions>),\n send: (c: AlgorandClientTransactionSender) => (params: T & SendParams) => Promise<TResult>,\n suggestedParams?: algosdk.SuggestedParams,\n): Promise<(SendTransactionResult | TResult) & { transactions: Transaction[] }> {\n const encoder = new TextEncoder()\n\n const paramsWithAppArgs = {\n ...params,\n accountReferences: appArgs?.accounts?.map((a) => (typeof a === 'string' ? a : algosdk.encodeAddress(a.publicKey))),\n appReferences: appArgs?.apps?.map((a) => BigInt(a)),\n assetReferences: appArgs?.assets?.map((a) => BigInt(a)),\n boxReferences: appArgs?.boxes?.map(_getBoxReference)?.map((r) => ({ appId: BigInt(r.appIndex), name: r.name }) satisfies BoxReference),\n lease: appArgs?.lease,\n rekeyTo: appArgs?.rekeyTo ? getSenderAddress(appArgs?.rekeyTo) : undefined,\n args: appArgs\n ? 'methodArgs' in appArgs\n ? (await _getAppArgsForABICall(appArgs, from)).methodArgs\n : appArgs?.appArgs?.map((a) => (typeof a === 'string' ? encoder.encode(a) : a))\n : undefined,\n note: encodeTransactionNote(sendParams?.note),\n } as T\n\n return await legacySendTransactionBridge(algod, from, sendParams, paramsWithAppArgs, txn, send, suggestedParams)\n}\n\n/**\n * @deprecated\n */\nexport async function _getAppArgsForABICall(args: ABIAppCallArgs, from: SendTransactionFrom) {\n const signer = getSenderTransactionSigner(from)\n const methodArgs = await Promise.all(\n ('methodArgs' in args ? args.methodArgs : args)?.map(async (a, index) => {\n if (a === undefined) {\n throw new Error(`Argument at position ${index} does not have a value`)\n }\n if (typeof a !== 'object') {\n return a\n }\n // Handle the various forms of transactions to wrangle them for ATC\n return 'txn' in a\n ? a\n : a instanceof Promise\n ? { txn: (await a).transaction, signer }\n : 'transaction' in a\n ? { txn: a.transaction, signer: 'signer' in a ? getSenderTransactionSigner(a.signer) : signer }\n : 'txID' in a\n ? { txn: a, signer }\n : a\n }),\n )\n return {\n method: 'txnCount' in args.method ? args.method : new ABIMethod(args.method),\n sender: getSenderAddress(from),\n signer: signer,\n boxes: args.boxes?.map(_getBoxReference),\n lease: encodeLease(args.lease),\n appForeignApps: args.apps,\n appForeignAssets: args.assets,\n appAccounts: args.accounts?.map(_getAccountAddress),\n methodArgs: methodArgs,\n rekeyTo: args?.rekeyTo ? (typeof args.rekeyTo === 'string' ? args.rekeyTo : getSenderAddress(args.rekeyTo)) : undefined,\n }\n}\n\nfunction _getAccountAddress(account: string | algosdk.Address) {\n return typeof account === 'string' ? account : algosdk.encodeAddress(account.publicKey)\n}\n\n/** @deprecated */\nexport function _getBoxReference(box: LegacyBoxIdentifier | LegacyBoxReference | algosdk.BoxReference): algosdk.BoxReference {\n const encoder = new TextEncoder()\n\n if (typeof box === 'object' && 'appIndex' in box) {\n return box\n }\n\n const ref = typeof box === 'object' && 'appId' in box ? box : { appId: 0, name: box }\n return {\n appIndex: ref.appId,\n name:\n typeof ref.name === 'string'\n ? encoder.encode(ref.name)\n : 'length' in ref.name\n ? ref.name\n : algosdk.decodeAddress(getSenderAddress(ref.name)).publicKey,\n } as algosdk.BoxReference\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"legacy-bridge.mjs","sources":["../../src/transaction/legacy-bridge.ts"],"sourcesContent":["import algosdk from 'algosdk'\nimport { AlgorandClientTransactionCreator } from '../types/algorand-client-transaction-creator'\nimport { AlgorandClientTransactionSender } from '../types/algorand-client-transaction-sender'\nimport { ABIAppCallArgs, BoxIdentifier as LegacyBoxIdentifier, BoxReference as LegacyBoxReference, RawAppCallArgs } from '../types/app'\nimport { AppManager, BoxReference } from '../types/app-manager'\nimport { AssetManager } from '../types/asset-manager'\nimport {\n AppCallMethodCall,\n AppCallParams,\n AppCreateMethodCall,\n AppCreateParams,\n AppDeleteMethodCall,\n AppDeleteParams,\n AppUpdateMethodCall,\n AppUpdateParams,\n BuiltTransactions,\n CommonTransactionParams,\n TransactionComposer,\n} from '../types/composer'\nimport {\n SendParams,\n SendSingleTransactionResult,\n SendTransactionFrom,\n SendTransactionParams,\n SendTransactionResult,\n TransactionNote,\n} from '../types/transaction'\nimport { encodeLease, encodeTransactionNote, getSenderAddress, getSenderTransactionSigner } from './transaction'\nimport Algodv2 = algosdk.Algodv2\nimport Transaction = algosdk.Transaction\nimport ABIMethod = algosdk.ABIMethod\n\n/** @deprecated Bridges between legacy `sendTransaction` behaviour and new `AlgorandClient` behaviour. */\nexport async function legacySendTransactionBridge<T extends CommonTransactionParams, TResult extends SendSingleTransactionResult>(\n algod: Algodv2,\n from: SendTransactionFrom,\n sendParams: SendTransactionParams,\n params: T,\n txn:\n | ((c: AlgorandClientTransactionCreator) => (params: T) => Promise<Transaction>)\n | ((c: AlgorandClientTransactionCreator) => (params: T) => Promise<BuiltTransactions>),\n send: (c: AlgorandClientTransactionSender) => (params: T & SendParams) => Promise<TResult>,\n suggestedParams?: algosdk.SuggestedParams,\n): Promise<(SendTransactionResult | TResult) & { transactions: Transaction[] }> {\n const appManager = new AppManager(algod)\n const newGroup = () =>\n new TransactionComposer({\n algod,\n getSigner: () => getSenderTransactionSigner(from),\n getSuggestedParams: async () => (suggestedParams ? { ...suggestedParams } : await algod.getTransactionParams().do()),\n appManager,\n })\n const transactionSender = new AlgorandClientTransactionSender(newGroup, new AssetManager(algod, newGroup), appManager)\n const transactionCreator = new AlgorandClientTransactionCreator(newGroup)\n\n if (sendParams.fee) {\n params.staticFee = sendParams.fee\n }\n\n if (sendParams.maxFee) {\n params.maxFee = sendParams.maxFee\n }\n\n if (sendParams.atc || sendParams.skipSending) {\n const transaction = await txn(transactionCreator)(params)\n const txns = 'transactions' in transaction ? transaction.transactions : [transaction]\n if (sendParams.atc) {\n const baseIndex = sendParams.atc.count()\n txns\n .map((txn, i) => ({\n txn,\n signer:\n 'signers' in transaction ? (transaction.signers.get(i) ?? getSenderTransactionSigner(from)) : getSenderTransactionSigner(from),\n }))\n .forEach((t) => sendParams.atc!.addTransaction(t))\n // Populate ATC with method calls\n if ('transactions' in transaction) {\n transaction.methodCalls.forEach((m, i) => sendParams.atc!['methodCalls'].set(i + baseIndex, m))\n }\n }\n return { transaction: txns.at(-1)!, transactions: txns }\n }\n\n return { ...(await send(transactionSender)({ ...sendParams, ...params })) }\n}\n\n/** @deprecated Bridges between legacy `sendTransaction` behaviour for app transactions and new `AlgorandClient` behaviour. */\nexport async function legacySendAppTransactionBridge<\n T extends\n | AppCreateParams\n | AppUpdateParams\n | AppDeleteParams\n | AppCallParams\n | AppCreateMethodCall\n | AppUpdateMethodCall\n | AppDeleteMethodCall\n | AppCallMethodCall,\n TResult extends SendSingleTransactionResult,\n>(\n algod: Algodv2,\n from: SendTransactionFrom,\n appArgs: RawAppCallArgs | ABIAppCallArgs | undefined,\n sendParams: SendTransactionParams & { note?: TransactionNote },\n params: Omit<T, 'accountReferences' | 'appReferences' | 'assetReferences' | 'boxReferences' | 'args' | 'lease' | 'rekeyTo' | 'note'>,\n txn:\n | ((c: AlgorandClientTransactionCreator) => (params: T) => Promise<Transaction>)\n | ((c: AlgorandClientTransactionCreator) => (params: T) => Promise<BuiltTransactions>),\n send: (c: AlgorandClientTransactionSender) => (params: T & SendParams) => Promise<TResult>,\n suggestedParams?: algosdk.SuggestedParams,\n): Promise<(SendTransactionResult | TResult) & { transactions: Transaction[] }> {\n const encoder = new TextEncoder()\n\n const paramsWithAppArgs = {\n ...params,\n accountReferences: appArgs?.accounts?.map((a) => (typeof a === 'string' ? a : algosdk.encodeAddress(a.publicKey))),\n appReferences: appArgs?.apps?.map((a) => BigInt(a)),\n assetReferences: appArgs?.assets?.map((a) => BigInt(a)),\n boxReferences: appArgs?.boxes?.map(_getBoxReference)?.map((r) => ({ appId: BigInt(r.appIndex), name: r.name }) satisfies BoxReference),\n lease: appArgs?.lease,\n rekeyTo: appArgs?.rekeyTo ? getSenderAddress(appArgs?.rekeyTo) : undefined,\n args: appArgs\n ? 'methodArgs' in appArgs\n ? (await _getAppArgsForABICall(appArgs, from)).methodArgs\n : appArgs?.appArgs?.map((a) => (typeof a === 'string' ? encoder.encode(a) : a))\n : undefined,\n note: encodeTransactionNote(sendParams?.note),\n } as T\n\n return await legacySendTransactionBridge(algod, from, sendParams, paramsWithAppArgs, txn, send, suggestedParams)\n}\n\n/**\n * @deprecated\n */\nexport async function _getAppArgsForABICall(args: ABIAppCallArgs, from: SendTransactionFrom) {\n const signer = getSenderTransactionSigner(from)\n const methodArgs = await Promise.all(\n ('methodArgs' in args ? args.methodArgs : args)?.map(async (a, index) => {\n if (a === undefined) {\n throw new Error(`Argument at position ${index} does not have a value`)\n }\n if (typeof a !== 'object') {\n return a\n }\n // Handle the various forms of transactions to wrangle them for ATC\n return 'txn' in a\n ? a\n : a instanceof Promise\n ? { txn: (await a).transaction, signer }\n : 'transaction' in a\n ? { txn: a.transaction, signer: 'signer' in a ? getSenderTransactionSigner(a.signer) : signer }\n : 'txID' in a\n ? { txn: a, signer }\n : a\n }),\n )\n return {\n method: 'txnCount' in args.method ? args.method : new ABIMethod(args.method),\n sender: getSenderAddress(from),\n signer: signer,\n boxes: args.boxes?.map(_getBoxReference),\n lease: encodeLease(args.lease),\n appForeignApps: args.apps,\n appForeignAssets: args.assets,\n appAccounts: args.accounts?.map(_getAccountAddress),\n methodArgs: methodArgs,\n rekeyTo: args?.rekeyTo ? (typeof args.rekeyTo === 'string' ? args.rekeyTo : getSenderAddress(args.rekeyTo)) : undefined,\n }\n}\n\nfunction _getAccountAddress(account: string | algosdk.Address) {\n return typeof account === 'string' ? account : algosdk.encodeAddress(account.publicKey)\n}\n\n/** @deprecated */\nexport function _getBoxReference(box: LegacyBoxIdentifier | LegacyBoxReference | algosdk.BoxReference): algosdk.BoxReference {\n const encoder = new TextEncoder()\n\n if (typeof box === 'object' && 'appIndex' in box) {\n return box\n }\n\n const ref = typeof box === 'object' && 'appId' in box ? box : { appId: 0, name: box }\n return {\n appIndex: ref.appId,\n name:\n typeof ref.name === 'string'\n ? encoder.encode(ref.name)\n : 'length' in ref.name\n ? ref.name\n : algosdk.decodeAddress(getSenderAddress(ref.name)).publicKey,\n } as algosdk.BoxReference\n}\n"],"names":[],"mappings":"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"}
@@ -14,6 +14,7 @@ async function performAtomicTransactionComposerSimulate(atc, algod) {
14
14
  const decodedSignedTransactions = unsignedTransactionsSigners.map((ts) => algosdk.encodeUnsignedSimulateTransaction(ts.txn));
15
15
  const simulateRequest = new modelsv2.SimulateRequest({
16
16
  allowEmptySignatures: true,
17
+ fixSigners: true,
17
18
  allowMoreLogging: true,
18
19
  execTraceConfig: new modelsv2.SimulateTraceConfig({
19
20
  enable: true,
@@ -1 +1 @@
1
- {"version":3,"file":"perform-atomic-transaction-composer-simulate.js","sources":["../../src/transaction/perform-atomic-transaction-composer-simulate.ts"],"sourcesContent":["import algosdk from 'algosdk'\nimport Algodv2 = algosdk.Algodv2\nimport AtomicTransactionComposer = algosdk.AtomicTransactionComposer\nimport EncodedSignedTransaction = algosdk.EncodedSignedTransaction\nimport modelsv2 = algosdk.modelsv2\n\n/**\n * Performs a simulation of the transactions loaded into the given AtomicTransactionComposer.\n * @param atc The AtomicTransactionComposer with transaction(s) loaded.\n * @param algod An Algod client to perform the simulation.\n * @returns The simulation result, which includes various details about how the transactions would be processed.\n */\nexport async function performAtomicTransactionComposerSimulate(atc: AtomicTransactionComposer, algod: Algodv2) {\n const unsignedTransactionsSigners = atc.buildGroup()\n const decodedSignedTransactions = unsignedTransactionsSigners.map((ts) => algosdk.encodeUnsignedSimulateTransaction(ts.txn))\n\n const simulateRequest = new modelsv2.SimulateRequest({\n allowEmptySignatures: true,\n allowMoreLogging: true,\n execTraceConfig: new modelsv2.SimulateTraceConfig({\n enable: true,\n scratchChange: true,\n stackChange: true,\n stateChange: true,\n }),\n txnGroups: [\n new modelsv2.SimulateRequestTransactionGroup({\n txns: decodedSignedTransactions.map((txn) => algosdk.decodeObj(txn)) as EncodedSignedTransaction[],\n }),\n ],\n })\n const simulateResult = await algod.simulateTransactions(simulateRequest).do()\n return simulateResult\n}\n"],"names":[],"mappings":";;;;AAIA,IAAO,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAA;AAElC;;;;;AAKG;AACI,eAAe,wCAAwC,CAAC,GAA8B,EAAE,KAAc,EAAA;AAC3G,IAAA,MAAM,2BAA2B,GAAG,GAAG,CAAC,UAAU,EAAE,CAAA;IACpD,MAAM,yBAAyB,GAAG,2BAA2B,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,iCAAiC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAA;AAE5H,IAAA,MAAM,eAAe,GAAG,IAAI,QAAQ,CAAC,eAAe,CAAC;AACnD,QAAA,oBAAoB,EAAE,IAAI;AAC1B,QAAA,gBAAgB,EAAE,IAAI;AACtB,QAAA,eAAe,EAAE,IAAI,QAAQ,CAAC,mBAAmB,CAAC;AAChD,YAAA,MAAM,EAAE,IAAI;AACZ,YAAA,aAAa,EAAE,IAAI;AACnB,YAAA,WAAW,EAAE,IAAI;AACjB,YAAA,WAAW,EAAE,IAAI;SAClB,CAAC;AACF,QAAA,SAAS,EAAE;YACT,IAAI,QAAQ,CAAC,+BAA+B,CAAC;AAC3C,gBAAA,IAAI,EAAE,yBAAyB,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAA+B;aACnG,CAAC;AACH,SAAA;AACF,KAAA,CAAC,CAAA;AACF,IAAA,MAAM,cAAc,GAAG,MAAM,KAAK,CAAC,oBAAoB,CAAC,eAAe,CAAC,CAAC,EAAE,EAAE,CAAA;AAC7E,IAAA,OAAO,cAAc,CAAA;AACvB;;;;"}
1
+ {"version":3,"file":"perform-atomic-transaction-composer-simulate.js","sources":["../../src/transaction/perform-atomic-transaction-composer-simulate.ts"],"sourcesContent":["import algosdk from 'algosdk'\nimport Algodv2 = algosdk.Algodv2\nimport AtomicTransactionComposer = algosdk.AtomicTransactionComposer\nimport EncodedSignedTransaction = algosdk.EncodedSignedTransaction\nimport modelsv2 = algosdk.modelsv2\n\n/**\n * Performs a simulation of the transactions loaded into the given AtomicTransactionComposer.\n * @param atc The AtomicTransactionComposer with transaction(s) loaded.\n * @param algod An Algod client to perform the simulation.\n * @returns The simulation result, which includes various details about how the transactions would be processed.\n */\nexport async function performAtomicTransactionComposerSimulate(atc: AtomicTransactionComposer, algod: Algodv2) {\n const unsignedTransactionsSigners = atc.buildGroup()\n const decodedSignedTransactions = unsignedTransactionsSigners.map((ts) => algosdk.encodeUnsignedSimulateTransaction(ts.txn))\n\n const simulateRequest = new modelsv2.SimulateRequest({\n allowEmptySignatures: true,\n fixSigners: true,\n allowMoreLogging: true,\n execTraceConfig: new modelsv2.SimulateTraceConfig({\n enable: true,\n scratchChange: true,\n stackChange: true,\n stateChange: true,\n }),\n txnGroups: [\n new modelsv2.SimulateRequestTransactionGroup({\n txns: decodedSignedTransactions.map((txn) => algosdk.decodeObj(txn)) as EncodedSignedTransaction[],\n }),\n ],\n })\n const simulateResult = await algod.simulateTransactions(simulateRequest).do()\n return simulateResult\n}\n"],"names":[],"mappings":";;;;AAIA,IAAO,QAAQ,GAAG,OAAO,CAAC,QAAQ;AAElC;;;;;AAKG;AACI,eAAe,wCAAwC,CAAC,GAA8B,EAAE,KAAc,EAAA;AAC3G,IAAA,MAAM,2BAA2B,GAAG,GAAG,CAAC,UAAU,EAAE;IACpD,MAAM,yBAAyB,GAAG,2BAA2B,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,iCAAiC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AAE5H,IAAA,MAAM,eAAe,GAAG,IAAI,QAAQ,CAAC,eAAe,CAAC;AACnD,QAAA,oBAAoB,EAAE,IAAI;AAC1B,QAAA,UAAU,EAAE,IAAI;AAChB,QAAA,gBAAgB,EAAE,IAAI;AACtB,QAAA,eAAe,EAAE,IAAI,QAAQ,CAAC,mBAAmB,CAAC;AAChD,YAAA,MAAM,EAAE,IAAI;AACZ,YAAA,aAAa,EAAE,IAAI;AACnB,YAAA,WAAW,EAAE,IAAI;AACjB,YAAA,WAAW,EAAE,IAAI;SAClB,CAAC;AACF,QAAA,SAAS,EAAE;YACT,IAAI,QAAQ,CAAC,+BAA+B,CAAC;AAC3C,gBAAA,IAAI,EAAE,yBAAyB,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAA+B;aACnG,CAAC;AACH,SAAA;AACF,KAAA,CAAC;AACF,IAAA,MAAM,cAAc,GAAG,MAAM,KAAK,CAAC,oBAAoB,CAAC,eAAe,CAAC,CAAC,EAAE,EAAE;AAC7E,IAAA,OAAO,cAAc;AACvB;;;;"}
@@ -12,6 +12,7 @@ async function performAtomicTransactionComposerSimulate(atc, algod) {
12
12
  const decodedSignedTransactions = unsignedTransactionsSigners.map((ts) => algosdk.encodeUnsignedSimulateTransaction(ts.txn));
13
13
  const simulateRequest = new modelsv2.SimulateRequest({
14
14
  allowEmptySignatures: true,
15
+ fixSigners: true,
15
16
  allowMoreLogging: true,
16
17
  execTraceConfig: new modelsv2.SimulateTraceConfig({
17
18
  enable: true,
@@ -1 +1 @@
1
- {"version":3,"file":"perform-atomic-transaction-composer-simulate.mjs","sources":["../../src/transaction/perform-atomic-transaction-composer-simulate.ts"],"sourcesContent":["import algosdk from 'algosdk'\nimport Algodv2 = algosdk.Algodv2\nimport AtomicTransactionComposer = algosdk.AtomicTransactionComposer\nimport EncodedSignedTransaction = algosdk.EncodedSignedTransaction\nimport modelsv2 = algosdk.modelsv2\n\n/**\n * Performs a simulation of the transactions loaded into the given AtomicTransactionComposer.\n * @param atc The AtomicTransactionComposer with transaction(s) loaded.\n * @param algod An Algod client to perform the simulation.\n * @returns The simulation result, which includes various details about how the transactions would be processed.\n */\nexport async function performAtomicTransactionComposerSimulate(atc: AtomicTransactionComposer, algod: Algodv2) {\n const unsignedTransactionsSigners = atc.buildGroup()\n const decodedSignedTransactions = unsignedTransactionsSigners.map((ts) => algosdk.encodeUnsignedSimulateTransaction(ts.txn))\n\n const simulateRequest = new modelsv2.SimulateRequest({\n allowEmptySignatures: true,\n allowMoreLogging: true,\n execTraceConfig: new modelsv2.SimulateTraceConfig({\n enable: true,\n scratchChange: true,\n stackChange: true,\n stateChange: true,\n }),\n txnGroups: [\n new modelsv2.SimulateRequestTransactionGroup({\n txns: decodedSignedTransactions.map((txn) => algosdk.decodeObj(txn)) as EncodedSignedTransaction[],\n }),\n ],\n })\n const simulateResult = await algod.simulateTransactions(simulateRequest).do()\n return simulateResult\n}\n"],"names":[],"mappings":";;AAIA,IAAO,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAA;AAElC;;;;;AAKG;AACI,eAAe,wCAAwC,CAAC,GAA8B,EAAE,KAAc,EAAA;AAC3G,IAAA,MAAM,2BAA2B,GAAG,GAAG,CAAC,UAAU,EAAE,CAAA;IACpD,MAAM,yBAAyB,GAAG,2BAA2B,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,iCAAiC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAA;AAE5H,IAAA,MAAM,eAAe,GAAG,IAAI,QAAQ,CAAC,eAAe,CAAC;AACnD,QAAA,oBAAoB,EAAE,IAAI;AAC1B,QAAA,gBAAgB,EAAE,IAAI;AACtB,QAAA,eAAe,EAAE,IAAI,QAAQ,CAAC,mBAAmB,CAAC;AAChD,YAAA,MAAM,EAAE,IAAI;AACZ,YAAA,aAAa,EAAE,IAAI;AACnB,YAAA,WAAW,EAAE,IAAI;AACjB,YAAA,WAAW,EAAE,IAAI;SAClB,CAAC;AACF,QAAA,SAAS,EAAE;YACT,IAAI,QAAQ,CAAC,+BAA+B,CAAC;AAC3C,gBAAA,IAAI,EAAE,yBAAyB,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAA+B;aACnG,CAAC;AACH,SAAA;AACF,KAAA,CAAC,CAAA;AACF,IAAA,MAAM,cAAc,GAAG,MAAM,KAAK,CAAC,oBAAoB,CAAC,eAAe,CAAC,CAAC,EAAE,EAAE,CAAA;AAC7E,IAAA,OAAO,cAAc,CAAA;AACvB;;;;"}
1
+ {"version":3,"file":"perform-atomic-transaction-composer-simulate.mjs","sources":["../../src/transaction/perform-atomic-transaction-composer-simulate.ts"],"sourcesContent":["import algosdk from 'algosdk'\nimport Algodv2 = algosdk.Algodv2\nimport AtomicTransactionComposer = algosdk.AtomicTransactionComposer\nimport EncodedSignedTransaction = algosdk.EncodedSignedTransaction\nimport modelsv2 = algosdk.modelsv2\n\n/**\n * Performs a simulation of the transactions loaded into the given AtomicTransactionComposer.\n * @param atc The AtomicTransactionComposer with transaction(s) loaded.\n * @param algod An Algod client to perform the simulation.\n * @returns The simulation result, which includes various details about how the transactions would be processed.\n */\nexport async function performAtomicTransactionComposerSimulate(atc: AtomicTransactionComposer, algod: Algodv2) {\n const unsignedTransactionsSigners = atc.buildGroup()\n const decodedSignedTransactions = unsignedTransactionsSigners.map((ts) => algosdk.encodeUnsignedSimulateTransaction(ts.txn))\n\n const simulateRequest = new modelsv2.SimulateRequest({\n allowEmptySignatures: true,\n fixSigners: true,\n allowMoreLogging: true,\n execTraceConfig: new modelsv2.SimulateTraceConfig({\n enable: true,\n scratchChange: true,\n stackChange: true,\n stateChange: true,\n }),\n txnGroups: [\n new modelsv2.SimulateRequestTransactionGroup({\n txns: decodedSignedTransactions.map((txn) => algosdk.decodeObj(txn)) as EncodedSignedTransaction[],\n }),\n ],\n })\n const simulateResult = await algod.simulateTransactions(simulateRequest).do()\n return simulateResult\n}\n"],"names":[],"mappings":";;AAIA,IAAO,QAAQ,GAAG,OAAO,CAAC,QAAQ;AAElC;;;;;AAKG;AACI,eAAe,wCAAwC,CAAC,GAA8B,EAAE,KAAc,EAAA;AAC3G,IAAA,MAAM,2BAA2B,GAAG,GAAG,CAAC,UAAU,EAAE;IACpD,MAAM,yBAAyB,GAAG,2BAA2B,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,iCAAiC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AAE5H,IAAA,MAAM,eAAe,GAAG,IAAI,QAAQ,CAAC,eAAe,CAAC;AACnD,QAAA,oBAAoB,EAAE,IAAI;AAC1B,QAAA,UAAU,EAAE,IAAI;AAChB,QAAA,gBAAgB,EAAE,IAAI;AACtB,QAAA,eAAe,EAAE,IAAI,QAAQ,CAAC,mBAAmB,CAAC;AAChD,YAAA,MAAM,EAAE,IAAI;AACZ,YAAA,aAAa,EAAE,IAAI;AACnB,YAAA,WAAW,EAAE,IAAI;AACjB,YAAA,WAAW,EAAE,IAAI;SAClB,CAAC;AACF,QAAA,SAAS,EAAE;YACT,IAAI,QAAQ,CAAC,+BAA+B,CAAC;AAC3C,gBAAA,IAAI,EAAE,yBAAyB,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAA+B;aACnG,CAAC;AACH,SAAA;AACF,KAAA,CAAC;AACF,IAAA,MAAM,cAAc,GAAG,MAAM,KAAK,CAAC,oBAAoB,CAAC,eAAe,CAAC,CAAC,EAAE,EAAE;AAC7E,IAAA,OAAO,cAAc;AACvB;;;;"}
@@ -1,5 +1,6 @@
1
1
  import algosdk from 'algosdk';
2
2
  import { AlgoAmount } from '../types/amount';
3
+ import { ABIReturn } from '../types/app';
3
4
  import { AtomicTransactionComposerToSend, SendAtomicTransactionComposerResults, SendTransactionFrom, SendTransactionParams, SendTransactionResult, TransactionGroupToSend, TransactionNote, TransactionToSign } from '../types/transaction';
4
5
  import Algodv2 = algosdk.Algodv2;
5
6
  import AtomicTransactionComposer = algosdk.AtomicTransactionComposer;
@@ -11,7 +12,7 @@ export declare const MAX_TRANSACTION_GROUP_SIZE = 16;
11
12
  export declare const MAX_APP_CALL_FOREIGN_REFERENCES = 8;
12
13
  export declare const MAX_APP_CALL_ACCOUNT_REFERENCES = 4;
13
14
  /**
14
- * @deprecated Convert your data to a `string` or `Uint8Array`, if using ARC-2 use `AlgoKitComposer.arc2Note`.
15
+ * @deprecated Convert your data to a `string` or `Uint8Array`, if using ARC-2 use `TransactionComposer.arc2Note`.
15
16
  *
16
17
  * Encodes a transaction note into a byte array ready to be included in an Algorand transaction.
17
18
  *
@@ -45,7 +46,7 @@ export declare function encodeLease(lease?: string | Uint8Array): Uint8Array | u
45
46
  */
46
47
  export declare const getSenderAddress: (sender: string | SendTransactionFrom) => string;
47
48
  /**
48
- * @deprecated Use `AlgorandClient` / `AlgoKitComposer` to construct transactions instead or
49
+ * @deprecated Use `AlgorandClient` / `TransactionComposer` to construct transactions instead or
49
50
  * construct an `algosdk.TransactionWithSigner` manually instead.
50
51
  *
51
52
  * Given a transaction in a variety of supported formats, returns a TransactionWithSigner object ready to be passed to an
@@ -69,7 +70,7 @@ export declare const getTransactionWithSigner: (transaction: TransactionWithSign
69
70
  */
70
71
  export declare const getSenderTransactionSigner: (val: SendTransactionFrom) => algosdk.TransactionSigner;
71
72
  /**
72
- * @deprecated Use `AlgorandClient` / `AlgoKitComposer` to sign transactions
73
+ * @deprecated Use `AlgorandClient` / `TransactionComposer` to sign transactions
73
74
  * or use the relevant underlying `account.signTxn` / `algosdk.signLogicSigTransactionObject`
74
75
  * / `multiSigAccount.sign` / `TransactionSigner` methods directly.
75
76
  *
@@ -80,7 +81,7 @@ export declare const getSenderTransactionSigner: (val: SendTransactionFrom) => a
80
81
  */
81
82
  export declare const signTransaction: (transaction: Transaction, signer: SendTransactionFrom) => Promise<Uint8Array>;
82
83
  /**
83
- * @deprecated Use `AlgorandClient` / `AlgoKitComposer` to send transactions.
84
+ * @deprecated Use `AlgorandClient` / `TransactionComposer` to send transactions.
84
85
  *
85
86
  * Prepares a transaction for sending and then (if instructed) signs and sends the given transaction to the chain.
86
87
  *
@@ -122,6 +123,12 @@ export declare function populateAppCallResources(atc: algosdk.AtomicTransactionC
122
123
  * @returns An object with transaction IDs, transactions, group transaction ID (`groupTransactionId`) if more than 1 transaction sent, and (if `skipWaiting` is `false` or unset) confirmation (`confirmation`)
123
124
  */
124
125
  export declare const sendAtomicTransactionComposer: (atcSend: AtomicTransactionComposerToSend, algod: Algodv2) => Promise<SendAtomicTransactionComposerResults>;
126
+ /**
127
+ * Takes an algosdk `ABIResult` and converts it to an `ABIReturn`.
128
+ * Converts `bigint`'s for Uint's < 64 to `number` for easier use.
129
+ * @param result The `ABIReturn`
130
+ */
131
+ export declare function getABIReturnValue(result: algosdk.ABIResult): ABIReturn;
125
132
  /**
126
133
  * @deprecated Use `performAtomicTransactionComposerSimulate`, dry-run is a deprecated Algorand feature.
127
134
  *
@@ -132,7 +139,7 @@ export declare const sendAtomicTransactionComposer: (atcSend: AtomicTransactionC
132
139
  */
133
140
  export declare function performAtomicTransactionComposerDryrun(atc: AtomicTransactionComposer, algod: Algodv2): Promise<algosdk.DryrunResult>;
134
141
  /**
135
- * @deprecated Use `AlgoKitComposer` (`algorand.newGroup()`) or `AtomicTransactionComposer` to construct and send group transactions instead.
142
+ * @deprecated Use `TransactionComposer` (`algorand.newGroup()`) or `AtomicTransactionComposer` to construct and send group transactions instead.
136
143
  *
137
144
  * Signs and sends a group of [up to 16](https://developer.algorand.org/docs/get-details/atomic_transfers/#create-transactions) transactions to the chain
138
145
  *
@@ -156,7 +163,7 @@ export declare const sendGroupOfTransactions: (groupSend: TransactionGroupToSend
156
163
  */
157
164
  export declare const waitForConfirmation: (transactionId: string, maxRoundsToWait: number | bigint, algod: Algodv2) => Promise<modelsv2.PendingTransactionResponse>;
158
165
  /**
159
- * @deprecated Use `AlgoKitComposer` and the `maxFee` field in the transaction params instead.
166
+ * @deprecated Use `TransactionComposer` and the `maxFee` field in the transaction params instead.
160
167
  *
161
168
  * Limit the acceptable fee to a defined amount of µAlgo.
162
169
  * This also sets the transaction to be flatFee to ensure the transaction only succeeds at
@@ -166,7 +173,7 @@ export declare const waitForConfirmation: (transactionId: string, maxRoundsToWai
166
173
  */
167
174
  export declare function capTransactionFee(transaction: algosdk.Transaction | SuggestedParams, maxAcceptableFee: AlgoAmount): void;
168
175
  /**
169
- * @deprecated Use `AlgoKitComposer` and the `maxFee` and `staticFee` fields in the transaction params instead.
176
+ * @deprecated Use `TransactionComposer` and the `maxFee` and `staticFee` fields in the transaction params instead.
170
177
  *
171
178
  * Allows for control of fees on a `Transaction` or `SuggestedParams` object
172
179
  * @param transaction The transaction or suggested params