34 lines
1.1 KiB
TypeScript
34 lines
1.1 KiB
TypeScript
import { AlgorandClient } from '@algorandfoundation/algokit-utils'
|
|
import { HelloWorldFactory } from '../artifacts/hello_world/HelloWorldClient'
|
|
|
|
// Below is a showcase of various deployment options you can use in TypeScript Client
|
|
export async function deploy() {
|
|
console.log('=== Deploying HelloWorld ===')
|
|
|
|
const algorand = AlgorandClient.fromEnvironment()
|
|
const deployer = await algorand.account.fromEnvironment('DEPLOYER')
|
|
|
|
const factory = algorand.client.getTypedAppFactory(HelloWorldFactory, {
|
|
defaultSender: deployer.addr,
|
|
})
|
|
|
|
const { appClient, result } = await factory.deploy({ onUpdate: 'append', onSchemaBreak: 'append' })
|
|
|
|
// If app was just created fund the app account
|
|
if (['create', 'replace'].includes(result.operationPerformed)) {
|
|
await algorand.send.payment({
|
|
amount: (1).algo(),
|
|
sender: deployer.addr,
|
|
receiver: appClient.appAddress,
|
|
})
|
|
}
|
|
|
|
const method = 'hello'
|
|
const response = await appClient.send.hello({
|
|
args: { name: 'world' },
|
|
})
|
|
console.log(
|
|
`Called ${method} on ${appClient.appClient.appName} (${appClient.appClient.appId}) with name = world, received: ${response.return}`,
|
|
)
|
|
}
|