Smart Contract
ContractFactory
A.befbaccb5032a457.ContractFactory
1import ContractFactoryTemplate from 0xbefbaccb5032a457
2import AddressUtils from 0xa340dc0a4ec828ab
3
4access(all) contract ContractFactory {
5 access(all) fun createContract(templateType: Type, acct: auth(Contracts) &Account, name: String, params: {String: AnyStruct}, initializeIdentifier: String) {
6 let templateAddr = AddressUtils.parseAddress(templateType)!
7 let contractName = templateType.identifier.split(separator: ".")[2]
8 let templateContract = getAccount(templateAddr).contracts.borrow<&{ContractFactoryTemplate}>(name: contractName)
9 ?? panic("provided type is not a ContractTemplateFactory")
10
11 templateContract.createContract(acct: acct, name: name, params: params, initializeIdentifier: initializeIdentifier)
12 }
13}