@algorandfoundation/algokit-utils 6.3.0-beta.1 → 7.0.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 (132) hide show
  1. package/account/account.d.ts +7 -7
  2. package/account/account.js +7 -7
  3. package/account/account.mjs +7 -7
  4. package/account/get-account.d.ts +2 -2
  5. package/account/get-account.js +1 -1
  6. package/account/get-account.mjs +1 -1
  7. package/account/get-dispenser-account.d.ts +1 -1
  8. package/account/get-dispenser-account.js +1 -1
  9. package/account/get-dispenser-account.mjs +1 -1
  10. package/account/mnemonic-account.d.ts +1 -1
  11. package/account/mnemonic-account.js +1 -1
  12. package/account/mnemonic-account.mjs +1 -1
  13. package/app-deploy.d.ts +18 -1
  14. package/app-deploy.d.ts.map +1 -1
  15. package/app-deploy.js +142 -333
  16. package/app-deploy.js.map +1 -1
  17. package/app-deploy.mjs +145 -336
  18. package/app-deploy.mjs.map +1 -1
  19. package/app.d.ts +38 -1
  20. package/app.d.ts.map +1 -1
  21. package/app.js +113 -370
  22. package/app.js.map +1 -1
  23. package/app.mjs +114 -371
  24. package/app.mjs.map +1 -1
  25. package/asset.d.ts +5 -5
  26. package/asset.js +5 -5
  27. package/asset.mjs +5 -5
  28. package/debugging/debugging.js +2 -2
  29. package/debugging/debugging.js.map +1 -1
  30. package/debugging/debugging.mjs +2 -2
  31. package/debugging/debugging.mjs.map +1 -1
  32. package/index.d.ts +1 -1
  33. package/index.d.ts.map +1 -1
  34. package/index.js +12 -12
  35. package/index.mjs +1 -1
  36. package/localnet/get-kmd-wallet-account.d.ts +1 -1
  37. package/localnet/get-kmd-wallet-account.js +1 -1
  38. package/localnet/get-kmd-wallet-account.mjs +1 -1
  39. package/localnet/get-localnet-dispenser-account.d.ts +1 -1
  40. package/localnet/get-localnet-dispenser-account.js +1 -1
  41. package/localnet/get-localnet-dispenser-account.mjs +1 -1
  42. package/localnet/get-or-create-kmd-wallet-account.d.ts +1 -1
  43. package/localnet/get-or-create-kmd-wallet-account.js +1 -1
  44. package/localnet/get-or-create-kmd-wallet-account.mjs +1 -1
  45. package/localnet/is-localnet.d.ts +1 -1
  46. package/localnet/is-localnet.js +1 -1
  47. package/localnet/is-localnet.mjs +1 -1
  48. package/network-client.d.ts +2 -2
  49. package/network-client.d.ts.map +1 -1
  50. package/network-client.js +2 -2
  51. package/network-client.mjs +2 -2
  52. package/package.json +1 -1
  53. package/testing/fixtures/algorand-fixture.js +12 -12
  54. package/testing/fixtures/algorand-fixture.js.map +1 -1
  55. package/testing/fixtures/algorand-fixture.mjs +12 -12
  56. package/testing/fixtures/algorand-fixture.mjs.map +1 -1
  57. package/transaction/legacy-bridge.d.ts +31 -5
  58. package/transaction/legacy-bridge.d.ts.map +1 -1
  59. package/transaction/legacy-bridge.js +99 -5
  60. package/transaction/legacy-bridge.js.map +1 -1
  61. package/transaction/legacy-bridge.mjs +98 -7
  62. package/transaction/legacy-bridge.mjs.map +1 -1
  63. package/transfer/transfer-algos.d.ts +1 -1
  64. package/transfer/transfer-algos.js +1 -1
  65. package/transfer/transfer-algos.mjs +1 -1
  66. package/transfer/transfer.d.ts +1 -1
  67. package/transfer/transfer.js +1 -1
  68. package/transfer/transfer.mjs +1 -1
  69. package/types/account-manager.d.ts +1 -1
  70. package/types/account-manager.d.ts.map +1 -1
  71. package/types/algorand-client-transaction-creator.d.ts +450 -20
  72. package/types/algorand-client-transaction-creator.d.ts.map +1 -1
  73. package/types/algorand-client-transaction-creator.js +406 -22
  74. package/types/algorand-client-transaction-creator.js.map +1 -1
  75. package/types/algorand-client-transaction-creator.mjs +406 -22
  76. package/types/algorand-client-transaction-creator.mjs.map +1 -1
  77. package/types/algorand-client-transaction-sender.d.ts +750 -24
  78. package/types/algorand-client-transaction-sender.d.ts.map +1 -1
  79. package/types/algorand-client-transaction-sender.js +426 -12
  80. package/types/algorand-client-transaction-sender.js.map +1 -1
  81. package/types/algorand-client-transaction-sender.mjs +426 -12
  82. package/types/algorand-client-transaction-sender.mjs.map +1 -1
  83. package/types/algorand-client.d.ts +8 -0
  84. package/types/algorand-client.d.ts.map +1 -1
  85. package/types/algorand-client.js +14 -1
  86. package/types/algorand-client.js.map +1 -1
  87. package/types/algorand-client.mjs +14 -1
  88. package/types/algorand-client.mjs.map +1 -1
  89. package/types/app-client.d.ts +13 -1
  90. package/types/app-client.d.ts.map +1 -1
  91. package/types/app-client.js +8 -5
  92. package/types/app-client.js.map +1 -1
  93. package/types/app-client.mjs +9 -6
  94. package/types/app-client.mjs.map +1 -1
  95. package/types/app-deployer.d.ts +121 -0
  96. package/types/app-deployer.d.ts.map +1 -0
  97. package/types/app-deployer.js +354 -0
  98. package/types/app-deployer.js.map +1 -0
  99. package/types/app-deployer.mjs +352 -0
  100. package/types/app-deployer.mjs.map +1 -0
  101. package/types/app-manager.d.ts +235 -0
  102. package/types/app-manager.d.ts.map +1 -0
  103. package/types/app-manager.js +336 -0
  104. package/types/app-manager.js.map +1 -0
  105. package/types/app-manager.mjs +334 -0
  106. package/types/app-manager.mjs.map +1 -0
  107. package/types/app.d.ts +42 -7
  108. package/types/app.d.ts.map +1 -1
  109. package/types/app.js +1 -1
  110. package/types/app.js.map +1 -1
  111. package/types/app.mjs +1 -1
  112. package/types/app.mjs.map +1 -1
  113. package/types/client-manager.d.ts +2 -0
  114. package/types/client-manager.d.ts.map +1 -1
  115. package/types/client-manager.js +4 -0
  116. package/types/client-manager.js.map +1 -1
  117. package/types/client-manager.mjs +4 -0
  118. package/types/client-manager.mjs.map +1 -1
  119. package/types/composer.d.ts +150 -39
  120. package/types/composer.d.ts.map +1 -1
  121. package/types/composer.js +218 -62
  122. package/types/composer.js.map +1 -1
  123. package/types/composer.mjs +218 -62
  124. package/types/composer.mjs.map +1 -1
  125. package/types/expand.d.ts +8 -0
  126. package/types/expand.d.ts.map +1 -0
  127. package/types/expand.js +3 -0
  128. package/types/expand.js.map +1 -0
  129. package/types/expand.mjs +2 -0
  130. package/types/expand.mjs.map +1 -0
  131. package/types/transaction.d.ts +3 -0
  132. package/types/transaction.d.ts.map +1 -1
