Creates a new instance of LodashFactory
The parameters to initialise the app factory with
Readonly
appThe underlying AppFactory
for when you want to have more flexibility
Readonly
createCreate transactions for the current app
Gets available create methods
Creates a new instance of the Lodash smart contract using a bare call.
Readonly
paramsGet parameters to create transactions (create and deploy related calls) for the current app. A good mental model for this is that these parameters represent a deferred transaction creation.
Gets available create methods
Creates a new instance of the Lodash smart contract using a bare call.
Readonly
sendSend calls to the current app
Gets available create methods
Creates a new instance of the Lodash smart contract using a bare call.
A reference to the underlying AlgorandClient
this app factory is using.
The name of the app (from the ARC-32 / ARC-56 app spec or override).
The ARC-56 app spec being used
Idempotently deploys the Lodash smart contract.
The arguments for the contract calls and any additional parameters for the call
Optional
appName?: stringOverride the app name for this deployment
Optional
coverAppCallInnerTransactionFees?: booleanWhether to use simulate to automatically calculate required app call inner transaction fees and cover them in the parent app call transaction fee
Optional
createParams?: {Create transaction parameters to use if a create needs to be issued as part of deployment; use method
to define ABI call (if available) or leave out for a bare call (if available)
Optional
accountReferences?: (string | Address)[]Any account addresses to add to the accounts array.
Optional
appReferences?: bigint[]The ID of any apps to load to the foreign apps array.
Optional
args?: Uint8Array<ArrayBufferLike>[]Optional
assetReferences?: bigint[]The ID of any assets to load to the foreign assets array.
Optional
boxReferences?: (BoxReference | BoxIdentifier)[]Any boxes to load to the boxes array.
Either the name identifier (which will be set against app ID of 0
i.e.
the current app), or a box identifier with the name identifier and app ID.
Optional
extraFee?: AlgoAmountThe fee to pay IN ADDITION to the suggested fee. Useful for manually covering inner transaction fees.
Optional
extraProgramPages?: numberNumber of extra pages required for the programs. Defaults to the number needed for the programs in this call if not specified. This is immutable once the app is created.
Optional
firstValidRound?: bigintSet the first round this transaction is valid. If left undefined, the value from algod will be used.
We recommend you only set this when you intentionally want this to be some time in the future.
Optional
lastValidRound?: bigintThe last round this transaction is valid. It is recommended to use validityWindow
instead.
Optional
lease?: string | Uint8Array<ArrayBufferLike>Prevent multiple transactions with the same lease being included within the validity window.
A lease enforces a mutually exclusive transaction (useful to prevent double-posting and other scenarios).
Optional
maxFee?: AlgoAmountThrow an error if the fee for the transaction is more than this amount; prevents overspending on fees during high congestion periods.
Optional
method?: undefinedOptional
note?: string | Uint8Array<ArrayBufferLike>Note to attach to the transaction. Max of 1000 bytes.
Optional
onComplete?: NoOpOCOptional
rekeyTo?: string | AddressChange the signing key of the sender to the given address.
Warning: Please be careful with this parameter and be sure to read the official rekey guidance.
Optional
schema?: {The state schema for the app. This is immutable once the app is created. By default uses the ARC32/ARC-56 spec.
The number of byte slices saved in global state.
The number of integers saved in global state.
The number of byte slices saved in local state.
The number of integers saved in local state.
Optional
sender?: string | AddressThe address of the account sending the transaction, if undefined then the app client's defaultSender is used.
Optional
signer?: TransactionSigner | TransactionSignerAccountThe function used to sign transaction(s); if not specified then
an attempt will be made to find a registered signer for the
given sender
or use a default signer (if configured).
Optional
staticFee?: AlgoAmountThe static transaction fee. In most cases you want to use extraFee
unless setting the fee to 0 to be covered by another transaction.
Optional
validityWindow?: number | bigintHow many rounds the transaction should be valid for, if not specified then the registered default validity window will be used.
Optional
deletable?: booleanWhether or not the contract should have deploy-time permanence control set.
undefined
= use AppFactory constructor value if set or base it on the app spec.
Optional
deployTimeParams?: TealTemplateParamsAny deploy-time parameters to replace in the TEAL code before compiling it (used if teal code is passed in as a string)
Optional
existingDeployments?: AppLookupOptional cached value of the existing apps for the given creator; use this to avoid an indexer lookup
Optional
ignoreCache?: booleanWhether or not to ignore the app metadata cache and force a lookup, default: use the cache *
Optional
maxRoundsToWaitForConfirmation?: numberThe number of rounds to wait for confirmation. By default until the latest lastValid has past.
Optional
onSchemaBreak?: "replace" | "fail" | "append" | OnSchemaBreakWhat action to perform if a schema break (storage schema or extra pages change) is detected:
fail
- Fail the deployment (throw an error, default)replace
- Delete the old app and create a new oneappend
- Deploy a new app and leave the old one as isOptional
onUpdate?: "replace" | "fail" | "append" | "update" | OnUpdateWhat action to perform if a TEAL code update is detected:
fail
- Fail the deployment (throw an error, default)update
- Update the app with the new TEAL codereplace
- Delete the old app and create a new oneappend
- Deploy a new app and leave the old one as isOptional
populateAppCallResources?: booleanWhether to use simulate to automatically populate app call resources in the txn objects. Defaults to Config.populateAppCallResources
.
Optional
suppressLog?: booleanWhether to suppress log messages from transaction send, default: do not suppress.
Optional
updatable?: booleanWhether or not the contract should have deploy-time immutability control set.
undefined
= use AppFactory constructor value if set or base it on the app spec.
The deployment result
Returns a new AppClient
client, resolving the app by creator address and name
using AlgoKit app deployment semantics (i.e. looking for the app creation transaction note).
Automatically populates appName, defaultSender and source maps from the factory if not specified in the params.
The parameters to create the app client
Optional
appLookupCache?: AppLookupAn optional cached app lookup that matches a name to on-chain details;
either this is needed or indexer is required to be passed in to this ClientManager
on construction.
Optional
appName?: stringOptional override for the app name; used for on-chain metadata and lookups. Defaults to the ARC-32/ARC-56 app spec name
Optional
approvalSourceMap?: ProgramSourceMapOptional source map for the approval program
Optional
clearSourceMap?: ProgramSourceMapOptional source map for the clear state program
The address of the creator account for the app
Optional
defaultSender?: string | AddressOptional address to use for the account to use as the default sender for calls.
Optional
defaultSigner?: TransactionSignerOptional signer to use as the default signer for default sender calls (if not specified then the signer will be resolved from AlgorandClient
).
Optional
ignoreCache?: booleanWhether or not to ignore the AppDeployer
lookup cache and force an on-chain lookup, default: use any cached value
The AppClient
Returns a new AppClient
client for an app instance of the given ID.
Automatically populates appName, defaultSender and source maps from the factory if not specified in the params.
The parameters to create the app client
The ID of the app instance this client should make calls against.
Optional
appName?: stringOptional override for the app name; used for on-chain metadata and lookups. Defaults to the ARC-32/ARC-56 app spec name
Optional
approvalSourceMap?: ProgramSourceMapOptional source map for the approval program
Optional
clearSourceMap?: ProgramSourceMapOptional source map for the clear state program
Optional
defaultSender?: string | AddressOptional address to use for the account to use as the default sender for calls.
Optional
defaultSigner?: TransactionSignerOptional signer to use as the default signer for default sender calls (if not specified then the signer will be resolved from AlgorandClient
).
The AppClient
A factory to create and deploy one or more instance of the Lodash smart contract and to create one or more app clients to interact with those (or other) app instances