@algorandfoundation/algokit-utils 10.0.0-alpha.12 → 10.0.0-alpha.14

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 (103) hide show
  1. package/algod-client/index.d.ts +2 -3
  2. package/algod-client/index.js +2 -5
  3. package/algod-client/index.mjs +2 -2
  4. package/indexer-client/index.d.ts +1 -2
  5. package/indexer-client/index.js +0 -5
  6. package/indexer-client/index.mjs +1 -2
  7. package/kmd-client/index.d.ts +1 -2
  8. package/kmd-client/index.js +0 -5
  9. package/kmd-client/index.mjs +1 -2
  10. package/package.json +1 -1
  11. package/packages/algod_client/src/apis/api-service.js +2 -2
  12. package/packages/algod_client/src/apis/api-service.mjs +2 -2
  13. package/packages/algod_client/src/core/model-runtime.js +2 -2
  14. package/packages/algod_client/src/core/model-runtime.js.map +1 -1
  15. package/packages/algod_client/src/core/model-runtime.mjs +2 -2
  16. package/packages/algod_client/src/core/model-runtime.mjs.map +1 -1
  17. package/packages/algod_client/src/models/simulate-request.js +1 -1
  18. package/packages/algod_client/src/models/simulate-request.mjs +1 -1
  19. package/packages/algod_client/src/models/simulate-response.d.ts +2 -1
  20. package/packages/algod_client/src/models/simulate-response.js +6 -1
  21. package/packages/algod_client/src/models/simulate-response.js.map +1 -1
  22. package/packages/algod_client/src/models/simulate-response.mjs +6 -2
  23. package/packages/algod_client/src/models/simulate-response.mjs.map +1 -1
  24. package/packages/indexer_client/src/core/model-runtime.js +0 -15
  25. package/packages/indexer_client/src/core/model-runtime.js.map +1 -1
  26. package/packages/indexer_client/src/core/model-runtime.mjs +1 -13
  27. package/packages/indexer_client/src/core/model-runtime.mjs.map +1 -1
  28. package/packages/kmd_client/src/core/model-runtime.js +2 -12
  29. package/packages/kmd_client/src/core/model-runtime.js.map +1 -1
  30. package/packages/kmd_client/src/core/model-runtime.mjs +3 -11
  31. package/packages/kmd_client/src/core/model-runtime.mjs.map +1 -1
  32. package/packages/transact/src/transactions/app-call.d.ts +1 -6
  33. package/packages/transact/src/transactions/asset-config.d.ts +1 -6
  34. package/packages/transact/src/transactions/asset-config.js.map +1 -1
  35. package/packages/transact/src/transactions/asset-config.mjs.map +1 -1
  36. package/packages/transact/src/transactions/asset-freeze.d.ts +1 -6
  37. package/packages/transact/src/transactions/asset-transfer.d.ts +1 -6
  38. package/packages/transact/src/transactions/key-registration.d.ts +1 -8
  39. package/packages/transact/src/transactions/signed-transaction.d.ts +5 -1
  40. package/packages/transact/src/transactions/signed-transaction.js +1 -1
  41. package/packages/transact/src/transactions/signed-transaction.js.map +1 -1
  42. package/packages/transact/src/transactions/signed-transaction.mjs +1 -2
  43. package/packages/transact/src/transactions/signed-transaction.mjs.map +1 -1
  44. package/packages/transact/src/transactions/transaction.d.ts +5 -1
  45. package/packages/transact/src/transactions/transaction.js +0 -1
  46. package/packages/transact/src/transactions/transaction.js.map +1 -1
  47. package/packages/transact/src/transactions/transaction.mjs +0 -1
  48. package/packages/transact/src/transactions/transaction.mjs.map +1 -1
  49. package/transact/index.d.ts +9 -9
  50. package/transact/index.js +3 -10
  51. package/transact/index.mjs +5 -9
  52. package/transactions/app-call.d.ts +1 -1
  53. package/transactions/app-call.js.map +1 -1
  54. package/transactions/app-call.mjs.map +1 -1
  55. package/transactions/key-registration.d.ts +1 -1
  56. package/transactions/key-registration.js.map +1 -1
  57. package/transactions/key-registration.mjs.map +1 -1
  58. package/transactions/method-call.d.ts +1 -1
  59. package/transactions/method-call.js.map +1 -1
  60. package/transactions/method-call.mjs.map +1 -1
  61. package/types/account-manager.js +1 -1
  62. package/types/account-manager.mjs +1 -1
  63. package/types/algorand-client-transaction-creator.d.ts +94 -94
  64. package/types/algorand-client-transaction-creator.js.map +1 -1
  65. package/types/algorand-client-transaction-creator.mjs.map +1 -1
  66. package/types/algorand-client-transaction-sender.d.ts +96 -96
  67. package/types/app-client.d.ts +192 -192
  68. package/types/app-client.js.map +1 -1
  69. package/types/app-client.mjs.map +1 -1
  70. package/types/app-deployer.d.ts +1 -1
  71. package/types/app-deployer.js.map +1 -1
  72. package/types/app-deployer.mjs.map +1 -1
  73. package/types/app-factory.d.ts +97 -97
  74. package/types/app-factory.js.map +1 -1
  75. package/types/app-factory.mjs.map +1 -1
  76. package/types/app.d.ts +1 -1
  77. package/types/app.js.map +1 -1
  78. package/types/app.mjs.map +1 -1
  79. package/types/async-event-emitter.d.ts +3 -6
  80. package/types/async-event-emitter.js.map +1 -1
  81. package/types/async-event-emitter.mjs.map +1 -1
  82. package/types/client-manager.d.ts +1 -1
  83. package/types/client-manager.js.map +1 -1
  84. package/types/client-manager.mjs.map +1 -1
  85. package/types/composer.d.ts +1 -1
  86. package/types/composer.js +12 -5
  87. package/types/composer.js.map +1 -1
  88. package/types/composer.mjs +14 -7
  89. package/types/composer.mjs.map +1 -1
  90. package/types/debugging.d.ts +13 -9
  91. package/types/debugging.js.map +1 -1
  92. package/types/debugging.mjs.map +1 -1
  93. package/types/lifecycle-events.d.ts +0 -1
  94. package/types/lifecycle-events.js.map +1 -1
  95. package/types/lifecycle-events.mjs.map +1 -1
  96. package/types/transaction.d.ts +1 -1
  97. package/packages/algod_client/src/core/model-runtime.d.ts +0 -10
  98. package/packages/indexer_client/src/core/model-runtime.d.ts +0 -10
  99. package/packages/kmd_client/src/core/model-runtime.d.ts +0 -10
  100. package/packages/transact/src/transactions/common.d.ts +0 -37
  101. package/types/expand.d.ts +0 -9
  102. package/types/expand.js +0 -0
  103. package/types/expand.mjs +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"method-call.mjs","names":["addr: Address","encodedArgs: Uint8Array[]"],"sources":["../../src/transactions/method-call.ts"],"sourcesContent":["import {\n ABIMethod,\n ABITupleType,\n ABIType,\n ABIUintType,\n ABIValue,\n argTypeIsReference,\n argTypeIsTransaction,\n} from '@algorandfoundation/algokit-abi'\nimport { SuggestedParams } from '@algorandfoundation/algokit-algod-client'\nimport { Address, getAddress } from '@algorandfoundation/algokit-common'\nimport { OnApplicationComplete, Transaction, TransactionSigner, TransactionType } from '@algorandfoundation/algokit-transact'\nimport { TransactionWithSigner } from '../transaction'\nimport { AlgoAmount } from '../types/amount'\nimport { AppManager } from '../types/app-manager'\nimport { Expand } from '../types/expand'\nimport { calculateExtraProgramPages } from '../util'\nimport { AppCreateParams, AppDeleteParams, AppMethodCallParams, AppUpdateParams } from './app-call'\nimport { buildTransactionCommonData } from './common'\n\nconst ARGS_TUPLE_PACKING_THRESHOLD = 14 // 14+ args trigger tuple packing, excluding the method selector\n\n/** Parameters to define an ABI method call create transaction. */\nexport type AppCreateMethodCall = Expand<AppMethodCall<AppCreateParams>>\n/** Parameters to define an ABI method call update transaction. */\nexport type AppUpdateMethodCall = Expand<AppMethodCall<AppUpdateParams>>\n/** Parameters to define an ABI method call delete transaction. */\nexport type AppDeleteMethodCall = Expand<AppMethodCall<AppDeleteParams>>\n/** Parameters to define an ABI method call transaction. */\nexport type AppCallMethodCall = Expand<AppMethodCall<AppMethodCallParams>>\n\nexport type ProcessedAppCreateMethodCall = Expand<\n Omit<AppCreateMethodCall, 'args'> & {\n args?: (ABIValue | undefined)[]\n }\n>\n\nexport type ProcessedAppUpdateMethodCall = Expand<\n Omit<AppUpdateMethodCall, 'args'> & {\n args?: (ABIValue | undefined)[]\n }\n>\n\nexport type ProcessedAppCallMethodCall = Expand<\n Omit<AppCallMethodCall, 'args'> & {\n args?: (ABIValue | undefined)[]\n }\n>\n\n/** Types that can be used to define a transaction argument for an ABI call transaction. */\nexport type AppMethodCallTransactionArgument =\n // The following should match the partial `args` types from `AppMethodCall<T>` below\n | TransactionWithSigner\n | Transaction\n | Promise<Transaction>\n | AppMethodCall<AppCreateParams>\n | AppMethodCall<AppUpdateParams>\n | AppMethodCall<AppMethodCallParams>\n\n/** Parameters to define an ABI method call. */\nexport type AppMethodCall<T> = Expand<Omit<T, 'args'>> & {\n /** The ABI method to call */\n method: ABIMethod\n /** Arguments to the ABI method, either:\n * * An ABI value\n * * A transaction with explicit signer\n * * A transaction (where the signer will be automatically assigned)\n * * An unawaited transaction (e.g. from algorand.createTransaction.{transactionType}())\n * * Another method call (via method call params object)\n * * undefined (this represents a placeholder transaction argument that is fulfilled by another method call argument)\n */\n args?: (\n | ABIValue\n // The following should match the above `AppMethodCallTransactionArgument` type above\n | TransactionWithSigner\n | Transaction\n | Promise<Transaction>\n | AppMethodCall<AppCreateParams>\n | AppMethodCall<AppUpdateParams>\n | AppMethodCall<AppMethodCallParams>\n | undefined\n )[]\n}\n\ntype AppMethodCallArgs = AppMethodCall<unknown>['args']\ntype AppMethodCallArg = NonNullable<AppMethodCallArgs>[number]\n\nexport type AsyncTransactionParams = {\n txn: Promise<Transaction>\n signer?: TransactionSigner\n maxFee?: AlgoAmount\n}\n\nexport type TransactionParams = {\n txn: Transaction\n signer?: TransactionSigner\n maxFee?: AlgoAmount\n}\n\ntype ExtractedMethodCallTransactionArg =\n | { data: TransactionParams; type: 'txn' }\n | {\n data: AsyncTransactionParams\n type: 'asyncTxn'\n }\n | { data: ProcessedAppCallMethodCall | ProcessedAppCreateMethodCall | ProcessedAppUpdateMethodCall; type: 'methodCall' }\n\nexport function extractComposerTransactionsFromAppMethodCallParams(\n params: AppCallMethodCall | AppCreateMethodCall | AppUpdateMethodCall | AppDeleteMethodCall,\n parentSigner?: TransactionSigner,\n): ExtractedMethodCallTransactionArg[] {\n const composerTransactions = new Array<ExtractedMethodCallTransactionArg>()\n const methodCallArgs = params.args\n if (!methodCallArgs) return []\n\n // Extract signer from params, falling back to parentSigner\n const currentSigner = params.signer ? ('signer' in params.signer ? params.signer.signer : params.signer) : parentSigner\n\n for (let i = 0; i < methodCallArgs.length; i++) {\n const arg = methodCallArgs[i]\n\n if (arg === undefined) {\n // is a transaction or default value placeholder, do nothing\n continue\n }\n if (isAbiValue(arg)) {\n // if is ABI value, also ignore\n continue\n }\n\n if (isTransactionWithSignerArg(arg)) {\n composerTransactions.push({\n data: {\n txn: arg.txn,\n signer: arg.signer,\n },\n type: 'txn',\n })\n\n continue\n }\n if (isAppCallMethodCallArg(arg)) {\n // Recursively extract nested method call transactions, passing the nested call itself and current signer as parent\n const nestedComposerTransactions = extractComposerTransactionsFromAppMethodCallParams(arg, currentSigner)\n composerTransactions.push(...nestedComposerTransactions)\n composerTransactions.push({\n data: {\n ...arg,\n signer: arg.signer ?? currentSigner,\n args: processAppMethodCallArgs(arg.args),\n },\n type: 'methodCall',\n } satisfies ExtractedMethodCallTransactionArg)\n\n continue\n }\n if (arg instanceof Promise) {\n composerTransactions.push({\n data: {\n txn: arg,\n signer: currentSigner,\n },\n type: 'asyncTxn',\n })\n continue\n }\n\n composerTransactions.push({\n data: {\n txn: Promise.resolve(arg),\n signer: currentSigner,\n },\n type: 'asyncTxn',\n })\n }\n\n return composerTransactions\n}\n\nexport function processAppMethodCallArgs(args: AppMethodCallArg[] | undefined): (ABIValue | undefined)[] | undefined {\n if (args === undefined) return undefined\n\n return args.map((arg) => {\n if (arg === undefined) {\n // Handle explicit placeholders (either transaction or default value)\n return undefined\n } else if (!isAbiValue(arg)) {\n // If the arg is not an ABIValue, it's must be a transaction, set to undefined\n // transaction arguments should be flattened out and added into the composer during the add process\n return undefined\n }\n return arg\n })\n}\n\nfunction isTransactionWithSignerArg(arg: AppMethodCallArg): arg is TransactionWithSigner {\n return typeof arg === 'object' && arg !== undefined && 'txn' in arg && 'signer' in arg\n}\n\nfunction isAppCallMethodCallArg(\n arg: AppMethodCallArg,\n): arg is AppMethodCall<AppCreateParams> | AppMethodCall<AppUpdateParams> | AppMethodCall<AppMethodCallParams> {\n return typeof arg === 'object' && arg !== undefined && 'method' in arg\n}\n\nconst isAbiValue = (x: unknown): x is ABIValue => {\n if (Array.isArray(x)) return x.length == 0 || x.every(isAbiValue)\n\n // If x is a POJO literal\n if (Object.getPrototypeOf(x) === Object.getPrototypeOf({})) {\n return Object.values(x as object).every(isAbiValue)\n }\n\n return (\n typeof x === 'bigint' ||\n typeof x === 'boolean' ||\n typeof x === 'number' ||\n typeof x === 'string' ||\n x instanceof Uint8Array ||\n x instanceof Address\n )\n}\n\n/**\n * Prepares method arguments for ABI encoding by building reference arrays and\n * replacing reference-type arguments (account, asset, application) with their indices.\n */\nfunction prepareArgsForEncoding(\n sender: Address,\n appId: bigint,\n method: ABIMethod,\n methodArgs: (ABIValue | undefined)[],\n accountReferences?: Address[],\n appReferences?: bigint[],\n assetReferences?: bigint[],\n): { accountReferences: Address[]; appReferences: bigint[]; assetReferences: bigint[]; updatedArgs: (ABIValue | undefined)[] } {\n const accounts = [...(accountReferences ?? [])]\n const assets = [...(assetReferences ?? [])]\n const apps = [...(appReferences ?? [])]\n\n const updatedArgs = methodArgs.map((arg, i) => {\n const argType = method.args[i].type\n if (!argTypeIsReference(argType)) {\n return arg\n }\n switch (argType) {\n case 'account': {\n let addr: Address\n if (typeof arg === 'string') {\n addr = getAddress(arg)\n } else if (arg instanceof Uint8Array) {\n addr = new Address(arg)\n } else {\n throw new Error('Invalid value for account')\n }\n\n if (sender.equals(addr)) {\n return 0\n }\n\n const existing = accounts.findIndex((a) => a.equals(addr)) + 1\n if (existing) return existing\n\n accounts.push(addr)\n return accounts.length\n }\n case 'asset': {\n if (typeof arg !== 'bigint') {\n throw new Error('Invalid value for asset')\n }\n\n const existing = assets.findIndex((a) => a === arg)\n if (existing === -1) {\n assets.push(arg)\n return assets.length - 1\n }\n\n return existing\n }\n case 'application': {\n if (typeof arg !== 'bigint') {\n throw new Error('Invalid value for application')\n }\n\n if (arg === appId) return 0\n\n const existing = apps.findIndex((a) => a === arg) + 1\n if (existing) return existing\n\n apps.push(arg)\n return apps.length\n }\n }\n })\n\n return { accountReferences: accounts, appReferences: apps, assetReferences: assets, updatedArgs }\n}\n\n/**\n * Encode ABI method arguments with tuple packing support\n * Ports the logic from the Rust encode_method_arguments function\n */\nfunction encodeMethodArguments(method: ABIMethod, args: (ABIValue | undefined)[]): Uint8Array[] {\n const encodedArgs = new Array<Uint8Array>()\n\n // Insert method selector at the front\n encodedArgs.push(method.getSelector())\n\n // Get ABI types for non-transaction arguments\n const abiTypes = new Array<ABIType>()\n const abiValues = new Array<ABIValue>()\n\n // Process each method argument\n for (let i = 0; i < method.args.length; i++) {\n const methodArg = method.args[i]\n const argValue = args[i]\n\n if (argTypeIsTransaction(methodArg.type)) {\n // Transaction arguments are not ABI encoded - they're handled separately\n } else if (argTypeIsReference(methodArg.type)) {\n // Reference types are encoded as uint8 indexes\n const referenceType = methodArg.type\n if (typeof argValue === 'number') {\n abiTypes.push(new ABIUintType(8))\n abiValues.push(argValue)\n } else {\n throw new Error(`Invalid reference value for ${referenceType}: ${argValue}`)\n }\n } else if (argValue !== undefined) {\n // Regular ABI value\n abiTypes.push(methodArg.type)\n // it's safe to cast to ABIValue here because the abiType must be ABIValue\n abiValues.push(argValue as ABIValue)\n }\n\n // Skip undefined values (transaction placeholders)\n }\n\n if (abiValues.length !== abiTypes.length) {\n throw new Error('Mismatch in length of non-transaction arguments')\n }\n\n // Apply ARC-4 tuple packing for methods with more than 14 arguments\n // 14 instead of 15 in the ARC-4 because the first argument (method selector) is added separately\n if (abiTypes.length > ARGS_TUPLE_PACKING_THRESHOLD) {\n encodedArgs.push(...encodeArgsWithTuplePacking(abiTypes, abiValues))\n } else {\n encodedArgs.push(...encodeArgsIndividually(abiTypes, abiValues))\n }\n\n return encodedArgs\n}\n\n/**\n * Encode individual ABI values\n */\nfunction encodeArgsIndividually(abiTypes: ABIType[], abiValues: ABIValue[]): Uint8Array[] {\n const encodedArgs: Uint8Array[] = []\n\n for (let i = 0; i < abiTypes.length; i++) {\n const abiType = abiTypes[i]\n const abiValue = abiValues[i]\n const encoded = abiType.encode(abiValue)\n encodedArgs.push(encoded)\n }\n\n return encodedArgs\n}\n\n/**\n * Encode ABI values with tuple packing for methods with many arguments\n */\nfunction encodeArgsWithTuplePacking(abiTypes: ABIType[], abiValues: ABIValue[]): Uint8Array[] {\n const encodedArgs: Uint8Array[] = []\n\n // Encode first 14 arguments individually\n const first14AbiTypes = abiTypes.slice(0, ARGS_TUPLE_PACKING_THRESHOLD)\n const first14AbiValues = abiValues.slice(0, ARGS_TUPLE_PACKING_THRESHOLD)\n encodedArgs.push(...encodeArgsIndividually(first14AbiTypes, first14AbiValues))\n\n // Pack remaining arguments into tuple at position 15\n const remainingAbiTypes = abiTypes.slice(ARGS_TUPLE_PACKING_THRESHOLD)\n const remainingAbiValues = abiValues.slice(ARGS_TUPLE_PACKING_THRESHOLD)\n\n if (remainingAbiTypes.length > 0) {\n const tupleType = new ABITupleType(remainingAbiTypes)\n const tupleValue = remainingAbiValues\n const tupleEncoded = tupleType.encode(tupleValue)\n encodedArgs.push(tupleEncoded)\n }\n\n return encodedArgs\n}\n\n/**\n * Builds encoded ABI method arguments and resolves reference arrays\n */\nfunction buildMethodCallArgsAndReferences(params: {\n sender: Address\n appId: bigint\n method: ABIMethod\n args: (ABIValue | undefined)[]\n accountReferences?: Address[]\n appReferences?: bigint[]\n assetReferences?: bigint[]\n}): { args: Uint8Array[]; accountReferences: Address[]; appReferences: bigint[]; assetReferences: bigint[] } {\n const { accountReferences, appReferences, assetReferences, updatedArgs } = prepareArgsForEncoding(\n params.sender,\n params.appId,\n params.method,\n params.args ?? [],\n params.accountReferences,\n params.appReferences,\n params.assetReferences,\n )\n\n const encodedArgs = encodeMethodArguments(params.method, updatedArgs)\n\n return {\n args: encodedArgs,\n accountReferences,\n appReferences,\n assetReferences,\n }\n}\n\nexport const buildAppCreateMethodCall = async (\n params: ProcessedAppCreateMethodCall,\n appManager: AppManager,\n suggestedParams: SuggestedParams,\n defaultValidityWindow: bigint,\n): Promise<Transaction> => {\n const commonData = buildTransactionCommonData(params, suggestedParams, defaultValidityWindow)\n const approvalProgram =\n typeof params.approvalProgram === 'string'\n ? (await appManager.compileTeal(params.approvalProgram)).compiledBase64ToBytes\n : params.approvalProgram\n const clearStateProgram =\n typeof params.clearStateProgram === 'string'\n ? (await appManager.compileTeal(params.clearStateProgram)).compiledBase64ToBytes\n : params.clearStateProgram\n const globalStateSchema =\n params.schema?.globalByteSlices !== undefined || params.schema?.globalInts !== undefined\n ? {\n numByteSlices: params.schema?.globalByteSlices ?? 0,\n numUints: params.schema?.globalInts ?? 0,\n }\n : undefined\n const localStateSchema =\n params.schema?.localByteSlices !== undefined || params.schema?.localInts !== undefined\n ? {\n numByteSlices: params.schema?.localByteSlices ?? 0,\n numUints: params.schema?.localInts ?? 0,\n }\n : undefined\n const extraProgramPages =\n params.extraProgramPages !== undefined ? params.extraProgramPages : calculateExtraProgramPages(approvalProgram!, clearStateProgram!)\n const accountReferences = params.accountReferences?.map((a) => getAddress(a))\n const argsAndReferences = buildMethodCallArgsAndReferences({\n sender: commonData.sender,\n appId: 0n,\n method: params.method,\n args: params.args ?? [],\n accountReferences: accountReferences,\n appReferences: params.appReferences,\n assetReferences: params.assetReferences,\n })\n\n // If accessReferences is provided, we should not pass legacy foreign arrays\n const hasAccessReferences = params.accessReferences && params.accessReferences.length > 0\n\n return new Transaction({\n ...commonData,\n type: TransactionType.AppCall,\n appCall: {\n appId: 0n,\n onComplete: params.onComplete ?? OnApplicationComplete.NoOp,\n approvalProgram: approvalProgram,\n clearStateProgram: clearStateProgram,\n globalStateSchema: globalStateSchema,\n localStateSchema: localStateSchema,\n extraProgramPages: extraProgramPages,\n args: argsAndReferences.args,\n ...(hasAccessReferences\n ? { accessReferences: params.accessReferences }\n : {\n accountReferences: argsAndReferences.accountReferences,\n appReferences: argsAndReferences.appReferences,\n assetReferences: argsAndReferences.assetReferences,\n boxReferences: params.boxReferences?.map(AppManager.getBoxReference),\n }),\n rejectVersion: params.rejectVersion,\n },\n })\n}\n\nexport const buildAppUpdateMethodCall = async (\n params: ProcessedAppUpdateMethodCall,\n appManager: AppManager,\n suggestedParams: SuggestedParams,\n defaultValidityWindow: bigint,\n): Promise<Transaction> => {\n const commonData = buildTransactionCommonData(params, suggestedParams, defaultValidityWindow)\n const approvalProgram =\n typeof params.approvalProgram === 'string'\n ? (await appManager.compileTeal(params.approvalProgram)).compiledBase64ToBytes\n : params.approvalProgram\n const clearStateProgram =\n typeof params.clearStateProgram === 'string'\n ? (await appManager.compileTeal(params.clearStateProgram)).compiledBase64ToBytes\n : params.clearStateProgram\n const accountReferences = params.accountReferences?.map((a) => getAddress(a))\n const argsAndReferences = buildMethodCallArgsAndReferences({\n sender: commonData.sender,\n appId: params.appId,\n method: params.method,\n args: params.args ?? [],\n accountReferences: accountReferences,\n appReferences: params.appReferences,\n assetReferences: params.assetReferences,\n })\n\n // If accessReferences is provided, we should not pass legacy foreign arrays\n const hasAccessReferences = params.accessReferences && params.accessReferences.length > 0\n\n return new Transaction({\n ...commonData,\n type: TransactionType.AppCall,\n appCall: {\n appId: params.appId,\n onComplete: OnApplicationComplete.UpdateApplication,\n approvalProgram: approvalProgram,\n clearStateProgram: clearStateProgram,\n args: argsAndReferences.args,\n ...(hasAccessReferences\n ? { accessReferences: params.accessReferences }\n : {\n accountReferences: argsAndReferences.accountReferences,\n appReferences: argsAndReferences.appReferences,\n assetReferences: argsAndReferences.assetReferences,\n boxReferences: params.boxReferences?.map(AppManager.getBoxReference),\n }),\n rejectVersion: params.rejectVersion,\n },\n })\n}\n\nexport const buildAppCallMethodCall = async (\n params: ProcessedAppCallMethodCall,\n suggestedParams: SuggestedParams,\n defaultValidityWindow: bigint,\n): Promise<Transaction> => {\n const commonData = buildTransactionCommonData(params, suggestedParams, defaultValidityWindow)\n const accountReferences = params.accountReferences?.map((a) => getAddress(a))\n const argsAndReferences = buildMethodCallArgsAndReferences({\n sender: commonData.sender,\n appId: params.appId,\n method: params.method,\n args: params.args ?? [],\n accountReferences: accountReferences,\n appReferences: params.appReferences,\n assetReferences: params.assetReferences,\n })\n\n // If accessReferences is provided, we should not pass legacy foreign arrays\n const hasAccessReferences = params.accessReferences && params.accessReferences.length > 0\n\n return new Transaction({\n ...commonData,\n type: TransactionType.AppCall,\n appCall: {\n appId: params.appId,\n onComplete: params.onComplete ?? OnApplicationComplete.NoOp,\n args: argsAndReferences.args,\n ...(hasAccessReferences\n ? { accessReferences: params.accessReferences }\n : {\n accountReferences: argsAndReferences.accountReferences,\n appReferences: argsAndReferences.appReferences,\n assetReferences: argsAndReferences.assetReferences,\n boxReferences: params.boxReferences?.map(AppManager.getBoxReference),\n }),\n rejectVersion: params.rejectVersion,\n },\n })\n}\n"],"mappings":";;;;;;;;;;;AAoBA,MAAM,+BAA+B;AAuFrC,SAAgB,mDACd,QACA,cACqC;CACrC,MAAM,uBAAuB,IAAI,OAA0C;CAC3E,MAAM,iBAAiB,OAAO;AAC9B,KAAI,CAAC,eAAgB,QAAO,EAAE;CAG9B,MAAM,gBAAgB,OAAO,SAAU,YAAY,OAAO,SAAS,OAAO,OAAO,SAAS,OAAO,SAAU;AAE3G,MAAK,IAAI,IAAI,GAAG,IAAI,eAAe,QAAQ,KAAK;EAC9C,MAAM,MAAM,eAAe;AAE3B,MAAI,QAAQ,OAEV;AAEF,MAAI,WAAW,IAAI,CAEjB;AAGF,MAAI,2BAA2B,IAAI,EAAE;AACnC,wBAAqB,KAAK;IACxB,MAAM;KACJ,KAAK,IAAI;KACT,QAAQ,IAAI;KACb;IACD,MAAM;IACP,CAAC;AAEF;;AAEF,MAAI,uBAAuB,IAAI,EAAE;GAE/B,MAAM,6BAA6B,mDAAmD,KAAK,cAAc;AACzG,wBAAqB,KAAK,GAAG,2BAA2B;AACxD,wBAAqB,KAAK;IACxB,MAAM;KACJ,GAAG;KACH,QAAQ,IAAI,UAAU;KACtB,MAAM,yBAAyB,IAAI,KAAK;KACzC;IACD,MAAM;IACP,CAA6C;AAE9C;;AAEF,MAAI,eAAe,SAAS;AAC1B,wBAAqB,KAAK;IACxB,MAAM;KACJ,KAAK;KACL,QAAQ;KACT;IACD,MAAM;IACP,CAAC;AACF;;AAGF,uBAAqB,KAAK;GACxB,MAAM;IACJ,KAAK,QAAQ,QAAQ,IAAI;IACzB,QAAQ;IACT;GACD,MAAM;GACP,CAAC;;AAGJ,QAAO;;AAGT,SAAgB,yBAAyB,MAA4E;AACnH,KAAI,SAAS,OAAW,QAAO;AAE/B,QAAO,KAAK,KAAK,QAAQ;AACvB,MAAI,QAAQ,OAEV;WACS,CAAC,WAAW,IAAI,CAGzB;AAEF,SAAO;GACP;;AAGJ,SAAS,2BAA2B,KAAqD;AACvF,QAAO,OAAO,QAAQ,YAAY,QAAQ,UAAa,SAAS,OAAO,YAAY;;AAGrF,SAAS,uBACP,KAC6G;AAC7G,QAAO,OAAO,QAAQ,YAAY,QAAQ,UAAa,YAAY;;AAGrE,MAAM,cAAc,MAA8B;AAChD,KAAI,MAAM,QAAQ,EAAE,CAAE,QAAO,EAAE,UAAU,KAAK,EAAE,MAAM,WAAW;AAGjE,KAAI,OAAO,eAAe,EAAE,KAAK,OAAO,eAAe,EAAE,CAAC,CACxD,QAAO,OAAO,OAAO,EAAY,CAAC,MAAM,WAAW;AAGrD,QACE,OAAO,MAAM,YACb,OAAO,MAAM,aACb,OAAO,MAAM,YACb,OAAO,MAAM,YACb,aAAa,cACb,aAAa;;;;;;AAQjB,SAAS,uBACP,QACA,OACA,QACA,YACA,mBACA,eACA,iBAC6H;CAC7H,MAAM,WAAW,CAAC,GAAI,qBAAqB,EAAE,CAAE;CAC/C,MAAM,SAAS,CAAC,GAAI,mBAAmB,EAAE,CAAE;CAC3C,MAAM,OAAO,CAAC,GAAI,iBAAiB,EAAE,CAAE;AAyDvC,QAAO;EAAE,mBAAmB;EAAU,eAAe;EAAM,iBAAiB;EAAQ,aAvDhE,WAAW,KAAK,KAAK,MAAM;GAC7C,MAAM,UAAU,OAAO,KAAK,GAAG;AAC/B,OAAI,CAAC,mBAAmB,QAAQ,CAC9B,QAAO;AAET,WAAQ,SAAR;IACE,KAAK,WAAW;KACd,IAAIA;AACJ,SAAI,OAAO,QAAQ,SACjB,QAAO,WAAW,IAAI;cACb,eAAe,WACxB,QAAO,IAAI,QAAQ,IAAI;SAEvB,OAAM,IAAI,MAAM,4BAA4B;AAG9C,SAAI,OAAO,OAAO,KAAK,CACrB,QAAO;KAGT,MAAM,WAAW,SAAS,WAAW,MAAM,EAAE,OAAO,KAAK,CAAC,GAAG;AAC7D,SAAI,SAAU,QAAO;AAErB,cAAS,KAAK,KAAK;AACnB,YAAO,SAAS;;IAElB,KAAK,SAAS;AACZ,SAAI,OAAO,QAAQ,SACjB,OAAM,IAAI,MAAM,0BAA0B;KAG5C,MAAM,WAAW,OAAO,WAAW,MAAM,MAAM,IAAI;AACnD,SAAI,aAAa,IAAI;AACnB,aAAO,KAAK,IAAI;AAChB,aAAO,OAAO,SAAS;;AAGzB,YAAO;;IAET,KAAK,eAAe;AAClB,SAAI,OAAO,QAAQ,SACjB,OAAM,IAAI,MAAM,gCAAgC;AAGlD,SAAI,QAAQ,MAAO,QAAO;KAE1B,MAAM,WAAW,KAAK,WAAW,MAAM,MAAM,IAAI,GAAG;AACpD,SAAI,SAAU,QAAO;AAErB,UAAK,KAAK,IAAI;AACd,YAAO,KAAK;;;IAGhB;EAE+F;;;;;;AAOnG,SAAS,sBAAsB,QAAmB,MAA8C;CAC9F,MAAM,cAAc,IAAI,OAAmB;AAG3C,aAAY,KAAK,OAAO,aAAa,CAAC;CAGtC,MAAM,WAAW,IAAI,OAAgB;CACrC,MAAM,YAAY,IAAI,OAAiB;AAGvC,MAAK,IAAI,IAAI,GAAG,IAAI,OAAO,KAAK,QAAQ,KAAK;EAC3C,MAAM,YAAY,OAAO,KAAK;EAC9B,MAAM,WAAW,KAAK;AAEtB,MAAI,qBAAqB,UAAU,KAAK,EAAE,YAE/B,mBAAmB,UAAU,KAAK,EAAE;GAE7C,MAAM,gBAAgB,UAAU;AAChC,OAAI,OAAO,aAAa,UAAU;AAChC,aAAS,KAAK,IAAI,YAAY,EAAE,CAAC;AACjC,cAAU,KAAK,SAAS;SAExB,OAAM,IAAI,MAAM,+BAA+B,cAAc,IAAI,WAAW;aAErE,aAAa,QAAW;AAEjC,YAAS,KAAK,UAAU,KAAK;AAE7B,aAAU,KAAK,SAAqB;;;AAMxC,KAAI,UAAU,WAAW,SAAS,OAChC,OAAM,IAAI,MAAM,kDAAkD;AAKpE,KAAI,SAAS,SAAS,6BACpB,aAAY,KAAK,GAAG,2BAA2B,UAAU,UAAU,CAAC;KAEpE,aAAY,KAAK,GAAG,uBAAuB,UAAU,UAAU,CAAC;AAGlE,QAAO;;;;;AAMT,SAAS,uBAAuB,UAAqB,WAAqC;CACxF,MAAMC,cAA4B,EAAE;AAEpC,MAAK,IAAI,IAAI,GAAG,IAAI,SAAS,QAAQ,KAAK;EACxC,MAAM,UAAU,SAAS;EACzB,MAAM,WAAW,UAAU;EAC3B,MAAM,UAAU,QAAQ,OAAO,SAAS;AACxC,cAAY,KAAK,QAAQ;;AAG3B,QAAO;;;;;AAMT,SAAS,2BAA2B,UAAqB,WAAqC;CAC5F,MAAMA,cAA4B,EAAE;CAGpC,MAAM,kBAAkB,SAAS,MAAM,GAAG,6BAA6B;CACvE,MAAM,mBAAmB,UAAU,MAAM,GAAG,6BAA6B;AACzE,aAAY,KAAK,GAAG,uBAAuB,iBAAiB,iBAAiB,CAAC;CAG9E,MAAM,oBAAoB,SAAS,MAAM,6BAA6B;CACtE,MAAM,qBAAqB,UAAU,MAAM,6BAA6B;AAExE,KAAI,kBAAkB,SAAS,GAAG;EAGhC,MAAM,eAFY,IAAI,aAAa,kBAAkB,CAEtB,OADZ,mBAC8B;AACjD,cAAY,KAAK,aAAa;;AAGhC,QAAO;;;;;AAMT,SAAS,iCAAiC,QAQmE;CAC3G,MAAM,EAAE,mBAAmB,eAAe,iBAAiB,gBAAgB,uBACzE,OAAO,QACP,OAAO,OACP,OAAO,QACP,OAAO,QAAQ,EAAE,EACjB,OAAO,mBACP,OAAO,eACP,OAAO,gBACR;AAID,QAAO;EACL,MAHkB,sBAAsB,OAAO,QAAQ,YAAY;EAInE;EACA;EACA;EACD;;AAGH,MAAa,2BAA2B,OACtC,QACA,YACA,iBACA,0BACyB;CACzB,MAAM,aAAa,2BAA2B,QAAQ,iBAAiB,sBAAsB;CAC7F,MAAM,kBACJ,OAAO,OAAO,oBAAoB,YAC7B,MAAM,WAAW,YAAY,OAAO,gBAAgB,EAAE,wBACvD,OAAO;CACb,MAAM,oBACJ,OAAO,OAAO,sBAAsB,YAC/B,MAAM,WAAW,YAAY,OAAO,kBAAkB,EAAE,wBACzD,OAAO;CACb,MAAM,oBACJ,OAAO,QAAQ,qBAAqB,UAAa,OAAO,QAAQ,eAAe,SAC3E;EACE,eAAe,OAAO,QAAQ,oBAAoB;EAClD,UAAU,OAAO,QAAQ,cAAc;EACxC,GACD;CACN,MAAM,mBACJ,OAAO,QAAQ,oBAAoB,UAAa,OAAO,QAAQ,cAAc,SACzE;EACE,eAAe,OAAO,QAAQ,mBAAmB;EACjD,UAAU,OAAO,QAAQ,aAAa;EACvC,GACD;CACN,MAAM,oBACJ,OAAO,sBAAsB,SAAY,OAAO,oBAAoB,2BAA2B,iBAAkB,kBAAmB;CACtI,MAAM,oBAAoB,OAAO,mBAAmB,KAAK,MAAM,WAAW,EAAE,CAAC;CAC7E,MAAM,oBAAoB,iCAAiC;EACzD,QAAQ,WAAW;EACnB,OAAO;EACP,QAAQ,OAAO;EACf,MAAM,OAAO,QAAQ,EAAE;EACJ;EACnB,eAAe,OAAO;EACtB,iBAAiB,OAAO;EACzB,CAAC;CAGF,MAAM,sBAAsB,OAAO,oBAAoB,OAAO,iBAAiB,SAAS;AAExF,QAAO,IAAI,YAAY;EACrB,GAAG;EACH,MAAM,gBAAgB;EACtB,SAAS;GACP,OAAO;GACP,YAAY,OAAO,cAAc,sBAAsB;GACtC;GACE;GACA;GACD;GACC;GACnB,MAAM,kBAAkB;GACxB,GAAI,sBACA,EAAE,kBAAkB,OAAO,kBAAkB,GAC7C;IACE,mBAAmB,kBAAkB;IACrC,eAAe,kBAAkB;IACjC,iBAAiB,kBAAkB;IACnC,eAAe,OAAO,eAAe,IAAI,WAAW,gBAAgB;IACrE;GACL,eAAe,OAAO;GACvB;EACF,CAAC;;AAGJ,MAAa,2BAA2B,OACtC,QACA,YACA,iBACA,0BACyB;CACzB,MAAM,aAAa,2BAA2B,QAAQ,iBAAiB,sBAAsB;CAC7F,MAAM,kBACJ,OAAO,OAAO,oBAAoB,YAC7B,MAAM,WAAW,YAAY,OAAO,gBAAgB,EAAE,wBACvD,OAAO;CACb,MAAM,oBACJ,OAAO,OAAO,sBAAsB,YAC/B,MAAM,WAAW,YAAY,OAAO,kBAAkB,EAAE,wBACzD,OAAO;CACb,MAAM,oBAAoB,OAAO,mBAAmB,KAAK,MAAM,WAAW,EAAE,CAAC;CAC7E,MAAM,oBAAoB,iCAAiC;EACzD,QAAQ,WAAW;EACnB,OAAO,OAAO;EACd,QAAQ,OAAO;EACf,MAAM,OAAO,QAAQ,EAAE;EACJ;EACnB,eAAe,OAAO;EACtB,iBAAiB,OAAO;EACzB,CAAC;CAGF,MAAM,sBAAsB,OAAO,oBAAoB,OAAO,iBAAiB,SAAS;AAExF,QAAO,IAAI,YAAY;EACrB,GAAG;EACH,MAAM,gBAAgB;EACtB,SAAS;GACP,OAAO,OAAO;GACd,YAAY,sBAAsB;GACjB;GACE;GACnB,MAAM,kBAAkB;GACxB,GAAI,sBACA,EAAE,kBAAkB,OAAO,kBAAkB,GAC7C;IACE,mBAAmB,kBAAkB;IACrC,eAAe,kBAAkB;IACjC,iBAAiB,kBAAkB;IACnC,eAAe,OAAO,eAAe,IAAI,WAAW,gBAAgB;IACrE;GACL,eAAe,OAAO;GACvB;EACF,CAAC;;AAGJ,MAAa,yBAAyB,OACpC,QACA,iBACA,0BACyB;CACzB,MAAM,aAAa,2BAA2B,QAAQ,iBAAiB,sBAAsB;CAC7F,MAAM,oBAAoB,OAAO,mBAAmB,KAAK,MAAM,WAAW,EAAE,CAAC;CAC7E,MAAM,oBAAoB,iCAAiC;EACzD,QAAQ,WAAW;EACnB,OAAO,OAAO;EACd,QAAQ,OAAO;EACf,MAAM,OAAO,QAAQ,EAAE;EACJ;EACnB,eAAe,OAAO;EACtB,iBAAiB,OAAO;EACzB,CAAC;CAGF,MAAM,sBAAsB,OAAO,oBAAoB,OAAO,iBAAiB,SAAS;AAExF,QAAO,IAAI,YAAY;EACrB,GAAG;EACH,MAAM,gBAAgB;EACtB,SAAS;GACP,OAAO,OAAO;GACd,YAAY,OAAO,cAAc,sBAAsB;GACvD,MAAM,kBAAkB;GACxB,GAAI,sBACA,EAAE,kBAAkB,OAAO,kBAAkB,GAC7C;IACE,mBAAmB,kBAAkB;IACrC,eAAe,kBAAkB;IACjC,iBAAiB,kBAAkB;IACnC,eAAe,OAAO,eAAe,IAAI,WAAW,gBAAgB;IACrE;GACL,eAAe,OAAO;GACvB;EACF,CAAC"}
