diff --git a/packages/abi-to-sol/src/solidity.ts b/packages/abi-to-sol/src/solidity.ts index 3095f84..0ebd7cf 100644 --- a/packages/abi-to-sol/src/solidity.ts +++ b/packages/abi-to-sol/src/solidity.ts @@ -463,18 +463,23 @@ class SolidityGenerator implements Visitor { kind: Kind, context: Pick = {} ): string { - if ( - this.versionsFeatures["user-defined-value-types"].supported() && - Kind.isUserDefinedValueType(kind) - ) { - if ( + if (Kind.isUserDefinedValueType(kind)) { + const result = ( kind.identifier.container && kind.identifier.container.name !== context.interfaceName - ) { - return `${kind.identifier.container.name}.${kind.identifier.name}`; + ) + ? `${kind.identifier.container.name}.${kind.identifier.name}` + : kind.identifier.name; + + if (!this.versionsFeatures["user-defined-value-types"].supported()) { + return [ + `/* warning: missing UDVT support in source Solidity version; `, + `parameter is \`${result}\`. */ `, + kind.type + ].join(""); } - return kind.identifier.name + return result; } if (Kind.isElementary(kind)) {