lens-modules 3.0.0 → 3.1.0
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/LICENSE +0 -2
- package/README.md +35 -132
- package/dist/abis.cjs +1 -0
- package/dist/abis.d.cts +38902 -0
- package/dist/abis.d.ts +38902 -0
- package/dist/abis.js +1 -0
- package/dist/deployments.cjs +1 -0
- package/dist/deployments.d.cts +760 -0
- package/dist/deployments.d.ts +760 -0
- package/dist/deployments.js +1 -0
- package/dist/index.cjs +1 -0
- package/dist/index.d.cts +2 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.js +1 -17
- package/package.json +41 -9
- package/abis/AccessControlFactory.abi.json +0 -56
- package/abis/AccessControlLib.abi.json +0 -1
- package/abis/AccessControlled.abi.json +0 -71
- package/abis/Account.abi.json +0 -1077
- package/abis/AccountBlockingRule.abi.json +0 -918
- package/abis/AccountFactory.abi.json +0 -211
- package/abis/ActionHub.abi.json +0 -1064
- package/abis/AdditionRemovalPidGroupRule.abi.json +0 -428
- package/abis/Address.abi.json +0 -1
- package/abis/AddressUpgradeable.abi.json +0 -1
- package/abis/App.abi.json +0 -1052
- package/abis/AppCore.abi.json +0 -1
- package/abis/AppFactory.abi.json +0 -153
- package/abis/BanMemberGroupRule.abi.json +0 -727
- package/abis/Base64.abi.json +0 -1
- package/abis/BaseAccountAction.abi.json +0 -150
- package/abis/BaseAction.abi.json +0 -1
- package/abis/BasePostAction.abi.json +0 -165
- package/abis/BaseSource.abi.json +0 -116
- package/abis/Beacon.abi.json +0 -303
- package/abis/BeaconProxy.abi.json +0 -219
- package/abis/CallLib.abi.json +0 -1
- package/abis/CommonBase.abi.json +0 -1
- package/abis/ConfigurePrimitiveRules.abi.json +0 -29
- package/abis/DeployAndSetAccessControls.abi.json +0 -29
- package/abis/EIP712EncodingLib.abi.json +0 -1
- package/abis/ERC1155Holder.abi.json +0 -99
- package/abis/ERC1155Receiver.abi.json +0 -99
- package/abis/ERC165.abi.json +0 -21
- package/abis/ERC1967Proxy.abi.json +0 -71
- package/abis/ERC1967Upgrade.abi.json +0 -47
- package/abis/ERC721Holder.abi.json +0 -36
- package/abis/EmptyImplementation.abi.json +0 -1
- package/abis/EntityExtraDataBased.abi.json +0 -39
- package/abis/Errors.abi.json +0 -212
- package/abis/EventEmitter.abi.json +0 -132
- package/abis/EventEmitterEarly.abi.json +0 -132
- package/abis/Events.abi.json +0 -40
- package/abis/ExtraDataBased.abi.json +0 -39
- package/abis/ExtraStorageBased.abi.json +0 -39
- package/abis/Feed.abi.json +0 -2380
- package/abis/FeedCore.abi.json +0 -1
- package/abis/FeedFactory.abi.json +0 -161
- package/abis/FollowersOnlyPostRule.abi.json +0 -448
- package/abis/Graph.abi.json +0 -1556
- package/abis/GraphCore.abi.json +0 -1
- package/abis/GraphFactory.abi.json +0 -161
- package/abis/Group.abi.json +0 -1526
- package/abis/GroupCore.abi.json +0 -1
- package/abis/GroupFactory.abi.json +0 -166
- package/abis/GroupGatedFeedRule.abi.json +0 -583
- package/abis/GroupGatedGraphRule.abi.json +0 -424
- package/abis/IAccessControl.abi.json +0 -68
- package/abis/IAccessControlled.abi.json +0 -15
- package/abis/IAccount.abi.json +0 -753
- package/abis/IAccountAction.abi.json +0 -130
- package/abis/IAccountGroupAdditionSettings.abi.json +0 -43
- package/abis/IApp.abi.json +0 -768
- package/abis/IBeacon.abi.json +0 -15
- package/abis/IERC1155.abi.json +0 -295
- package/abis/IERC1155Receiver.abi.json +0 -99
- package/abis/IERC165.abi.json +0 -21
- package/abis/IERC1822Proxiable.abi.json +0 -15
- package/abis/IERC1967.abi.json +0 -47
- package/abis/IERC20.abi.json +0 -224
- package/abis/IERC20Permit.abi.json +0 -77
- package/abis/IERC4906Events.abi.json +0 -34
- package/abis/IERC721.abi.json +0 -287
- package/abis/IERC721Enumerable.abi.json +0 -343
- package/abis/IERC721Metadata.abi.json +0 -332
- package/abis/IERC721Namespace.abi.json +0 -1778
- package/abis/IERC721Receiver.abi.json +0 -36
- package/abis/IERC721ReceiverUpgradeable.abi.json +0 -36
- package/abis/IERC721TokenReceiver.abi.json +0 -36
- package/abis/IERC7572.abi.json +0 -21
- package/abis/IFeed.abi.json +0 -2132
- package/abis/IFeedRule.abi.json +0 -437
- package/abis/IFollowRule.abi.json +0 -99
- package/abis/IGraph.abi.json +0 -1298
- package/abis/IGraphRule.abi.json +0 -259
- package/abis/IGroup.abi.json +0 -1107
- package/abis/IGroupRule.abi.json +0 -250
- package/abis/ILensCreate2.abi.json +0 -60
- package/abis/ILensFees.abi.json +0 -53
- package/abis/ILock.abi.json +0 -15
- package/abis/IMetadataBased.abi.json +0 -28
- package/abis/IMigrationNamespace.abi.json +0 -20
- package/abis/IMulticall3.abi.json +0 -440
- package/abis/INamespace.abi.json +0 -1411
- package/abis/INamespaceRule.abi.json +0 -275
- package/abis/IOwnable.abi.json +0 -28
- package/abis/IPostAction.abi.json +0 -145
- package/abis/IPostRule.abi.json +0 -297
- package/abis/IRequestBasedGroupRule.abi.json +0 -320
- package/abis/IRoleBasedAccessControl.abi.json +0 -360
- package/abis/ISimpleCollectAction.abi.json +0 -238
- package/abis/ISource.abi.json +0 -60
- package/abis/IToken.abi.json +0 -21
- package/abis/ITokenURIProvider.abi.json +0 -21
- package/abis/ITransparentUpgradeableProxy.abi.json +0 -117
- package/abis/IVersionedBeacon.abi.json +0 -34
- package/abis/Initializable.abi.json +0 -1
- package/abis/KeyValueLib.abi.json +0 -1
- package/abis/KeyValueStorageLib.abi.json +0 -1
- package/abis/LensCollectedPost.abi.json +0 -490
- package/abis/LensCreate2.abi.json +0 -190
- package/abis/LensERC721.abi.json +0 -397
- package/abis/LensFactory.abi.json +0 -1330
- package/abis/LensFees.abi.json +0 -69
- package/abis/LensPaymentHandler.abi.json +0 -1
- package/abis/LensUsernameTokenURIProvider.abi.json +0 -64
- package/abis/LibBytes.abi.json +0 -1
- package/abis/LibString.abi.json +0 -17
- package/abis/Lock.abi.json +0 -274
- package/abis/Math.abi.json +0 -1
- package/abis/MembershipApprovalGroupRule.abi.json +0 -653
- package/abis/MetadataBased.abi.json +0 -52
- package/abis/MigrationAccessControlFactory.abi.json +0 -186
- package/abis/MigrationAccount.abi.json +0 -1202
- package/abis/MigrationAccountFactory.abi.json +0 -341
- package/abis/MigrationApp.abi.json +0 -1177
- package/abis/MigrationAppFactory.abi.json +0 -283
- package/abis/MigrationFeed.abi.json +0 -2393
- package/abis/MigrationFeedFactory.abi.json +0 -291
- package/abis/MigrationGraph.abi.json +0 -1681
- package/abis/MigrationGraphFactory.abi.json +0 -291
- package/abis/MigrationLensFactory.abi.json +0 -1460
- package/abis/MigrationNamespace.abi.json +0 -2400
- package/abis/MigrationNamespaceFactory.abi.json +0 -317
- package/abis/MockERC20.abi.json +0 -322
- package/abis/MockERC721.abi.json +0 -350
- package/abis/MultiPoke.abi.json +0 -29
- package/abis/MyScript.abi.json +0 -29
- package/abis/Namespace.abi.json +0 -2275
- package/abis/NamespaceCore.abi.json +0 -1
- package/abis/NamespaceFactory.abi.json +0 -187
- package/abis/Namespace_SetNameAndSymbol.abi.json +0 -29
- package/abis/Ownable.abi.json +0 -52
- package/abis/OwnableMetadataBasedAccountAction.abi.json +0 -253
- package/abis/OwnableMetadataBasedPostAction.abi.json +0 -268
- package/abis/OwnableMetadataBasedRule.abi.json +0 -110
- package/abis/OwnerAdminOnlyAccessControl.abi.json +0 -460
- package/abis/PermissionlessAccessControl.abi.json +0 -68
- package/abis/PermissionsHelper.abi.json +0 -1
- package/abis/PrimitiveFactory.abi.json +0 -23
- package/abis/Proxy.abi.json +0 -10
- package/abis/ProxyAdmin.abi.json +0 -107
- package/abis/Query.abi.json +0 -29
- package/abis/RoleBasedAccessControl.abi.json +0 -450
- package/abis/RuleBasedFeed.abi.json +0 -2182
- package/abis/RuleBasedGraph.abi.json +0 -1348
- package/abis/RuleBasedGroup.abi.json +0 -1147
- package/abis/RuleBasedNamespace.abi.json +0 -1451
- package/abis/RuleBasedPrimitive.abi.json +0 -1
- package/abis/RulesLib.abi.json +0 -1
- package/abis/SafeERC20.abi.json +0 -1
- package/abis/Script.abi.json +0 -15
- package/abis/ScriptBase.abi.json +0 -1
- package/abis/SignedMath.abi.json +0 -1
- package/abis/SimpleCollectAction.abi.json +0 -430
- package/abis/SimplePaymentFeedRule.abi.json +0 -663
- package/abis/SimplePaymentFollowRule.abi.json +0 -306
- package/abis/SimplePaymentGroupRule.abi.json +0 -476
- package/abis/SimplePaymentRule.abi.json +0 -166
- package/abis/SourceStampBased.abi.json +0 -39
- package/abis/StdChains.abi.json +0 -1
- package/abis/StdCheats.abi.json +0 -1
- package/abis/StdCheatsSafe.abi.json +0 -1
- package/abis/StdStyle.abi.json +0 -1
- package/abis/StdUtils.abi.json +0 -1
- package/abis/StorageSlot.abi.json +0 -1
- package/abis/Strings.abi.json +0 -1
- package/abis/TestBase.abi.json +0 -1
- package/abis/TippingAccountAction.abi.json +0 -300
- package/abis/TippingPostAction.abi.json +0 -302
- package/abis/TokenGatedFeedRule.abi.json +0 -607
- package/abis/TokenGatedFollowRule.abi.json +0 -250
- package/abis/TokenGatedGraphRule.abi.json +0 -429
- package/abis/TokenGatedGroupRule.abi.json +0 -420
- package/abis/TokenGatedNamespaceRule.abi.json +0 -440
- package/abis/TokenGatedRule.abi.json +0 -110
- package/abis/TransparentUpgradeableProxy.abi.json +0 -76
- package/abis/TrustBasedRule.abi.json +0 -58
- package/abis/UsernameLengthNamespaceRule.abi.json +0 -440
- package/abis/UsernamePricePerLengthNamespaceRule.abi.json +0 -496
- package/abis/UsernameReservedNamespaceRule.abi.json +0 -550
- package/abis/UsernameSimpleCharsetNamespaceRule.abi.json +0 -426
- package/abis/Vm.abi.json +0 -10330
- package/abis/VmSafe.abi.json +0 -8351
- package/abis/WhitelistedAddresses.abi.json +0 -1
- package/abis/console.abi.json +0 -1
- package/abis/safeconsole.abi.json +0 -1
- package/abis/stdJson.abi.json +0 -1
- package/abis/stdMath.abi.json +0 -1
- package/abis/stdStorage.abi.json +0 -1
- package/abis/stdStorageSafe.abi.json +0 -52
- package/dist/lens-contracts.d.ts +0 -1446
- package/dist/lens-contracts.js +0 -1693
package/LICENSE
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
MIT License
|
|
2
2
|
|
|
3
|
-
Copyright (c) 2023 Avara Labs Ltd
|
|
4
|
-
|
|
5
3
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
4
|
of this software and associated documentation files (the "Software"), to deal
|
|
7
5
|
in the Software without restriction, including without limitation the rights
|
package/README.md
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
# Lens
|
|
1
|
+
# Lens Modules
|
|
2
2
|
|
|
3
|
-
This repository contains the
|
|
3
|
+
This repository contains the contracts from the core Lens Protocol repo ([link](https://github.com/lens-protocol/lens-v3/tree/latest-mainnet)) as a standalone library, useful in Hardhat and Foundry projects.
|
|
4
4
|
|
|
5
|
-
It
|
|
5
|
+
It includes the Solidity source code of the contracts, their ABIs, and deployment addresses for Lens Chain mainnet and testnet.
|
|
6
|
+
|
|
7
|
+
The files are kept in sync with the `latest-mainnet` tag.
|
|
6
8
|
|
|
7
9
|
## Installation
|
|
8
10
|
|
|
@@ -12,138 +14,39 @@ npm i lens-modules
|
|
|
12
14
|
|
|
13
15
|
## Usage
|
|
14
16
|
|
|
15
|
-
|
|
17
|
+
#### Contracts
|
|
18
|
+
|
|
19
|
+
Import Lens contracts you want to use in your Solidity project. The paths mirror the `lens-v3` repo structure. Eg:
|
|
16
20
|
|
|
17
21
|
```solidity
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
import {
|
|
21
|
-
import {IPublicationActionModule} from "lens-modules/contracts/interfaces/IPublicationActionModule.sol";
|
|
22
|
-
import {Types} from "lens-modules/contracts/libraries/constants/Types.sol";
|
|
23
|
-
import {LensModuleMetadata} from "lens-modules/contracts/modules/LensModuleMetadata.sol";
|
|
24
|
-
|
|
25
|
-
contract OpenActionModule is
|
|
26
|
-
HubRestricted,
|
|
27
|
-
IPublicationActionModule,
|
|
28
|
-
LensModuleMetadata
|
|
29
|
-
{
|
|
30
|
-
constructor(
|
|
31
|
-
address owner,
|
|
32
|
-
address hub
|
|
33
|
-
)
|
|
34
|
-
Ownable(owner)
|
|
35
|
-
HubRestricted(hub)
|
|
36
|
-
LensModuleMetadata()
|
|
37
|
-
{
|
|
38
|
-
// ...
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
function supportsInterface(
|
|
42
|
-
bytes4 interfaceID
|
|
43
|
-
) public pure virtual override returns (bool) {
|
|
44
|
-
return
|
|
45
|
-
interfaceID == type(IPublicationActionModule).interfaceId ||
|
|
46
|
-
super.supportsInterface(interfaceID);
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
function initializePublicationAction(
|
|
50
|
-
uint256 profileId,
|
|
51
|
-
uint256 pubId,
|
|
52
|
-
address /* transactionExecutor */,
|
|
53
|
-
bytes calldata data
|
|
54
|
-
) external override onlyHub returns (bytes memory) {
|
|
55
|
-
// ...
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
function processPublicationAction(
|
|
59
|
-
Types.ProcessActionParams calldata params
|
|
60
|
-
) external override onlyHub returns (bytes memory) {
|
|
61
|
-
// ...
|
|
62
|
-
}
|
|
63
|
-
}
|
|
22
|
+
import {Account} from "lens-modules/contracts/extensions/account/Account.sol";
|
|
23
|
+
import {IGraph} from "lens-modules/contracts/core/interfaces/IGraph.sol";
|
|
24
|
+
import {KeyValue} from "lens-modules/contracts/core/types/Types.sol";
|
|
64
25
|
```
|
|
65
26
|
|
|
66
|
-
|
|
27
|
+
#### Deployments
|
|
67
28
|
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
import {
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
constructor(
|
|
93
|
-
address hub,
|
|
94
|
-
address actionModule,
|
|
95
|
-
address moduleRegistry,
|
|
96
|
-
address moduleOwner
|
|
97
|
-
)
|
|
98
|
-
Ownable(moduleOwner)
|
|
99
|
-
BaseFeeCollectModule(hub, actionModule, moduleRegistry)
|
|
100
|
-
LensModuleMetadata()
|
|
101
|
-
{}
|
|
102
|
-
|
|
103
|
-
function supportsInterface(
|
|
104
|
-
bytes4 interfaceID
|
|
105
|
-
) public pure override(BaseFeeCollectModule, LensModule) returns (bool) {
|
|
106
|
-
return
|
|
107
|
-
BaseFeeCollectModule.supportsInterface(interfaceID) ||
|
|
108
|
-
LensModule.supportsInterface(interfaceID);
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
function initializePublicationCollectModule(
|
|
112
|
-
uint256 profileId,
|
|
113
|
-
uint256 pubId,
|
|
114
|
-
address /* transactionExecutor */,
|
|
115
|
-
bytes calldata data
|
|
116
|
-
) external override onlyActionModule returns (bytes memory) {
|
|
117
|
-
BaseFeeCollectModuleInitData memory baseInitData = abi.decode(
|
|
118
|
-
data,
|
|
119
|
-
(BaseFeeCollectModuleInitData)
|
|
120
|
-
);
|
|
121
|
-
_validateBaseInitData(baseInitData);
|
|
122
|
-
_storeBasePublicationCollectParameters(profileId, pubId, baseInitData);
|
|
123
|
-
return data;
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
function calculateFee(
|
|
127
|
-
ModuleTypes.ProcessCollectParams calldata processCollectParams
|
|
128
|
-
) public view virtual override returns (uint160) {
|
|
129
|
-
// Override calculateFee to add custom logic to calculate the fee
|
|
130
|
-
return
|
|
131
|
-
_dataByPublicationByProfile[processCollectParams.profileId][
|
|
132
|
-
processCollectParams.pubId
|
|
133
|
-
].amount;
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
function processCollect(
|
|
137
|
-
ModuleTypes.ProcessCollectParams calldata processCollectParams
|
|
138
|
-
) external override returns (bytes memory) {
|
|
139
|
-
_validateAndStoreCollect(processCollectParams);
|
|
140
|
-
// Override processCollect to add custom logic to process the collect
|
|
141
|
-
if (processCollectParams.referrerProfileIds.length == 0) {
|
|
142
|
-
_processCollect(processCollectParams);
|
|
143
|
-
} else {
|
|
144
|
-
_processCollectWithReferral(processCollectParams);
|
|
145
|
-
}
|
|
146
|
-
return processCollectParams.data;
|
|
147
|
-
}
|
|
148
|
-
}
|
|
29
|
+
Use the `Deployments` helper JavaScript class to get the contract addresses of the Lens deployments on mainnet and testnet. Eg:
|
|
30
|
+
|
|
31
|
+
```javascript
|
|
32
|
+
import { lensDeployments } from "lens-modules/deployments";
|
|
33
|
+
|
|
34
|
+
const lensFactoryAddress = lensDeployments.mainnet.LensFactory.address;
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
#### ABIs
|
|
38
|
+
|
|
39
|
+
Use the `ABIs` helper JavaScript class to get the ABI of any Lens contract. Eg:
|
|
40
|
+
|
|
41
|
+
```javascript
|
|
42
|
+
import { accountAbi } from "lens-modules/abis";
|
|
43
|
+
|
|
44
|
+
await walletClient.writeContract({
|
|
45
|
+
address: "0xYourAccountContractAddress",
|
|
46
|
+
abi: accountAbi,
|
|
47
|
+
functionName: "executeTransaction",
|
|
48
|
+
args: [
|
|
49
|
+
// ... your function arguments
|
|
50
|
+
],
|
|
51
|
+
});
|
|
149
52
|
```
|