@@ -5,9 +5,11 @@ import "forge-std/Script.sol";
55import "forge-std/console.sol " ;
66import { IPNFT } from "../../src/IPNFT.sol " ;
77import { Tokenizer } from "../../src/Tokenizer.sol " ;
8+ import { IIPToken } from "../../src/IIPToken.sol " ;
89import { Metadata } from "../../src/IIPToken.sol " ;
910import { IPToken } from "../../src/IPToken.sol " ;
1011import { WrappedIPToken } from "../../src/WrappedIPToken.sol " ;
12+ import { FakeERC20 } from "../../src/helpers/FakeERC20.sol " ;
1113
1214import { ERC1967Proxy } from "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol " ;
1315import { IPermissioner, TermsAcceptedPermissioner } from "../../src/Permissioner.sol " ;
@@ -52,18 +54,30 @@ contract FixtureTokenizer is CommonScript {
5254 permissioner = TermsAcceptedPermissioner (vm.envAddress ("TERMS_ACCEPTED_PERMISSIONER_ADDRESS " ));
5355 }
5456
57+ function prepareAndSignTerms (uint256 tokenId ) internal returns (bytes memory ) {
58+ string memory terms = permissioner.specificTermsV1 (Metadata (tokenId, bob, "bafkreigk5dvqblnkdniges6ft5kmuly47ebw4vho6siikzmkaovq6sjstq " ));
59+ (uint8 v , bytes32 r , bytes32 s ) = vm.sign (bobPk, ECDSA.toEthSignedMessageHash (abi.encodePacked (terms)));
60+ return abi.encodePacked (r, s, v);
61+ }
62+
5563 function run () public {
5664 prepareAddresses ();
5765
58- string memory terms = permissioner.specificTermsV1 (Metadata (1 , bob, "bafkreigk5dvqblnkdniges6ft5kmuly47ebw4vho6siikzmkaovq6sjstq " ));
5966
6067 vm.startBroadcast (bob);
61- (uint8 v , bytes32 r , bytes32 s ) = vm.sign (bobPk, ECDSA.toEthSignedMessageHash (abi.encodePacked (terms)));
62- bytes memory signedTerms = abi.encodePacked (r, s, v);
63- IPToken tokenContract =
64- tokenizer.tokenizeIpnft (1 , 1_000_000 ether, "MOLE " , "bafkreigk5dvqblnkdniges6ft5kmuly47ebw4vho6siikzmkaovq6sjstq " , signedTerms);
68+ bytes memory signedToken1Terms = prepareAndSignTerms (1 );
69+ FakeERC20 usdc = FakeERC20 (vm.envAddress ("USDC_ADDRESS " ));
70+ // Attach an already existing token as an IPT
71+ IIPToken token1Contract = tokenizer.attachIpt (1 , "bafkreigk5dvqblnkdniges6ft5kmuly47ebw4vho6siikzmkaovq6sjstq " , signedToken1Terms, usdc);
72+
73+ bytes memory signedToken2Terms = prepareAndSignTerms (2 );
74+
75+ // Mmint a new IPT
76+ IPToken token2Contract =
77+ tokenizer.tokenizeIpnft (2 , 1_000_000 ether, "MOLE " , "bafkreigk5dvqblnkdniges6ft5kmuly47ebw4vho6siikzmkaovq6sjstq " , signedToken2Terms);
6578 vm.stopBroadcast ();
6679
67- console.log ("IPTS_ADDRESS=%s " , address (tokenContract));
80+ console.log ("ATTACHED_IPT_ADDRESS=%s " , address (token1Contract));
81+ console.log ("IPT_ADDRESS=%s " , address (token2Contract));
6882 }
6983}
0 commit comments