ERC-1155 토큰 계약 API

ERC-1155 토큰 계약에서 토큰 기능과 관련된 다음 방법을 사용할 수 있습니다.

토큰 구성 방법

__ERC1155Token_init
이 메소드는 토큰 계약이 배포될 때 호출됩니다. 이 메소드는 Token Admin에 의해서만 호출될 수 있습니다.
매개변수:
  • uri: string – 모든 토큰 유형에 대한 URI입니다.

토큰 설정 방법

saveNFTClass
이 방법은 원장에 NFT 분류 정보를 저장합니다. 이 메소드는 Token Admin에 의해서만 호출될 수 있습니다.
매개변수:
  • classInfo: NFTClassInfo – NFT가 전체인지 아니면 소수인지에 따라 달라지는 계정 계약 주소입니다. 전체 NFT:
    {
        "nftClassId": (BigInt(1)),
        "tokenName": "ArtCollection2",
        "tokenDesc": "this is art collection contract",
        "tokenStandard": "erc1155",
        "tokenUnit": 0,
        "behaviors": ["mintable", "burnable", "transferable", "roles", "indivisible"],
        "divisible": { "decimals": 0 },
        "mintable": { "maxMintQuantity": 2 }
    }
    분수 NFT:
     "nftClassId": (BigInt(0)),
      tokenName": "ArtCollection",
      "tokenDesc": "this is art collection contract",
      "tokenStandard": "erc1155",
      "tokenUnit": 1,
      "behaviors": ["mintable", "burnable", "transferable", "roles", "divisible"],
      "divisible": { "decimals": 0 },
      "mintable": { "maxMintQuantity": 1 }
createNonFungibleToken
이 메소드는 저장된 NFT 클래스 정보를 기반으로 NFT를 민트합니다. 이 메소드는 minter 롤을 가진 사용자 또는 Token Admin에 의해 호출될 수 있습니다.
매개변수:
  • token: uint256 – NFT 클래스 정보를 포함하는 NFT의 ID입니다. tokenId 매개변수의 상위 128비트는 NFT 클래스 ID를 나타내고, 하위 128비트는 NFT의 고유 인덱스를 나타냅니다.
  • quantity: uint256 – 민트(생성)할 NFT 양입니다.
createFungibleToken
이 메소드는 토큰 계약이 배포될 때 호출됩니다. 이 메소드는 Token Admin를 통해서만 호출할 수 있습니다.
매개변수:
  • tokenID: ERC1155Token – 다음 예와 같이 원장에 기록할 대체 가능한 토큰 정의입니다.
    "tokenId": BigInt(0),
     "tokenName": "wcbdc",
     "tokenDesc": "this is wcbdc token",
     "tokenStandard": "erc1155",
     "tokenType": 1,
     "tokenUnit": 1,
     "behaviors": ["mintable", "burnable", "transferable", "roles", "divisible"],
     "divisible": { "decimals": 2 },
     "quantity": 1,
     "mintable": { "maxMintQuantity": 1 }
getTokenById
이 메소드는 지정된 토큰에 대한 세부정보를 가져옵니다. 이 메소드는 Token Admin 또는 토큰 소유자에 의해서만 호출될 수 있습니다.
매개변수:
  • token: ERC1155Token – 다음 예에 표시된 토큰 정의입니다.
     "tokenId": BigInt(0),
     "tokenName": "wcbdc",
     "tokenDesc": "this is wcbdc token",
     "tokenStandard": "erc1155",
     "tokenType": 1,
     "tokenUnit": 1,
     "behaviors": ["mintable", "burnable", "transferable", "roles", "divisible"],
     "divisible": { "decimals": 2 },
     "quantity": 1,
     "mintable": { "maxMintQuantity": 1 }
  • metainfo: bytes – 대체 가능한 토큰의 경우 metainfo 매개변수가 비어 있습니다. 전체 NFT의 경우 metainfo 매개변수는 다음 구조에 대해 인코딩된 데이터를 포함합니다.
    struct ERC1155WholeNFT {
        bool isBurned;
        bool isLocked;
        uint256 creationDate;
        uint256 quantity;
        address createdBy;
        address owner;
    }
    소수 NFT의 경우 metainfo 매개변수는 다음 구조에 대해 인코딩된 데이터를 포함합니다.
    struct ERC1155FractionalNFT {
        bool isBurned;
        bool isLocked;
        uint256 creationDate;
        uint256 quantity;
        address createdBy;
        Owners[] owners;
    }