package/app-deploy.js CHANGED
@@ -2,16 +2,18 @@
2
2
 
3
3
  var algosdk = require('algosdk');
4
4
  var app = require('./app.js');
5
- var config = require('./config.js');
6
- var indexerLookup = require('./indexer-lookup.js');
5
+ var legacyBridge = require('./transaction/legacy-bridge.js');
7
6
  var transaction = require('./transaction/transaction.js');
7
+ var types_algorandClientTransactionSender = require('./types/algorand-client-transaction-sender.js');
8
8
  var types_app = require('./types/app.js');
9
+ var types_appDeployer = require('./types/app-deployer.js');
10
+ var types_appManager = require('./types/app-manager.js');
11
+ var types_assetManager = require('./types/asset-manager.js');
12
+ var types_composer = require('./types/composer.js');
9
13
 
10
- var AtomicTransactionComposer = algosdk.AtomicTransactionComposer;
11
- var getApplicationAddress = algosdk.getApplicationAddress;
12
- var modelsv2 = algosdk.modelsv2;
13
- var TransactionType = algosdk.TransactionType;
14
14
  /**
15
+ * @deprecated Use `algorand.appDeployer.deploy` instead.
16
+ *
15
17
  * Idempotently deploy (create, update/delete if changed) an app against the given name via the given creator account, including deploy-time template placeholder substitutions.
16
18
  *
17
19
  * To understand the architecture decisions behind this functionality please see https://github.com/algorandfoundation/algokit-cli/blob/main/docs/architecture-decisions/2023-01-12_smart-contract-deployment.md
@@ -27,230 +29,125 @@ var TransactionType = algosdk.TransactionType;
27
29
  * @returns The app reference of the new/existing app
28
30
  */
