@charged-aprticles/charged-js-sdk
Charged Particles Javascript SDK v0.1.8 (beta)
Table of Contents
Charged
Parameters
params
ChargedConstructor Charged parameter object.
Examples
const charged = new Charged({providers: window.ethereum});
const allStateAddresses = await charged.utils.getStateAddress();
const polygonProvider = [
{
network: 137,
service: {alchemy: process.env.ALCHEMY_POLYGON_KEY}
}
];
const charged = new Charged({providers: polygonProvider})
ChargedConstructor
Charged class constructor object parameter.
Type: Object
Properties
providers
(Array<NetworkProvider> | providers.Provider | providers.ExternalProvider)? Provider for connection to the Ethereum network.signer
Signer? Needed to send signed transactions to the Ethereum Network to execute state changing operations.config
ConfigurationParameters
NFT
Parameters
Examples
const charged = new Charged({providers: window.ethereum});
const nft = charged.NFT( '0xd1bce91a13089b1f3178487ab8d0d2ae191c1963', 43);
const creatorAnnuities = await nft.getCreatorAnnuities();
Returns NftService Instance of the NFT connected to the charged particle protocol
getMass
Gets the amount of asset tokens that have been deposited into the Particle.
Parameters
walletManagerId
ManagerId The ID of the wallet manager to check.assetToken
string The address of the asset token to check.
Returns BigNumber The Amount of underlying assets held within the token.
getCharge
Gets the amount of interest that the particle has generated.
Parameters
walletManagerId
ManagerId The ID of the Wallet Manager.assetToken
string The address of the asset Token to check.
Returns BigNumber The amount of interest generated.
getKinectics
Gets the amount of LP Tokens that the Particle has generated.
Parameters
walletManagerId
ManagerId The ID of the Wallet Manager.assetToken
string The Address of the Asset Token to check.
Returns BigNumber The amount of LP tokens that have been generated.
getBonds
Gets the total amount of ERC721 tokens that the Particle holds.
Parameters
basketManagerId
string The ID of the BasketManager to check.
Returns BigNumber The total amount of ERC721 tokens that are held within the Particle.
getCreatorAnnuities
Gets the amount of creator annuities reserved for the creator for the specified NFT.
Returns address The address of the creator.
Returns number The percentage amount of annuities reserved for the creator.
getCreatorAnnuitiesRedirect
Get the address that receives creator annuities for a given Particle/ Defaults to creator address if it has not been redirected.
Returns address The address of the creator.
Returns number The percentage amount of annuities reserved for the creator.
tokenURI
Gets the tokenUri using the tokenId and contractAddress of the Particle.
Returns string Token metadata URI.
getDischargeState
Gets the Discharge timelock state of the Particle.
Parameters
sender
string The address approved for Discharging assets from the Particle.
Returns [boolean, boolean, BigNumber, BigNumber] [allowFromAll, isApproved, timelock, empLockExpiry]
getReleaseState
Gets the Discharge timelock state of the Particle.
Parameters
sender
string The address approved for Releasing assets from the Particle.
Returns [boolean, boolean, BigNumber, BigNumber] [allowFromAll, isApproved, timelock, empLockExpiry]
getBondsState
Gets the Bonds Timelock state of the Particle.
Parameters
sender
string The address approved for removing Bond assets from the Particle.
Returns boolean allowFromAll
Returns boolean isApproved
Returns BigNumber timelock
Returns BigNumber empLockExpiry
energize
Fund particle with asset token
Must be called by the account providing the asset. Account must also approve THIS contract as operator as asset.
If you are getting gas limit errors this may be because you forgot to approve the contract as operator of asset
Parameters
walletManagerId
ManagerId The Asset-Pair to Energize the Token withassetToken
string The Address of the Asset Token being usedassetAmount
BigNumberish The Amount of Asset Token to Energize the Token withchainId
number? Optional parameter that allows for the user to specify which network to write toreferrer
string?
Examples
const USDCoinAddress = '0xUSDC';
const result = await nft.energize(
'aave.B',
USDCoinAddress,
ethers.utils.parseUnits("20", 6),
);
const monkeyCoinAddress = '0xMONKEY';
const result = await nft.energize(
'generic.B',
monkeyCoinAddress,
ethers.utils.parseUnits("20")
);
Returns Promise<ContractTransaction> A contract receipt from the transaction.Solidity Contract Method
discharge
Allows the owner or operator of the token to collect or transfer the interest generated from the token
without removing the underlying asset that is held within the token.
Parameters
receiver
string The address to receive the discharged asset tokens.walletManagerId
ManagerId The wallet manager of that assets to discharge from the token.assetToken
string The address of the asset token being discharged.chainId
number? Optional parameter that allows for the user to specify which network to write to.j
Examples
const myWallet = '0xWALLET';
const rocketPoolAddress = '0xRPL';
const result = await nft.discharge(
myWallet,
'aave.B',
rocketPoolAddress,
);
const vitaliksWallet = '0xCOOLGUY';
const daiAddress = '0xDAI';
const result = await nft.discharge(
vitaliksWallet,
'aave.B',
daiAddress,
)
Returns Promise<ContractTransaction> A receipt from the contract transaction.Solidity Contract Method
dischargeAmount
Allows the owner or operator of the Token to collect or transfer a specific amount of the interest
generated from the token without removing the underlying Asset that is held within the token.
Parameters
receiver
string The address to receive the discharged asset tokens.walletManagerId
ManagerId The wallet manager of the assets to discharge from the token.assetToken
string The address of the asset token being discharged.assetAmount
BigNumberish The specific amount of asset token to discharge from the particle.chainId
number? Optional parameter that allows for the user to specify which network to write to.
Returns Promise<ContractTransaction> Details from the transaction.Solidity Contract Method
dischargeForCreator
Allows the Creator of the Token to collect or transfer a their portion of the interest (if any)
generated from the token without removing the underlying Asset that is held within the token.
Parameters
receiver
string The address to receive the discharged asset tokenswalletManagerId
ManagerId The wallet manager of the assets to discharge from the tokenassetToken
string The address of the asset token being dischargedassetAmount
BigNumberish The specific amount of asset token to discharge from the particlechainId
number? Optional parameter that allows for the user to specify which network to write to
Returns Promise<ContractTransaction> A receipt from the transactionSolidity Contract Method
release
Releases the full amount of asset + interest held within the particle by LP of the assets.
To release NFT assets from your particle, see break bond.
Parameters
receiver
string The address to receive the released asset tokens.walletManagerId
ManagerId The wallet manager of the assets to release from the token.assetToken
string The address of the asset token being released.chainId
number? Optional parameter that allows for the user to specify which network to write to.
Examples
const receiver = '0xMYWALLET';
const daiAddress = '0xDAI';
const result = nft.release(
receiver,
'aave.B',
daiAddress,
);
Returns Promise<ContractTransaction> Details from the transaction.Solidity Contract Method
releaseAmount
Releases a partial amount of asset + interest held within the particle by LP of the assets.
Parameters
receiver
string The address to receive the released asset tokenswalletManagerId
ManagerId The wallet manager of the assets to release from the tokenassetToken
string The address of the asset token being releasedassetAmount
BigNumberish The specific amount of asset token to release from the particlechainId
number? Optional parameter that allows for the user to specify which network to write to
Returns Promise<ContractTransaction> A receipt from the transactionSolidity Contract Method
bond
Deposit other NFT assets into the particle.
Must be called by the account providing the asset. Account must approve THIS contract as operator of asset.
Parameters
basketManagerId
string The basket to deposit the NFT into.nftTokenAddress
string The address of the NFT token being deposited.nftTokenId
string The ID of the NFT token being deposited.nftTokenAmount
number The amount of tokens to deposit (ERC1155-specific).chainId
number? Optional parameter that allows for the user to specify which network to write to.
Examples
const nftTokenAddress = '0xMOONBIRDS';
const tokenId = '12';
const result = await nft.bond(
'generic.B',
nftTokenAddress,
tokenId,
1,
);
const nftTokenAddress = '0xCOOLGAME';
const tokenId = '78';
const result = await nft.bond(
'generic.B',
nftTokenAddress,
tokenId,
12
);
Returns Promise<ContractTransaction> Details from the transaction.Solidity Contract Method
breakBond
Release NFT assets from the particle.
Parameters
receiver
string The address to receive the released asset tokens.basketManagerId
string The basket to release the NFT from.nftTokenAddress
string The address of the NFT token being released.nftTokenId
string The ID of the NFT token being released.nftTokenAmount
Number The amount of tokens to deposit (ERC1155-specific).chainId
number? Optional parameter that allows for the user to specify which network to write to.
Examples
const receiver = '0xMYWALLET';
const nftTokenAddress = '0xNFTS';
const tokenId = '35';
const result = await nft.breakBond(
receiver,
'generic.B',
nftTokenAddress,
tokenId,
3
);
Returns Promise<ContractTransaction> Details from the transaction.Solidity Contract Method
releaseTimelock
Sets a timelock on the ability to release the assets of a particle.
Parameters
unlockBlock
number The Ethereum block number to timelock until (~15 seconds per block).chainId
number? Optional parameter that allows for the user to specify which network to write to.
Returns Promise<ContractTransaction> Details from the transaction.Solidity Contract Method
dischargeTimelock
Sets a timelock on the ability to discharge the assets of a particle
Parameters
unlockBlock
number The Ethereum block number to timelock until (~15 seconds per block).chainId
number? Optional parameter that allows for the user to specify which network to write to.
Returns Promise<ContractTransaction> Details from the transaction.Solidity Contract Method
bondsTimelock
Sets a timelock on the ability to break the covalent bond of a particle
Parameters
unlockBlock
number The Ethereum block number to timelock until (~15 seconds per block).chainId
number? Optional parameter that allows for the user to specify which network to write to.
Returns Promise<ContractTransaction> Details from the transaction.Solidity Contract Method
setCreatorAnnuities
Sets the custom configuration for creators of proton-based NFTs
Must be called by account that created and owns the particle
Parameters
creator
string The creator's address of the proton-based NFT.annuityPercent
BigNumberish The percentage of interest-annuities to reserve for the creator. In decimal this can range from 0 - 10000. 5712 would be 57.12%..chainId
number? Optional parameter that allows for the user to specify which network to write to.
Returns Promise<ContractTransaction> Details from the transaction.Solidity Contract Method
setCreatorAnnuitiesRedirect
Sets a custom receiver address for the creator annuities
Must be called by account that created and owns the particle
Parameters
receiver
string The receiver of the creator interest annuities.chainId
number? Optional parameter that allows for the user to specify which network to write to.
Returns Promise<ContractTransaction> Details from the transaction.Solidity Contract Method
Utilities
Examples
const charged = new Charged({providers: window.ethereum});
const creatorAnnuities = await charged.utils.getStateAddress();
Returns UtilsService
getStateAddress
Get the address of the chargedState contract.
Returns string state contract address
getSettingsAddress
Get the address of the chargedSettings contract.
Returns string settings contract address
getManagersAddress
Get the address of the chargedManagers contract.
Returns string manager contract address
Types
NetworkProvider
User specified custom network provider.
Type: Object
Properties
network
number? Configure the SDK.
Examples
const providers = [
{
network: 1,
service: { 'alchemy': process.env.ALCHEMY_MAINNET_KEY }
},
{
network: 42,
service: { 'infura': process.env.INFURA_KOVAN_KEY }
}
];
const rpcUrlProvider = [
{
network: 42,
service: { 'rpc': `https://kovan.infura.io/v3/${process.env.INFURA_PROJECT_SECRET}`}
}
];
ManagerId
A string enum that identifies which wallet manager to use. Used in functions like release
and discharge
Type: ManagerId
Properties
ManagerId
string possible values: aave
, aave.B
, generic
, generic.B
ConfigurationParameters
Charged class constructor object parameter.
Type: Object
Properties
sdk
SdkConfiguration? Configure the SDK.transactionOverride
TransactionOverride? Override transaction default values.
SdkConfiguration
SDK configuration.
Type: Object
Properties
NftBridgeCheck
boolean? Verifies that the signer network matches the chainId of the contract interaction.
TransactionOverride
Overrides ethers transaction default parameters.
Type: Object
Properties
getFeesForDeposit
Get the deposit fee of the protocol.
Returns string protocol fee amount.