getTokenDecimals
이 메소드는 토큰에 대해 구성된 소수 자릿수를 반환합니다. 이 메소드는 Token Admin에 의해서만 호출될 수 있습니다.
매개변수:
  • id: uint256 – 토큰 ID입니다.
반환값:
  • 소수 자릿수를 나타내는 uint8 값입니다.
tokenIdOf
이 메소드는 토큰 ID를 반환합니다. 이 메소드는 Token Admin에 의해서만 호출될 수 있습니다.
매개변수:
  • classId: uint256 – NFT 클래스 ID입니다.
  • serialId: uint256 – NFT 클래스의 직렬 ID입니다.
반환값:
  • 토큰 ID의 uint256 값입니다.
balanceOf
이 메소드는 지정된 사용자에 대한 현재 토큰 잔액을 반환합니다. 이 메소드는 Token Admin 또는 토큰 소유자에 의해서만 호출될 수 있습니다.
매개변수:
  • account: string – 사용자의 계정 주소입니다.
  • id: uint256 – 토큰 ID입니다.
반환값:
  • 현재 잔액을 나타내는 uint256 값입니다.
balanceOfBatch
이 메소드는 지정된 사용자 일괄 처리에 대한 현재 토큰 잔액을 반환합니다. 이 메소드는 Token Admin 또는 토큰 소유자에 의해서만 호출될 수 있습니다.
매개변수:
  • accounts: string[] – 사용자의 계정 주소 목록입니다.
  • ids: uint256[] – 토큰 ID 목록입니다.
반환값:
  • 현재 잔액을 나타내는 uint256[] 값 목록입니다.
exists
이 메소드는 지정된 토큰이 존재하는지 여부를 확인합니다. 이 메소드는 Token Admin에 의해서만 호출될 수 있습니다.
매개변수:
  • id: uint256 – 토큰 ID입니다.
반환값:
  • 부울 값(true 또는 false)입니다.
totalSupply
이 방법은 계약에서 토큰의 총 공급을 반환합니다. 이 메소드는 Token Admin에 의해서만 호출될 수 있습니다.
매개변수:
  • id: uint256(선택 사항) – 토큰 ID입니다. 토큰 ID를 지정하지 않으면 계약에 있는 모든 토큰의 총 공급이 반환됩니다.
반환값:
  • 총 공급을 나타내는 uint256 값입니다.

토큰 동작 방법 - 작동 방식

mintBatch
이 메서드는 ERC-1155 토큰을 일괄 처리로 민트합니다. 토큰은 이미 초기화되어 있어야 합니다. 이 메소드는 minter 롤을 가진 모든 사용자가 호출할 수 있습니다.
매개변수:
  • tokenIds: uint256[] – 민트할 토큰 ID 목록입니다.
  • quantity: uint256[] – 민트할 토큰 수량의 해당 목록입니다.
  • data: bytes – 바이트 형식의 추가 데이터입니다.

토큰 동작 방법 - 가열 가능 동작

burnBatch
이 방법은 ERC-1155 토큰을 배치로 구울 수 있습니다. 토큰이 이미 초기화되어 있어야 합니다. 이 메소드는 버너 롤을 가진 모든 사용자가 호출할 수 있습니다.
매개변수:
  • tokenIds: uint256[] – 레코딩할 토큰 ID 목록입니다.
  • quantity: uint256[] – 레코딩할 토큰 수량의 해당 목록입니다.
  • data: bytes – 바이트 형식의 추가 데이터입니다.
burnNFT
이 방법은 NFT를 굽습니다. 토큰이 이미 초기화되어 있어야 합니다. 이 메소드는 버너 롤을 가진 모든 사용자가 호출할 수 있습니다.
매개변수:
  • tokenId: uint256 – 레코딩할 토큰의 ID입니다.

토큰 동작 방법 - 이전 가능한 동작

safeTransferFrom
토큰이 있는 모든 사용자가 이 메소드를 호출하여 다른 사용자에게 전송할 수 있습니다.
매개변수:
  • from: string – 발신자의 전자 지갑 주소이며 0이 아니어야 합니다.
  • to: string – 수신기의 전자 지갑 주소이며 0이 아니어야 합니다.
  • id: uint256 – 전송할 토큰의 ID입니다.
  • value: uint256 – 전송할 토큰 수량입니다.
  • data: bytes – 바이트 형식의 추가 데이터입니다.
