From 41152ff376b110c19cc04df0fe14f42576b21bcf Mon Sep 17 00:00:00 2001 From: vicnaum Date: Thu, 26 Dec 2024 23:14:31 +0100 Subject: [PATCH] misc: Metadata in constructor added to all the rules and actions (and redeployed) --- addressBook.json | 120 +++++++++--------- contracts.env | 70 +++++----- .../actions/account/TippingAccountAction.sol | 5 +- contracts/actions/post/TippingPostAction.sol | 5 +- .../post/collect/SimpleCollectAction.sol | 5 +- .../rules/base/RestrictedSignersRule.sol | 5 +- contracts/rules/base/SimplePaymentRule.sol | 5 +- contracts/rules/base/TokenGatedRule.sol | 5 +- contracts/rules/base/UserBlockingRule.sol | 5 +- contracts/rules/feed/GroupGatedFeedRule.sol | 5 +- .../rules/feed/RestrictedSignersFeedRule.sol | 2 + .../rules/feed/SimplePaymentFeedRule.sol | 2 +- contracts/rules/feed/TokenGatedFeedRule.sol | 2 +- .../rules/follow/SimplePaymentFollowRule.sol | 2 +- .../rules/follow/TokenGatedFollowRule.sol | 2 +- contracts/rules/graph/GroupGatedGraphRule.sol | 5 +- .../graph/RestrictedSignersGraphRule.sol | 2 + contracts/rules/graph/TokenGatedGraphRule.sol | 2 +- contracts/rules/group/BanMemberGroupRule.sol | 5 +- .../group/MembershipApprovalGroupRule.sol | 5 +- .../rules/group/SimplePaymentGroupRule.sol | 2 +- contracts/rules/group/TokenGatedGroupRule.sol | 2 +- .../rules/post/FollowersOnlyPostRule.sol | 5 +- .../rules/username/CharsetUsernameRule.sol | 5 +- .../rules/username/LengthUsernameRule.sol | 5 +- .../rules/username/ReservedUsernameRule.sol | 5 +- .../username/SimplePaymentUsernameRule.sol | 2 +- .../rules/username/TokenGatedUsernameRule.sol | 2 +- deploy/deployActions.ts | 5 +- deploy/deployFactories.ts | 3 +- deploy/deployRules.ts | 33 ++--- 31 files changed, 160 insertions(+), 168 deletions(-) diff --git a/addressBook.json b/addressBook.json index 4772839e..5a6d754a 100644 --- a/addressBook.json +++ b/addressBook.json @@ -1,177 +1,177 @@ { "AccessControlFactory": { "contractType": 0, - "address": "0x34d58635c4829e822eF9A1a8E772448219e567Ed", + "address": "0xAB42fFa42BB970E91c319fa2A9788fef7383025f", "bytecodeHash": "0xffd13eadfff388febdb5870c599cc093f6fbf017bd444ceb3632354fbacf64d9" }, "AccountFactory": { "contractType": 0, - "address": "0x8FaB40f6f21c5e2849A46fEc1F1286A9d5C08Ab3", + "address": "0xe5f7A8bD9140314395B101E48D5218b4f7c0BC9b", "bytecodeHash": "0x778c4a339b3db45d0e3598efa36c14c62ab41bbc39e5c3120281eb9a16538f5e" }, "AppFactory": { "contractType": 0, - "address": "0x67B78E940F213a15e233cb719566Ea4d2851434b", + "address": "0xFb89E2Ce26cb9294Fa70fB3BD04562D2F510E1e7", "bytecodeHash": "0x76270a7bf794505b1b19e14c58f558e043cfacf43c8c7210c064267aecf82fe1" }, "FeedFactory": { "contractType": 0, - "address": "0xE2bB852f175fAf96060d7f8966068A340e18f409", - "bytecodeHash": "0x8598be6d2e62e7fff2a2c3f4188ef12510b741ea0ee32a8b88634d50b82a2fd4" + "address": "0x3173760141462F4b9ec34a9e25816e16FD04dc19", + "bytecodeHash": "0x70ee947e41895cfb03e90d4faa73e6f11bcfb19ed75a410089493a4c4daac7b9" }, "GraphFactory": { "contractType": 0, - "address": "0x14Dfe3937c137E0043e6C2b073F6F44f854Ff000", - "bytecodeHash": "0x29f114f05b7df82ce1b358711436a539cdef4301c19a2295ee23f151a73c3b5d" + "address": "0xD418cA6c563F2ec322cB31c16a5315069D24de87", + "bytecodeHash": "0x1322c4e1072d1510bbfbbd31bd873c75daaf35f8c44b6059c18fde5f484f8aed" }, "GroupFactory": { "contractType": 0, - "address": "0x96fa333d87Ffe137EddAdccE4F1F4fB4f7288DBE", - "bytecodeHash": "0x243782613d2de5760bf3be6689141e2059fd864f83722cadb7e56860510271c0" + "address": "0xC533562eA7369397F78ABF6BC6cC587e46fB663D", + "bytecodeHash": "0x70c66f88f40e5090990710d0a5e6e7041dae94db21b4e1a50ffded638715d8b6" }, "UsernameFactory": { "contractType": 0, - "address": "0xd1e12f472D75b200A19A9D21Fa71F98faf90F223", - "bytecodeHash": "0x151073f630e538a4a87838c0d027cd9b47d6aeaafc8a77fdc93fa97b6ba1ba34" + "address": "0x6828995636f35B49B6c2c0f45E25F528FEA3866F", + "bytecodeHash": "0xe1505e5c325931364b4e1665ca98f17784095c1079104818b52191459e3e360b" }, "UserBlockingRule": { "contractType": 4, - "address": "0xa5dCb5726Fd47eA706157fb98E23CF456eafbD19", - "bytecodeHash": "0x9749dfa722a66d4661d8d732fd62a91d4d355f1a5c57ae513e4edff1a0137c0a" + "address": "0xA85FC9625a5c525742Fe2716464Fc5F08179D1b0", + "bytecodeHash": "0x5a85a452e3bdc2ca2a059b16184cb3c64e8ff8baf8f4f4c4441f6144c149a969" }, "LensFactory": { "contractType": 0, - "address": "0x809513aeB5C357f90Ad2bA5eD64853D4242d6FbD", - "bytecodeHash": "0xcc9ce3d4e4948379ef176fb047b00633333768240668e46ca09ee8cd63c2a6ed" + "address": "0x6F86fAb76E2b2F4d71C4e25f9Df507707ea2544A", + "bytecodeHash": "0x611f09798c92d2dcf640f2d09b2f8e9729232bb7eb952a26b2d9c3e6fff09891" }, "Account": { "contractName": "Account", "contractType": 5, - "address": "0x8436f933d0f869e95bFdE7cD2dd4BBEEdA9804b4" + "address": "0xc1B939e2AdBa810A3Bd80C043A51d8aFFe8121a8" }, "Feed": { "contractName": "Feed", "contractType": 1, - "address": "0x5c8c95f5DEa2707625503aACE8935ED12bdAf5DC" + "address": "0x4b21B56e8e36714aF0634a460fc637896E62aB14" }, "Group": { "contractName": "Group", "contractType": 1, - "address": "0x85Ec511229432068794ae0619225708495FB9e58" + "address": "0xb9226FF33c025D761E903cB864E2F6a173E559c5" }, "Graph": { "contractName": "Graph", "contractType": 1, - "address": "0xad441d2A53aE94f900e64A928C90020C5D4B2996" + "address": "0x9b82039E352d5d71CCf09cA71d324F9653194859" }, "Username": { "contractName": "Username", "contractType": 1, - "address": "0x4A4146794626bf064D223AA72c1D6790a3A4C407" + "address": "0x380a23c0B0DB6B0eD531bDA2b27d1d963F3bA64D" }, "App": { "contractName": "App", "contractType": 5, - "address": "0x4159385F29e36DFc4D95D047c788473021029c47" + "address": "0x8d2bd7284C16DC21BD0768aC4EaFc516FAbbAC6B" }, "ActionHub": { "contractName": "ActionHub", "contractType": 2, - "address": "0xC4e87f140017525c7CE1294c79EECA8E2dBCF2E1" + "address": "0xd578d4C9b85b421Ac320e6d4b97Bd062f783664B" }, "OwnerAdminOnlyAccessControl": { "contractName": "OwnerAdminOnlyAccessControl", "contractType": 2, - "address": "0xB887f0DcFa48cE706aF0b595Ca4Dc2058Fa0e914" + "address": "0x23651C52835C09017edB8906dc265c19EdAcFa34" }, "GroupGatedFeedRule": { "contractType": 4, - "address": "0x09DdBA1817c8730D4040397948DD624F452FCDb9", - "bytecodeHash": "0x167ec27635297d19df0798e5e48e55498ce952c54a6999b04bb72034eb9e934e" + "address": "0x2a021Fe75AB34f638e6AF41B3A63C4EEF181C875", + "bytecodeHash": "0xb2661ccd5e3a152ff5d53235e77f5a1631eb2e1b41a204905bbd4979ff84fb00" }, "RestrictedSignersFeedRule": { "contractType": 4, - "address": "0x8E0707f76e2c4DbadA2eDaB0C26BA283018fEbEa", - "bytecodeHash": "0x25d7c10c2d4fdfe3974c0cadaaa1989119bd692778c3fdb89910d3e908937a83" + "address": "0xF5992a64513111B7557f951f2345c1E8DA6B0E47", + "bytecodeHash": "0xa0147cf3f8841a85efb4b0f2873f1d0eeb4a3a03eeffdb3ed103506d26503509" }, "SimplePaymentFeedRule": { "contractType": 4, - "address": "0x9352a7ce5269F74783B0259c35ca7d477Bf9CbED", - "bytecodeHash": "0xf99cb085312cfbbe6923fa1675d7d1c94de66123eb31ab43e3e9e3dd5d5eb156" + "address": "0x410F26C7451Cb7d30d7d48228fb27C46Dbd90324", + "bytecodeHash": "0x5a2f5ebb5bd387a6ac49e3e41953708d03a75622f9fa367f2fdfbb6be37ff2eb" }, "TokenGatedFeedRule": { "contractType": 4, - "address": "0x13022d0b620FE8f6A7e0703eA44cA90d8AaD122D", - "bytecodeHash": "0xd652d5b943c674291f66a21e3128b812e65266f04960a50058ed5b09991dc194" + "address": "0x210b850191B766bFc2788138C0b26816983d927a", + "bytecodeHash": "0xdf46990ec07f3f62ab8b5e78d09ef15494275cc154dc3dae61fc427c95330409" }, "FollowersOnlyPostRule": { "contractType": 4, - "address": "0xBF8126b52B04Ed5D59a8a119A7C7E1701B603ea6", - "bytecodeHash": "0x0520963c0b8c4ee6e8c014c9de361985bb48e499958bfca9e15ca61c2e351953" + "address": "0xD51C7BA9f5f4743eff2371a97F889FBA928ABFB2", + "bytecodeHash": "0xcb410be762584d2f6a0288f412700d2148b9a41ac19e9f126905e03bebd5dd37" }, "RestrictedSignersGraphRule": { "contractType": 4, - "address": "0xB3d70d02805801E6414A974B2F71912bF34ab938", - "bytecodeHash": "0x117026b2b5ce790553cf97b13d7c7add20bca1b8f53928fefe949b4e03bc489b" + "address": "0x18A328E1c1A1c9234F22165527405B7DF2B645fB", + "bytecodeHash": "0xf46df3cbf6e5c562f111f9dfdc2c9d10243700b77733fa92aa89ac9725a85dde" }, "TokenGatedGraphRule": { "contractType": 4, - "address": "0xab865e5329cc323a2B0d0d5d09158caC42dF18D1", - "bytecodeHash": "0xe5be5305973a972075145562f2358268f569baaa30a569b4e336dd2d7a5e25b7" + "address": "0xa59Ad7606589C14EE24dA32CDBc5BBD34BdD38aA", + "bytecodeHash": "0x826b73493898bc53802267665a2cf09b46d199ef6915e3a7e509428a42a3638b" }, "SimplePaymentFollowRule": { "contractType": 4, - "address": "0xBA8f0Db2f1a1022F95bC920e303d91B029c1D43f", - "bytecodeHash": "0xd76529bf4e6af15a2c9e4d2bd28d439b9ef0d8c68f23c33c0ba211f4f75c00d4" + "address": "0x17f5fc7b819e62990F264EA6F6f0e6700b095802", + "bytecodeHash": "0x69d571614d26b3dd63e324a9943c38805a76fcb81c5ef4f347fe4cd36c7cb870" }, "TokenGatedFollowRule": { "contractType": 4, - "address": "0x7a6c70e16b71caea90B92ECfbbFcc19B494eEFd7", - "bytecodeHash": "0x742c89db4c8e152ff9faa3d4fdd9866eb9ca45e382d190dfcc534fcd2ba70a69" + "address": "0x8a018956dEc11498b1ede8D6fd238920BE0672FF", + "bytecodeHash": "0x82711f6b88c46dca799abc70d63748a861ac63092a2c6af8b39722968b1f1b80" }, "MembershipApprovalGroupRule": { "contractType": 4, - "address": "0xaC5eA4CC12Cd24286BDcbdbbA18CbCB88213b98C", - "bytecodeHash": "0xd70552f134d17e137e86ae272485a1ad2da0428ffebb44cc60ec77e40b99b925" + "address": "0x6753E5e5AC71cbdD276f6a92219fF7E9d48B44c4", + "bytecodeHash": "0x017565ec00a0a78377dc64072f55407227b85372e2de7685a5dbc143a7c08a31" }, "SimplePaymentGroupRule": { "contractType": 4, - "address": "0x83A33b87d029c185eF03AC74398c43700F06F48c", - "bytecodeHash": "0x24dae5d8972b7e8ddbfca46a10f284d5c1d79c2afafe1d1fb767f36f0345684e" + "address": "0xA6b387c901c4eb157e5f80BBBDDAf8C1828bEadC", + "bytecodeHash": "0x54c7cb0f133752e373f94ca047962614132491122b620cb269261f0d2f86f78b" }, "TokenGatedGroupRule": { "contractType": 4, - "address": "0xa4150E5c9Cad4154D5a93CEC78835BC1baEDE9a6", - "bytecodeHash": "0xe65096f6d2ea5f3b10054c6753545e9928f2ceef9998fb7e8f91bae3f8ef6549" + "address": "0xFCd7d824B072CE2F1976f9aE7bAa19e61D63F8b0", + "bytecodeHash": "0x148c0b00fe5cead20bea3feffa2a25d31d3cb913a12b155fb5e08956ce15aacc" }, "CharsetUsernameRule": { "contractType": 4, - "address": "0x87fE984a5d6cA015da3caeE94F7BcD54DC90235B", - "bytecodeHash": "0x2f1d07ad4d6c3878cfbd2c47ef20b92fe234b5861d9088ebb17a0d3d2b13421a" + "address": "0x0904cDb1Bb2cd7EeC7656ae3f6df3D0cf0631adC", + "bytecodeHash": "0xbeff9bb2a713b44d80263cdee74a510568bdadc68da1f469bd9abc5d488022b9" }, "LengthUsernameRule": { "contractType": 4, - "address": "0x2C8Cb0996f189071bf9e7382f3233d3B154963F7", - "bytecodeHash": "0x864489885f7d8a589b416642ec7ad9f10d0fa0083ccc479425048137625815a5" + "address": "0x63cfCd84881602a8e98FDd30Ca234A61b806a2b8", + "bytecodeHash": "0xe4a933e09dd68e38609728160eaad3d72a99ac87adf25565d5c9706345dfcf2a" }, "SimplePaymentUsernameRule": { "contractType": 4, - "address": "0xcc27CFb7b67281BDA141eE32d4b21b2CFBC70a5B", - "bytecodeHash": "0xdffafe1dfb4892885e42f47373d481f80af7ad0b759a817bf571860fb94e23b0" + "address": "0x18Bc249FD00438Dc62A508b1133e438DbFE1f025", + "bytecodeHash": "0x4fa55f756520a7eb4048f56ef47405c77e29c0f237a47cba912f3d8269004e5d" }, "TokenGatedUsernameRule": { "contractType": 4, - "address": "0xbBf7Fc5D3D61F761B0128dc66627c0d8574f1c49", - "bytecodeHash": "0x43ac89d3be99e2dcd0ed0977cf399a56037344896b797576ed98e4e41e291daa" + "address": "0xc7f03D448144F888e4D87560D265c85d3e013EA5", + "bytecodeHash": "0xd63f0930e78395f2636668b4ef8c66425460eb183dfcda9f83ca90645b3c8344" }, "TippingAccountAction": { "contractType": 3, - "address": "0x59b46F962931E7DE82B46Ea250C7defb39A1edCb", - "bytecodeHash": "0xa9ab0836eb7ab5072740be7091b1c97bb436f49620fcc3da000e992c1b3a65d1" + "address": "0xD310825958418fd133d17C6c924d0Dc417d2AEdb", + "bytecodeHash": "0xb77a6ee82ea8fe92064c204104e69ca80cc6246b7b5624eb364f1f9c5e61ec21" }, "SimpleCollectAction": { "contractType": 3, - "address": "0xf61Be1d1DC89EC40767C0E1278aC9Ce970f4A5fF", - "bytecodeHash": "0x711f518ce97ef03c7252f0dfd2bda2a92b169899e0c93cd7b086ec84097094a4" + "address": "0xd34a5E56B0AD3d8824CbDB91f8dB07ce9bC6F735", + "bytecodeHash": "0xdcc4e7bd9875501c109949c230fac09375bc6e1ac08a7ba78ce7fe09bd9d7a89" } -} +} \ No newline at end of file diff --git a/contracts.env b/contracts.env index e4e25435..d2718f6e 100644 --- a/contracts.env +++ b/contracts.env @@ -1,46 +1,46 @@ # CONTRACTS -ACCESS_CONTROL_FACTORY="0x34d58635c4829e822eF9A1a8E772448219e567Ed" -ACCOUNT_FACTORY="0x8FaB40f6f21c5e2849A46fEc1F1286A9d5C08Ab3" -APP_FACTORY="0x67B78E940F213a15e233cb719566Ea4d2851434b" -FEED_FACTORY="0xE2bB852f175fAf96060d7f8966068A340e18f409" -GRAPH_FACTORY="0x14Dfe3937c137E0043e6C2b073F6F44f854Ff000" -GROUP_FACTORY="0x96fa333d87Ffe137EddAdccE4F1F4fB4f7288DBE" -USERNAME_FACTORY="0xd1e12f472D75b200A19A9D21Fa71F98faf90F223" -LENS_FACTORY="0x809513aeB5C357f90Ad2bA5eD64853D4242d6FbD" +ACCESS_CONTROL_FACTORY="0xAB42fFa42BB970E91c319fa2A9788fef7383025f" +ACCOUNT_FACTORY="0xe5f7A8bD9140314395B101E48D5218b4f7c0BC9b" +APP_FACTORY="0xFb89E2Ce26cb9294Fa70fB3BD04562D2F510E1e7" +FEED_FACTORY="0x3173760141462F4b9ec34a9e25816e16FD04dc19" +GRAPH_FACTORY="0xD418cA6c563F2ec322cB31c16a5315069D24de87" +GROUP_FACTORY="0xC533562eA7369397F78ABF6BC6cC587e46fB663D" +USERNAME_FACTORY="0x6828995636f35B49B6c2c0f45E25F528FEA3866F" +LENS_FACTORY="0x6F86fAb76E2b2F4d71C4e25f9Df507707ea2544A" # LENS GLOBAL PRIMITIVES -FEED="0x5c8c95f5DEa2707625503aACE8935ED12bdAf5DC" -GROUP="0x85Ec511229432068794ae0619225708495FB9e58" -GRAPH="0xad441d2A53aE94f900e64A928C90020C5D4B2996" -USERNAME="0x4A4146794626bf064D223AA72c1D6790a3A4C407" +FEED="0x4b21B56e8e36714aF0634a460fc637896E62aB14" +GROUP="0xb9226FF33c025D761E903cB864E2F6a173E559c5" +GRAPH="0x9b82039E352d5d71CCf09cA71d324F9653194859" +USERNAME="0x380a23c0B0DB6B0eD531bDA2b27d1d963F3bA64D" # AUX -ACTION_HUB="0xC4e87f140017525c7CE1294c79EECA8E2dBCF2E1" -OWNER_ADMIN_ONLY_ACCESS_CONTROL="0xB887f0DcFa48cE706aF0b595Ca4Dc2058Fa0e914" +ACTION_HUB="0xd578d4C9b85b421Ac320e6d4b97Bd062f783664B" +OWNER_ADMIN_ONLY_ACCESS_CONTROL="0x23651C52835C09017edB8906dc265c19EdAcFa34" # ACTIONS -TIPPING_ACCOUNT_ACTION="0x59b46F962931E7DE82B46Ea250C7defb39A1edCb" -SIMPLE_COLLECT_ACTION="0xf61Be1d1DC89EC40767C0E1278aC9Ce970f4A5fF" +TIPPING_ACCOUNT_ACTION="0xD310825958418fd133d17C6c924d0Dc417d2AEdb" +SIMPLE_COLLECT_ACTION="0xd34a5E56B0AD3d8824CbDB91f8dB07ce9bC6F735" # RULES -USER_BLOCKING_RULE="0xa5dCb5726Fd47eA706157fb98E23CF456eafbD19" -GROUP_GATED_FEED_RULE="0x09DdBA1817c8730D4040397948DD624F452FCDb9" -RESTRICTED_SIGNERS_FEED_RULE="0x8E0707f76e2c4DbadA2eDaB0C26BA283018fEbEa" -SIMPLE_PAYMENT_FEED_RULE="0x9352a7ce5269F74783B0259c35ca7d477Bf9CbED" -TOKEN_GATED_FEED_RULE="0x13022d0b620FE8f6A7e0703eA44cA90d8AaD122D" -FOLLOWERS_ONLY_POST_RULE="0xBF8126b52B04Ed5D59a8a119A7C7E1701B603ea6" -RESTRICTED_SIGNERS_GRAPH_RULE="0xB3d70d02805801E6414A974B2F71912bF34ab938" -TOKEN_GATED_GRAPH_RULE="0xab865e5329cc323a2B0d0d5d09158caC42dF18D1" -SIMPLE_PAYMENT_FOLLOW_RULE="0xBA8f0Db2f1a1022F95bC920e303d91B029c1D43f" -TOKEN_GATED_FOLLOW_RULE="0x7a6c70e16b71caea90B92ECfbbFcc19B494eEFd7" -MEMBERSHIP_APPROVAL_GROUP_RULE="0xaC5eA4CC12Cd24286BDcbdbbA18CbCB88213b98C" -SIMPLE_PAYMENT_GROUP_RULE="0x83A33b87d029c185eF03AC74398c43700F06F48c" -TOKEN_GATED_GROUP_RULE="0xa4150E5c9Cad4154D5a93CEC78835BC1baEDE9a6" -CHARSET_USERNAME_RULE="0x87fE984a5d6cA015da3caeE94F7BcD54DC90235B" -LENGTH_USERNAME_RULE="0x2C8Cb0996f189071bf9e7382f3233d3B154963F7" -SIMPLE_PAYMENT_USERNAME_RULE="0xcc27CFb7b67281BDA141eE32d4b21b2CFBC70a5B" -TOKEN_GATED_USERNAME_RULE="0xbBf7Fc5D3D61F761B0128dc66627c0d8574f1c49" +USER_BLOCKING_RULE="0xA85FC9625a5c525742Fe2716464Fc5F08179D1b0" +GROUP_GATED_FEED_RULE="0x2a021Fe75AB34f638e6AF41B3A63C4EEF181C875" +RESTRICTED_SIGNERS_FEED_RULE="0xF5992a64513111B7557f951f2345c1E8DA6B0E47" +SIMPLE_PAYMENT_FEED_RULE="0x410F26C7451Cb7d30d7d48228fb27C46Dbd90324" +TOKEN_GATED_FEED_RULE="0x210b850191B766bFc2788138C0b26816983d927a" +FOLLOWERS_ONLY_POST_RULE="0xD51C7BA9f5f4743eff2371a97F889FBA928ABFB2" +RESTRICTED_SIGNERS_GRAPH_RULE="0x18A328E1c1A1c9234F22165527405B7DF2B645fB" +TOKEN_GATED_GRAPH_RULE="0xa59Ad7606589C14EE24dA32CDBc5BBD34BdD38aA" +SIMPLE_PAYMENT_FOLLOW_RULE="0x17f5fc7b819e62990F264EA6F6f0e6700b095802" +TOKEN_GATED_FOLLOW_RULE="0x8a018956dEc11498b1ede8D6fd238920BE0672FF" +MEMBERSHIP_APPROVAL_GROUP_RULE="0x6753E5e5AC71cbdD276f6a92219fF7E9d48B44c4" +SIMPLE_PAYMENT_GROUP_RULE="0xA6b387c901c4eb157e5f80BBBDDAf8C1828bEadC" +TOKEN_GATED_GROUP_RULE="0xFCd7d824B072CE2F1976f9aE7bAa19e61D63F8b0" +CHARSET_USERNAME_RULE="0x0904cDb1Bb2cd7EeC7656ae3f6df3D0cf0631adC" +LENGTH_USERNAME_RULE="0x63cfCd84881602a8e98FDd30Ca234A61b806a2b8" +SIMPLE_PAYMENT_USERNAME_RULE="0x18Bc249FD00438Dc62A508b1133e438DbFE1f025" +TOKEN_GATED_USERNAME_RULE="0xc7f03D448144F888e4D87560D265c85d3e013EA5" # MISC -ACCOUNT="0x8436f933d0f869e95bFdE7cD2dd4BBEEdA9804b4" -APP="0x4159385F29e36DFc4D95D047c788473021029c47" +ACCOUNT="0xc1B939e2AdBa810A3Bd80C043A51d8aFFe8121a8" +APP="0x8d2bd7284C16DC21BD0768aC4EaFc516FAbbAC6B" diff --git a/contracts/actions/account/TippingAccountAction.sol b/contracts/actions/account/TippingAccountAction.sol index 93cf1941..23a5e9a0 100644 --- a/contracts/actions/account/TippingAccountAction.sol +++ b/contracts/actions/account/TippingAccountAction.sol @@ -18,9 +18,8 @@ contract TippingAccountAction is BaseAccountAction, MetadataBased { // keccak256("lens.actions.account.TippingAccountAction.param.key.tipToken"); bytes32 immutable TIP_TOKEN_PARAM_KEY = 0xae0b2bf062e67ee8e231397eadff68e32752f185a8cb19379ed8cfa87ae7bd08; - constructor(address actionHub) BaseAccountAction(actionHub) { - // TODO: Decide on metadata format - _setMetadataURI("{ lensMetadata: 'some metadata' }"); + constructor(address actionHub, string memory metadataURI) BaseAccountAction(actionHub) { + _setMetadataURI(metadataURI); } function _emitMetadataURISet(string memory metadataURI) internal override { diff --git a/contracts/actions/post/TippingPostAction.sol b/contracts/actions/post/TippingPostAction.sol index 3dce7a67..2927cb38 100644 --- a/contracts/actions/post/TippingPostAction.sol +++ b/contracts/actions/post/TippingPostAction.sol @@ -19,9 +19,8 @@ contract TippingPostAction is BasePostAction, MetadataBased { // keccak256("lens.actions.account.TippingPostAction.param.key.tipToken"); bytes32 immutable TIP_TOKEN_PARAM_KEY = 0xae0b2bf062e67ee8e231397eadff68e32752f185a8cb19379ed8cfa87ae7bd08; - constructor(address actionHub) BasePostAction(actionHub) { - // TODO: Decide on metadata format - _setMetadataURI("{ lensMetadata: 'some metadata' }"); + constructor(address actionHub, string memory metadataURI) BasePostAction(actionHub) { + _setMetadataURI(metadataURI); } function _emitMetadataURISet(string memory metadataURI) internal override { diff --git a/contracts/actions/post/collect/SimpleCollectAction.sol b/contracts/actions/post/collect/SimpleCollectAction.sol index e166852d..8e3425f0 100644 --- a/contracts/actions/post/collect/SimpleCollectAction.sol +++ b/contracts/actions/post/collect/SimpleCollectAction.sol @@ -79,9 +79,8 @@ contract SimpleCollectAction is ISimpleCollectAction, BasePostAction, MetadataBa address currency; // (Optional, but required if amount > 0) Default: address(0) } - constructor(address actionHub) BasePostAction(actionHub) { - // TODO: Decide on metadata format - _setMetadataURI("{ lensMetadata: 'some metadata' }"); + constructor(address actionHub, string memory metadataURI) BasePostAction(actionHub) { + _setMetadataURI(metadataURI); } function _emitMetadataURISet(string memory metadataURI) internal override { diff --git a/contracts/rules/base/RestrictedSignersRule.sol b/contracts/rules/base/RestrictedSignersRule.sol index f15cb6be..c868dae7 100644 --- a/contracts/rules/base/RestrictedSignersRule.sol +++ b/contracts/rules/base/RestrictedSignersRule.sol @@ -67,9 +67,8 @@ abstract contract RestrictedSignersRule is MetadataBased { "RestrictedSignerMessage(bytes4 functionSelector,bytes abiEncodedParams,uint256 nonce,uint256 deadline)" ); - constructor() { - // TODO: Decide on metadata format - _setMetadataURI("{ lensMetadata: 'some metadata' }"); + constructor(string memory metadataURI) { + _setMetadataURI(metadataURI); } function _emitMetadataURISet(string memory metadataURI) internal override { diff --git a/contracts/rules/base/SimplePaymentRule.sol b/contracts/rules/base/SimplePaymentRule.sol index f916f1f5..a4064d1a 100644 --- a/contracts/rules/base/SimplePaymentRule.sol +++ b/contracts/rules/base/SimplePaymentRule.sol @@ -26,9 +26,8 @@ abstract contract SimplePaymentRule is MetadataBased { mapping(address => mapping(address => bool)) internal _isTrusted; - constructor() { - // TODO: Decide on metadata format - _setMetadataURI("{ lensMetadata: 'some metadata' }"); + constructor(string memory metadataURI) { + _setMetadataURI(metadataURI); } function _emitMetadataURISet(string memory metadataURI) internal override { diff --git a/contracts/rules/base/TokenGatedRule.sol b/contracts/rules/base/TokenGatedRule.sol index c3e67a2c..74d09171 100644 --- a/contracts/rules/base/TokenGatedRule.sol +++ b/contracts/rules/base/TokenGatedRule.sol @@ -29,9 +29,8 @@ abstract contract TokenGatedRule is MetadataBased { uint256 amount; } - constructor() { - // TODO: Decide on metadata format - _setMetadataURI("{ lensMetadata: 'some metadata' }"); + constructor(string memory metadataURI) { + _setMetadataURI(metadataURI); } function _emitMetadataURISet(string memory metadataURI) internal override { diff --git a/contracts/rules/base/UserBlockingRule.sol b/contracts/rules/base/UserBlockingRule.sol index c6456639..e9acf2fc 100644 --- a/contracts/rules/base/UserBlockingRule.sol +++ b/contracts/rules/base/UserBlockingRule.sol @@ -17,9 +17,8 @@ contract UserBlockingRule is IFeedRule, IGraphRule, MetadataBased { mapping(address => mapping(address => uint256)) public userBlocks; - constructor() { - // TODO: Decide on metadata format - _setMetadataURI("{ lensMetadata: 'some metadata' }"); + constructor(string memory metadataURI) { + _setMetadataURI(metadataURI); } function _emitMetadataURISet(string memory metadataURI) internal override { diff --git a/contracts/rules/feed/GroupGatedFeedRule.sol b/contracts/rules/feed/GroupGatedFeedRule.sol index 6bf7e893..a83b8462 100644 --- a/contracts/rules/feed/GroupGatedFeedRule.sol +++ b/contracts/rules/feed/GroupGatedFeedRule.sol @@ -16,9 +16,8 @@ contract GroupGatedFeedRule is IFeedRule, MetadataBased { mapping(address => mapping(bytes32 => address)) internal _groupGate; - constructor() { - // TODO: Decide on metadata format - _setMetadataURI("{ lensMetadata: 'some metadata' }"); + constructor(string memory metadataURI) { + _setMetadataURI(metadataURI); } function _emitMetadataURISet(string memory metadataURI) internal override { diff --git a/contracts/rules/feed/RestrictedSignersFeedRule.sol b/contracts/rules/feed/RestrictedSignersFeedRule.sol index 7c091400..e95c3b1f 100644 --- a/contracts/rules/feed/RestrictedSignersFeedRule.sol +++ b/contracts/rules/feed/RestrictedSignersFeedRule.sol @@ -9,6 +9,8 @@ import {KeyValue, RuleChange} from "./../../core/types/Types.sol"; import {EIP712EncodingLib} from "./../../core/libraries/EIP712EncodingLib.sol"; contract RestrictedSignersFeedRule is RestrictedSignersRule, IFeedRule { + constructor(string memory metadataURI) RestrictedSignersRule(metadataURI) {} + function configure(bytes32 configSalt, KeyValue[] calldata ruleParams) external override { _configure(configSalt, ruleParams); } diff --git a/contracts/rules/feed/SimplePaymentFeedRule.sol b/contracts/rules/feed/SimplePaymentFeedRule.sol index 1b4ffda9..897d36cb 100644 --- a/contracts/rules/feed/SimplePaymentFeedRule.sol +++ b/contracts/rules/feed/SimplePaymentFeedRule.sol @@ -26,7 +26,7 @@ contract SimplePaymentFeedRule is SimplePaymentRule, IFeedRule { mapping(address => mapping(bytes32 => Configuration)) internal _configuration; - constructor() { + constructor(string memory metadataURI) SimplePaymentRule(metadataURI) { emit Events.Lens_PermissionId_Available(SKIP_PAYMENT_PID, "SKIP_PAYMENT"); } diff --git a/contracts/rules/feed/TokenGatedFeedRule.sol b/contracts/rules/feed/TokenGatedFeedRule.sol index 06257cb5..4efa82a1 100644 --- a/contracts/rules/feed/TokenGatedFeedRule.sol +++ b/contracts/rules/feed/TokenGatedFeedRule.sol @@ -26,7 +26,7 @@ contract TokenGatedFeedRule is TokenGatedRule, IFeedRule { mapping(address => mapping(bytes32 => Configuration)) internal _configuration; - constructor() { + constructor(string memory metadataURI) TokenGatedRule(metadataURI) { emit Events.Lens_PermissionId_Available(SKIP_TOKEN_GATE_PID, "SKIP_TOKEN_GATE"); } diff --git a/contracts/rules/follow/SimplePaymentFollowRule.sol b/contracts/rules/follow/SimplePaymentFollowRule.sol index a02cca88..fd887633 100644 --- a/contracts/rules/follow/SimplePaymentFollowRule.sol +++ b/contracts/rules/follow/SimplePaymentFollowRule.sol @@ -25,7 +25,7 @@ contract SimplePaymentFollowRule is SimplePaymentRule, IFollowRule { mapping(address => mapping(address => mapping(bytes32 => Configuration))) internal _configuration; - constructor() { + constructor(string memory metadataURI) SimplePaymentRule(metadataURI) { emit Events.Lens_PermissionId_Available(SKIP_PAYMENT_PID, "SKIP_PAYMENT"); } diff --git a/contracts/rules/follow/TokenGatedFollowRule.sol b/contracts/rules/follow/TokenGatedFollowRule.sol index 0ed1eca0..d4140ed2 100644 --- a/contracts/rules/follow/TokenGatedFollowRule.sol +++ b/contracts/rules/follow/TokenGatedFollowRule.sol @@ -25,7 +25,7 @@ contract TokenGatedFollowRule is TokenGatedRule, IFollowRule { mapping(address => mapping(address => mapping(bytes32 => Configuration))) internal _configuration; - constructor() { + constructor(string memory metadataURI) TokenGatedRule(metadataURI) { emit Events.Lens_PermissionId_Available(SKIP_TOKEN_GATE_PID, "SKIP_TOKEN_GATE"); } diff --git a/contracts/rules/graph/GroupGatedGraphRule.sol b/contracts/rules/graph/GroupGatedGraphRule.sol index 7d11be29..b00aefa4 100644 --- a/contracts/rules/graph/GroupGatedGraphRule.sol +++ b/contracts/rules/graph/GroupGatedGraphRule.sol @@ -30,9 +30,8 @@ contract GroupGatedGraphRule is IGraphRule, MetadataBased { mapping(address => mapping(bytes32 => Configuration)) internal _configuration; - constructor() { - // TODO: Decide on metadata format - _setMetadataURI("{ lensMetadata: 'some metadata' }"); + constructor(string memory metadataURI) { + _setMetadataURI(metadataURI); emit Events.Lens_PermissionId_Available(SKIP_TOKEN_GATE_PID, "SKIP_TOKEN_GATE"); } diff --git a/contracts/rules/graph/RestrictedSignersGraphRule.sol b/contracts/rules/graph/RestrictedSignersGraphRule.sol index 9deb9030..40b6874a 100644 --- a/contracts/rules/graph/RestrictedSignersGraphRule.sol +++ b/contracts/rules/graph/RestrictedSignersGraphRule.sol @@ -8,6 +8,8 @@ import {KeyValue, RuleChange} from "./../../core/types/Types.sol"; import {EIP712EncodingLib} from "./../../core/libraries/EIP712EncodingLib.sol"; contract RestrictedSignersGraphRule is RestrictedSignersRule, IGraphRule { + constructor(string memory metadataURI) RestrictedSignersRule(metadataURI) {} + function configure(bytes32 configSalt, KeyValue[] calldata ruleParams) external override { _configure(configSalt, ruleParams); } diff --git a/contracts/rules/graph/TokenGatedGraphRule.sol b/contracts/rules/graph/TokenGatedGraphRule.sol index d26581b5..093b2a30 100644 --- a/contracts/rules/graph/TokenGatedGraphRule.sol +++ b/contracts/rules/graph/TokenGatedGraphRule.sol @@ -25,7 +25,7 @@ contract TokenGatedGraphRule is TokenGatedRule, IGraphRule { mapping(address => mapping(bytes32 => Configuration)) internal _configuration; - constructor() { + constructor(string memory metadataURI) TokenGatedRule(metadataURI) { emit Events.Lens_PermissionId_Available(SKIP_TOKEN_GATE_PID, "SKIP_TOKEN_GATE"); } diff --git a/contracts/rules/group/BanMemberGroupRule.sol b/contracts/rules/group/BanMemberGroupRule.sol index 7efb7e50..cca5562f 100644 --- a/contracts/rules/group/BanMemberGroupRule.sol +++ b/contracts/rules/group/BanMemberGroupRule.sol @@ -33,9 +33,8 @@ contract BanMemberGroupRule is IGroupRule, MetadataBased { mapping(address => mapping(bytes32 => address)) internal _accessControl; mapping(address => mapping(bytes32 => mapping(address => bool))) internal _isMemberBanned; - constructor() { - // TODO: Decide on metadata format - _setMetadataURI("{ lensMetadata: 'some metadata' }"); + constructor(string memory metadataURI) { + _setMetadataURI(metadataURI); emit Events.Lens_PermissionId_Available(BAN_MEMBER_PID, "BAN_MEMBER"); emit Events.Lens_PermissionId_Available(UNBAN_MEMBER_PID, "UNBAN_MEMBER"); } diff --git a/contracts/rules/group/MembershipApprovalGroupRule.sol b/contracts/rules/group/MembershipApprovalGroupRule.sol index 23d76dca..e186ba4b 100644 --- a/contracts/rules/group/MembershipApprovalGroupRule.sol +++ b/contracts/rules/group/MembershipApprovalGroupRule.sol @@ -35,9 +35,8 @@ contract MembershipApprovalGroupRule is IGroupRule, MetadataBased { mapping(address => mapping(bytes32 => address)) internal _accessControl; mapping(address => mapping(address => mapping(bytes32 => MembershipRequest))) internal _membershipRequests; - constructor() { - // TODO: Decide on metadata format - _setMetadataURI("{ lensMetadata: 'some metadata' }"); + constructor(string memory metadataURI) { + _setMetadataURI(metadataURI); emit Events.Lens_PermissionId_Available(APPROVE_MEMBER_PID, "APPROVE_MEMBER"); } diff --git a/contracts/rules/group/SimplePaymentGroupRule.sol b/contracts/rules/group/SimplePaymentGroupRule.sol index 831f8371..4023737b 100644 --- a/contracts/rules/group/SimplePaymentGroupRule.sol +++ b/contracts/rules/group/SimplePaymentGroupRule.sol @@ -25,7 +25,7 @@ contract SimplePaymentGroupRule is SimplePaymentRule, IGroupRule { mapping(address => mapping(bytes32 => Configuration)) internal _configuration; - constructor() { + constructor(string memory metadataURI) SimplePaymentRule(metadataURI) { emit Events.Lens_PermissionId_Available(SKIP_PAYMENT_PID, "SKIP_PAYMENT"); } diff --git a/contracts/rules/group/TokenGatedGroupRule.sol b/contracts/rules/group/TokenGatedGroupRule.sol index 3770910d..0d5d3c53 100644 --- a/contracts/rules/group/TokenGatedGroupRule.sol +++ b/contracts/rules/group/TokenGatedGroupRule.sol @@ -25,7 +25,7 @@ contract TokenGatedGroupRule is TokenGatedRule, IGroupRule { mapping(address => mapping(bytes32 => Configuration)) internal _configuration; - constructor() { + constructor(string memory metadataURI) TokenGatedRule(metadataURI) { emit Events.Lens_PermissionId_Available(SKIP_TOKEN_GATE_PID, "SKIP_TOKEN_GATE"); } diff --git a/contracts/rules/post/FollowersOnlyPostRule.sol b/contracts/rules/post/FollowersOnlyPostRule.sol index cc12be50..a025a9ff 100644 --- a/contracts/rules/post/FollowersOnlyPostRule.sol +++ b/contracts/rules/post/FollowersOnlyPostRule.sol @@ -30,9 +30,8 @@ contract FollowersOnlyPostRule is IPostRule, MetadataBased { mapping(address => mapping(bytes32 => mapping(uint256 => Configuration))) internal _configuration; - constructor() { - // TODO: Decide on metadata format - _setMetadataURI("{ lensMetadata: 'some metadata' }"); + constructor(string memory metadataURI) { + _setMetadataURI(metadataURI); } function _emitMetadataURISet(string memory metadataURI) internal override { diff --git a/contracts/rules/username/CharsetUsernameRule.sol b/contracts/rules/username/CharsetUsernameRule.sol index 5b3d2e53..ac095557 100644 --- a/contracts/rules/username/CharsetUsernameRule.sol +++ b/contracts/rules/username/CharsetUsernameRule.sol @@ -55,9 +55,8 @@ contract CharsetUsernameRule is IUsernameRule, MetadataBased { mapping(address => mapping(bytes32 => Configuration)) internal _configuration; - constructor() { - // TODO: Decide on metadata format - _setMetadataURI("{ lensMetadata: 'some metadata' }"); + constructor(string memory metadataURI) { + _setMetadataURI(metadataURI); emit Events.Lens_PermissionId_Available(SKIP_CHARSET_PID, "SKIP_CHARSET"); } diff --git a/contracts/rules/username/LengthUsernameRule.sol b/contracts/rules/username/LengthUsernameRule.sol index 057aa955..eb261b29 100644 --- a/contracts/rules/username/LengthUsernameRule.sol +++ b/contracts/rules/username/LengthUsernameRule.sol @@ -37,9 +37,8 @@ contract LengthUsernameRule is IUsernameRule, MetadataBased { mapping(address => mapping(bytes32 => Configuration)) internal _configuration; - constructor() { - // TODO: Decide on metadata format - _setMetadataURI("{ lensMetadata: 'some metadata' }"); + constructor(string memory metadataURI) { + _setMetadataURI(metadataURI); emit Events.Lens_PermissionId_Available(SKIP_MIN_LENGTH_PID, "SKIP_MIN_LENGTH"); emit Events.Lens_PermissionId_Available(SKIP_MAX_LENGTH_PID, "SKIP_MAX_LENGTH"); } diff --git a/contracts/rules/username/ReservedUsernameRule.sol b/contracts/rules/username/ReservedUsernameRule.sol index 17f7db30..148e3c93 100644 --- a/contracts/rules/username/ReservedUsernameRule.sol +++ b/contracts/rules/username/ReservedUsernameRule.sol @@ -43,9 +43,8 @@ contract ReservedUsernameRule is IUsernameRule, MetadataBased { mapping(address => mapping(bytes32 => address)) internal _accessControl; mapping(address => mapping(bytes32 => mapping(string => bool))) internal _isUsernameReserved; - constructor() { - // TODO: Decide on metadata format - _setMetadataURI("{ lensMetadata: 'some metadata' }"); + constructor(string memory metadataURI) { + _setMetadataURI(metadataURI); emit Events.Lens_PermissionId_Available(CREATE_RESERVED_USERNAME_PID, "CREATE_RESERVED_USERNAME"); } diff --git a/contracts/rules/username/SimplePaymentUsernameRule.sol b/contracts/rules/username/SimplePaymentUsernameRule.sol index 56612bb8..247894af 100644 --- a/contracts/rules/username/SimplePaymentUsernameRule.sol +++ b/contracts/rules/username/SimplePaymentUsernameRule.sol @@ -25,7 +25,7 @@ contract SimplePaymentUsernameRule is SimplePaymentRule, IUsernameRule { mapping(address => mapping(bytes32 => Configuration)) internal _configuration; - constructor() { + constructor(string memory metadataURI) SimplePaymentRule(metadataURI) { emit Events.Lens_PermissionId_Available(SKIP_PAYMENT_PID, "SKIP_PAYMENT"); } diff --git a/contracts/rules/username/TokenGatedUsernameRule.sol b/contracts/rules/username/TokenGatedUsernameRule.sol index 5d90694c..93313c68 100644 --- a/contracts/rules/username/TokenGatedUsernameRule.sol +++ b/contracts/rules/username/TokenGatedUsernameRule.sol @@ -25,7 +25,7 @@ contract TokenGatedUsernameRule is TokenGatedRule, IUsernameRule { mapping(address => mapping(bytes32 => Configuration)) internal _configuration; - constructor() { + constructor(string memory metadataURI) TokenGatedRule(metadataURI) { emit Events.Lens_PermissionId_Available(SKIP_TOKEN_GATE_PID, "SKIP_TOKEN_GATE"); } diff --git a/deploy/deployActions.ts b/deploy/deployActions.ts index 7fa20d32..7cc35703 100644 --- a/deploy/deployActions.ts +++ b/deploy/deployActions.ts @@ -5,10 +5,11 @@ import { } from './lensUtils'; export async function deployActions(actionHub: string): Promise { + const metadataURI = 'https://lens.dev/metadata'; // TODO: Change this to the actual metadata URI const contracts: ContractInfo[] = [ // Actions - { contractName: 'TippingAccountAction', contractType: ContractType.Action, constructorArguments: [actionHub] }, - { contractName: 'SimpleCollectAction', contractType: ContractType.Action, constructorArguments: [actionHub] }, + { contractName: 'TippingAccountAction', contractType: ContractType.Action, constructorArguments: [actionHub, metadataURI] }, + { contractName: 'SimpleCollectAction', contractType: ContractType.Action, constructorArguments: [actionHub, metadataURI] }, ]; for (const contract of contracts) { diff --git a/deploy/deployFactories.ts b/deploy/deployFactories.ts index de731bad..d44b6b51 100644 --- a/deploy/deployFactories.ts +++ b/deploy/deployFactories.ts @@ -5,6 +5,7 @@ import { } from './lensUtils'; export default async function deployFactories(): Promise { + const metadataURI = 'https://lens.dev/metadata'; // TODO: Change this to the actual metadata URI const contracts: ContractInfo[] = [ // Factories { contractName: 'AccessControlFactory', contractType: ContractType.Factory }, @@ -14,7 +15,7 @@ export default async function deployFactories(): Promise { { contractName: 'GraphFactory', contractType: ContractType.Factory }, { contractName: 'GroupFactory', contractType: ContractType.Factory }, { contractName: 'UsernameFactory', contractType: ContractType.Factory }, - { contractName: 'UserBlockingRule', contractType: ContractType.Rule }, + { contractName: 'UserBlockingRule', contractType: ContractType.Rule, constructorArguments: [metadataURI] }, ]; const deployedContracts: Record = {}; for (const contract of contracts) { diff --git a/deploy/deployRules.ts b/deploy/deployRules.ts index 8bd3a3f8..e13e952e 100644 --- a/deploy/deployRules.ts +++ b/deploy/deployRules.ts @@ -5,29 +5,30 @@ import { } from './lensUtils'; export async function deployRules(): Promise { + const metadataURI = 'https://lens.dev/metadata'; // TODO: Change this to the actual metadata URI const contracts: ContractInfo[] = [ // Feed Rules - { contractName: 'GroupGatedFeedRule', contractType: ContractType.Rule }, - { contractName: 'RestrictedSignersFeedRule', contractType: ContractType.Rule }, - { contractName: 'SimplePaymentFeedRule', contractType: ContractType.Rule }, - { contractName: 'TokenGatedFeedRule', contractType: ContractType.Rule }, + { contractName: 'GroupGatedFeedRule', contractType: ContractType.Rule, constructorArguments: [metadataURI] }, + { contractName: 'RestrictedSignersFeedRule', contractType: ContractType.Rule, constructorArguments: [metadataURI] }, + { contractName: 'SimplePaymentFeedRule', contractType: ContractType.Rule, constructorArguments: [metadataURI] }, + { contractName: 'TokenGatedFeedRule', contractType: ContractType.Rule, constructorArguments: [metadataURI] }, // Post Rules - { contractName: 'FollowersOnlyPostRule', contractType: ContractType.Rule }, + { contractName: 'FollowersOnlyPostRule', contractType: ContractType.Rule, constructorArguments: [metadataURI] }, // Graph Rules - { contractName: 'RestrictedSignersGraphRule', contractType: ContractType.Rule }, - { contractName: 'TokenGatedGraphRule', contractType: ContractType.Rule }, + { contractName: 'RestrictedSignersGraphRule', contractType: ContractType.Rule, constructorArguments: [metadataURI] }, + { contractName: 'TokenGatedGraphRule', contractType: ContractType.Rule, constructorArguments: [metadataURI] }, // Follow Rules - { contractName: 'SimplePaymentFollowRule', contractType: ContractType.Rule }, - { contractName: 'TokenGatedFollowRule', contractType: ContractType.Rule }, + { contractName: 'SimplePaymentFollowRule', contractType: ContractType.Rule, constructorArguments: [metadataURI] }, + { contractName: 'TokenGatedFollowRule', contractType: ContractType.Rule, constructorArguments: [metadataURI] }, // Group Rules - { contractName: 'MembershipApprovalGroupRule', contractType: ContractType.Rule }, - { contractName: 'SimplePaymentGroupRule', contractType: ContractType.Rule }, - { contractName: 'TokenGatedGroupRule', contractType: ContractType.Rule }, + { contractName: 'MembershipApprovalGroupRule', contractType: ContractType.Rule, constructorArguments: [metadataURI] }, + { contractName: 'SimplePaymentGroupRule', contractType: ContractType.Rule, constructorArguments: [metadataURI] }, + { contractName: 'TokenGatedGroupRule', contractType: ContractType.Rule, constructorArguments: [metadataURI] }, // Username Rules - { contractName: 'CharsetUsernameRule', contractType: ContractType.Rule }, - { contractName: 'LengthUsernameRule', contractType: ContractType.Rule }, - { contractName: 'SimplePaymentUsernameRule', contractType: ContractType.Rule }, - { contractName: 'TokenGatedUsernameRule', contractType: ContractType.Rule }, + { contractName: 'CharsetUsernameRule', contractType: ContractType.Rule, constructorArguments: [metadataURI] }, + { contractName: 'LengthUsernameRule', contractType: ContractType.Rule, constructorArguments: [metadataURI] }, + { contractName: 'SimplePaymentUsernameRule', contractType: ContractType.Rule, constructorArguments: [metadataURI] }, + { contractName: 'TokenGatedUsernameRule', contractType: ContractType.Rule, constructorArguments: [metadataURI] }, ]; for (const contract of contracts) {