29
31
  async function deployApp(deployment, algod, indexer) {
30
- const { metadata, deployTimeParams: deployTimeParameters, onSchemaBreak, onUpdate, existingDeployments, createArgs, updateArgs, deleteArgs, createOnCompleteAction, ...appParams } = deployment;
31
- if (existingDeployments && existingDeployments.creator !== transaction.getSenderAddress(appParams.from)) {
32
- throw new Error(`Received invalid existingDeployments value for creator ${existingDeployments.creator} when attempting to deploy for creator ${appParams.from}`);
33
- }
34
- if (!existingDeployments && !indexer) {
35
- throw new Error(`Didn't receive an indexer client, but also didn't receive an existingDeployments cache - one of them must be provided`);
36
- }
37
- config.Config.getLogger(appParams.suppressLog).info(`Idempotently deploying app "${metadata.name}" from creator ${transaction.getSenderAddress(appParams.from)} using ${appParams.approvalProgram.length} bytes of teal code and ${appParams.clearStateProgram.length} bytes of teal code`);
38
- const compiledApproval = typeof appParams.approvalProgram === 'string'
39
- ? await performTemplateSubstitutionAndCompile(appParams.approvalProgram, algod, deployTimeParameters, metadata)
40
- : undefined;
41
- appParams.approvalProgram = compiledApproval ? compiledApproval.compiledBase64ToBytes : appParams.approvalProgram;
42
- const compiledClear = typeof appParams.clearStateProgram === 'string'
43
- ? await performTemplateSubstitutionAndCompile(appParams.clearStateProgram, algod, deployTimeParameters)
44
- : undefined;
45
- appParams.clearStateProgram = compiledClear ? compiledClear.compiledBase64ToBytes : appParams.clearStateProgram;
46
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
47
- const apps = existingDeployments ?? (await getCreatorAppsByName(appParams.from, indexer));
48
- const create = async (atc) => {
49
- const result = await app.createApp({
50
- ...appParams,
51
- onCompleteAction: createOnCompleteAction,
52
- args: createArgs,
53
- note: getAppDeploymentTransactionNote(metadata),
54
- atc,
55
- skipWaiting: false,
56
- }, algod);
57
- return {
58
- transaction: result.transaction,
59
- transactions: result.transactions,
60
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
61
- confirmation: result.confirmation,
62
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
63
- confirmations: result.confirmations,
64
- return: result.return,
65
- appId: result.appId,
66
- appAddress: result.appAddress,
67
- createdMetadata: metadata,
68
- createdRound: Number(result.confirmation?.confirmedRound),
69
- updatedRound: Number(result.confirmation?.confirmedRound),
70
- ...metadata,
71
- deleted: false,
72
- operationPerformed: 'create',
73
- compiledApproval,
74
- compiledClear,
75
- };
76
- };
77
- const existingApp = apps.apps[metadata.name];
78
- if (!existingApp || existingApp.deleted) {
79
- config.Config.getLogger(appParams.suppressLog).info(`App ${metadata.name} not found in apps created by ${transaction.getSenderAddress(appParams.from)}; deploying app with version ${metadata.version}.`);
80
- return await create();
81
- }
82
- config.Config.getLogger(appParams.suppressLog).info(`Existing app ${metadata.name} found by creator ${transaction.getSenderAddress(appParams.from)}, with app id ${existingApp.appId} and version ${existingApp.version}.`);
83
- const existingAppRecord = await app.getAppById(existingApp.appId, algod);
84
- const existingApproval = Buffer.from(existingAppRecord.params.approvalProgram).toString('base64');
85
- const existingClear = Buffer.from(existingAppRecord.params.clearStateProgram).toString('base64');
86
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
87
- const existingGlobalSchema = existingAppRecord.params.globalStateSchema;
88
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
89
- const existingLocalSchema = existingAppRecord.params.localStateSchema;
90
- const newGlobalSchema = new modelsv2.ApplicationStateSchema({
91
- numByteSlice: appParams.schema.globalByteSlices,
92
- numUint: appParams.schema.globalInts,
93
- });
94
- const newLocalSchema = new modelsv2.ApplicationStateSchema({
95
- numByteSlice: appParams.schema.localByteSlices,
96
- numUint: appParams.schema.localInts,
32
+ const appManager = new types_appManager.AppManager(algod);
33
+ const newGroup = () => new types_composer.default({
34
+ algod,
35
+ getSigner: () => transaction.getSenderTransactionSigner(deployment.from),
36
+ getSuggestedParams: async () => await transaction.getTransactionParams(deployment.transactionParams, algod),
37
+ appManager,
97
38
  });
98
- const newApproval = Buffer.from(appParams.approvalProgram).toString('base64');
99
- const newClear = Buffer.from(appParams.clearStateProgram).toString('base64');
100
- const isUpdate = newApproval !== existingApproval || newClear !== existingClear;
101
- const isSchemaBreak = isSchemaIsBroken(existingGlobalSchema, newGlobalSchema) || isSchemaIsBroken(existingLocalSchema, newLocalSchema);
102
- const replace = async () => {
103
- const atc = new AtomicTransactionComposer();
104
- // Create
105
- config.Config.getLogger(appParams.suppressLog).info(`Deploying a new ${metadata.name} app for ${transaction.getSenderAddress(appParams.from)}; deploying app with version ${metadata.version}.`);
106
- const { transaction: createTransaction } = await create(atc);
107
- const createTransactions = atc.clone().buildGroup();
108
- // Delete
109
- config.Config.getLogger(appParams.suppressLog).warn(`Deleting existing ${metadata.name} app with id ${existingApp.appId} from ${transaction.getSenderAddress(appParams.from)} account.`);
110
- const { transaction: deleteTransaction } = await app.callApp({
111
- appId: existingApp.appId,
112
- callType: 'delete_application',
113
- from: appParams.from,
114
- args: deleteArgs,
115
- transactionParams: appParams.transactionParams,
116
- suppressLog: appParams.suppressLog,
117
- skipSending: true,
118
- atc,
119
- }, algod);
120
- // Ensure create and delete happen atomically
121
- const { transactions, confirmations, returns } = await transaction.sendAtomicTransactionComposer({
122
- atc,
123
- sendParams: {
124
- maxRoundsToWaitForConfirmation: appParams.maxRoundsToWaitForConfirmation,
125
- skipWaiting: false,
126
- suppressLog: true,
127
- },
128
- }, algod);
129
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
130
- const createConfirmation = confirmations[createTransactions.length - 1];
131
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
132
- const deleteConfirmation = confirmations[confirmations.length - 1];
133
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
134
- const newAppIndex = createConfirmation.applicationIndex;
135
- config.Config.getLogger(appParams.suppressLog).warn(`Sent transactions ${createTransaction.txID()} to create app with id ${newAppIndex} and ${deleteTransaction.txID()} to delete app with id ${existingApp.appId} from ${transaction.getSenderAddress(appParams.from)} account.`);
136
- return {
137
- transaction: createTransaction,
138
- transactions: transactions,
139
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
140
- confirmation: createConfirmation,
141
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
142
- confirmations: confirmations,
143
- return: returns?.[0],
144
- deleteReturn: returns?.[1],
145
- appId: newAppIndex,
146
- appAddress: getApplicationAddress(newAppIndex),
147
- createdMetadata: metadata,
148
- createdRound: Number(createConfirmation.confirmedRound),
149
- updatedRound: Number(createConfirmation.confirmedRound),
150
- ...metadata,
151
- deleted: false,
152
- deleteResult: { transaction: deleteTransaction, confirmation: deleteConfirmation },
153
- operationPerformed: 'replace',
154
- compiledApproval,
155
- compiledClear,
156
- };
39
+ const deployer = new types_appDeployer.AppDeployer(appManager, new types_algorandClientTransactionSender.AlgorandClientTransactionSender(newGroup, new types_assetManager.AssetManager(algod, newGroup), appManager), indexer);
40
+ const createParams = {
41
+ approvalProgram: deployment.approvalProgram,
42
+ clearStateProgram: deployment.clearStateProgram,
43
+ sender: transaction.getSenderAddress(deployment.from),
44
+ accountReferences: deployment.createArgs?.accounts?.map((a) => (typeof a === 'string' ? a : algosdk.encodeAddress(a.publicKey))),
45
+ appReferences: deployment.createArgs?.apps?.map((a) => BigInt(a)),
46
+ assetReferences: deployment.createArgs?.assets?.map((a) => BigInt(a)),
47
+ boxReferences: deployment.createArgs?.boxes
48
+ ?.map(legacyBridge._getBoxReference)
49
+ ?.map((r) => ({ appId: BigInt(r.appIndex), name: r.name })),
50
+ lease: deployment.createArgs?.lease,
51
+ rekeyTo: deployment.createArgs?.rekeyTo ? transaction.getSenderAddress(deployment.createArgs?.rekeyTo) : undefined,
52
+ staticFee: deployment.fee,
53
+ maxFee: deployment.maxFee,
54
+ extraProgramPages: deployment.schema.extraPages,
55
+ onComplete: app.getAppOnCompleteAction(deployment.createOnCompleteAction),
56
+ schema: deployment.schema,
157
57
  };
158
- const update = async () => {
159
- config.Config.getLogger(appParams.suppressLog).info(`Updating existing ${metadata.name} app for ${transaction.getSenderAddress(appParams.from)} to version ${metadata.version}.`);
160
- const result = await app.updateApp({
161
- appId: existingApp.appId,
162
- from: appParams.from,
163
- args: updateArgs,
164
- note: getAppDeploymentTransactionNote(metadata),
165
- approvalProgram: appParams.approvalProgram,
166
- clearStateProgram: appParams.clearStateProgram,
167
- transactionParams: appParams.transactionParams,
168
- suppressLog: appParams.suppressLog,
169
- skipSending: false,
170
- skipWaiting: false,
171
- }, algod);
172
- return {
173
- transaction: result.transaction,
174
- transactions: result.transactions,
175
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
176
- confirmation: result.confirmation,
177
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
178
- confirmations: result.confirmations,
179
- return: result.return,
180
- appId: existingApp.appId,
181
- appAddress: existingApp.appAddress,
182
- createdMetadata: existingApp.createdMetadata,
183
- createdRound: existingApp.createdRound,
184
- updatedRound: Number(result.confirmation?.confirmedRound),
185
- ...metadata,
186
- deleted: false,
187
- operationPerformed: 'update',
188
- compiledApproval,
189
- compiledClear,
190
- };
58
+ const updateParams = {
59
+ approvalProgram: deployment.approvalProgram,
60
+ clearStateProgram: deployment.clearStateProgram,
61
+ sender: transaction.getSenderAddress(deployment.from),
62
+ accountReferences: deployment.updateArgs?.accounts?.map((a) => (typeof a === 'string' ? a : algosdk.encodeAddress(a.publicKey))),
63
+ appReferences: deployment.updateArgs?.apps?.map((a) => BigInt(a)),
64
+ assetReferences: deployment.updateArgs?.assets?.map((a) => BigInt(a)),
65
+ boxReferences: deployment.updateArgs?.boxes
66
+ ?.map(legacyBridge._getBoxReference)
67
+ ?.map((r) => ({ appId: BigInt(r.appIndex), name: r.name })),
68
+ lease: deployment.updateArgs?.lease,
69
+ rekeyTo: deployment.updateArgs?.rekeyTo ? transaction.getSenderAddress(deployment.updateArgs?.rekeyTo) : undefined,
70
+ staticFee: deployment.fee,
71
+ maxFee: deployment.maxFee,
72
+ onComplete: algosdk.OnApplicationComplete.UpdateApplicationOC,
191
73
  };
192
- if (isSchemaBreak) {
193
- config.Config.getLogger(appParams.suppressLog).warn(`Detected a breaking app schema change in app ${existingApp.appId}:`, {
194
- from: {
195
- global: existingGlobalSchema,
196
- local: existingLocalSchema,
197
- },
198
- to: {
199
- global: newGlobalSchema,
200
- local: newLocalSchema,
201
- },
202
- });
203
- if (onSchemaBreak === undefined || onSchemaBreak === 'fail' || onSchemaBreak === types_app.OnSchemaBreak.Fail) {
204
- throw new Error('Schema break detected and onSchemaBreak=OnSchemaBreak.Fail, stopping deployment. ' +
205
- 'If you want to try deleting and recreating the app then ' +
206
- 're-run with onSchemaBreak=OnSchemaBreak.ReplaceApp');
207
- }
208
- if (onSchemaBreak === 'append' || onSchemaBreak === types_app.OnSchemaBreak.AppendApp) {
209
- config.Config.getLogger(appParams.suppressLog).info('onSchemaBreak=AppendApp, will attempt to create a new app');
210
- return await create();
211
- }
212
- if (existingApp.deletable) {
213
- config.Config.getLogger(appParams.suppressLog).info('App is deletable and onSchemaBreak=ReplaceApp, will attempt to create new app and delete old app');
214
- }
215
- else {
216
- config.Config.getLogger(appParams.suppressLog).info('App is not deletable but onSchemaBreak=ReplaceApp, will attempt to delete app, delete will most likely fail');
217
- }
218
- return await replace();
219
- }
220
- if (isUpdate) {
221
- config.Config.getLogger(appParams.suppressLog).info(`Detected a TEAL update in app ${existingApp.appId} for creator ${transaction.getSenderAddress(appParams.from)}`);
222
- if (onUpdate === undefined || onUpdate === 'fail' || onUpdate === types_app.OnUpdate.Fail) {
223
- throw new Error('Update detected and onUpdate=Fail, stopping deployment. ' +
224
- 'If you want to try deleting and recreating the app then ' +
225
- 're-run with onUpdate=UpdateApp');
226
- }
227
- if (onUpdate === 'append' || onUpdate === types_app.OnUpdate.AppendApp) {
228
- config.Config.getLogger(appParams.suppressLog).info('onUpdate=AppendApp, will attempt to create a new app');
229
- return await create();
230
- }
231
- if (onUpdate === 'update' || onUpdate === types_app.OnUpdate.UpdateApp) {
232
- if (existingApp.updatable) {
233
- config.Config.getLogger(appParams.suppressLog).info(`App is updatable and onUpdate=UpdateApp, updating app...`);
234
- }
235
- else {
236
- config.Config.getLogger(appParams.suppressLog).warn(`App is not updatable but onUpdate=UpdateApp, will attempt to update app, update will most likely fail`);
237
- }
238
- return await update();
239
- }
240
- if (onUpdate === 'replace' || onUpdate === types_app.OnUpdate.ReplaceApp) {
241
- if (existingApp.deletable) {
242
- config.Config.getLogger(appParams.suppressLog).warn('App is deletable and onUpdate=ReplaceApp, creating new app and deleting old app...');
243
- }
244
- else {
245
- config.Config.getLogger(appParams.suppressLog).warn('App is not deletable and onUpdate=ReplaceApp, will attempt to create new app and delete old app, delete will most likely fail');
74
+ const deleteParams = {
75
+ sender: transaction.getSenderAddress(deployment.from),
76
+ accountReferences: deployment.deleteArgs?.accounts?.map((a) => (typeof a === 'string' ? a : algosdk.encodeAddress(a.publicKey))),
77
+ appReferences: deployment.deleteArgs?.apps?.map((a) => BigInt(a)),
78
+ assetReferences: deployment.deleteArgs?.assets?.map((a) => BigInt(a)),
79
+ boxReferences: deployment.deleteArgs?.boxes
80
+ ?.map(legacyBridge._getBoxReference)
81
+ ?.map((r) => ({ appId: BigInt(r.appIndex), name: r.name })),
82
+ lease: deployment.deleteArgs?.lease,
83
+ rekeyTo: deployment.deleteArgs?.rekeyTo ? transaction.getSenderAddress(deployment.deleteArgs?.rekeyTo) : undefined,
84
+ staticFee: deployment.fee,
85
+ maxFee: deployment.maxFee,
86
+ onComplete: algosdk.OnApplicationComplete.DeleteApplicationOC,
87
+ };
88
+ const encoder = new TextEncoder();
89
+ const result = await deployer.deploy({
90
+ createParams: deployment.createArgs?.method
91
+ ? ({
92
+ ...createParams,
93
+ method: 'txnCount' in deployment.createArgs.method ? deployment.createArgs.method : new algosdk.ABIMethod(deployment.createArgs.method),
94
+ args: (await legacyBridge._getAppArgsForABICall(deployment.createArgs, deployment.from)).methodArgs,
95
+ })
96
+ : ({
97
+ ...createParams,
98
+ args: 'appArgs' in (deployment?.createArgs ?? {})
99
+ ? deployment.createArgs?.appArgs?.map((a) => (typeof a === 'string' ? encoder.encode(a) : a))
100
+ : undefined,
101
+ }),
102
+ updateParams: deployment.updateArgs?.method
103
+ ? ({
104
+ ...updateParams,
105
+ method: 'txnCount' in deployment.updateArgs.method ? deployment.updateArgs.method : new algosdk.ABIMethod(deployment.updateArgs.method),
106
+ args: (await legacyBridge._getAppArgsForABICall(deployment.updateArgs, deployment.from)).methodArgs,
107
+ })
108
+ : ({
109
+ ...updateParams,
110
+ args: 'appArgs' in (deployment?.updateArgs ?? {})
111
+ ? deployment.updateArgs?.appArgs?.map((a) => (typeof a === 'string' ? encoder.encode(a) : a))
112
+ : undefined,
113
+ }),
114
+ deleteParams: deployment.deleteArgs?.method
115
+ ? ({
116
+ ...deleteParams,
117
+ method: 'txnCount' in deployment.deleteArgs.method ? deployment.deleteArgs.method : new algosdk.ABIMethod(deployment.deleteArgs.method),
118
+ args: (await legacyBridge._getAppArgsForABICall(deployment.deleteArgs, deployment.from)).methodArgs,
119
+ })
120
+ : ({
121
+ ...deleteParams,
122
+ args: 'appArgs' in (deployment?.deleteArgs ?? {})
123
+ ? deployment.deleteArgs?.appArgs?.map((a) => (typeof a === 'string' ? encoder.encode(a) : a))
124
+ : undefined,
125
+ }),
126
+ metadata: deployment.metadata,
127
+ deployTimeParams: deployment.deployTimeParams,
128
+ onSchemaBreak: deployment.onSchemaBreak,
129
+ onUpdate: deployment.onUpdate,
130
+ existingDeployments: deployment.existingDeployments
131
+ ? {
132
+ creator: deployment.existingDeployments.creator,
133
+ apps: Object.fromEntries(Object.entries(deployment.existingDeployments.apps).map(([name, app]) => [
134
+ name,
135
+ { ...app, appId: BigInt(app.appId), createdRound: BigInt(app.createdRound), updatedRound: BigInt(app.updatedRound) },
136
+ ])),
246
137
  }
247
- return await replace();
248
- }
249
- }
250
- config.Config.getLogger(appParams.suppressLog).debug('No detected changes in app, nothing to do.');
251
- return { ...existingApp, operationPerformed: 'nothing', compiledApproval, compiledClear };
138
+ : undefined,
139
+ executeParams: {
140
+ maxRoundsToWaitForConfirmation: deployment.maxRoundsToWaitForConfirmation,
141
+ populateAppCallResources: deployment.populateAppCallResources,
142
+ suppressLog: deployment.suppressLog,
143
+ },
144
+ });
145
+ return { ...result, appId: Number(result.appId), createdRound: Number(result.createdRound), updatedRound: Number(result.updatedRound) };
252
146
  }
253
- /** Returns true is there is a breaking change in the application state schema from before to after.
147
+ /**
148
+ * @deprecated Use `before.numByteSlice < after.numByteSlice || before.numUint < after.numUint` instead.
149
+ *
150
+ * Returns true is there is a breaking change in the application state schema from before to after.
254
151
  * i.e. if the schema becomes larger, since applications can't ask for more schema after creation.
255
152
  * Otherwise, there is no error, the app just doesn't store data in the extra schema :(
256
153
  *
@@ -262,6 +159,8 @@ function isSchemaIsBroken(before, after) {
262
159
  return before.numByteSlice < after.numByteSlice || before.numUint < after.numUint;
263
160
  }
264
161
  /**
162
+ * @deprecated Use `algorand.appDeployer.getCreatorAppsByName` instead.
163
+ *
265
164
  * Returns a lookup of name => app metadata (id, address, ...metadata) for all apps created by the given account that have an `AppDeployNote` in the transaction note of the creation transaction.
266
165
  *
267
166
  * **Note:** It's recommended this is only called once and then stored since it's a somewhat expensive operation (multiple indexer calls).
@@ -271,87 +170,18 @@ function isSchemaIsBroken(before, after) {
271
170
  * @returns A name-based lookup of the app information (id, address)
272
171
  */
273
172
  async function getCreatorAppsByName(creatorAccount, indexer) {
274
- const appLookup = {};
275
- const creatorAddress = typeof creatorAccount !== 'string' ? transaction.getSenderAddress(creatorAccount) : creatorAccount;
276
- // Extract all apps that account created
277
- const createdApps = (await indexerLookup.lookupAccountCreatedApplicationByAddress(indexer, creatorAddress))
278
- .map((a) => {
279
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
280
- return { id: a.id, createdAtRound: a['created-at-round'], deleted: a.deleted };
281
- })
282
- .sort((a, b) => a.createdAtRound - b.createdAtRound);
283
- // For each app that account created (in parallel)...
284
- const apps = await Promise.all(createdApps.map(async (createdApp) => {
285
- // Find any app transactions for that app in the round it was created (should always just be a single creation transaction)
286
- const appTransactions = await indexerLookup.searchTransactions(indexer, (s) => s
287
- .minRound(createdApp.createdAtRound)
288
- .txType(TransactionType.appl)
289
- .applicationID(createdApp.id)
290
- .address(creatorAddress)
291
- .addressRole('sender')
292
- .notePrefix(Buffer.from(types_app.APP_DEPLOY_NOTE_DAPP).toString('base64')));
293
- // Triple check the transaction is intact by filtering for the one we want:
294
- // * application-id is 0 when the app is first created
295
- // * also verify the sender to prevent a potential security risk
296
- const appCreationTransaction = appTransactions.transactions.filter(
297
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
298
- (t) => t['application-transaction']['application-id'] === 0 && t.sender === creatorAddress)[0];
299
- const latestAppUpdateTransaction = appTransactions.transactions
300
- .filter((t) => t.sender === creatorAddress)
301
- .sort((a, b) => a['confirmed-round'] === b['confirmed-round']
302
- ? // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
303
- (b['intra-round-offset'] - a['intra-round-offset']) / 10
304
- : // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
305
- b['confirmed-round'] - a['confirmed-round'])[0];
306
- if (!appCreationTransaction?.note)
307
- // No note; ignoring
308
- return null;
309
- return { createdApp, appCreationTransaction, latestAppUpdateTransaction };
310
- }));
311
- apps
312
- .filter((a) => a !== null)
313
- .forEach((a) => {
314
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
315
- const { createdApp, appCreationTransaction, latestAppUpdateTransaction } = a;
316
- const parseNote = (note) => {
317
- if (!note) {
318
- // No note; ignoring...
319
- return;
320
- }
321
- const decoder = new TextDecoder();
322
- const noteAsBase64 = decoder.decode(Buffer.from(note));
323
- const noteAsString = Buffer.from(noteAsBase64, 'base64').toString('utf-8');
324
- if (!noteAsString.startsWith(`${types_app.APP_DEPLOY_NOTE_DAPP}:j{`))
325
- // Clearly not APP_DEPLOY JSON; ignoring...
326
- return;
327
- return JSON.parse(noteAsString.substring(types_app.APP_DEPLOY_NOTE_DAPP.length + 2));
328
- };
329
- try {
330
- const creationNote = parseNote(appCreationTransaction.note);
331
- const updateNote = parseNote(latestAppUpdateTransaction.note);
332
- if (creationNote?.name) {
333
- appLookup[creationNote.name] = {
334
- appId: createdApp.id,
335
- appAddress: getApplicationAddress(createdApp.id),
336
- createdMetadata: creationNote,
337
- createdRound: Number(appCreationTransaction['confirmed-round']),
338
- ...(updateNote ?? creationNote),
339
- updatedRound: Number(latestAppUpdateTransaction?.['confirmed-round']),
340
- deleted: createdApp.deleted ?? false,
341
- };
342
- }
343
- }
344
- catch (e) {
345
- config.Config.logger.warn(`Received error trying to retrieve app with ${createdApp.id} for creator ${creatorAddress}; failing silently`, e);
346
- return;
347
- }
348
- });
173
+ const lookup = await new types_appDeployer.AppDeployer(undefined, undefined, indexer).getCreatorAppsByName(transaction.getSenderAddress(creatorAccount));
349
174
  return {
350
- creator: creatorAddress,
351
- apps: appLookup,
175
+ creator: lookup.creator,
176
+ apps: Object.fromEntries(Object.entries(lookup.apps).map(([name, app]) => [
177
+ name,
178
+ { ...app, appId: Number(app.appId), createdRound: Number(app.createdRound), updatedRound: Number(app.updatedRound) },
179
+ ])),
352
180
  };
353
181
  }
354
182
  /**
183
+ * @deprecated Use `{ dAppName: APP_DEPLOY_NOTE_DAPP, data: metadata, format: 'j' }` instead.
184
+ *
355
185
  * Return the transaction note for an app deployment.
356
186
  * @param metadata The metadata of the deployment
357
187
  * @returns The transaction note as a utf-8 string
@@ -364,6 +194,8 @@ function getAppDeploymentTransactionNote(metadata) {
364
194
  };
365
195
  }
366
196
  /**
197
+ * @deprecated Use `AppManager.replaceTealTemplateDeployTimeControlParams` instead
198
+ *
367
199
  * Replaces deploy-time deployment control parameters within the given teal code.
368
200
  *
369
201
  * * `TMPL_UPDATABLE` for updatability / immutability control
@@ -377,21 +209,11 @@ function getAppDeploymentTransactionNote(metadata) {
377
209
  * @returns The replaced TEAL code
378
210
  */
379
211
  function replaceDeployTimeControlParams(tealCode, params) {
380
- if (params.updatable !== undefined) {
381
- if (!tealCode.includes(types_app.UPDATABLE_TEMPLATE_NAME)) {
382
- throw new Error(`Deploy-time updatability control requested for app deployment, but ${types_app.UPDATABLE_TEMPLATE_NAME} not present in TEAL code`);
383
- }
384
- tealCode = tealCode.replace(new RegExp(types_app.UPDATABLE_TEMPLATE_NAME, 'g'), (params.updatable ? 1 : 0).toString());
385
- }
386
- if (params.deletable !== undefined) {
387
- if (!tealCode.includes(types_app.DELETABLE_TEMPLATE_NAME)) {
388
- throw new Error(`Deploy-time deletability control requested for app deployment, but ${types_app.DELETABLE_TEMPLATE_NAME} not present in TEAL code`);
389
- }
390
- tealCode = tealCode.replace(new RegExp(types_app.DELETABLE_TEMPLATE_NAME, 'g'), (params.deletable ? 1 : 0).toString());
391
- }
392
- return tealCode;
212
+ return types_appManager.AppManager.replaceTealTemplateDeployTimeControlParams(tealCode, params);
393
213
  }
394
214
  /**
215
+ * @deprecated Use `AppManager.replaceTealTemplateParams` instead
216
+ *
395
217
  * Performs template substitution of a teal file.
396
218
  *
397
219
  * Looks for `TMPL_{parameter}` for template replacements.
@@ -401,26 +223,11 @@ function replaceDeployTimeControlParams(tealCode, params) {
401
223
  * @returns The TEAL code with replacements
402
224
  */
403
225
  function performTemplateSubstitution(tealCode, templateParams) {
404
- if (templateParams !== undefined) {
405
- for (const key in templateParams) {
406
- const value = templateParams[key];
407
- const token = `TMPL_${key.replace(/^TMPL_/, '')}`;
408
- // If this is a number, first replace any byte representations of the number
409
- // These may appear in the TEAL in order to circumvent int compression and preserve PC values
410
- if (typeof value === 'number' || typeof value === 'boolean') {
411
- tealCode = tealCode.replace(new RegExp(`(?<=bytes )${token}`, 'g'), `0x${value.toString(16).padStart(16, '0')}`);
412
- // We could probably return here since mixing pushint and pushbytes is likely not going to happen, but might as well do both
413
- }
414
- tealCode = tealCode.replace(new RegExp(token, 'g'), typeof value === 'string'
415
- ? `0x${Buffer.from(value, 'utf-8').toString('hex')}`
416
- : ArrayBuffer.isView(value)
417
- ? `0x${Buffer.from(value).toString('hex')}`
418
- : value.toString());
419
- }
420
- }
421
- return tealCode;
226
+ return types_appManager.AppManager.replaceTealTemplateParams(tealCode, templateParams);
422
227
  }
423
228
  /**
229
+ * @deprecated Use `algorand.appManager.compileTealTemplate` instead.
230
+ *
424
231
  * Performs template substitution of a teal file and compiles it, returning the compiled result.
425
232
  *
426
233
  * Looks for `TMPL_{parameter}` for template replacements.
@@ -440,6 +247,8 @@ async function performTemplateSubstitutionAndCompile(tealCode, algod, templatePa
440
247
  return await app.compileTeal(tealCode, algod);
441
248
  }
442
249
  /**
250
+ * @deprecated Use `AppManager.stripTealComments` instead.
251
+ *
443
252
  * Remove comments from TEAL Code
444
253
  *
445
254
  * @param tealCode The TEAL logic to compile
package/app-deploy.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"app-deploy.js","sources":["../src/app-deploy.ts"],"sourcesContent":[null],"names":["getSenderAddress","Config","createApp","getAppById","callApp","sendAtomicTransactionComposer","updateApp","OnSchemaBreak","OnUpdate","lookupAccountCreatedApplicationByAddress","searchTransactions","APP_DEPLOY_NOTE_DAPP","UPDATABLE_TEMPLATE_NAME","DELETABLE_TEMPLATE_NAME","compileTeal"],"mappings":"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"}
1
+ {"version":3,"file":"app-deploy.js","sources":["../src/app-deploy.ts"],"sourcesContent":[null],"names":["AppManager","AlgoKitComposer","getSenderTransactionSigner","getTransactionParams","AppDeployer","AlgorandClientTransactionSender","AssetManager","getSenderAddress","_getBoxReference","getAppOnCompleteAction","_getAppArgsForABICall","APP_DEPLOY_NOTE_DAPP","compileTeal"],"mappings":"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"}