IPAccountRegistry는 IP 계정의 등록과 추적을 관리하는 책임이 있습니다. 이는 공개 ERC6551 레지스트리를 활용하여 Story 생태계 내에서 토큰화된 지적 재산 자산을 나타내는 IPAccount 계약을 배포합니다.

상태 변수

IP_ACCOUNT_IMPL

address public immutable IP_ACCOUNT_IMPL

IPAccount 구현 주소를 반환합니다.

IP_ACCOUNT_SALT

bytes32 public immutable IP_ACCOUNT_SALT

IPAccount 솔트를 반환합니다.

ERC6551_PUBLIC_REGISTRY

address public immutable ERC6551_PUBLIC_REGISTRY

공개 ERC6551 레지스트리 주소를 반환합니다.

IP_ACCOUNT_IMPL_UPGRADEABLE_BEACON

address public immutable IP_ACCOUNT_IMPL_UPGRADEABLE_BEACON

IPAccount 구현 업그레이드 가능한 비콘 주소입니다.

함수

ipAccount

function ipAccount(uint256 chainId, address tokenContract, uint256 tokenId) public view returns (address)

주어진 NFT 토큰에 대한 IPAccount 주소를 반환합니다.

Parameters:

  • chainId: IP Account가 위치한 체인 ID입니다.
  • tokenContract: IP Account와 연관된 토큰 계약의 주소입니다.
  • tokenId: IP Account와 연관된 토큰의 ID입니다.

Returns:

  • ipAccountAddress: 주어진 NFT 토큰과 연관된 IP Account의 주소입니다.

getIPAccountImpl

function getIPAccountImpl() external view override returns (address)

IPAccount 구현 주소를 반환합니다.

Returns:

  • address: IPAccount 구현의 주소입니다.

_registerIpAccount (내부)

function _registerIpAccount(
    uint256 chainId,
    address tokenContract,
    uint256 tokenId
) internal returns (address ipAccountAddress)

IPAccount 구현으로 IPAccount 계약을 배포하고 새로운 IP의 주소를 반환합니다. IPAccount 배포는 공개 ERC6551 레지스트리에 위임됩니다.

Parameters:

  • chainId: IP Account가 생성될 체인 ID입니다.
  • tokenContract: IP Account와 연관될 토큰 계약의 주소입니다.
  • tokenId: IP Account와 연관될 토큰의 ID입니다.

Returns:

  • ipAccountAddress: 새로 생성된 IP Account의 주소입니다.

_get6551AccountAddress (내부)

function _get6551AccountAddress(
    uint256 chainId,
    address tokenContract,
    uint256 tokenId
) internal view returns (address)

ERC6551 레지스트리에서 IPAccount 주소를 가져오는 헬퍼 함수입니다.

Parameters:

  • chainId: IP Account가 위치한 체인 ID입니다.
  • tokenContract: IP Account와 연관된 토큰 계약의 주소입니다.
  • tokenId: IP Account와 연관된 토큰의 ID입니다.

Returns:

  • address: IP Account의 주소입니다.

_upgradeIPAccountImpl (내부)

function _upgradeIPAccountImpl(address newIpAccountImpl) internal

IPAccount 구현을 업그레이드하는 헬퍼 함수입니다.

Parameters:

  • newIpAccountImpl: 새로운 IPAccount 구현의 주소입니다.