ERC-1155 토큰화 플로우

ERC-1155 토큰 프로젝트를 배포한 후 토큰 관리자와 토큰 소유자는 토큰을 생성하고 수명 주기 작업을 완료하기 위한 일반적인 플로우를 따릅니다.

토큰 프로젝트를 배치하면 초기화 메소드로 전달된 목록의 사용자가 체인코드의 토큰 관리자가 됩니다. 배포 후 토큰 생성 및 수명 주기 작업 완료에 대한 일반적인 플로우는 다음 단계를 따릅니다.

토큰 관리자 작업:

  • 토큰을 소유하거나 토큰 관련 작업을 완료할 모든 사용자에 대한 사용자 계정을 만듭니다.
  • 각 사용자 계정에 대해 토큰 계정을 만듭니다. 사용자는 여러 대체 가능 토큰 계정을 가질 수 있지만 NFT(비정지 가능 토큰) 계정은 하나만 가질 수 있습니다. 토큰 관리자는 createAccount 메소드를 사용하여 사용자 및 토큰 계정을 별도로 생성하는 대신 동시에 생성할 수 있습니다.
  • 필요에 따라 대체 가능한 토큰을 만듭니다. 대체 가능 토큰을 초기화할 때 연관된 메타데이터 및 동작을 토큰에 지정할 수 있습니다.
  • 대체 가능 토큰의 경우 사용자의 대체 가능 토큰 계정을 특정 대체 가능 토큰과 연관시킵니다.
  • 필요에 따라 사용자의 토큰 계정에 채굴기 및 버너 롤을 추가합니다.

토큰 소유자 작업:

  • 특정 토큰에 대해 minter 역할을 가진 사용자는 NFT 또는 대체 가능한 토큰을 생성(민트)할 수 있습니다.
  • 사용자는 계정 간에 토큰을 이전하고 계정 잔액을 확인할 수 있습니다.
  • 특정 토큰에 대한 버너 역할이 있는 사용자는 NFT 또는 대체 가능한 토큰을 삭제(굽기)할 수 있습니다.

Vault Manager 작업:

  • 저장소 역할을 가진 사용자는 NFT를 잠글 수 있습니다. 잠긴 NFT는 레코딩하거나 다른 사용자에게 전송할 수 없습니다.

다음 다이어그램은 ERC-1155 토큰화 시나리오에 대한 전체 프로세스 플로우를 보여 줍니다.
ERC-1155 토큰화 시나리오에 대한 프로세스 플로우

다음 표에는 ERC-1155 토큰 프로젝트를 스캐폴딩할 때 자동으로 생성되는 메소드가 요약되어 있습니다.

메소드 범주 자동 생성 방법(TypeScript) 자동 생성된 방법(실행) 호출자 설명
관리자 관리 init Init 관리 토큰 체인 코드를 초기화합니다.
isTokenAdmin IsTokenAdmin 관리 호출자가 관리자인 경우 true를 반환합니다.
addTokenAdmin AddTokenAdmin 관리 관리자를 추가합니다.
removeTokenAdmin RemoveTokenAdmin 관리 관리자를 제거합니다.
getAllTokenAdmins GetAllTokenAdmins 관리 모든 관리자를 반환합니다.
계정 관리 createAccount CreateAccount 관리 사용자 계정 및 토큰 계정을 만듭니다.
createUserAccount CreateUserAccount 관리 사용자 계정 생성
createTokenAccount CreateTokenAccount 관리 토큰 계정을 생성합니다.
associateFungibleTokenAccount AssociateFungibleTokenAccount 관리 대체 가능 토큰 계정을 대체 가능 토큰과 연관시킵니다.
getAccountHistory GetAccountHistory 관리자/계정 소유자 토큰 계정에 대한 기록을 반환합니다.
getAccountTransactionHistory GetAccountTransactionHistory 관리자/계정 소유자 계정에 대한 트랜잭션 내역 반환
getAccount GetAccount 관리자/계정 소유자 토큰 계정에 대한 세부정보를 반환합니다.
getAllAccounts GetAllAccounts 관리 모든 사용자 계정에 대한 세부정보를 반환합니다.
getAccountDetailsByUser GetAccountDetailsByUser 관리자/계정 소유자 사용자 계정 및 연관된 모든 토큰에 대한 세부정보를 반환합니다.
getUserByAccountId GetUserByAccountId 모든 사용자 계정 ID에 대한 사용자 세부정보를 반환합니다.
롤 관리 addRole AddRole 관리 사용자 및 토큰에 역할을 추가합니다.
isInRole IsInRole 관리자/계정 소유자 사용자에게 토큰에 대해 지정된 롤이 있는지 여부를 반환합니다.
removeRole RemoveRole 관리 사용자 및 토큰에서 역할을 제거합니다.
getAccountsByRole GetAccountsByRole 관리 지정된 역할 및 토큰에 대한 계정 ID를 반환합니다.
getUsersByRole GetUsersByRole 관리 지정된 롤 및 토큰에 대한 사용자 목록을 반환합니다.
민트 가능 동작 mintBatch MintBatch 최소 롤을 가진 사용자 다중 토큰(분)
이전 가능 동작 batchTransferFrom BatchTransferFrom 모든 사용자 사용자 간 토큰 전송
safeBatchTransferFrom SafeBatchTransferFrom 모든 사용자 메소드 호출자와 다른 사용자 간에 토큰을 전송합니다.
balanceOfBatch BalanceOfBatch 관리자/계정 소유자 여러 사용자 및 토큰에 대한 토큰 계정 잔액을 반환합니다.
exchangeToken ExchangeToken 계정 소유자 토큰 계정 간 토큰 교환
굽기 동작 burnBatch BurnBatch 버너 롤을 보유한 사용자 화상 토큰
토큰 관리 create<Token Name>Token Create<Token Name>Token Admin(fungible tokens) / minter role(NFT)을 가진 사용자 토큰을 생성합니다.
update<Token Name>Token Update<Token Name>Token 관리자(정확한 토큰)/토큰 소유자(NFT) 토큰 업데이트
getTokenHistory GetTokenHistory 모든 사용자 토큰의 기록을 반환합니다.
getTransactionById GetTransactionById 모든 사용자 지정된 트랜잭션의 세부정보를 반환합니다.
deleteHistoricalTransactions DeleteHistoricalTransactions 관리 지정된 시간 이전의 트랜잭션을 삭제합니다.
getAllTokens GetAllTokens 관리 모든 토큰 자산을 반환합니다.
getTokenById GetTokenById 관리자/토큰 소유자 토큰 반환
getAllTokensByUser GetAllTokensByUser 관리자/계정 소유자 지정된 사용자가 소유한 모든 토큰을 반환합니다.
ownerOf OwnerOf 모든 사용자 지정된 토큰 소유자의 사용자 세부정보를 반환합니다.
URI URI 모든 사용자 지정된 토큰의 URI를 반환합니다.
name Name 모든 사용자 지정된 토큰의 이름을 반환합니다.
totalSupply TotalSupply 관리 지정된 토큰에 대한 연동된 토큰 수를 반환합니다.
totalNetSupply TotalNetSupply 관리 지정된 토큰에 대해 연동된 토큰 수에서 연소된 토큰 수를 뺀 값을 반환합니다.
getTokensByName getTokensByName 관리 지정된 토큰 이름에 대한 모든 토큰 자산을 반환합니다.
getTokenDecimal getTokenDecimal 관리 지정된 토큰의 소수 자릿수 반환