From 38747b4e0355e9cfc7b1e1b528bb63eaeb5049a9 Mon Sep 17 00:00:00 2001 From: Jan-Felix Date: Tue, 11 Jul 2023 18:19:16 +0200 Subject: [PATCH] small bugfix --- packages/sdk/package.json | 2 +- .../presets/authoring/conditions/matches.ts | 19 ++++++++++++++----- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/packages/sdk/package.json b/packages/sdk/package.json index c157b76ee..355929aeb 100644 --- a/packages/sdk/package.json +++ b/packages/sdk/package.json @@ -1,6 +1,6 @@ { "name": "zodiac-roles-sdk", - "version": "2.1.7", + "version": "2.1.8", "license": "LGPL-3.0+", "main": "build/cjs/sdk/src/index.js", "module": "build/esm/sdk/src/index.js", diff --git a/packages/sdk/src/presets/authoring/conditions/matches.ts b/packages/sdk/src/presets/authoring/conditions/matches.ts index af7b917b3..8d73415ad 100644 --- a/packages/sdk/src/presets/authoring/conditions/matches.ts +++ b/packages/sdk/src/presets/authoring/conditions/matches.ts @@ -359,12 +359,21 @@ const assertCompatibleParamTypes = ( const expectedType = parameterType(type) const scopedType = checkScopedType(condition) - if (scopedType !== expectedType) { - const fieldReference = type.name ? `'${type.name}'` : `at index ${index}` - throw new Error( - `Condition for field ${fieldReference} has wrong paramType \`${ParameterType[scopedType]}\` (expected: \`${ParameterType[expectedType]}\`)` - ) + if (scopedType === expectedType) return + + // allow dynamic type values to be interpreted as calldata or abi encoded + if ( + expectedType === ParameterType.Dynamic && + (scopedType === ParameterType.Calldata || + scopedType === ParameterType.AbiEncoded) + ) { + return } + + const fieldReference = type.name ? `'${type.name}'` : `at index ${index}` + throw new Error( + `Condition for field ${fieldReference} has wrong paramType \`${ParameterType[scopedType]}\` (expected: \`${ParameterType[expectedType]}\`)` + ) }) }