@@ -22,6 +22,17 @@ import {CloneFactory} from "rain.factory/concrete/CloneFactory.sol";
2222import {TransferSharesStateChange, TransferReceiptStateChange} from "src/concrete/vault/OffchainAssetReceiptVault.sol " ;
2323
2424contract OffchainAssetReceiptVaultAuthorizerV1AuthorizeTest is Test {
25+ function newAuthorizer (address initialAdmin ) internal returns (OffchainAssetReceiptVaultAuthorizerV1) {
26+ OffchainAssetReceiptVaultAuthorizerV1 authorizerImplementation = new OffchainAssetReceiptVaultAuthorizerV1 ();
27+
28+ OffchainAssetReceiptVaultAuthorizerV1Config memory config =
29+ OffchainAssetReceiptVaultAuthorizerV1Config ({initialAdmin: initialAdmin});
30+
31+ CloneFactory factory = new CloneFactory ();
32+ return
33+ OffchainAssetReceiptVaultAuthorizerV1 (factory.clone (address (authorizerImplementation), abi.encode (config)));
34+ }
35+
2536 function testOffchainAssetReceiptVaultAuthorizerV1AuthorizeUnauthorized (
2637 address initialAdmin ,
2738 address user ,
@@ -33,14 +44,7 @@ contract OffchainAssetReceiptVaultAuthorizerV1AuthorizeTest is Test {
3344 vm.assume (permission != TRANSFER_SHARES);
3445 vm.assume (permission != TRANSFER_RECEIPT);
3546
36- OffchainAssetReceiptVaultAuthorizerV1 authorizerImplementation = new OffchainAssetReceiptVaultAuthorizerV1 ();
37-
38- OffchainAssetReceiptVaultAuthorizerV1Config memory config =
39- OffchainAssetReceiptVaultAuthorizerV1Config ({initialAdmin: initialAdmin});
40-
41- CloneFactory factory = new CloneFactory ();
42- OffchainAssetReceiptVaultAuthorizerV1 authorizer =
43- OffchainAssetReceiptVaultAuthorizerV1 (factory.clone (address (authorizerImplementation), abi.encode (config)));
47+ OffchainAssetReceiptVaultAuthorizerV1 authorizer = newAuthorizer (initialAdmin);
4448
4549 vm.expectRevert (abi.encodeWithSelector (Unauthorized.selector , user, permission, data));
4650 authorizer.authorize (user, permission, data);
@@ -54,14 +58,7 @@ contract OffchainAssetReceiptVaultAuthorizerV1AuthorizeTest is Test {
5458 ) external {
5559 vm.assume (initialAdmin != address (0 ));
5660
57- OffchainAssetReceiptVaultAuthorizerV1 authorizerImplementation = new OffchainAssetReceiptVaultAuthorizerV1 ();
58-
59- OffchainAssetReceiptVaultAuthorizerV1Config memory config =
60- OffchainAssetReceiptVaultAuthorizerV1Config ({initialAdmin: initialAdmin});
61-
62- CloneFactory factory = new CloneFactory ();
63- OffchainAssetReceiptVaultAuthorizerV1 authorizer =
64- OffchainAssetReceiptVaultAuthorizerV1 (factory.clone (address (authorizerImplementation), abi.encode (config)));
61+ OffchainAssetReceiptVaultAuthorizerV1 authorizer = newAuthorizer (initialAdmin);
6562
6663 bytes32 [] memory roles = new bytes32 [](5 );
6764 roles[0 ] = CERTIFY;
@@ -92,14 +89,7 @@ contract OffchainAssetReceiptVaultAuthorizerV1AuthorizeTest is Test {
9289 ) external {
9390 vm.assume (initialAdmin != address (0 ));
9491
95- OffchainAssetReceiptVaultAuthorizerV1 authorizerImplementation = new OffchainAssetReceiptVaultAuthorizerV1 ();
96-
97- OffchainAssetReceiptVaultAuthorizerV1Config memory config =
98- OffchainAssetReceiptVaultAuthorizerV1Config ({initialAdmin: initialAdmin});
99-
100- CloneFactory factory = new CloneFactory ();
101- OffchainAssetReceiptVaultAuthorizerV1 authorizer =
102- OffchainAssetReceiptVaultAuthorizerV1 (factory.clone (address (authorizerImplementation), abi.encode (config)));
92+ OffchainAssetReceiptVaultAuthorizerV1 authorizer = newAuthorizer (initialAdmin);
10393
10494 authorizer.authorize (
10595 user,
@@ -120,14 +110,7 @@ contract OffchainAssetReceiptVaultAuthorizerV1AuthorizeTest is Test {
120110 ) external {
121111 vm.assume (initialAdmin != address (0 ));
122112
123- OffchainAssetReceiptVaultAuthorizerV1 authorizerImplementation = new OffchainAssetReceiptVaultAuthorizerV1 ();
124-
125- OffchainAssetReceiptVaultAuthorizerV1Config memory config =
126- OffchainAssetReceiptVaultAuthorizerV1Config ({initialAdmin: initialAdmin});
127-
128- CloneFactory factory = new CloneFactory ();
129- OffchainAssetReceiptVaultAuthorizerV1 authorizer =
130- OffchainAssetReceiptVaultAuthorizerV1 (factory.clone (address (authorizerImplementation), abi.encode (config)));
113+ OffchainAssetReceiptVaultAuthorizerV1 authorizer = newAuthorizer (initialAdmin);
131114
132115 authorizer.authorize (
133116 user,
@@ -155,14 +138,7 @@ contract OffchainAssetReceiptVaultAuthorizerV1AuthorizeTest is Test {
155138 ) external {
156139 vm.assume (initialAdmin != address (0 ));
157140
158- OffchainAssetReceiptVaultAuthorizerV1 authorizerImplementation = new OffchainAssetReceiptVaultAuthorizerV1 ();
159-
160- OffchainAssetReceiptVaultAuthorizerV1Config memory config =
161- OffchainAssetReceiptVaultAuthorizerV1Config ({initialAdmin: initialAdmin});
162-
163- CloneFactory factory = new CloneFactory ();
164- OffchainAssetReceiptVaultAuthorizerV1 authorizer =
165- OffchainAssetReceiptVaultAuthorizerV1 (factory.clone (address (authorizerImplementation), abi.encode (config)));
141+ OffchainAssetReceiptVaultAuthorizerV1 authorizer = newAuthorizer (initialAdmin);
166142
167143 vm.expectRevert (abi.encodeWithSelector (CertificationExpired.selector , from, to));
168144 authorizer.authorize (
@@ -184,14 +160,7 @@ contract OffchainAssetReceiptVaultAuthorizerV1AuthorizeTest is Test {
184160 ) external {
185161 vm.assume (initialAdmin != address (0 ));
186162
187- OffchainAssetReceiptVaultAuthorizerV1 authorizerImplementation = new OffchainAssetReceiptVaultAuthorizerV1 ();
188-
189- OffchainAssetReceiptVaultAuthorizerV1Config memory config =
190- OffchainAssetReceiptVaultAuthorizerV1Config ({initialAdmin: initialAdmin});
191-
192- CloneFactory factory = new CloneFactory ();
193- OffchainAssetReceiptVaultAuthorizerV1 authorizer =
194- OffchainAssetReceiptVaultAuthorizerV1 (factory.clone (address (authorizerImplementation), abi.encode (config)));
163+ OffchainAssetReceiptVaultAuthorizerV1 authorizer = newAuthorizer (initialAdmin);
195164
196165 vm.expectRevert (abi.encodeWithSelector (CertificationExpired.selector , from, to));
197166 authorizer.authorize (
@@ -220,14 +189,7 @@ contract OffchainAssetReceiptVaultAuthorizerV1AuthorizeTest is Test {
220189 vm.assume (initialAdmin != address (0 ));
221190 vm.assume (to != address (0 ));
222191
223- OffchainAssetReceiptVaultAuthorizerV1 authorizerImplementation = new OffchainAssetReceiptVaultAuthorizerV1 ();
224-
225- OffchainAssetReceiptVaultAuthorizerV1Config memory config =
226- OffchainAssetReceiptVaultAuthorizerV1Config ({initialAdmin: initialAdmin});
227-
228- CloneFactory factory = new CloneFactory ();
229- OffchainAssetReceiptVaultAuthorizerV1 authorizer =
230- OffchainAssetReceiptVaultAuthorizerV1 (factory.clone (address (authorizerImplementation), abi.encode (config)));
192+ OffchainAssetReceiptVaultAuthorizerV1 authorizer = newAuthorizer (initialAdmin);
231193
232194 bytes memory data = abi.encode (
233195 TransferSharesStateChange ({from: address (0 ), to: to, amount: amount, isCertificationExpired: true })
@@ -263,14 +225,7 @@ contract OffchainAssetReceiptVaultAuthorizerV1AuthorizeTest is Test {
263225 vm.assume (initialAdmin != address (0 ));
264226 vm.assume (to != address (0 ));
265227
266- OffchainAssetReceiptVaultAuthorizerV1 authorizerImplementation = new OffchainAssetReceiptVaultAuthorizerV1 ();
267-
268- OffchainAssetReceiptVaultAuthorizerV1Config memory config =
269- OffchainAssetReceiptVaultAuthorizerV1Config ({initialAdmin: initialAdmin});
270-
271- CloneFactory factory = new CloneFactory ();
272- OffchainAssetReceiptVaultAuthorizerV1 authorizer =
273- OffchainAssetReceiptVaultAuthorizerV1 (factory.clone (address (authorizerImplementation), abi.encode (config)));
228+ OffchainAssetReceiptVaultAuthorizerV1 authorizer = newAuthorizer (initialAdmin);
274229
275230 bytes memory data = abi.encode (
276231 TransferReceiptStateChange ({
@@ -311,14 +266,7 @@ contract OffchainAssetReceiptVaultAuthorizerV1AuthorizeTest is Test {
311266 vm.assume (initialAdmin != address (0 ));
312267 vm.assume (from != address (0 ));
313268
314- OffchainAssetReceiptVaultAuthorizerV1 authorizerImplementation = new OffchainAssetReceiptVaultAuthorizerV1 ();
315-
316- OffchainAssetReceiptVaultAuthorizerV1Config memory config =
317- OffchainAssetReceiptVaultAuthorizerV1Config ({initialAdmin: initialAdmin});
318-
319- CloneFactory factory = new CloneFactory ();
320- OffchainAssetReceiptVaultAuthorizerV1 authorizer =
321- OffchainAssetReceiptVaultAuthorizerV1 (factory.clone (address (authorizerImplementation), abi.encode (config)));
269+ OffchainAssetReceiptVaultAuthorizerV1 authorizer = newAuthorizer (initialAdmin);
322270
323271 bytes memory data = abi.encode (
324272 TransferSharesStateChange ({from: from, to: address (0 ), amount: amount, isCertificationExpired: true })
@@ -354,14 +302,7 @@ contract OffchainAssetReceiptVaultAuthorizerV1AuthorizeTest is Test {
354302 vm.assume (initialAdmin != address (0 ));
355303 vm.assume (from != address (0 ));
356304
357- OffchainAssetReceiptVaultAuthorizerV1 authorizerImplementation = new OffchainAssetReceiptVaultAuthorizerV1 ();
358-
359- OffchainAssetReceiptVaultAuthorizerV1Config memory config =
360- OffchainAssetReceiptVaultAuthorizerV1Config ({initialAdmin: initialAdmin});
361-
362- CloneFactory factory = new CloneFactory ();
363- OffchainAssetReceiptVaultAuthorizerV1 authorizer =
364- OffchainAssetReceiptVaultAuthorizerV1 (factory.clone (address (authorizerImplementation), abi.encode (config)));
305+ OffchainAssetReceiptVaultAuthorizerV1 authorizer = newAuthorizer (initialAdmin);
365306
366307 bytes memory data = abi.encode (
367308 TransferReceiptStateChange ({
0 commit comments