Proton Contract
Proton contract, the standard ERC721 token of the protocol. All Protons are Particles.
Get a Proton's creator, sale price, etc.
Gets the creator of a Proton.
function creatorOf(
uint256 tokenId
) external view virtual override returns (address);
Parameter / Return Value | Description |
tokenId | id of Proton |
return | address of token creator |
Gets current sale price of a Proton in Ether.
function getSalePrice(uint256 tokenId)
external
view
virtual
override
returns (uint256);
Parameter / Return Value | Description |
tokenId | id of Proton |
return | sale price in Ether |
Gets most recent price that Proton sold for in Ether.
function creatorOf(uint256 tokenId)
external
view
virtual
override
returns (address);
Parameter / Return Value | Description |
tokenId | id of Proton |
return | sale price in Ether |
Gets creator royalties for a given creator address. Royalties are how much of the sale price will be directed to the Proton's creator whenever a Proton is sold.
function getCreatorRoyalties(
address account
) external view virtual override returns (uint256);
Parameter / Return Value | Description |
address | creator account |
return | royalties earned by creator (in ETH) |
Gets creator royalties for a given tokenId. Royalties are how much of the sale price will be directed to the Proton's creator whenever a Proton is sold.
function getCreatorRoyaltiesPct(
uint256 tokenId
) external view virtual override returns (uint256);
Parameter / Return Value | Description |
tokenId | id of Proton |
return | royalty percentage on Proton sale |
Gets creator royalties receiver. Can be either the creator or a 3rd-party, such as a charity, relative, or any other account of choice.
function getCreatorRoyaltiesReceiver(
uint256 tokenId
) external view virtual override returns (address);
Parameter / Return Value | Description |
tokenId | id of Proton |
return | address of royalties receiver |
Create various types of Protons, buy a Proton, claim royalties, etc.
Sends royalties to creator or delegated receiver.
function claimCreatorRoyalties()
external
virtual
override
nonReentrant
whenNotPaused
returns (uint256)
Parameter / Return Value | Description |
---|---|
Parameter / Return Value | Description |
amount | amount claimed in ETH |
Create a new Charged Particle (a Proton with interest-bearing assets deposited into its wallet).
function createChargedParticle(
address creator,
address receiver,
address referrer,
string tokenMetaUri,
string walletManagerId,
address assetToken,
uint256 assetAmount,
uint256 annuityPercent
) external virtual override nonReentrant whenNotPaused returns (uint256 newTokenId);
Parameter / Return Value | Description |
creator | id of Charged Particle |
receiver | receiver of new Charged Particle |
referrer | *used for an internal feature that has yet to be implemented -- ignore |
tokenMetaUri | URI of tokenmetadata |
walletManagerId | id of wallet manager for ERC20 being deposited upon mint |
assetToken | asset to create token with |
assetAmount | amount of asset token to deposit |
annuityPercent | |
newTokenId | id of new Charged Particle |
Create a basic Proton without charge, and with annuityPercent, royaltiesPercent, and salePrice set to 0.
function createBasicProton(
address creator,
address receiver,
string tokenMetaUri
) external virtual override whenNotPaused returns (uint256 newTokenId);
Parameter / Return Value | Description |
creator | id of Proton |
receiver | receiver of new Proton |
tokenMetaUri | URI of token's metadata |
newTokenId | id of new Proton |
Create a Proton, set its annuity percentage to a custom amount, and set royalties percentage and salePrice to 0.
function createProton(
address creator,
address receiver,
string tokenMetaUri,
uint256 annuityPercent
) external virtual override whenNotPaused returns (uint256 newTokenId);
Parameter / Return Value | Description |
creator | address of creator |
receiver | receiver of new Proton |
tokenMetaUri | URI of tokenmetadata |
annuity percent | percentage of interest that goes to creator |
newTokenId | id of new Proton |
function createProtonForSale(
address creator,
address receiver,
string tokenMetaUri,
uint256 annuityPercent,
uint256 royaltiesPercent,
uint256 salePrice
) external virtual override whenNotPaused returns (uint256 newTokenId);
Parameter / Return Value | Description |
creator | address of creator |
receiver | receiver of new Proton |
tokenMetaUri | URI of tokenmetadata |
annuityPercent | percentage of charge (interest) that goes to creator |
royaltiesPercent | percentage of Proton sale that goes to creator |
salePrice | sale price of Proton |
newTokenId | id of new Proton |
function batchProtonsForSale(
address creator,
uint256 annuityPercent,
uint256 royaltiesPercent,
string[] calldata tokenMetaUris,
uint256[] calldata salePrices
) external virtual override whenNotPaused;
Parameter / Return Value | Description |
creator | address of creator |
annuityPercent | percentage of charge (interest) that goes to creator |
royaltiesPercent | percentage of Proton sale that goes to creator |
tokenMetaUris | array of token metadata URIs for Protons |
salePrices | array of sale prices for Protons |
Buy a Proton.
function buyProton(
uint256 tokenId
) external payable virutal override nonReentrant whenNotPaused returns (bool);
Parameter / Return Value | Description |
tokenId | id of Proton to purchase |
return | true if purchase successful, false if not |
Set a Protons Price, Royalties, or Royalties Receiver.
Set the sale price for a Proton.
function setSalePrice(
uint256 tokenId,
uint256 salePrice
) external virtual override whenNotPaused onlyTokenOwnerOrApproved(tokenId);
Parameter / Return Value | Description |
tokenId | id of Proton to set price for |
salePrice | sale price in Ether |
Set royalties percentage for a Proton.
function setRoyaltiesPct(
uint256 tokenId,
uint256 royaltiesPct
) external virtual override whenNotPaused onlyTokenCreator(tokenId) onlyTokenOwnerOrApproved(tokenId);
Parameter / Return Value | Description |
tokenId | id of Proton to set price for |
royaltiesPct | percentage of sale directed to creator |
Set a receiver for Proton royalties.
function setCreatorRoyaltiesReceiver(
uint256 tokenId,
address receiver
) external virtual override whenNotPaused onlyTokenCreator(tokenId);
Parameter / Return Value | Description |
tokenId | id of Proton to set recever for |
receiver | address of receiver |
UniverseSet
event UniverseSet(address indexed universe);
ChargedStateSet
event ChargedStateSet(address indexed chargedState);
ChargedSettingsSet
event ChargedSettingsSet(address indexed chargedSettings);
ChargedParticlesSet
event ChargedParticlesSet(address indexed chargedParticles);
PausedStateSet
event PausedStateSet(bool isPaused);
SalePriceSet
event SalePriceSet(uint256 indexed tokenId, uint256 salePrice);
CreatorRoyaltiesSet
event CreatorRoyaltiesSet(uint256 indexed tokenId, uint256 royaltiesPct);
FeesWithdrawn
event FeesWithdrawn(address indexed receiver, uint256 amount);
ProtonSold
event ProtonSold(
uint256 indexed tokenId,
address indexed oldOwner,
address indexed newOwner,
uint256 salePrice,
address creator,
uint256 creatorRoyalties
);
RoyaltiesClaimed
event RoyaltiesClaimed(address indexed receiver, uint256 amountClaimed);
Last modified 1yr ago