@@ -212,6 +212,39 @@ contract TestRoyaltyPolicyLAP is BaseTest {
212
212
royaltyPolicyLAP.transferToVault (ipAccount1, address (2000 ), address (USDC));
213
213
}
214
214
215
+ function test_RoyaltyPolicyLAP_transferToVault_revert_SameIpTransfer () public {
216
+ address [] memory parents = new address [](3 );
217
+ address [] memory licenseRoyaltyPolicies = new address [](3 );
218
+ uint32 [] memory parentRoyalties = new uint32 [](3 );
219
+ parents[0 ] = address (10 );
220
+ parents[1 ] = address (20 );
221
+ parents[2 ] = address (30 );
222
+ licenseRoyaltyPolicies[0 ] = address (royaltyPolicyLAP);
223
+ licenseRoyaltyPolicies[1 ] = address (royaltyPolicyLAP);
224
+ licenseRoyaltyPolicies[2 ] = address (royaltyPolicyLAP);
225
+ parentRoyalties[0 ] = uint32 (10 * 10 ** 6 );
226
+ parentRoyalties[1 ] = uint32 (15 * 10 ** 6 );
227
+ parentRoyalties[2 ] = uint32 (20 * 10 ** 6 );
228
+ ipGraph.addParentIp (ipAccount1, parents);
229
+
230
+ vm.startPrank (address (licensingModule));
231
+ royaltyModule.onLinkToParents (ipAccount1, parents, licenseRoyaltyPolicies, parentRoyalties, "" , 100e6 );
232
+
233
+ // make payment to ip 80
234
+ uint256 royaltyAmount = 100 * 10 ** 6 ;
235
+ address receiverIpId = ipAccount1;
236
+ address payerIpId = address (3 );
237
+ vm.startPrank (payerIpId);
238
+ USDC.mint (payerIpId, royaltyAmount);
239
+ USDC.approve (address (royaltyModule), royaltyAmount);
240
+ royaltyModule.payRoyaltyOnBehalf (receiverIpId, payerIpId, address (USDC), royaltyAmount);
241
+ vm.stopPrank ();
242
+
243
+ // first transfer to vault
244
+ vm.expectRevert (Errors.RoyaltyPolicyLAP__SameIpTransfer.selector );
245
+ royaltyPolicyLAP.transferToVault (ipAccount1, ipAccount1, address (USDC));
246
+ }
247
+
215
248
function test_RoyaltyPolicyLAP_transferToVault () public {
216
249
address [] memory parents = new address [](3 );
217
250
address [] memory licenseRoyaltyPolicies = new address [](3 );
0 commit comments