bitbeckers
Contract for managing hypercert claims and whitelists
Implementation of the HypercertTokenInterface using { SemiFungible1155 } as underlying token.This contract supports whitelisted minting via { AllowlistMinter }.
Wrapper contract to expose and chain functions.
Methods
__SemiFungible1155_init
function __SemiFungible1155_init() external nonpayable
see { openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol }
balanceOf
function balanceOf(address account, uint256 id) external view returns (uint256)
See {IERC1155-balanceOf}. Requirements: - account cannot be the zero address.
Parameters
| Name | Type | Description |
|---|
| account | address | undefined |
| id | uint256 | undefined |
Returns
| Name | Type | Description |
|---|
| _0 | uint256 | undefined |
balanceOfBatch
function balanceOfBatch(address[] accounts, uint256[] ids) external view returns (uint256[])
See {IERC1155-balanceOfBatch}. Requirements: - accounts and ids must have the same length.
Parameters
| Name | Type | Description |
|---|
| accounts | address[] | undefined |
| ids | uint256[] | undefined |
Returns
| Name | Type | Description |
|---|
| _0 | uint256[] | undefined |
batchBurnFraction
function batchBurnFraction(address _account, uint256[] _tokenIDs) external nonpayable
Burn a claimtoken
see {IHypercertToken}
Parameters
| Name | Type | Description |
|---|
| _account | address | undefined |
| _tokenIDs | uint256[] | undefined |
batchMintClaimsFromAllowlists
function batchMintClaimsFromAllowlists(address account, bytes32[][] proofs, uint256[] claimIDs, uint256[] units) external nonpayable
Mint semi-fungible tokens representing a fraction of the claims in claimIDs
Calls AllowlistMinter to verify proofs.Mints the amount of units for the hypercert stored under claimIDs
Parameters
| Name | Type | Description |
|---|
| account | address | undefined |
| proofs | bytes32[][] | undefined |
| claimIDs | uint256[] | undefined |
| units | uint256[] | undefined |
burn
function burn(address account, uint256 id, uint256) external nonpayable
Burn a claimtoken; override is needed to update units/values
see {ERC1155Burnable}
Parameters
| Name | Type | Description |
|---|
| account | address | undefined |
| id | uint256 | undefined |
| _2 | uint256 | undefined |
burnBatch
function burnBatch(address account, uint256[] ids, uint256[]) external nonpayable
Batch burn claimtokens; override is needed to update units/values
see {ERC1155Burnable}
Parameters
| Name | Type | Description |
|---|
| account | address | undefined |
| ids | uint256[] | undefined |
| _2 | uint256[] | undefined |
burnFraction
function burnFraction(address _account, uint256 _tokenID) external nonpayable
Burn a claimtoken
see {IHypercertToken}
Parameters
| Name | Type | Description |
|---|
| _account | address | undefined |
| _tokenID | uint256 | undefined |
createAllowlist
function createAllowlist(address account, uint256 units, bytes32 merkleRoot, string _uri, enum IHypercertToken.TransferRestrictions restrictions) external nonpayable
Register a claim and the whitelist for minting token(s) belonging to that claim
Calls SemiFungible1155 to store the claim referenced in uri with amount of unitsCalls AllowlistMinter to store the merkleRoot as proof to authorize claims
Parameters
| Name | Type | Description |
|---|
| account | address | undefined |
| units | uint256 | undefined |
| merkleRoot | bytes32 | undefined |
| _uri | string | undefined |
| restrictions | enum IHypercertToken.TransferRestrictions | undefined |
getMinted
function getMinted(uint256 claimID) external view returns (uint256 mintedUnits)
Parameters
| Name | Type | Description |
|---|
| claimID | uint256 | undefined |
Returns
| Name | Type | Description |
|---|
| mintedUnits | uint256 | undefined |
hasBeenClaimed
function hasBeenClaimed(uint256, bytes32) external view returns (bool)
Parameters
| Name | Type | Description |
|---|
| _0 | uint256 | undefined |
| _1 | bytes32 | undefined |
Returns
| Name | Type | Description |
|---|
| _0 | bool | undefined |
initialize
function initialize() external nonpayable
see { openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol }
isAllowedToClaim
function isAllowedToClaim(bytes32[] proof, uint256 claimID, bytes32 leaf) external view returns (bool isAllowed)
Parameters
| Name | Type | Description |
|---|
| proof | bytes32[] | undefined |
| claimID | uint256 | undefined |
| leaf | bytes32 | undefined |
Returns
| Name | Type | Description |
|---|
| isAllowed | bool | undefined |
isApprovedForAll
function isApprovedForAll(address account, address operator) external view returns (bool)
See {IERC1155-isApprovedForAll}.
Parameters
| Name | Type | Description |
|---|
| account | address | undefined |
| operator | address | undefined |
Returns
| Name | Type | Description |
|---|
| _0 | bool | undefined |
mergeFractions
function mergeFractions(address _account, uint256[] _fractionIDs) external nonpayable
Merge the value of tokens belonging to the same claim
see {IHypercertToken}
Parameters
| Name | Type | Description |
|---|
| _account | address | undefined |
| _fractionIDs | uint256[] | undefined |
mintClaim
function mintClaim(address account, uint256 units, string _uri, enum IHypercertToken.TransferRestrictions restrictions) external nonpayable
Mint a semi-fungible token for the impact claim referenced via uri
see {IHypercertToken}
Parameters
| Name | Type | Description |
|---|
| account | address | undefined |
| units | uint256 | undefined |
| _uri | string | undefined |
| restrictions | enum IHypercertToken.TransferRestrictions | undefined |
mintClaimFromAllowlist
function mintClaimFromAllowlist(address account, bytes32[] proof, uint256 claimID, uint256 units) external nonpayable
Mint a semi-fungible token representing a fraction of the claim
Calls AllowlistMinter to verify proof.Mints the amount of units for the hypercert stored under claimID
Parameters
| Name | Type | Description |
|---|
| account | address | undefined |
| proof | bytes32[] | undefined |
| claimID | uint256 | undefined |
| units | uint256 | undefined |
mintClaimWithFractions
function mintClaimWithFractions(address account, uint256 units, uint256[] fractions, string _uri, enum IHypercertToken.TransferRestrictions restrictions) external nonpayable
Mint semi-fungible tokens for the impact claim referenced via uri
see {IHypercertToken}
Parameters
| Name | Type | Description |
|---|
| account | address | undefined |
| units | uint256 | undefined |
| fractions | uint256[] | undefined |
| _uri | string | undefined |
| restrictions | enum IHypercertToken.TransferRestrictions | undefined |
name
function name() external view returns (string)
Returns
| Name | Type | Description |
|---|
| _0 | string | undefined |
owner
function owner() external view returns (address)
Returns the address of the current owner.
Returns
| Name | Type | Description |
|---|
| _0 | address | undefined |
ownerOf
function ownerOf(uint256 tokenID) external view returns (address _owner)
Returns the owner of a given token ID.
Parameters
| Name | Type | Description |
|---|
| tokenID | uint256 | The ID of the token to query. |
Returns
| Name | Type | Description |
|---|
| _owner | address | The address of the owner of the token. |
pause
function pause() external nonpayable
PAUSABLE
paused
function paused() external view returns (bool)
Returns true if the contract is paused, and false otherwise.
Returns
| Name | Type | Description |
|---|
| _0 | bool | undefined |
proxiableUUID
function proxiableUUID() external view returns (bytes32)
Implementation of the ERC1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the notDelegated modifier.
Returns
| Name | Type | Description |
|---|
| _0 | bytes32 | undefined |
readTransferRestriction
function readTransferRestriction(uint256 tokenID) external view returns (string)
TRANSFER RESTRICTIONS
Parameters
| Name | Type | Description |
|---|
| tokenID | uint256 | undefined |
Returns
| Name | Type | Description |
|---|
| _0 | string | undefined |
renounceOwnership
function renounceOwnership() external nonpayable
Leaves the contract without owner. It will not be possible to call onlyOwner functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.
safeBatchTransferFrom
function safeBatchTransferFrom(address from, address to, uint256[] ids, uint256[] amounts, bytes data) external nonpayable
See {IERC1155-safeBatchTransferFrom}.
Parameters
| Name | Type | Description |
|---|
| from | address | undefined |
| to | address | undefined |
| ids | uint256[] | undefined |
| amounts | uint256[] | undefined |
| data | bytes | undefined |
safeTransferFrom
function safeTransferFrom(address from, address to, uint256 id, uint256 amount, bytes data) external nonpayable
See {IERC1155-safeTransferFrom}.
Parameters
| Name | Type | Description |
|---|
| from | address | undefined |
| to | address | undefined |
| id | uint256 | undefined |
| amount | uint256 | undefined |
| data | bytes | undefined |
setApprovalForAll
function setApprovalForAll(address operator, bool approved) external nonpayable
See {IERC1155-setApprovalForAll}.
Parameters
| Name | Type | Description |
|---|
| operator | address | undefined |
| approved | bool | undefined |
splitFraction
function splitFraction(address _account, uint256 _tokenID, uint256[] _newFractions) external nonpayable
Split a claimtokens value into parts with summed value equal to the original
see {IHypercertToken}
Parameters
| Name | Type | Description |
|---|
| _account | address | undefined |
| _tokenID | uint256 | undefined |
| _newFractions | uint256[] | undefined |
supportsInterface
function supportsInterface(bytes4 interfaceId) external view returns (bool)
See {IERC165-supportsInterface}.
Parameters
| Name | Type | Description |
|---|
| interfaceId | bytes4 | undefined |
Returns
| Name | Type | Description |
|---|
| _0 | bool | undefined |
transferOwnership
function transferOwnership(address newOwner) external nonpayable
Transfers ownership of the contract to a new account (newOwner). Can only be called by the current owner.
Parameters
| Name | Type | Description |
|---|
| newOwner | address | undefined |
unitsOf
function unitsOf(address account, uint256 tokenID) external view returns (uint256 units)
see {IHypercertToken}
Parameters
| Name | Type | Description |
|---|
| account | address | undefined |
| tokenID | uint256 | undefined |
Returns
| Name | Type | Description |
|---|
| units | uint256 | undefined |
unitsOf
function unitsOf(uint256 tokenID) external view returns (uint256 units)
see {IHypercertToken}
Parameters
| Name | Type | Description |
|---|
| tokenID | uint256 | undefined |
Returns
| Name | Type | Description |
|---|
| units | uint256 | undefined |
unpause
function unpause() external nonpayable
upgradeTo
function upgradeTo(address newImplementation) external nonpayable
Upgrade the implementation of the proxy to newImplementation. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.
Parameters
| Name | Type | Description |
|---|
| newImplementation | address | undefined |
upgradeToAndCall
function upgradeToAndCall(address newImplementation, bytes data) external payable
Upgrade the implementation of the proxy to newImplementation, and subsequently execute the function call encoded in data. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.
Parameters
| Name | Type | Description |
|---|
| newImplementation | address | undefined |
| data | bytes | undefined |
uri
function uri(uint256 tokenID) external view returns (string _uri)
see { IHypercertMetadata}
Parameters
| Name | Type | Description |
|---|
| tokenID | uint256 | undefined |
Returns
| Name | Type | Description |
|---|
| _uri | string | undefined |
Events
AdminChanged
event AdminChanged(address previousAdmin, address newAdmin)
Parameters
| Name | Type | Description |
|---|
| previousAdmin | address | undefined |
| newAdmin | address | undefined |
AllowlistCreated
event AllowlistCreated(uint256 tokenID, bytes32 root)
Parameters
| Name | Type | Description |
|---|
| tokenID | uint256 | undefined |
| root | bytes32 | undefined |
ApprovalForAll
event ApprovalForAll(address indexed account, address indexed operator, bool approved)
Parameters
| Name | Type | Description |
|---|
account indexed | address | undefined |
operator indexed | address | undefined |
| approved | bool | undefined |
BatchValueTransfer
event BatchValueTransfer(uint256[] claimIDs, uint256[] fromTokenIDs, uint256[] toTokenIDs, uint256[] values)
Parameters
| Name | Type | Description |
|---|
| claimIDs | uint256[] | undefined |
| fromTokenIDs | uint256[] | undefined |
| toTokenIDs | uint256[] | undefined |
| values | uint256[] | undefined |
BeaconUpgraded
event BeaconUpgraded(address indexed beacon)
Parameters
| Name | Type | Description |
|---|
beacon indexed | address | undefined |
ClaimStored
event ClaimStored(uint256 indexed claimID, string uri, uint256 totalUnits)
Parameters
| Name | Type | Description |
|---|
claimID indexed | uint256 | undefined |
| uri | string | undefined |
| totalUnits | uint256 | undefined |
Initialized
event Initialized(uint8 version)
Parameters
| Name | Type | Description |
|---|
| version | uint8 | undefined |
LeafClaimed
event LeafClaimed(uint256 tokenID, bytes32 leaf)
Parameters
| Name | Type | Description |
|---|
| tokenID | uint256 | undefined |
| leaf | bytes32 | undefined |
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Parameters
| Name | Type | Description |
|---|
previousOwner indexed | address | undefined |
newOwner indexed | address | undefined |
Paused
event Paused(address account)
Parameters
| Name | Type | Description |
|---|
| account | address | undefined |
TransferBatch
event TransferBatch(address indexed operator, address indexed from, address indexed to, uint256[] ids, uint256[] values)
Parameters
| Name | Type | Description |
|---|
operator indexed | address | undefined |
from indexed | address | undefined |
to indexed | address | undefined |
| ids | uint256[] | undefined |
| values | uint256[] | undefined |
TransferSingle
event TransferSingle(address indexed operator, address indexed from, address indexed to, uint256 id, uint256 value)
Parameters
| Name | Type | Description |
|---|
operator indexed | address | undefined |
from indexed | address | undefined |
to indexed | address | undefined |
| id | uint256 | undefined |
| value | uint256 | undefined |
URI
event URI(string value, uint256 indexed id)
Parameters
| Name | Type | Description |
|---|
| value | string | undefined |
id indexed | uint256 | undefined |
Unpaused
event Unpaused(address account)
Parameters
| Name | Type | Description |
|---|
| account | address | undefined |
Upgraded
event Upgraded(address indexed implementation)
Parameters
| Name | Type | Description |
|---|
implementation indexed | address | undefined |
ValueTransfer
event ValueTransfer(uint256 claimID, uint256 fromTokenID, uint256 toTokenID, uint256 value)
Parameters
| Name | Type | Description |
|---|
| claimID | uint256 | undefined |
| fromTokenID | uint256 | undefined |
| toTokenID | uint256 | undefined |
| value | uint256 | undefined |
Errors
AlreadyClaimed
ArraySize
DoesNotExist
DuplicateEntry
Invalid
NotAllowed
NotApprovedOrOwner
error NotApprovedOrOwner()
TransfersNotAllowed
error TransfersNotAllowed()
TypeMismatch