Charged Settings Contract (V2)
Charged Particles Settings Contract. Used to view and update rules for how the Charged Particles contract functions.
Get Particle Settings
getCreatorAnnuities
Gets the creator of a Particle and the percentage of creator annuities for the specified Particle. Creator annuities can be reassigned from the original creator to a 3rd party using the setCreatorAnnuitiesRedirect
function.
function getCreatorAnnuities(
address contractAddress,
uint256 tokenId
) external returns (
address creator,
uint256 annuityPct
);
contractAddress
The address to the contract of the token (Particle)
address
tokenId
The ID of the token (Particle)
uint256
creator
The particle creator's address
address
annuityPct
The percentage of interest directed to the creator of the Particle
uint256
getCreatorAnnuitiesRedirect
Get the address that receives creator annuities for a given Particle/ Defaults to creator address if it has not been redirected via the setCreatorAnnuitiesRedirect
function.
function getCreatorAnnuitiesRedirect(
address contractAddress,
uint256 tokenId
) external view returns (address);
contractAddress
The address to the contract of the token (Particle)
address
tokenId
The ID of the token (Particle)
uint256
address
The address that receives creator annuities
address
getTempLockExpiryBlocks
Get the unlock block of the temporary timelock associated with a Particle. The temporary timelock exists to prevent front-running.
function getTempLockExpiryBlocks () returns (uint256)
unlockBlock
Block number when temporary lock expires
uint256
getTimelockApprovals
Gets the approvals for time locks.
function getTimelockApprovals(
address operator
) external view returns (
bool timelockAny,
bool timelockOwn
);
operator
Particle operator's address
address
timelockAny
whether or not operator can time lock any NFT on behalf of user
bool
timelockOwn
whether or not operator can time lock their own NFTS
bool
getAssetRequirements
Get requirements for an asset token that determine whether it can be deposited into a Particle. Aave, Compound, etc. have different requirements for tokens, and this function returns those requirements for each type of wallet manager / ERC20 asset.
function getAssetRequirements(
address contractAddress,
address assetToken
) external view returns (
string memory requiredWalletManager,
bool energizeEnabled,
bool restrictedAssets,
bool validAsset,
uint256 depositCap,
uint256 depositMin,
uint256 depositMax,
bool invalidAsset
);
contractAddress
address of contract for Particle (whether Proton or another NFT Contract)
address
assetToken
address of asset token to get requirements for
address
requiredWalletManager
wallet manager required for asset token
string
energizeEnabled
wallet manager required for asset token
bool
restrictedAssets
wallet manager required for asset token
bool
validAsset
whether or not asset token is a valid asset
bool
depositCap
uint256
depositMin
uint256
depositMax
uint256
invalidAsset
whether or not asset token is a valid asset
bool
getNftAssetRequirements
Get requirements for NFTs that can be deposited into a Particle
function getNftAssetRequirements(
address contractAddress,
address nftTokenAddress
) external view returns (
string memory requiredBasketManager,
bool basketEnabled,
uint256 maxNfts
);
contractAddress
address of contract for Particle (whether Proton or another NFT Contract)
address
nftTokenAddress
address of NFT to get requirements for
address
requiredBasketManager
required NFT basket manager
string
basketEnabled
whether or not the basket is enabled for an NFT
bool
maxNfts
max number of NFTs in a basket
uint256
Update Particle Settings
setCreatorAnnuities
Sets a custom percentage for the Creator Annuities of a Particle.
function setCreatorAnnuities(
address contractAddress,
uint256 tokenId,
address creator,
uint256 annuityPercent
) external;
contractAddress
address of contract for Particle (whether Proton or another NFT Contract)
address
tokenId
The ID of the token (Particle)
uint256
annuityPercent
percentage of interest earned by an NFT directed to the creator (or 3rd party)
uint256
setCreatorAnnuitiesRedirect
Sets a custom receiver address for the Creator Annuities.
function setCreatorAnnuitiesRedirect(
address contractAddress,
uint256 tokenId,
address receiver
) external;
contractAddress
address of NFT Contract (Proton or other) to configure
address
tokenId
The ID of the token (Particle)
uint256
receiver
3rd party address to redirect creator annuities to
address
Update Settings for Entire NFT Contracts
For the owner or admin of an NFT contract only
setRequiredWalletManager
Sets a required Wallet Manager for External NFT contracts (otherwise set to "none" to allow any Wallet Manager).
function setRequiredWalletManager(
address contractAddress,
string calldata walletManager
) external;
contractAddress
address of NFT Contract (Proton or other) to configure
address
walletManager
If set, will only allow deposits from this specific Wallet Manager
string
setRequiredBasketManager
Sets a required Basket Manager for External NFT contracts (otherwise set to "none" to allow any Basket Manager).
function setRequiredBasketManager(
address contractAddress,
string calldata basketManager
) external;
contractAddress
address of NFT Contract (Proton or other) to configure
address
basketManager
If set, will only allow deposits from this specific Basket Manager
string
setAssetTokenRestrictions
Enables or disables asset token restrictions for External NFT contracts.
function setAssetTokenRestrictions(
address contractAddress,
bool restrictionsEnabled
) external;
contractAddress
address of NFT Contract (Proton or other) to configure
address
restrictionsEnabled
If set, only allowed asset tokens can be deposited
bool
setAllowedAssetToken
Enables or disables allowed asset tokens for External NFT contracts.
function setAllowedAssetToken(
address contractAddress,
address assetToken,
bool isAllowed
) external;
contractAddress
address of NFT Contract (Proton or other) to configure
address
assetToken
The address of the asset token to allow or disallow
address
isAllowed
The address of the asset token to allow or disallow
bool
setAssetTokenLimits
Sets the custom configuration for External contracts.
function setAssetTokenLimits(
address contractAddress,
address assetToken,
uint256 depositMin,
uint256 depositMax
) external;
contractAddress
address of NFT Contract (Proton or other) to configure
address
assetToken
The address of the asset token to set min/max for
address
depositMin
If set, will define the minimum amount of Asset tokens the NFT may hold, otherwise any amount
uint256
depositMax
If set, will define the maximum amount of Asset tokens the NFT may hold, otherwise any amount
uint256
setMaxNfts
Sets the maximum number of NFTs that can be held by a Particle, for a given contract. For example, if you wanted a Particle to only be able to hold one Bored Ape, you would use this function to set that restriction.
function setMaxNfts(
address contractAddress,
address nftTokenAddress,
uint256 maxNfts
) external;
contractAddress
address of NFT Contract (Proton or other) to configure
address
nftTokenAddress
The address of the NFT contract to set min/max for
address
maxNfts
The maximum numbers of NFTs that can be held by a given NFT (0 = unlimited)
uint256
Other
Events
event Initialized(address indexed initiator);
event ControllerSet(address indexed controllerAddress, string controllerId);
event DepositCapSet(address assetToken, uint256 depositCap);
event TempLockExpirySet(uint256 expiryBlocks);
event RequiredWalletManagerSet(address indexed contractAddress, string walletManager);
event RequiredBasketManagerSet(address indexed contractAddress, string basketManager);
event AssetTokenRestrictionsSet(address indexed contractAddress, bool restrictionsEnabled);
event AllowedAssetTokenSet(address indexed contractAddress, address assetToken, bool isAllowed);
event AssetTokenLimitsSet(address indexed contractAddress, address assetToken, uint256 assetDepositMin, uint256 assetDepositMax);
event MaxNftsSet(address indexed contractAddress, address indexed nftTokenAddress, uint256 maxNfts);
event AssetInvaliditySet(address indexed assetToken, bool invalidity);
event TokenCreatorConfigsSet(address indexed contractAddress, uint256 indexed tokenId, address indexed creatorAddress, uint256 annuityPercent);
event TokenCreatorAnnuitiesRedirected(address indexed contractAddress, uint256 indexed tokenId, address indexed redirectAddress);
event PermsSetForCharge(address indexed contractAddress, bool state);
event PermsSetForBasket(address indexed contractAddress, bool state);
event PermsSetForTimelockAny(address indexed contractAddress, bool state);
event PermsSetForTimelockSelf(address indexed contractAddress, bool state);
Last updated
Was this helpful?