@openzeppelin/upgrades-core 1.34.0 → 1.34.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.34.1 (2024-06-18)
4
+
5
+ - Fix unexpected validation error when function parameter has internal function pointer. ([#1038](https://github.com/OpenZeppelin/openzeppelin-upgrades/pull/1038))
6
+
3
7
  ## 1.34.0 (2024-06-12)
4
8
 
5
9
  - Fix storage layout comparison for function types, disallow internal functions in storage. ([#1032](https://github.com/OpenZeppelin/openzeppelin-upgrades/pull/1032))
@@ -1 +1 @@
1
- {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/validate/run.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,UAAU,EAAgB,SAAS,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAG5C,OAAO,EAAE,OAAO,EAAc,MAAM,YAAY,CAAC;AACjD,OAAO,EAAyB,aAAa,EAAE,MAAM,cAAc,CAAC;AAEpE,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAOlD,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;AAEnE,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,cAAc,EAAE,aAAa,EAAE,CAAC;IAChC,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,MAAM,EAAE,aAAa,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,UAAU,gPAWb,CAAC;AAEX,MAAM,MAAM,eAAe,GACvB,0BAA0B,GAC1B,qBAAqB,GACrB,uBAAuB,GACvB,6BAA6B,CAAC;AAElC,UAAU,mBAAmB;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC;CACnC;AAED,UAAU,uBAAwB,SAAQ,mBAAmB;IAC3D,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EACA,2BAA2B,GAC3B,0BAA0B,GAC1B,0BAA0B,GAC1B,mBAAmB,GACnB,iBAAiB,GACjB,2BAA2B,CAAC;CACjC;AAED,UAAU,0BAA2B,SAAQ,mBAAmB;IAC9D,IAAI,EAAE,aAAa,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,qBAAsB,SAAQ,mBAAmB;IACzD,IAAI,EAAE,cAAc,GAAG,cAAc,CAAC;CACvC;AAkBD,wBAAgB,aAAa,CAAC,KAAK,EAAE,mBAAmB,GAAG,KAAK,IAAI,qBAAqB,CAExF;AAED,UAAU,6BAA8B,SAAQ,mBAAmB;IACjE,IAAI,EAAE,0BAA0B,CAAC;CAClC;AAYD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,YAEzD;AAWD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,QAAQ,CACtB,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,UAAU,EACrB,WAAW,CAAC,EAAE,MAAM,EACpB,SAAS,CAAC,EAAE,SAAS,EACrB,gBAAgB,CAAC,EAAE,UAAU,GAC5B,iBAAiB,CAmFnB"}
1
+ {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/validate/run.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,UAAU,EAAgB,SAAS,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAG5C,OAAO,EAAE,OAAO,EAAc,MAAM,YAAY,CAAC;AACjD,OAAO,EAAyB,aAAa,EAAE,MAAM,cAAc,CAAC;AAEpE,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAOlD,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;AAEnE,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,cAAc,EAAE,aAAa,EAAE,CAAC;IAChC,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,MAAM,EAAE,aAAa,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,UAAU,gPAWb,CAAC;AAEX,MAAM,MAAM,eAAe,GACvB,0BAA0B,GAC1B,qBAAqB,GACrB,uBAAuB,GACvB,6BAA6B,CAAC;AAElC,UAAU,mBAAmB;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC;CACnC;AAED,UAAU,uBAAwB,SAAQ,mBAAmB;IAC3D,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EACA,2BAA2B,GAC3B,0BAA0B,GAC1B,0BAA0B,GAC1B,mBAAmB,GACnB,iBAAiB,GACjB,2BAA2B,CAAC;CACjC;AAED,UAAU,0BAA2B,SAAQ,mBAAmB;IAC9D,IAAI,EAAE,aAAa,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,qBAAsB,SAAQ,mBAAmB;IACzD,IAAI,EAAE,cAAc,GAAG,cAAc,CAAC;CACvC;AAkBD,wBAAgB,aAAa,CAAC,KAAK,EAAE,mBAAmB,GAAG,KAAK,IAAI,qBAAqB,CAExF;AAED,UAAU,6BAA8B,SAAQ,mBAAmB;IACjE,IAAI,EAAE,0BAA0B,CAAC;CAClC;AAYD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,YAEzD;AAWD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,QAAQ,CACtB,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,UAAU,EACrB,WAAW,CAAC,EAAE,MAAM,EACpB,SAAS,CAAC,EAAE,SAAS,EACrB,gBAAgB,CAAC,EAAE,UAAU,GAC5B,iBAAiB,CAmFnB"}
@@ -387,7 +387,7 @@ function* getLinkingErrors(contractDef, bytecode) {
387
387
  function* getInternalFunctionStorageErrors(contractOrStructDef, deref, decodeSrc, visitedNodeIds = new Set()) {
388
388
  // Note: Solidity does not allow annotations for non-public state variables, nor recursive types for public variables,
389
389
  // so annotations cannot be used to skip these checks.
390
- for (const variableDec of (0, utils_1.findAll)('VariableDeclaration', contractOrStructDef)) {
390
+ for (const variableDec of getVariableDeclarations(contractOrStructDef, visitedNodeIds)) {
391
391
  if (variableDec.typeName?.nodeType === 'FunctionTypeName' && variableDec.typeName.visibility === 'internal') {
392
392
  // Find internal function types directly in this node's scope
393
393
  yield {
@@ -409,6 +409,30 @@ function* getInternalFunctionStorageErrors(contractOrStructDef, deref, decodeSrc
409
409
  }
410
410
  }
411
411
  }
412
+ /**
413
+ * Gets variables declared directly in a contract or in a struct definition.
414
+ *
415
+ * If this is a contract with struct definitions annotated with a storage location according to ERC-7201,
416
+ * then the struct members are also included.
417
+ */
418
+ function* getVariableDeclarations(contractOrStructDef, visitedNodeIds) {
419
+ if (contractOrStructDef.nodeType === 'ContractDefinition') {
420
+ for (const node of contractOrStructDef.nodes) {
421
+ if (node.nodeType === 'VariableDeclaration') {
422
+ yield node;
423
+ }
424
+ else if (node.nodeType === 'StructDefinition' &&
425
+ (0, namespace_1.getStorageLocationAnnotation)(node) !== undefined &&
426
+ !visitedNodeIds.has(node.id)) {
427
+ visitedNodeIds.add(node.id);
428
+ yield* getVariableDeclarations(node, visitedNodeIds);
429
+ }
430
+ }
431
+ }
432
+ else if (contractOrStructDef.nodeType === 'StructDefinition') {
433
+ yield* contractOrStructDef.members;
434
+ }
435
+ }
412
436
  /**
413
437
  * Recursively traverse array and mapping types to find user-defined types (which may be struct references).
414
438
  */
@@ -1 +1 @@
1
- {"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/validate/run.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/validate/run.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,7 @@ test.before(async (t) => {
14
14
  'contracts/test/ValidationsNatspec.sol:HasNonEmptyConstructorNatspec1',
15
15
  'contracts/test/Proxiable.sol:ChildOfProxiable',
16
16
  'contracts/test/ValidationsUDVT.sol:ValidationsUDVT',
17
+ 'contracts/test/ValidationsFunctionPointers.sol:InternalFunctionPointer',
17
18
  ];
18
19
  t.context.validation = {};
19
20
  for (const contract of contracts) {
@@ -27,10 +28,13 @@ test.before(async (t) => {
27
28
  Object.assign(t.context.validation, (0, validate_1.validate)(solcOutput, decodeSrc));
28
29
  }
29
30
  });
30
- function testValid(name, kind, valid) {
31
- testOverride(name, kind, {}, valid);
31
+ function testValid(name, kind, valid, numExpectedErrors) {
32
+ testOverride(name, kind, {}, valid, numExpectedErrors);
32
33
  }
33
- function testOverride(name, kind, opts, valid) {
34
+ function testOverride(name, kind, opts, valid, numExpectedErrors) {
35
+ if (numExpectedErrors !== undefined && numExpectedErrors > 0 && valid) {
36
+ throw new Error('Cannot expect errors for a valid contract');
37
+ }
34
38
  const optKeys = Object.keys(opts);
35
39
  const describeOpts = optKeys.length > 0 ? '(' + optKeys.join(', ') + ')' : '';
36
40
  const testName = [valid ? 'accepts' : 'rejects', kind, name, describeOpts].join(' ');
@@ -41,7 +45,10 @@ function testOverride(name, kind, opts, valid) {
41
45
  t.notThrows(assertUpgSafe);
42
46
  }
43
47
  else {
44
- t.throws(assertUpgSafe);
48
+ const error = t.throws(assertUpgSafe);
49
+ if (numExpectedErrors !== undefined) {
50
+ t.is(error.errors.length, numExpectedErrors);
51
+ }
45
52
  }
46
53
  });
47
54
  }
@@ -120,12 +127,21 @@ testValid('UsesExplicitUnsafeExternalLibraryNatspec', 'transparent', true);
120
127
  testValid('TransitiveLibraryIsUnsafe', 'transparent', false);
121
128
  testValid('contracts/test/ValidationsSameNameSafe.sol:SameName', 'transparent', true);
122
129
  testValid('contracts/test/ValidationsSameNameUnsafe.sol:SameName', 'transparent', false);
123
- testValid('StructExternalFunctionPointer', 'transparent', true);
124
- testValid('StructInternalFunctionPointer', 'transparent', false);
125
- testValid('StructImpliedInternalFunctionPointer', 'transparent', false);
126
- testOverride('StructImpliedInternalFunctionPointer', 'transparent', { unsafeAllow: ['internal-function-storage'] }, true);
130
+ test('ambiguous name', t => {
131
+ const error = t.throws(() => (0, validate_1.getContractVersion)(t.context.validation, 'SameName'));
132
+ t.is(error?.message, 'Contract SameName is ambiguous. Use one of the following:\n' +
133
+ 'contracts/test/ValidationsSameNameSafe.sol:SameName\n' +
134
+ 'contracts/test/ValidationsSameNameUnsafe.sol:SameName');
135
+ });
136
+ testValid('NamespacedExternalFunctionPointer', 'transparent', true);
137
+ testValid('NamespacedInternalFunctionPointer', 'transparent', false);
138
+ testValid('NamespacedInternalFunctionPointerUsed', 'transparent', false, 1);
139
+ testValid('StructInternalFunctionPointerUsed', 'transparent', false, 1);
140
+ testValid('NonNamespacedInternalFunctionPointer', 'transparent', true);
141
+ testValid('NamespacedImpliedInternalFunctionPointer', 'transparent', false);
142
+ testOverride('NamespacedImpliedInternalFunctionPointer', 'transparent', { unsafeAllow: ['internal-function-storage'] }, true);
127
143
  testValid('UsesStandaloneStructInternalFn', 'transparent', false);
128
- testValid('StructUsesStandaloneStructInternalFn', 'transparent', false);
144
+ testValid('NamespacedUsesStandaloneStructInternalFn', 'transparent', false);
129
145
  testValid('RecursiveStructInternalFn', 'transparent', false);
130
146
  testValid('MappingRecursiveStructInternalFn', 'transparent', false);
131
147
  testValid('ArrayRecursiveStructInternalFn', 'transparent', false);
@@ -135,10 +151,5 @@ testValid('ExternalFunctionPointer', 'transparent', true);
135
151
  testValid('InternalFunctionPointer', 'transparent', false);
136
152
  testValid('ImpliedInternalFunctionPointer', 'transparent', false);
137
153
  testOverride('ImpliedInternalFunctionPointer', 'transparent', { unsafeAllow: ['internal-function-storage'] }, true);
138
- test('ambiguous name', t => {
139
- const error = t.throws(() => (0, validate_1.getContractVersion)(t.context.validation, 'SameName'));
140
- t.is(error?.message, 'Contract SameName is ambiguous. Use one of the following:\n' +
141
- 'contracts/test/ValidationsSameNameSafe.sol:SameName\n' +
142
- 'contracts/test/ValidationsSameNameUnsafe.sol:SameName');
143
- });
154
+ testValid('FunctionWithInternalFunctionPointer', 'transparent', true);
144
155
  //# sourceMappingURL=validate.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validate.test.js","sourceRoot":"","sources":["../src/validate.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validate.test.js","sourceRoot":"","sources":["../src/validate.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openzeppelin/upgrades-core",
3
- "version": "1.34.0",
3
+ "version": "1.34.1",
4
4
  "description": "",
5
5
  "repository": "https://github.com/OpenZeppelin/openzeppelin-upgrades/tree/master/packages/core",
6
6
  "license": "MIT",
@@ -6,6 +6,7 @@ import type {
6
6
  StructDefinition,
7
7
  TypeName,
8
8
  UserDefinedTypeName,
9
+ VariableDeclaration,
9
10
  } from 'solidity-ast';
10
11
  import debug from '../utils/debug';
11
12
 
@@ -586,7 +587,7 @@ function* getInternalFunctionStorageErrors(
586
587
  ): Generator<ValidationError> {
587
588
  // Note: Solidity does not allow annotations for non-public state variables, nor recursive types for public variables,
588
589
  // so annotations cannot be used to skip these checks.
589
- for (const variableDec of findAll('VariableDeclaration', contractOrStructDef)) {
590
+ for (const variableDec of getVariableDeclarations(contractOrStructDef, visitedNodeIds)) {
590
591
  if (variableDec.typeName?.nodeType === 'FunctionTypeName' && variableDec.typeName.visibility === 'internal') {
591
592
  // Find internal function types directly in this node's scope
592
593
  yield {
@@ -608,6 +609,34 @@ function* getInternalFunctionStorageErrors(
608
609
  }
609
610
  }
610
611
 
612
+ /**
613
+ * Gets variables declared directly in a contract or in a struct definition.
614
+ *
615
+ * If this is a contract with struct definitions annotated with a storage location according to ERC-7201,
616
+ * then the struct members are also included.
617
+ */
618
+ function* getVariableDeclarations(
619
+ contractOrStructDef: ContractDefinition | StructDefinition,
620
+ visitedNodeIds: Set<number>,
621
+ ): Generator<VariableDeclaration, void, undefined> {
622
+ if (contractOrStructDef.nodeType === 'ContractDefinition') {
623
+ for (const node of contractOrStructDef.nodes) {
624
+ if (node.nodeType === 'VariableDeclaration') {
625
+ yield node;
626
+ } else if (
627
+ node.nodeType === 'StructDefinition' &&
628
+ getStorageLocationAnnotation(node) !== undefined &&
629
+ !visitedNodeIds.has(node.id)
630
+ ) {
631
+ visitedNodeIds.add(node.id);
632
+ yield* getVariableDeclarations(node, visitedNodeIds);
633
+ }
634
+ }
635
+ } else if (contractOrStructDef.nodeType === 'StructDefinition') {
636
+ yield* contractOrStructDef.members;
637
+ }
638
+ }
639
+
611
640
  /**
612
641
  * Recursively traverse array and mapping types to find user-defined types (which may be struct references).
613
642
  */
@@ -8,6 +8,7 @@ import {
8
8
  assertUpgradeSafe,
9
9
  ValidationOptions,
10
10
  RunValidation,
11
+ ValidationErrors,
11
12
  } from './validate';
12
13
  import { solcInputOutputDecoder } from './src-decoder';
13
14
 
@@ -23,6 +24,7 @@ test.before(async t => {
23
24
  'contracts/test/ValidationsNatspec.sol:HasNonEmptyConstructorNatspec1',
24
25
  'contracts/test/Proxiable.sol:ChildOfProxiable',
25
26
  'contracts/test/ValidationsUDVT.sol:ValidationsUDVT',
27
+ 'contracts/test/ValidationsFunctionPointers.sol:InternalFunctionPointer',
26
28
  ];
27
29
 
28
30
  t.context.validation = {} as RunValidation;
@@ -38,11 +40,21 @@ test.before(async t => {
38
40
  }
39
41
  });
40
42
 
41
- function testValid(name: string, kind: ValidationOptions['kind'], valid: boolean) {
42
- testOverride(name, kind, {}, valid);
43
+ function testValid(name: string, kind: ValidationOptions['kind'], valid: boolean, numExpectedErrors?: number) {
44
+ testOverride(name, kind, {}, valid, numExpectedErrors);
43
45
  }
44
46
 
45
- function testOverride(name: string, kind: ValidationOptions['kind'], opts: ValidationOptions, valid: boolean) {
47
+ function testOverride(
48
+ name: string,
49
+ kind: ValidationOptions['kind'],
50
+ opts: ValidationOptions,
51
+ valid: boolean,
52
+ numExpectedErrors?: number,
53
+ ) {
54
+ if (numExpectedErrors !== undefined && numExpectedErrors > 0 && valid) {
55
+ throw new Error('Cannot expect errors for a valid contract');
56
+ }
57
+
46
58
  const optKeys = Object.keys(opts);
47
59
  const describeOpts = optKeys.length > 0 ? '(' + optKeys.join(', ') + ')' : '';
48
60
  const testName = [valid ? 'accepts' : 'rejects', kind, name, describeOpts].join(' ');
@@ -52,7 +64,10 @@ function testOverride(name: string, kind: ValidationOptions['kind'], opts: Valid
52
64
  if (valid) {
53
65
  t.notThrows(assertUpgSafe);
54
66
  } else {
55
- t.throws(assertUpgSafe);
67
+ const error = t.throws(assertUpgSafe) as ValidationErrors;
68
+ if (numExpectedErrors !== undefined) {
69
+ t.is(error.errors.length, numExpectedErrors);
70
+ }
56
71
  }
57
72
  });
58
73
  }
@@ -140,18 +155,31 @@ testValid('TransitiveLibraryIsUnsafe', 'transparent', false);
140
155
  testValid('contracts/test/ValidationsSameNameSafe.sol:SameName', 'transparent', true);
141
156
  testValid('contracts/test/ValidationsSameNameUnsafe.sol:SameName', 'transparent', false);
142
157
 
143
- testValid('StructExternalFunctionPointer', 'transparent', true);
144
- testValid('StructInternalFunctionPointer', 'transparent', false);
145
- testValid('StructImpliedInternalFunctionPointer', 'transparent', false);
158
+ test('ambiguous name', t => {
159
+ const error = t.throws(() => getContractVersion(t.context.validation, 'SameName'));
160
+ t.is(
161
+ error?.message,
162
+ 'Contract SameName is ambiguous. Use one of the following:\n' +
163
+ 'contracts/test/ValidationsSameNameSafe.sol:SameName\n' +
164
+ 'contracts/test/ValidationsSameNameUnsafe.sol:SameName',
165
+ );
166
+ });
167
+
168
+ testValid('NamespacedExternalFunctionPointer', 'transparent', true);
169
+ testValid('NamespacedInternalFunctionPointer', 'transparent', false);
170
+ testValid('NamespacedInternalFunctionPointerUsed', 'transparent', false, 1);
171
+ testValid('StructInternalFunctionPointerUsed', 'transparent', false, 1);
172
+ testValid('NonNamespacedInternalFunctionPointer', 'transparent', true);
173
+ testValid('NamespacedImpliedInternalFunctionPointer', 'transparent', false);
146
174
  testOverride(
147
- 'StructImpliedInternalFunctionPointer',
175
+ 'NamespacedImpliedInternalFunctionPointer',
148
176
  'transparent',
149
177
  { unsafeAllow: ['internal-function-storage'] },
150
178
  true,
151
179
  );
152
180
 
153
181
  testValid('UsesStandaloneStructInternalFn', 'transparent', false);
154
- testValid('StructUsesStandaloneStructInternalFn', 'transparent', false);
182
+ testValid('NamespacedUsesStandaloneStructInternalFn', 'transparent', false);
155
183
  testValid('RecursiveStructInternalFn', 'transparent', false);
156
184
  testValid('MappingRecursiveStructInternalFn', 'transparent', false);
157
185
  testValid('ArrayRecursiveStructInternalFn', 'transparent', false);
@@ -163,12 +191,4 @@ testValid('InternalFunctionPointer', 'transparent', false);
163
191
  testValid('ImpliedInternalFunctionPointer', 'transparent', false);
164
192
  testOverride('ImpliedInternalFunctionPointer', 'transparent', { unsafeAllow: ['internal-function-storage'] }, true);
165
193
 
166
- test('ambiguous name', t => {
167
- const error = t.throws(() => getContractVersion(t.context.validation, 'SameName'));
168
- t.is(
169
- error?.message,
170
- 'Contract SameName is ambiguous. Use one of the following:\n' +
171
- 'contracts/test/ValidationsSameNameSafe.sol:SameName\n' +
172
- 'contracts/test/ValidationsSameNameUnsafe.sol:SameName',
173
- );
174
- });
194
+ testValid('FunctionWithInternalFunctionPointer', 'transparent', true);