IPAccountRegistry
The IPAccountRegistry is responsible for managing the registration and tracking of IP Accounts. It leverages a public ERC6551 registry to deploy IPAccount contracts, which represent tokenized intellectual property assets within the Story ecosystem.
State Variables
IP_ACCOUNT_IMPL
Returns the IPAccount implementation address.
IP_ACCOUNT_SALT
Returns the IPAccount salt.
ERC6551_PUBLIC_REGISTRY
Returns the public ERC6551 registry address.
IP_ACCOUNT_IMPL_UPGRADEABLE_BEACON
The IPAccount implementation upgradeable beacon address.
Functions
ipAccount
Returns the IPAccount address for the given NFT token.
Parameters:
chainId
: The chain ID where the IP Account is located.tokenContract
: The address of the token contract associated with the IP Account.tokenId
: The ID of the token associated with the IP Account.
Returns:
ipAccountAddress
: The address of the IP Account associated with the given NFT token.
getIPAccountImpl
Returns the IPAccount implementation address.
Returns:
address
: The address of the IPAccount implementation.
_registerIpAccount (internal)
Deploys an IPAccount contract with the IPAccount implementation and returns the address of the new IP. The IPAccount deployment delegates to public ERC6551 Registry.
Parameters:
chainId
: The chain ID where the IP Account will be created.tokenContract
: The address of the token contract to be associated with the IP Account.tokenId
: The ID of the token to be associated with the IP Account.
Returns:
ipAccountAddress
: The address of the newly created IP Account.
_get6551AccountAddress (internal)
Helper function to get the IPAccount address from the ERC6551 registry.
Parameters:
chainId
: The chain ID where the IP Account is located.tokenContract
: The address of the token contract associated with the IP Account.tokenId
: The ID of the token associated with the IP Account.
Returns:
address
: The address of the IP Account.
_upgradeIPAccountImpl (internal)
Helper function to upgrade the IPAccount implementation.
Parameters:
newIpAccountImpl
: The address of the new IPAccount implementation.