1
+ {"version":3,"file":"method-call.mjs","names":["addr: Address","encodedArgs: Uint8Array[]"],"sources":["../../src/transactions/method-call.ts"],"sourcesContent":["import {\n ABIMethod,\n ABITupleType,\n ABIType,\n ABIUintType,\n ABIValue,\n argTypeIsReference,\n argTypeIsTransaction,\n} from '@algorandfoundation/algokit-abi'\nimport { SuggestedParams } from '@algorandfoundation/algokit-algod-client'\nimport { Address, Expand, getAddress } from '@algorandfoundation/algokit-common'\nimport { OnApplicationComplete, Transaction, TransactionSigner, TransactionType } from '@algorandfoundation/algokit-transact'\nimport { TransactionWithSigner } from '../transaction'\nimport { AlgoAmount } from '../types/amount'\nimport { AppManager } from '../types/app-manager'\nimport { calculateExtraProgramPages } from '../util'\nimport { AppCreateParams, AppDeleteParams, AppMethodCallParams, AppUpdateParams } from './app-call'\nimport { buildTransactionCommonData } from './common'\n\nconst ARGS_TUPLE_PACKING_THRESHOLD = 14 // 14+ args trigger tuple packing, excluding the method selector\n\n/** Parameters to define an ABI method call create transaction. */\nexport type AppCreateMethodCall = Expand<AppMethodCall<AppCreateParams>>\n/** Parameters to define an ABI method call update transaction. */\nexport type AppUpdateMethodCall = Expand<AppMethodCall<AppUpdateParams>>\n/** Parameters to define an ABI method call delete transaction. */\nexport type AppDeleteMethodCall = Expand<AppMethodCall<AppDeleteParams>>\n/** Parameters to define an ABI method call transaction. */\nexport type AppCallMethodCall = Expand<AppMethodCall<AppMethodCallParams>>\n\nexport type ProcessedAppCreateMethodCall = Expand<\n Omit<AppCreateMethodCall, 'args'> & {\n args?: (ABIValue | undefined)[]\n }\n>\n\nexport type ProcessedAppUpdateMethodCall = Expand<\n Omit<AppUpdateMethodCall, 'args'> & {\n args?: (ABIValue | undefined)[]\n }\n>\n\nexport type ProcessedAppCallMethodCall = Expand<\n Omit<AppCallMethodCall, 'args'> & {\n args?: (ABIValue | undefined)[]\n }\n>\n\n/** Types that can be used to define a transaction argument for an ABI call transaction. */\nexport type AppMethodCallTransactionArgument =\n // The following should match the partial `args` types from `AppMethodCall<T>` below\n | TransactionWithSigner\n | Transaction\n | Promise<Transaction>\n | AppMethodCall<AppCreateParams>\n | AppMethodCall<AppUpdateParams>\n | AppMethodCall<AppMethodCallParams>\n\n/** Parameters to define an ABI method call. */\nexport type AppMethodCall<T> = Expand<Omit<T, 'args'>> & {\n /** The ABI method to call */\n method: ABIMethod\n /** Arguments to the ABI method, either:\n * * An ABI value\n * * A transaction with explicit signer\n * * A transaction (where the signer will be automatically assigned)\n * * An unawaited transaction (e.g. from algorand.createTransaction.{transactionType}())\n * * Another method call (via method call params object)\n * * undefined (this represents a placeholder transaction argument that is fulfilled by another method call argument)\n */\n args?: (\n | ABIValue\n // The following should match the above `AppMethodCallTransactionArgument` type above\n | TransactionWithSigner\n | Transaction\n | Promise<Transaction>\n | AppMethodCall<AppCreateParams>\n | AppMethodCall<AppUpdateParams>\n | AppMethodCall<AppMethodCallParams>\n | undefined\n )[]\n}\n\ntype AppMethodCallArgs = AppMethodCall<unknown>['args']\ntype AppMethodCallArg = NonNullable<AppMethodCallArgs>[number]\n\nexport type AsyncTransactionParams = {\n txn: Promise<Transaction>\n signer?: TransactionSigner\n maxFee?: AlgoAmount\n}\n\nexport type TransactionParams = {\n txn: Transaction\n signer?: TransactionSigner\n maxFee?: AlgoAmount\n}\n\ntype ExtractedMethodCallTransactionArg =\n | { data: TransactionParams; type: 'txn' }\n | {\n data: AsyncTransactionParams\n type: 'asyncTxn'\n }\n | { data: ProcessedAppCallMethodCall | ProcessedAppCreateMethodCall | ProcessedAppUpdateMethodCall; type: 'methodCall' }\n\nexport function extractComposerTransactionsFromAppMethodCallParams(\n params: AppCallMethodCall | AppCreateMethodCall | AppUpdateMethodCall | AppDeleteMethodCall,\n parentSigner?: TransactionSigner,\n): ExtractedMethodCallTransactionArg[] {\n const composerTransactions = new Array<ExtractedMethodCallTransactionArg>()\n const methodCallArgs = params.args\n if (!methodCallArgs) return []\n\n // Extract signer from params, falling back to parentSigner\n const currentSigner = params.signer ? ('signer' in params.signer ? params.signer.signer : params.signer) : parentSigner\n\n for (let i = 0; i < methodCallArgs.length; i++) {\n const arg = methodCallArgs[i]\n\n if (arg === undefined) {\n // is a transaction or default value placeholder, do nothing\n continue\n }\n if (isAbiValue(arg)) {\n // if is ABI value, also ignore\n continue\n }\n\n if (isTransactionWithSignerArg(arg)) {\n composerTransactions.push({\n data: {\n txn: arg.txn,\n signer: arg.signer,\n },\n type: 'txn',\n })\n\n continue\n }\n if (isAppCallMethodCallArg(arg)) {\n // Recursively extract nested method call transactions, passing the nested call itself and current signer as parent\n const nestedComposerTransactions = extractComposerTransactionsFromAppMethodCallParams(arg, currentSigner)\n composerTransactions.push(...nestedComposerTransactions)\n composerTransactions.push({\n data: {\n ...arg,\n signer: arg.signer ?? currentSigner,\n args: processAppMethodCallArgs(arg.args),\n },\n type: 'methodCall',\n } satisfies ExtractedMethodCallTransactionArg)\n\n continue\n }\n if (arg instanceof Promise) {\n composerTransactions.push({\n data: {\n txn: arg,\n signer: currentSigner,\n },\n type: 'asyncTxn',\n })\n continue\n }\n\n composerTransactions.push({\n data: {\n txn: Promise.resolve(arg),\n signer: currentSigner,\n },\n type: 'asyncTxn',\n })\n }\n\n return composerTransactions\n}\n\nexport function processAppMethodCallArgs(args: AppMethodCallArg[] | undefined): (ABIValue | undefined)[] | undefined {\n if (args === undefined) return undefined\n\n return args.map((arg) => {\n if (arg === undefined) {\n // Handle explicit placeholders (either transaction or default value)\n return undefined\n } else if (!isAbiValue(arg)) {\n // If the arg is not an ABIValue, it's must be a transaction, set to undefined\n // transaction arguments should be flattened out and added into the composer during the add process\n return undefined\n }\n return arg\n })\n}\n\nfunction isTransactionWithSignerArg(arg: AppMethodCallArg): arg is TransactionWithSigner {\n return typeof arg === 'object' && arg !== undefined && 'txn' in arg && 'signer' in arg\n}\n\nfunction isAppCallMethodCallArg(\n arg: AppMethodCallArg,\n): arg is AppMethodCall<AppCreateParams> | AppMethodCall<AppUpdateParams> | AppMethodCall<AppMethodCallParams> {\n return typeof arg === 'object' && arg !== undefined && 'method' in arg\n}\n\nconst isAbiValue = (x: unknown): x is ABIValue => {\n if (Array.isArray(x)) return x.length == 0 || x.every(isAbiValue)\n\n // If x is a POJO literal\n if (Object.getPrototypeOf(x) === Object.getPrototypeOf({})) {\n return Object.values(x as object).every(isAbiValue)\n }\n\n return (\n typeof x === 'bigint' ||\n typeof x === 'boolean' ||\n typeof x === 'number' ||\n typeof x === 'string' ||\n x instanceof Uint8Array ||\n x instanceof Address\n )\n}\n\n/**\n * Prepares method arguments for ABI encoding by building reference arrays and\n * replacing reference-type arguments (account, asset, application) with their indices.\n */\nfunction prepareArgsForEncoding(\n sender: Address,\n appId: bigint,\n method: ABIMethod,\n methodArgs: (ABIValue | undefined)[],\n accountReferences?: Address[],\n appReferences?: bigint[],\n assetReferences?: bigint[],\n): { accountReferences: Address[]; appReferences: bigint[]; assetReferences: bigint[]; updatedArgs: (ABIValue | undefined)[] } {\n const accounts = [...(accountReferences ?? [])]\n const assets = [...(assetReferences ?? [])]\n const apps = [...(appReferences ?? [])]\n\n const updatedArgs = methodArgs.map((arg, i) => {\n const argType = method.args[i].type\n if (!argTypeIsReference(argType)) {\n return arg\n }\n switch (argType) {\n case 'account': {\n let addr: Address\n if (typeof arg === 'string') {\n addr = getAddress(arg)\n } else if (arg instanceof Uint8Array) {\n addr = new Address(arg)\n } else {\n throw new Error('Invalid value for account')\n }\n\n if (sender.equals(addr)) {\n return 0\n }\n\n const existing = accounts.findIndex((a) => a.equals(addr)) + 1\n if (existing) return existing\n\n accounts.push(addr)\n return accounts.length\n }\n case 'asset': {\n if (typeof arg !== 'bigint') {\n throw new Error('Invalid value for asset')\n }\n\n const existing = assets.findIndex((a) => a === arg)\n if (existing === -1) {\n assets.push(arg)\n return assets.length - 1\n }\n\n return existing\n }\n case 'application': {\n if (typeof arg !== 'bigint') {\n throw new Error('Invalid value for application')\n }\n\n if (arg === appId) return 0\n\n const existing = apps.findIndex((a) => a === arg) + 1\n if (existing) return existing\n\n apps.push(arg)\n return apps.length\n }\n }\n })\n\n return { accountReferences: accounts, appReferences: apps, assetReferences: assets, updatedArgs }\n}\n\n/**\n * Encode ABI method arguments with tuple packing support\n * Ports the logic from the Rust encode_method_arguments function\n */\nfunction encodeMethodArguments(method: ABIMethod, args: (ABIValue | undefined)[]): Uint8Array[] {\n const encodedArgs = new Array<Uint8Array>()\n\n // Insert method selector at the front\n encodedArgs.push(method.getSelector())\n\n // Get ABI types for non-transaction arguments\n const abiTypes = new Array<ABIType>()\n const abiValues = new Array<ABIValue>()\n\n // Process each method argument\n for (let i = 0; i < method.args.length; i++) {\n const methodArg = method.args[i]\n const argValue = args[i]\n\n if (argTypeIsTransaction(methodArg.type)) {\n // Transaction arguments are not ABI encoded - they're handled separately\n } else if (argTypeIsReference(methodArg.type)) {\n // Reference types are encoded as uint8 indexes\n const referenceType = methodArg.type\n if (typeof argValue === 'number') {\n abiTypes.push(new ABIUintType(8))\n abiValues.push(argValue)\n } else {\n throw new Error(`Invalid reference value for ${referenceType}: ${argValue}`)\n }\n } else if (argValue !== undefined) {\n // Regular ABI value\n abiTypes.push(methodArg.type)\n // it's safe to cast to ABIValue here because the abiType must be ABIValue\n abiValues.push(argValue as ABIValue)\n }\n\n // Skip undefined values (transaction placeholders)\n }\n\n if (abiValues.length !== abiTypes.length) {\n throw new Error('Mismatch in length of non-transaction arguments')\n }\n\n // Apply ARC-4 tuple packing for methods with more than 14 arguments\n // 14 instead of 15 in the ARC-4 because the first argument (method selector) is added separately\n if (abiTypes.length > ARGS_TUPLE_PACKING_THRESHOLD) {\n encodedArgs.push(...encodeArgsWithTuplePacking(abiTypes, abiValues))\n } else {\n encodedArgs.push(...encodeArgsIndividually(abiTypes, abiValues))\n }\n\n return encodedArgs\n}\n\n/**\n * Encode individual ABI values\n */\nfunction encodeArgsIndividually(abiTypes: ABIType[], abiValues: ABIValue[]): Uint8Array[] {\n const encodedArgs: Uint8Array[] = []\n\n for (let i = 0; i < abiTypes.length; i++) {\n const abiType = abiTypes[i]\n const abiValue = abiValues[i]\n const encoded = abiType.encode(abiValue)\n encodedArgs.push(encoded)\n }\n\n return encodedArgs\n}\n\n/**\n * Encode ABI values with tuple packing for methods with many arguments\n */\nfunction encodeArgsWithTuplePacking(abiTypes: ABIType[], abiValues: ABIValue[]): Uint8Array[] {\n const encodedArgs: Uint8Array[] = []\n\n // Encode first 14 arguments individually\n const first14AbiTypes = abiTypes.slice(0, ARGS_TUPLE_PACKING_THRESHOLD)\n const first14AbiValues = abiValues.slice(0, ARGS_TUPLE_PACKING_THRESHOLD)\n encodedArgs.push(...encodeArgsIndividually(first14AbiTypes, first14AbiValues))\n\n // Pack remaining arguments into tuple at position 15\n const remainingAbiTypes = abiTypes.slice(ARGS_TUPLE_PACKING_THRESHOLD)\n const remainingAbiValues = abiValues.slice(ARGS_TUPLE_PACKING_THRESHOLD)\n\n if (remainingAbiTypes.length > 0) {\n const tupleType = new ABITupleType(remainingAbiTypes)\n const tupleValue = remainingAbiValues\n const tupleEncoded = tupleType.encode(tupleValue)\n encodedArgs.push(tupleEncoded)\n }\n\n return encodedArgs\n}\n\n/**\n * Builds encoded ABI method arguments and resolves reference arrays\n */\nfunction buildMethodCallArgsAndReferences(params: {\n sender: Address\n appId: bigint\n method: ABIMethod\n args: (ABIValue | undefined)[]\n accountReferences?: Address[]\n appReferences?: bigint[]\n assetReferences?: bigint[]\n}): { args: Uint8Array[]; accountReferences: Address[]; appReferences: bigint[]; assetReferences: bigint[] } {\n const { accountReferences, appReferences, assetReferences, updatedArgs } = prepareArgsForEncoding(\n params.sender,\n params.appId,\n params.method,\n params.args ?? [],\n params.accountReferences,\n params.appReferences,\n params.assetReferences,\n )\n\n const encodedArgs = encodeMethodArguments(params.method, updatedArgs)\n\n return {\n args: encodedArgs,\n accountReferences,\n appReferences,\n assetReferences,\n }\n}\n\nexport const buildAppCreateMethodCall = async (\n params: ProcessedAppCreateMethodCall,\n appManager: AppManager,\n suggestedParams: SuggestedParams,\n defaultValidityWindow: bigint,\n): Promise<Transaction> => {\n const commonData = buildTransactionCommonData(params, suggestedParams, defaultValidityWindow)\n const approvalProgram =\n typeof params.approvalProgram === 'string'\n ? (await appManager.compileTeal(params.approvalProgram)).compiledBase64ToBytes\n : params.approvalProgram\n const clearStateProgram =\n typeof params.clearStateProgram === 'string'\n ? (await appManager.compileTeal(params.clearStateProgram)).compiledBase64ToBytes\n : params.clearStateProgram\n const globalStateSchema =\n params.schema?.globalByteSlices !== undefined || params.schema?.globalInts !== undefined\n ? {\n numByteSlices: params.schema?.globalByteSlices ?? 0,\n numUints: params.schema?.globalInts ?? 0,\n }\n : undefined\n const localStateSchema =\n params.schema?.localByteSlices !== undefined || params.schema?.localInts !== undefined\n ? {\n numByteSlices: params.schema?.localByteSlices ?? 0,\n numUints: params.schema?.localInts ?? 0,\n }\n : undefined\n const extraProgramPages =\n params.extraProgramPages !== undefined ? params.extraProgramPages : calculateExtraProgramPages(approvalProgram!, clearStateProgram!)\n const accountReferences = params.accountReferences?.map((a) => getAddress(a))\n const argsAndReferences = buildMethodCallArgsAndReferences({\n sender: commonData.sender,\n appId: 0n,\n method: params.method,\n args: params.args ?? [],\n accountReferences: accountReferences,\n appReferences: params.appReferences,\n assetReferences: params.assetReferences,\n })\n\n // If accessReferences is provided, we should not pass legacy foreign arrays\n const hasAccessReferences = params.accessReferences && params.accessReferences.length > 0\n\n return new Transaction({\n ...commonData,\n type: TransactionType.AppCall,\n appCall: {\n appId: 0n,\n onComplete: params.onComplete ?? OnApplicationComplete.NoOp,\n approvalProgram: approvalProgram,\n clearStateProgram: clearStateProgram,\n globalStateSchema: globalStateSchema,\n localStateSchema: localStateSchema,\n extraProgramPages: extraProgramPages,\n args: argsAndReferences.args,\n ...(hasAccessReferences\n ? { accessReferences: params.accessReferences }\n : {\n accountReferences: argsAndReferences.accountReferences,\n appReferences: argsAndReferences.appReferences,\n assetReferences: argsAndReferences.assetReferences,\n boxReferences: params.boxReferences?.map(AppManager.getBoxReference),\n }),\n rejectVersion: params.rejectVersion,\n },\n })\n}\n\nexport const buildAppUpdateMethodCall = async (\n params: ProcessedAppUpdateMethodCall,\n appManager: AppManager,\n suggestedParams: SuggestedParams,\n defaultValidityWindow: bigint,\n): Promise<Transaction> => {\n const commonData = buildTransactionCommonData(params, suggestedParams, defaultValidityWindow)\n const approvalProgram =\n typeof params.approvalProgram === 'string'\n ? (await appManager.compileTeal(params.approvalProgram)).compiledBase64ToBytes\n : params.approvalProgram\n const clearStateProgram =\n typeof params.clearStateProgram === 'string'\n ? (await appManager.compileTeal(params.clearStateProgram)).compiledBase64ToBytes\n : params.clearStateProgram\n const accountReferences = params.accountReferences?.map((a) => getAddress(a))\n const argsAndReferences = buildMethodCallArgsAndReferences({\n sender: commonData.sender,\n appId: params.appId,\n method: params.method,\n args: params.args ?? [],\n accountReferences: accountReferences,\n appReferences: params.appReferences,\n assetReferences: params.assetReferences,\n })\n\n // If accessReferences is provided, we should not pass legacy foreign arrays\n const hasAccessReferences = params.accessReferences && params.accessReferences.length > 0\n\n return new Transaction({\n ...commonData,\n type: TransactionType.AppCall,\n appCall: {\n appId: params.appId,\n onComplete: OnApplicationComplete.UpdateApplication,\n approvalProgram: approvalProgram,\n clearStateProgram: clearStateProgram,\n args: argsAndReferences.args,\n ...(hasAccessReferences\n ? { accessReferences: params.accessReferences }\n : {\n accountReferences: argsAndReferences.accountReferences,\n appReferences: argsAndReferences.appReferences,\n assetReferences: argsAndReferences.assetReferences,\n boxReferences: params.boxReferences?.map(AppManager.getBoxReference),\n }),\n rejectVersion: params.rejectVersion,\n },\n })\n}\n\nexport const buildAppCallMethodCall = async (\n params: ProcessedAppCallMethodCall,\n suggestedParams: SuggestedParams,\n defaultValidityWindow: bigint,\n): Promise<Transaction> => {\n const commonData = buildTransactionCommonData(params, suggestedParams, defaultValidityWindow)\n const accountReferences = params.accountReferences?.map((a) => getAddress(a))\n const argsAndReferences = buildMethodCallArgsAndReferences({\n sender: commonData.sender,\n appId: params.appId,\n method: params.method,\n args: params.args ?? [],\n accountReferences: accountReferences,\n appReferences: params.appReferences,\n assetReferences: params.assetReferences,\n })\n\n // If accessReferences is provided, we should not pass legacy foreign arrays\n const hasAccessReferences = params.accessReferences && params.accessReferences.length > 0\n\n return new Transaction({\n ...commonData,\n type: TransactionType.AppCall,\n appCall: {\n appId: params.appId,\n onComplete: params.onComplete ?? OnApplicationComplete.NoOp,\n args: argsAndReferences.args,\n ...(hasAccessReferences\n ? { accessReferences: params.accessReferences }\n : {\n accountReferences: argsAndReferences.accountReferences,\n appReferences: argsAndReferences.appReferences,\n assetReferences: argsAndReferences.assetReferences,\n boxReferences: params.boxReferences?.map(AppManager.getBoxReference),\n }),\n rejectVersion: params.rejectVersion,\n },\n })\n}\n"],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  const require_rolldown_runtime = require('../_virtual/rolldown_runtime.js');
2
2
  const require_address = require('../packages/common/src/address.js');
3
3
  const require_signer = require('../packages/transact/src/signer.js');
4
- const require_multisig = require('../packages/transact/src/multisig.js');
5
4
  const require_logicsig = require('../packages/transact/src/logicsig.js');
5
+ const require_multisig = require('../packages/transact/src/multisig.js');
6
6
  const require_amount = require('./amount.js');
7
7
  const require_config = require('../config.js');
8
8
  const require_util = require('../util.js');
@@ -1,7 +1,7 @@
1
1
  import { Address, getAddress, getOptionalAddress } from "../packages/common/src/address.mjs";
2
2
  import { generateAddressWithSigners } from "../packages/transact/src/signer.mjs";
3
- import { MultisigAccount } from "../packages/transact/src/multisig.mjs";
4
3
  import { LogicSigAccount } from "../packages/transact/src/logicsig.mjs";
4
+ import { MultisigAccount } from "../packages/transact/src/multisig.mjs";
5
5
  import { AlgoAmount } from "./amount.mjs";
6
6
  import { Config } from "../config.mjs";
7
7
  import { calculateFundAmount, memoize } from "../util.mjs";
@@ -1,4 +1,5 @@
1
1
  import { ReadableAddress } from "../packages/common/src/address.js";
2
+ import { Expand } from "../packages/common/src/expand.js";
2
3
  import { ABIValue } from "../packages/abi/src/abi-value.js";
3
4
  import { ABIMethod } from "../packages/abi/src/abi-method.js";
4
5
  import { OnApplicationComplete, ResourceReference } from "../packages/transact/src/transactions/app-call.js";
@@ -6,7 +7,6 @@ import { Transaction } from "../packages/transact/src/transactions/transaction.j
6
7
  import { AddressWithTransactionSigner, SendingAddress, TransactionSigner } from "../packages/transact/src/signer.js";
7
8
  import { AlgoAmount } from "./amount.js";
8
9
  import { BoxIdentifier, BoxReference } from "./app-manager.js";
9
- import { Expand } from "./expand.js";
10
10
  import { AppCallParams, AppDeleteParams, AppMethodCallParams } from "../transactions/app-call.js";
11
11
  import { AssetOptInParams, AssetOptOutParams, AssetTransferParams } from "../transactions/asset-transfer.js";
12
12
  import { AssetConfigParams, AssetCreateParams, AssetDestroyParams, AssetFreezeParams } from "../transactions/asset-config.js";
@@ -348,7 +348,8 @@ declare class AlgorandClientTransactionCreator {
348
348
  * @returns The application create transaction
349
349
  */
350
350
  appCreate: (params: {
351
- signer?: TransactionSigner | AddressWithTransactionSigner | undefined;
351
+ args?: Uint8Array[] | undefined;
352
+ signer?: AddressWithTransactionSigner | TransactionSigner | undefined;
352
353
  sender: SendingAddress;
353
354
  rekeyTo?: ReadableAddress | undefined;
354
355
  note?: string | Uint8Array | undefined;
@@ -360,11 +361,10 @@ declare class AlgorandClientTransactionCreator {
360
361
  firstValidRound?: bigint | undefined;
361
362
  lastValidRound?: bigint | undefined;
362
363
  onComplete?: OnApplicationComplete.NoOp | OnApplicationComplete.OptIn | OnApplicationComplete.CloseOut | OnApplicationComplete.UpdateApplication | OnApplicationComplete.DeleteApplication | undefined;
363
- args?: Uint8Array[] | undefined;
364
364
  accountReferences?: ReadableAddress[] | undefined;
365
365
  appReferences?: bigint[] | undefined;
366
366
  assetReferences?: bigint[] | undefined;
367
- boxReferences?: (BoxIdentifier | BoxReference)[] | undefined;
367
+ boxReferences?: (BoxReference | BoxIdentifier)[] | undefined;
368
368
  accessReferences?: ResourceReference[] | undefined;
369
369
  rejectVersion?: number | undefined;
370
370
  appId?: 0 | undefined;
@@ -417,7 +417,7 @@ declare class AlgorandClientTransactionCreator {
417
417
  */
418
418
  appUpdate: (params: {
419
419
  sender: SendingAddress;
420
- signer?: TransactionSigner | AddressWithTransactionSigner | undefined;
420
+ signer?: AddressWithTransactionSigner | TransactionSigner | undefined;
421
421
  rekeyTo?: ReadableAddress | undefined;
422
422
  note?: string | Uint8Array | undefined;
423
423
  lease?: string | Uint8Array | undefined;
@@ -433,7 +433,7 @@ declare class AlgorandClientTransactionCreator {
433
433
  accountReferences?: ReadableAddress[] | undefined;
434
434
  appReferences?: bigint[] | undefined;
435
435
  assetReferences?: bigint[] | undefined;
436
- boxReferences?: (BoxIdentifier | BoxReference)[] | undefined;
436
+ boxReferences?: (BoxReference | BoxIdentifier)[] | undefined;
437
437
  accessReferences?: ResourceReference[] | undefined;
438
438
  rejectVersion?: number | undefined;
439
439
  approvalProgram: string | Uint8Array;
@@ -568,7 +568,7 @@ declare class AlgorandClientTransactionCreator {
568
568
  * @returns The application ABI method create transaction
569
569
  */
570
570
  appCreateMethodCall: (params: {
571
- signer?: TransactionSigner | AddressWithTransactionSigner | undefined;
571
+ signer?: AddressWithTransactionSigner | TransactionSigner | undefined;
572
572
  sender: SendingAddress;
573
573
  rekeyTo?: ReadableAddress | undefined;
574
574
  note?: string | Uint8Array | undefined;
@@ -579,27 +579,27 @@ declare class AlgorandClientTransactionCreator {
579
579
  validityWindow?: number | bigint | undefined;
580
580
  firstValidRound?: bigint | undefined;
581
581
  lastValidRound?: bigint | undefined;
582
- schema?: {
583
- globalInts: number;
584
- globalByteSlices: number;
585
- localInts: number;
586
- localByteSlices: number;
587
- } | undefined;
582
+ appId?: 0 | undefined;
588
583
  approvalProgram: string | Uint8Array;
589
584
  clearStateProgram: string | Uint8Array;
590
- appId?: 0 | undefined;
591
585
  onComplete?: OnApplicationComplete.NoOp | OnApplicationComplete.OptIn | OnApplicationComplete.CloseOut | OnApplicationComplete.UpdateApplication | OnApplicationComplete.DeleteApplication | undefined;
592
586
  accountReferences?: ReadableAddress[] | undefined;
593
587
  appReferences?: bigint[] | undefined;
594
588
  assetReferences?: bigint[] | undefined;
595
- boxReferences?: (BoxIdentifier | BoxReference)[] | undefined;
589
+ boxReferences?: (BoxReference | BoxIdentifier)[] | undefined;
596
590
  accessReferences?: ResourceReference[] | undefined;
597
591
  rejectVersion?: number | undefined;
592
+ schema?: {
593
+ globalInts: number;
594
+ globalByteSlices: number;
595
+ localInts: number;
596
+ localByteSlices: number;
597
+ } | undefined;
598
598
  extraProgramPages?: number | undefined;
599
599
  method: ABIMethod;
600
- args?: (Transaction | ABIValue | TransactionWithSigner | Promise<Transaction> | AppMethodCall<{
601
- signer?: TransactionSigner | AddressWithTransactionSigner | undefined;
600
+ args?: (ABIValue | Transaction | TransactionWithSigner | AppMethodCall<{
602
601
  sender: SendingAddress;
602
+ signer?: AddressWithTransactionSigner | TransactionSigner | undefined;
603
603
  rekeyTo?: ReadableAddress | undefined;
604
604
  note?: string | Uint8Array | undefined;
605
605
  lease?: string | Uint8Array | undefined;
@@ -609,27 +609,21 @@ declare class AlgorandClientTransactionCreator {
609
609
  validityWindow?: number | bigint | undefined;
610
610
  firstValidRound?: bigint | undefined;
611
611
  lastValidRound?: bigint | undefined;
612
- onComplete?: OnApplicationComplete.NoOp | OnApplicationComplete.OptIn | OnApplicationComplete.CloseOut | OnApplicationComplete.UpdateApplication | OnApplicationComplete.DeleteApplication | undefined;
612
+ appId: bigint;
613
+ onComplete?: OnApplicationComplete.UpdateApplication | undefined;
613
614
  args?: Uint8Array[] | undefined;
614
615
  accountReferences?: ReadableAddress[] | undefined;
615
616
  appReferences?: bigint[] | undefined;
616
617
  assetReferences?: bigint[] | undefined;
617
- boxReferences?: (BoxIdentifier | BoxReference)[] | undefined;
618
+ boxReferences?: (BoxReference | BoxIdentifier)[] | undefined;
618
619
  accessReferences?: ResourceReference[] | undefined;
619
620
  rejectVersion?: number | undefined;
620
- appId?: 0 | undefined;
621
621
  approvalProgram: string | Uint8Array;
622
622
  clearStateProgram: string | Uint8Array;
623
- schema?: {
624
- globalInts: number;
625
- globalByteSlices: number;
626
- localInts: number;
627
- localByteSlices: number;
628
- } | undefined;
629
- extraProgramPages?: number | undefined;
630
623
  }> | AppMethodCall<{
624
+ args?: Uint8Array[] | undefined;
625
+ signer?: AddressWithTransactionSigner | TransactionSigner | undefined;
631
626
  sender: SendingAddress;
632
- signer?: TransactionSigner | AddressWithTransactionSigner | undefined;
633
627
  rekeyTo?: ReadableAddress | undefined;
634
628
  note?: string | Uint8Array | undefined;
635
629
  lease?: string | Uint8Array | undefined;
@@ -639,18 +633,24 @@ declare class AlgorandClientTransactionCreator {
639
633
  validityWindow?: number | bigint | undefined;
640
634
  firstValidRound?: bigint | undefined;
641
635
  lastValidRound?: bigint | undefined;
642
- appId: bigint;
643
- onComplete?: OnApplicationComplete.UpdateApplication | undefined;
644
- args?: Uint8Array[] | undefined;
636
+ onComplete?: OnApplicationComplete.NoOp | OnApplicationComplete.OptIn | OnApplicationComplete.CloseOut | OnApplicationComplete.UpdateApplication | OnApplicationComplete.DeleteApplication | undefined;
645
637
  accountReferences?: ReadableAddress[] | undefined;
646
638
  appReferences?: bigint[] | undefined;
647
639
  assetReferences?: bigint[] | undefined;
648
- boxReferences?: (BoxIdentifier | BoxReference)[] | undefined;
640
+ boxReferences?: (BoxReference | BoxIdentifier)[] | undefined;
649
641
  accessReferences?: ResourceReference[] | undefined;
650
642
  rejectVersion?: number | undefined;
643
+ appId?: 0 | undefined;
651
644
  approvalProgram: string | Uint8Array;
652
645
  clearStateProgram: string | Uint8Array;
653
- }> | AppMethodCall<AppMethodCallParams> | undefined)[] | undefined;
646
+ schema?: {
647
+ globalInts: number;
648
+ globalByteSlices: number;
649
+ localInts: number;
650
+ localByteSlices: number;
651
+ } | undefined;
652
+ extraProgramPages?: number | undefined;
653
+ }> | Promise<Transaction> | AppMethodCall<AppMethodCallParams> | undefined)[] | undefined;
654
654
  }) => Promise<Expand<BuiltTransactions>>;
655
655
  /** Create an application update call with ABI method call transaction.
656
656
  *
@@ -702,7 +702,7 @@ declare class AlgorandClientTransactionCreator {
702
702
  * @returns The application ABI method update transaction
703
703
  */
704
704
  appUpdateMethodCall: (params: {
705
- signer?: TransactionSigner | AddressWithTransactionSigner | undefined;
705
+ signer?: AddressWithTransactionSigner | TransactionSigner | undefined;
706
706
  sender: SendingAddress;
707
707
  rekeyTo?: ReadableAddress | undefined;
708
708
  note?: string | Uint8Array | undefined;
@@ -713,20 +713,20 @@ declare class AlgorandClientTransactionCreator {
713
713
  validityWindow?: number | bigint | undefined;
714
714
  firstValidRound?: bigint | undefined;
715
715
  lastValidRound?: bigint | undefined;
716
+ appId: bigint;
716
717
  approvalProgram: string | Uint8Array;
717
718
  clearStateProgram: string | Uint8Array;
718
- appId: bigint;
719
719
  onComplete?: OnApplicationComplete.UpdateApplication | undefined;
720
720
  accountReferences?: ReadableAddress[] | undefined;
721
721
  appReferences?: bigint[] | undefined;
722
722
  assetReferences?: bigint[] | undefined;
723
- boxReferences?: (BoxIdentifier | BoxReference)[] | undefined;
723
+ boxReferences?: (BoxReference | BoxIdentifier)[] | undefined;
724
724
  accessReferences?: ResourceReference[] | undefined;
725
725
  rejectVersion?: number | undefined;
726
726
  method: ABIMethod;
727
- args?: (Transaction | ABIValue | TransactionWithSigner | Promise<Transaction> | AppMethodCall<{
728
- signer?: TransactionSigner | AddressWithTransactionSigner | undefined;
727
+ args?: (ABIValue | Transaction | TransactionWithSigner | AppMethodCall<{
729
728
  sender: SendingAddress;
729
+ signer?: AddressWithTransactionSigner | TransactionSigner | undefined;
730
730
  rekeyTo?: ReadableAddress | undefined;
731
731
  note?: string | Uint8Array | undefined;
732
732
  lease?: string | Uint8Array | undefined;
@@ -736,27 +736,21 @@ declare class AlgorandClientTransactionCreator {
736
736
  validityWindow?: number | bigint | undefined;
737
737
  firstValidRound?: bigint | undefined;
738
738
  lastValidRound?: bigint | undefined;
739
- onComplete?: OnApplicationComplete.NoOp | OnApplicationComplete.OptIn | OnApplicationComplete.CloseOut | OnApplicationComplete.UpdateApplication | OnApplicationComplete.DeleteApplication | undefined;
739
+ appId: bigint;
740
+ onComplete?: OnApplicationComplete.UpdateApplication | undefined;
740
741
  args?: Uint8Array[] | undefined;
741
742
  accountReferences?: ReadableAddress[] | undefined;
742
743
  appReferences?: bigint[] | undefined;
743
744
  assetReferences?: bigint[] | undefined;
744
- boxReferences?: (BoxIdentifier | BoxReference)[] | undefined;
745
+ boxReferences?: (BoxReference | BoxIdentifier)[] | undefined;
745
746
  accessReferences?: ResourceReference[] | undefined;
746
747
  rejectVersion?: number | undefined;
747
- appId?: 0 | undefined;
748
748
  approvalProgram: string | Uint8Array;
749
749
  clearStateProgram: string | Uint8Array;
750
- schema?: {
751
- globalInts: number;
752
- globalByteSlices: number;
753
- localInts: number;
754
- localByteSlices: number;
755
- } | undefined;
756
- extraProgramPages?: number | undefined;
757
750
  }> | AppMethodCall<{
751
+ args?: Uint8Array[] | undefined;
752
+ signer?: AddressWithTransactionSigner | TransactionSigner | undefined;
758
753
  sender: SendingAddress;
759
- signer?: TransactionSigner | AddressWithTransactionSigner | undefined;
760
754
  rekeyTo?: ReadableAddress | undefined;
761
755
  note?: string | Uint8Array | undefined;
762
756
  lease?: string | Uint8Array | undefined;
@@ -766,18 +760,24 @@ declare class AlgorandClientTransactionCreator {
766
760
  validityWindow?: number | bigint | undefined;
767
761
  firstValidRound?: bigint | undefined;
768
762
  lastValidRound?: bigint | undefined;
769
- appId: bigint;
770
- onComplete?: OnApplicationComplete.UpdateApplication | undefined;
771
- args?: Uint8Array[] | undefined;
763
+ onComplete?: OnApplicationComplete.NoOp | OnApplicationComplete.OptIn | OnApplicationComplete.CloseOut | OnApplicationComplete.UpdateApplication | OnApplicationComplete.DeleteApplication | undefined;
772
764
  accountReferences?: ReadableAddress[] | undefined;
773
765
  appReferences?: bigint[] | undefined;
774
766
  assetReferences?: bigint[] | undefined;
775
- boxReferences?: (BoxIdentifier | BoxReference)[] | undefined;
767
+ boxReferences?: (BoxReference | BoxIdentifier)[] | undefined;
776
768
  accessReferences?: ResourceReference[] | undefined;
777
769
  rejectVersion?: number | undefined;
770
+ appId?: 0 | undefined;
778
771
  approvalProgram: string | Uint8Array;
779
772
  clearStateProgram: string | Uint8Array;
780
- }> | AppMethodCall<AppMethodCallParams> | undefined)[] | undefined;
773
+ schema?: {
774
+ globalInts: number;
775
+ globalByteSlices: number;
776
+ localInts: number;
777
+ localByteSlices: number;
778
+ } | undefined;
779
+ extraProgramPages?: number | undefined;
780
+ }> | Promise<Transaction> | AppMethodCall<AppMethodCallParams> | undefined)[] | undefined;
781
781
  }) => Promise<Expand<BuiltTransactions>>;
782
782
  /** Create an application delete call with ABI method call transaction.
783
783
  *
@@ -827,7 +827,7 @@ declare class AlgorandClientTransactionCreator {
827
827
  * @returns The application ABI method delete transaction
828
828
  */
829
829
  appDeleteMethodCall: (params: {
830
- signer?: TransactionSigner | AddressWithTransactionSigner | undefined;
830
+ signer?: AddressWithTransactionSigner | TransactionSigner | undefined;
831
831
  sender: SendingAddress;
832
832
  rekeyTo?: ReadableAddress | undefined;
833
833
  note?: string | Uint8Array | undefined;
@@ -843,13 +843,13 @@ declare class AlgorandClientTransactionCreator {
843
843
  accountReferences?: ReadableAddress[] | undefined;
844
844
  appReferences?: bigint[] | undefined;
845
845
  assetReferences?: bigint[] | undefined;
846
- boxReferences?: (BoxIdentifier | BoxReference)[] | undefined;
846
+ boxReferences?: (BoxReference | BoxIdentifier)[] | undefined;
847
847
  accessReferences?: ResourceReference[] | undefined;
848
848
  rejectVersion?: number | undefined;
849
849
  method: ABIMethod;
850
- args?: (Transaction | ABIValue | TransactionWithSigner | Promise<Transaction> | AppMethodCall<{
851
- signer?: TransactionSigner | AddressWithTransactionSigner | undefined;
850
+ args?: (ABIValue | Transaction | TransactionWithSigner | AppMethodCall<{
852
851
  sender: SendingAddress;
852
+ signer?: AddressWithTransactionSigner | TransactionSigner | undefined;
853
853
  rekeyTo?: ReadableAddress | undefined;
854
854
  note?: string | Uint8Array | undefined;
855
855
  lease?: string | Uint8Array | undefined;
@@ -859,27 +859,21 @@ declare class AlgorandClientTransactionCreator {
859
859
  validityWindow?: number | bigint | undefined;
860
860
  firstValidRound?: bigint | undefined;
861
861
  lastValidRound?: bigint | undefined;
862
- onComplete?: OnApplicationComplete.NoOp | OnApplicationComplete.OptIn | OnApplicationComplete.CloseOut | OnApplicationComplete.UpdateApplication | OnApplicationComplete.DeleteApplication | undefined;
862
+ appId: bigint;
863
+ onComplete?: OnApplicationComplete.UpdateApplication | undefined;
863
864
  args?: Uint8Array[] | undefined;
864
865
  accountReferences?: ReadableAddress[] | undefined;
865
866
  appReferences?: bigint[] | undefined;
866
867
  assetReferences?: bigint[] | undefined;
867
- boxReferences?: (BoxIdentifier | BoxReference)[] | undefined;
868
+ boxReferences?: (BoxReference | BoxIdentifier)[] | undefined;
868
869
  accessReferences?: ResourceReference[] | undefined;
869
870
  rejectVersion?: number | undefined;
870
- appId?: 0 | undefined;
871
871
  approvalProgram: string | Uint8Array;
872
872
  clearStateProgram: string | Uint8Array;
873
- schema?: {
874
- globalInts: number;
875
- globalByteSlices: number;
876
- localInts: number;
877
- localByteSlices: number;
878
- } | undefined;
879
- extraProgramPages?: number | undefined;
880
873
  }> | AppMethodCall<{
874
+ args?: Uint8Array[] | undefined;
875
+ signer?: AddressWithTransactionSigner | TransactionSigner | undefined;
881
876
  sender: SendingAddress;
882
- signer?: TransactionSigner | AddressWithTransactionSigner | undefined;
883
877
  rekeyTo?: ReadableAddress | undefined;
884
878
  note?: string | Uint8Array | undefined;
885
879
  lease?: string | Uint8Array | undefined;
@@ -889,18 +883,24 @@ declare class AlgorandClientTransactionCreator {
889
883
  validityWindow?: number | bigint | undefined;
890
884
  firstValidRound?: bigint | undefined;
891
885
  lastValidRound?: bigint | undefined;
892
- appId: bigint;
893
- onComplete?: OnApplicationComplete.UpdateApplication | undefined;
894
- args?: Uint8Array[] | undefined;
886
+ onComplete?: OnApplicationComplete.NoOp | OnApplicationComplete.OptIn | OnApplicationComplete.CloseOut | OnApplicationComplete.UpdateApplication | OnApplicationComplete.DeleteApplication | undefined;
895
887
  accountReferences?: ReadableAddress[] | undefined;
896
888
  appReferences?: bigint[] | undefined;
897
889
  assetReferences?: bigint[] | undefined;
898
- boxReferences?: (BoxIdentifier | BoxReference)[] | undefined;
890
+ boxReferences?: (BoxReference | BoxIdentifier)[] | undefined;
899
891
  accessReferences?: ResourceReference[] | undefined;
900
892
  rejectVersion?: number | undefined;
893
+ appId?: 0 | undefined;
901
894
  approvalProgram: string | Uint8Array;
902
895
  clearStateProgram: string | Uint8Array;
903
- }> | AppMethodCall<AppMethodCallParams> | undefined)[] | undefined;
896
+ schema?: {
897
+ globalInts: number;
898
+ globalByteSlices: number;
899
+ localInts: number;
900
+ localByteSlices: number;
901
+ } | undefined;
902
+ extraProgramPages?: number | undefined;
903
+ }> | Promise<Transaction> | AppMethodCall<AppMethodCallParams> | undefined)[] | undefined;
904
904
  }) => Promise<Expand<BuiltTransactions>>;
905
905
  /** Create an application call with ABI method call transaction.
906
906
  *
@@ -950,7 +950,7 @@ declare class AlgorandClientTransactionCreator {
950
950
  * @returns The application ABI method call transaction
951
951
  */
952
952
  appCallMethodCall: (params: {
953
- signer?: TransactionSigner | AddressWithTransactionSigner | undefined;
953
+ signer?: AddressWithTransactionSigner | TransactionSigner | undefined;
954
954
  sender: SendingAddress;
955
955
  rekeyTo?: ReadableAddress | undefined;
956
956
  note?: string | Uint8Array | undefined;
@@ -966,13 +966,13 @@ declare class AlgorandClientTransactionCreator {
966
966
  accountReferences?: ReadableAddress[] | undefined;
967
967
  appReferences?: bigint[] | undefined;
968
968
  assetReferences?: bigint[] | undefined;
969
- boxReferences?: (BoxIdentifier | BoxReference)[] | undefined;
969
+ boxReferences?: (BoxReference | BoxIdentifier)[] | undefined;
970
970
  accessReferences?: ResourceReference[] | undefined;
971
971
  rejectVersion?: number | undefined;
972
972
  method: ABIMethod;
973
- args?: (Transaction | ABIValue | TransactionWithSigner | Promise<Transaction> | AppMethodCall<{
974
- signer?: TransactionSigner | AddressWithTransactionSigner | undefined;
973
+ args?: (ABIValue | Transaction | TransactionWithSigner | AppMethodCall<{
975
974
  sender: SendingAddress;
975
+ signer?: AddressWithTransactionSigner | TransactionSigner | undefined;
976
976
  rekeyTo?: ReadableAddress | undefined;
977
977
  note?: string | Uint8Array | undefined;
978
978
  lease?: string | Uint8Array | undefined;
@@ -982,27 +982,21 @@ declare class AlgorandClientTransactionCreator {
982
982
  validityWindow?: number | bigint | undefined;
983
983
  firstValidRound?: bigint | undefined;
984
984
  lastValidRound?: bigint | undefined;
985
- onComplete?: OnApplicationComplete.NoOp | OnApplicationComplete.OptIn | OnApplicationComplete.CloseOut | OnApplicationComplete.UpdateApplication | OnApplicationComplete.DeleteApplication | undefined;
985
+ appId: bigint;
986
+ onComplete?: OnApplicationComplete.UpdateApplication | undefined;
986
987
  args?: Uint8Array[] | undefined;
987
988
  accountReferences?: ReadableAddress[] | undefined;
988
989
  appReferences?: bigint[] | undefined;
989
990
  assetReferences?: bigint[] | undefined;
990
- boxReferences?: (BoxIdentifier | BoxReference)[] | undefined;
991
+ boxReferences?: (BoxReference | BoxIdentifier)[] | undefined;
991
992
  accessReferences?: ResourceReference[] | undefined;
992
993
  rejectVersion?: number | undefined;
993
- appId?: 0 | undefined;
994
994
  approvalProgram: string | Uint8Array;
995
995
  clearStateProgram: string | Uint8Array;
996
- schema?: {
997
- globalInts: number;
998
- globalByteSlices: number;
999
- localInts: number;
1000
- localByteSlices: number;
1001
- } | undefined;
1002
- extraProgramPages?: number | undefined;
1003
996
  }> | AppMethodCall<{
997
+ args?: Uint8Array[] | undefined;
998
+ signer?: AddressWithTransactionSigner | TransactionSigner | undefined;
1004
999
  sender: SendingAddress;
1005
- signer?: TransactionSigner | AddressWithTransactionSigner | undefined;
1006
1000
  rekeyTo?: ReadableAddress | undefined;
1007
1001
  note?: string | Uint8Array | undefined;
1008
1002
  lease?: string | Uint8Array | undefined;
@@ -1012,18 +1006,24 @@ declare class AlgorandClientTransactionCreator {
1012
1006
  validityWindow?: number | bigint | undefined;
1013
1007
  firstValidRound?: bigint | undefined;
1014
1008
  lastValidRound?: bigint | undefined;
1015
- appId: bigint;
1016
- onComplete?: OnApplicationComplete.UpdateApplication | undefined;
1017
- args?: Uint8Array[] | undefined;
1009
+ onComplete?: OnApplicationComplete.NoOp | OnApplicationComplete.OptIn | OnApplicationComplete.CloseOut | OnApplicationComplete.UpdateApplication | OnApplicationComplete.DeleteApplication | undefined;
1018
1010
  accountReferences?: ReadableAddress[] | undefined;
1019
1011
  appReferences?: bigint[] | undefined;
1020
1012
  assetReferences?: bigint[] | undefined;
1021
- boxReferences?: (BoxIdentifier | BoxReference)[] | undefined;
1013
+ boxReferences?: (BoxReference | BoxIdentifier)[] | undefined;
1022
1014
  accessReferences?: ResourceReference[] | undefined;
1023
1015
  rejectVersion?: number | undefined;
1016
+ appId?: 0 | undefined;
1024
1017
  approvalProgram: string | Uint8Array;
1025
1018
  clearStateProgram: string | Uint8Array;
1026
- }> | AppMethodCall<AppMethodCallParams> | undefined)[] | undefined;
1019
+ schema?: {
1020
+ globalInts: number;
1021
+ globalByteSlices: number;
1022
+ localInts: number;
1023
+ localByteSlices: number;
1024
+ } | undefined;
1025
+ extraProgramPages?: number | undefined;
1026
+ }> | Promise<Transaction> | AppMethodCall<AppMethodCallParams> | undefined)[] | undefined;
1027
1027
  }) => Promise<Expand<BuiltTransactions>>;
1028
1028
  /**
1029
1029
  * Create an online key registration transaction.