@@ -7,6 +7,7 @@ import type { DeliberateAny } from './typescript-helpers'
77
88export interface AbiMetadata {
99 methodName : string
10+ methodNameOverride ?: string
1011 methodSignature : string | undefined
1112 argTypes : string [ ]
1213 returnType : string
@@ -42,6 +43,8 @@ export const captureMethodConfig = <T extends Contract>(
4243 config ?: AbiMethodConfig < T > | BareMethodConfig ,
4344) : void => {
4445 const metadata = getContractMethodAbiMetadata ( contract , methodName )
46+
47+ metadata . methodNameOverride = config && 'name' in config ? config . name : undefined
4548 metadata . onCreate = config ?. onCreate ?? 'disallow'
4649 metadata . allowActions = ( [ ] as OnCompleteActionStr [ ] ) . concat ( config ?. allowActions ?? 'NoOp' )
4750}
@@ -53,7 +56,7 @@ export const hasAbiMetadata = <T extends Contract>(contract: T): boolean => {
5356 )
5457}
5558export const getContractAbiMetadata = < T extends BaseContract > ( contract : T ) : Record < string , AbiMetadata > => {
56- if ( ( contract as DeliberateAny ) [ isContractProxy ] ) {
59+ if ( ( contract as DeliberateAny ) [ AbiMetaSymbol ] ) {
5760 return ( contract as DeliberateAny ) [ AbiMetaSymbol ] as Record < string , AbiMetadata >
5861 }
5962 const contractClass = contract . constructor as { new ( ) : T }
@@ -73,7 +76,7 @@ export const getArc4Signature = (metadata: AbiMetadata): string => {
7376 if ( metadata . methodSignature === undefined ) {
7477 const argTypes = metadata . argTypes . map ( ( t ) => JSON . parse ( t ) as TypeInfo ) . map ( getArc4TypeName )
7578 const returnType = getArc4TypeName ( JSON . parse ( metadata . returnType ) as TypeInfo )
76- metadata . methodSignature = `${ metadata . methodName } (${ argTypes . join ( ',' ) } )${ returnType } `
79+ metadata . methodSignature = `${ metadata . methodNameOverride ?? metadata . methodName } (${ argTypes . join ( ',' ) } )${ returnType } `
7780 }
7881 return metadata . methodSignature
7982}
0 commit comments