safeBatchTransferFrom
토큰이 있는 모든 사용자가 이 메소드를 호출하여 배치로 다른 사용자에게 전송할 수 있습니다.
매개변수:
  • from: string – 발신자의 전자 지갑 주소이며 0이 아니어야 합니다.
  • to: string – 수신기의 전자 지갑 주소이며 0이 아니어야 합니다.
  • id: uint256[] – 전송할 토큰의 ID 목록입니다.
  • value: uint256[] – 전송할 토큰의 해당 수량 목록입니다.
  • data: bytes – 바이트 형식의 추가 데이터입니다.

토큰 동작 방법 - 위임 가능한 동작

setApprovalForAll
이 메소드는 작업자가 호출자의 토큰을 전송할 수 있는 권한을 부여하거나 취소하기 위해 토큰을 소유한 모든 사용자가 호출할 수 있습니다.
매개변수:
  • operator: string – 연산자의 전자 지갑 주소이며 0이 아니어야 합니다.
  • approved: bool – 운영자가 호출자의 토큰을 전송할 권한이 있는지 여부를 나타내는 플래그입니다.
isApprovedForAll
토큰을 소유한 모든 사용자가 이 메소드를 호출하여 지정된 사용자에게 호출자의 토큰을 전송할 수 있는 사용 권한이 있는지 여부를 확인할 수 있습니다.
매개변수:
  • account: string – 토큰 전송 작업에 대한 권한을 부여하거나 취소한 사용자의 주소입니다.
  • operator: string – 연산자의 전자 지갑 주소이며 0이 아니어야 합니다.
반환값:
  • 지정된 사용자에게 호출자의 토큰을 전송할 수 있는 운영자 권한이 있는지 여부를 나타내는 부울 값(true 또는 false)입니다.

토큰 동작 방법 - 일시 정지 가능한 동작

paused
이 방법은 계약이 일시 중지되었는지 여부를 확인합니다. 이 메소드는 모든 유저가 호출할 수 있습니다.
매개변수:
  • 없음
pause
이 방법은 계약을 일시 중지합니다. 이 메소드는 Token Admin에 의해서만 호출될 수 있습니다.
매개변수:
  • 없음
unpause
이 방법은 일시 중지된 계약을 시작합니다. 이 메소드는 Token Admin에 의해서만 호출될 수 있습니다.
매개변수:
  • 없음

토큰 동작 방법 - 잠금 가능 동작

lockNFT
이 방법은 NFT를 잠급니다. 이 메소드는 TOKEN_SYS_VAULT_ROLE 롤을 가진 사용자만 호출할 수 있습니다.
매개변수:
  • tokenId: uint256 – 잠글 토큰의 ID입니다.
isNFTLocked
이 방법은 NFT가 잠겨 있는지 여부를 확인합니다. 이 메소드는 TOKEN_SYS_VAULT_ROLE 롤을 가진 사용자 또는 Token Admin에 의해서만 호출될 수 있습니다.
매개변수:
  • tokenId: uint256 – 확인할 토큰의 ID입니다.
반환값:
  • NFT 잠김 여부를 나타내는 부울 값(true 또는 false)입니다.

컨텍스트 관리 방법

setContext
이 방법은 계정 계약에 대한 토큰 계약 주소를 설정합니다. 이 메소드는 Token Admin에 의해서만 호출될 수 있습니다.
매개변수:
  • tokenAddress: address – 배포된 토큰의 계약 주소이며 0이 아니어야 합니다.
getContext
이 방법은 계정 계약에 대한 토큰 계약 주소를 가져옵니다. 이 메소드는 모든 유저가 호출할 수 있습니다.
매개변수:
  • 없음
반품
  • 토큰 계약 주소
setGovernanceContext
이 방법은 계정 계약에 대한 거버넌스 수명 주기를 관리하는 데 사용할 거버넌스 계약을 설정합니다. 이 메소드는 Token Admin에 의해서만 호출될 수 있습니다.
매개변수:
  • uuid: string – 계약 배포 전 디지털 자산 Token Admin에서 설정한 고유 ID입니다.
  • governance: address – 배포된 거버넌스 계약의 계약 주소이며 0이 아니어야 합니다.
getGovernanceContext
이 메소드는 거버넌스 컨텍스트 세부정보를 가져옵니다. 이 메소드는 모든 유저가 호출할 수 있습니다.
매개변수:
  • 없음
반품
  • governanceContext 객체입니다.
반환 값 예제:
{
    "governanceUUID": "abc-def",
    "governance": "0x0000000",
	"deploymentActive": "true"
}
isDeploymentActive
이 메소드는 배포가 활성 상태인지 확인합니다. 이 메소드는 모든 유저가 호출할 수 있습니다.
매개변수:
  • 없음
반환값:
  • 배치가 활성 상태인지 여부를 나타내는 부울 값(true 또는 false)입니다.