Approved allowance of modules
Full code example
This request is protected by authentication
hint: this means it requires an x-access-token header put in the request with your authentication token.
Each Enabled modules currencies needs to have approval greater than the amount of the collect module. If it is not then an API request will throw an error as the module will not be able to move funds on your behalf.
This query returns you the amount approved that the modules can move on your behalf for the array of currencies you supply.
API Design
query ApprovedModuleAllowanceAmount {
approvedModuleAllowanceAmount(request: {
currencies: ["0x3C68CE8504087f89c640D02d133646d98e64ddd9"],
collectModules: [LimitedFeeCollectModule, FeeCollectModule, LimitedTimedFeeCollectModule, TimedFeeCollectModule, FreeCollectModule, RevertCollectModule],
followModules: [FeeFollowModule, RevertFollowModule, ProfileFollowModule],
referenceModules: [FollowerOnlyReferenceModule]
}) {
currency
module
contractAddress
allowance
}
}
{
"data": {
"approvedModuleAllowanceAmount": [
{
"currency": "0xD40282e050723Ae26Aeb0F77022dB14470f4e011",
"module": "LimitedFeeCollectModule",
"contractAddress": "0x25DC6498A9d6Bb8eDE2A4Fd96276aEb9256a60b7",
"allowance": "0x00"
},
{
"currency": "0xD40282e050723Ae26Aeb0F77022dB14470f4e011",
"module": "FeeCollectModule",
"contractAddress": "0x171c49f4e5Ef41e9c5731a35ed42487d168CF8Db",
"allowance": "0x00"
},
{
"currency": "0xD40282e050723Ae26Aeb0F77022dB14470f4e011",
"module": "TimedFeeCollectModule",
"contractAddress": "0x1c8E432C93276370fBfceD16d842670eEEc06B67",
"allowance": "0x00"
},
{
"currency": "0xD40282e050723Ae26Aeb0F77022dB14470f4e011",
"module": "EmptyCollectModule",
"contractAddress": "0x2732FfD7f7352c9492089C40A0C3368220a438D4",
"allowance": "0x00"
},
{
"currency": "0xD40282e050723Ae26Aeb0F77022dB14470f4e011",
"module": "RevertCollectModule",
"contractAddress": "0x45B7907d5c5d2aF9157898601B7B3e18670891c3",
"allowance": "0x00"
},
{
"currency": "0xD40282e050723Ae26Aeb0F77022dB14470f4e011",
"module": "FeeFollowModule",
"contractAddress": "0x2268063b81e7BDf4Bc681ef6d054Bbd1513aaE4A",
"allowance": "0x00"
},
{
"currency": "0xD40282e050723Ae26Aeb0F77022dB14470f4e011",
"module": "FollowerOnlyReferenceModule",
"contractAddress": "0x1F5a47fE69e09397D5386FfdA9134afDF6555498",
"allowance": "0x00"
}
]
}
}
type Query {
approvedModuleAllowanceAmount(
request: ApprovedModuleAllowanceAmountRequest!
): [ApprovedAllowanceAmount!]!
}
input ApprovedModuleAllowanceAmountRequest {
# The contract addresses for the module approved currencies you want to find information on about the user
currencies: [ContractAddress!]!
collectModules: [CollectModules!]!
followModules: [FollowModules!]!
referenceModules: [ReferenceModules!]!
}
# The collect module types
enum CollectModules {
LimitedFeeCollectModule
FeeCollectModule
LimitedTimedFeeCollectModule
TimedFeeCollectModule
RevertCollectModule
EmptyCollectModule
}
# The follow module types
enum FollowModules {
FeeFollowModule
}
# The reference module types
enum ReferenceModules {
FollowerOnlyReferenceModule
}
# Contract address custom scalar type
scalar ContractAddress
# remember it returns an array of this
type ApprovedAllowanceAmount {
currency: ContractAddress!
module: String!
contractAddress: ContractAddress!
allowance: String!
}
# Contract address custom scalar type
scalar ContractAddress
Using LensClient SDK
Example use.
import { CollectModules, FollowModules, ReferenceModules } from "@lens-protocol/client";
const result = await lensClient.modules.approvedAllowanceAmount({
currencies: ['0x3C68CE8504087f89c640D02d133646d98e64ddd9'],
collectModules: [CollectModules.LimitedFeeCollectModule],
followModules: [FollowModules.FeeFollowModule],
referenceModules: [ReferenceModules.FollowerOnlyReferenceModule],
});
Updated 3 months ago