@@ -20,6 +20,8 @@ import {
2020 avmTypeToFormFieldSchema ,
2121 avmTypeToFormItem ,
2222 asAbiFormItemValue ,
23+ avmFormItemValueToAVMValue ,
24+ asAvmFormItemValue ,
2325} from '@/features/abi-methods/mappers'
2426import { Arc56Contract , AVMType } from '@algorandfoundation/algokit-utils/types/app-arc56'
2527import algosdk from 'algosdk'
@@ -32,7 +34,7 @@ import { zfd } from 'zod-form-data'
3234import { TemplateParamForm } from '../components/create/template-param-form'
3335import { Label } from '@/features/common/components/label'
3436import { isAVMType } from '@/features/app-interfaces/utils/is-avm-type'
35- import { AbiFormItemValue , AvmValue } from '@/features/abi-methods/models'
37+ import { AbiFormItemValue , AvmFormItemValue } from '@/features/abi-methods/models'
3638
3739export const parseAsAppSpec = async (
3840 file : File ,
@@ -115,7 +117,7 @@ export const asTealTemplateParamField = ({
115117 name : string
116118 type ?: algosdk . ABIType | AVMType
117119 struct ?: StructDefinition
118- defaultValue ?: AbiFormItemValue | AvmValue
120+ defaultValue ?: AbiFormItemValue | AvmFormItemValue
119121} ) : TealTemplateParamField => {
120122 if ( ! type ) {
121123 return {
@@ -160,14 +162,15 @@ export const asTealTemplateParamField = ({
160162 </ >
161163 )
162164 } ,
163- toTemplateParam : ( value : AvmValue ) =>
165+ toTemplateParam : ( value : AvmFormItemValue ) =>
164166 ( {
165167 name : name ,
166- value : value ,
168+ avmType : type ,
169+ value : avmFormItemValueToAVMValue ( type , value ) ,
167170 } ) satisfies AVMTypeTemplateParam ,
168171 fromTemplateParam : ( templateParam : AVMTypeTemplateParam ) =>
169- type === 'AVMUint64' ? BigInt ( templateParam . value ) : templateParam . value ,
170- defaultValue : defaultValue as AvmValue ,
172+ asAvmFormItemValue ( type , templateParam . value ) ,
173+ defaultValue : defaultValue as AvmFormItemValue ,
171174 }
172175 }
173176
0 commit comments