ERC-20 토큰 계약 API

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

토큰 구성 방법

__ERC20Token_init
이 메소드는 토큰 계약이 배포될 때 호출됩니다. 이 메소드는 Token Admin에 의해서만 호출될 수 있습니다.
매개변수:
  • name: string – 토큰의 이름입니다.
  • symbol: string – 토큰의 기호입니다.
initializeERC20Token
이 방법은 ERC-20 토큰을 초기화합니다. 이 메소드는 Token Admin에 의해서만 호출될 수 있습니다.
매개변수:
  • token: ERC20Token – 다음 예와 같이 ERC-20 토큰을 정의하는 구조입니다.
    {
        "tokenId": "WCBDC-100",
        "tokenName": "wholesale cbdc",
        "tokenDesc": "this is wcbdc contract",
        "tokenStandard": "ttf+",
        "tokenType": "fungible",
        "tokenUnit": "fractional",
        "behaviors": ["mintable", "burnable", "transferable", "roles", "holdable", "pausable"],
        "decimals": 2,
        "mintable": { "maxMintQuantity": 1000000, "mintApprovalRequired": false },
        "burnable": { "burnApprovalRequired": false }
    }
getToken
이 메서드는 ERC-20 토큰을 가져옵니다. 이 메소드는 Token Admin, Token Auditor, Org Admin 또는 Org Auditor를 통해서만 호출할 수 있습니다.
매개변수:
  • 없음
반환 값 예제:
{
    "tokenId": "WCBDC-100",
    "tokenName": "wholesale cbdc",
    "tokenDesc": "this is wcbdc contract",
    "tokenStandard": "ttf+",
    "tokenType": "fungible",
    "tokenUnit": "fractional",
    "behaviors": ["mintable", "burnable", "transferable", "roles", "holdable", "pausable"],
    "decimals": 2,
    "mintable": { "maxMintQuantity": 1000000, "mintApprovalRequired": false },
    "burnable": { "burnApprovalRequired": false }
}
decimals
이 메소드는 토큰에 대해 구성된 소수 자릿수를 반환합니다. 이 메소드는 Token Admin, Token Auditor, Org Admin 또는 Org Auditor를 통해서만 호출할 수 있습니다.
매개변수:
  • 없음
반환값:
  • 소수 자릿수를 나타내는 uint8 값입니다.
cap
이 메소드는 ERC-20 토큰에 대한 상한값(최대 총 공급)을 반환합니다. 이 메소드는 Token Admin, Token Auditor, Org Admin 또는 Org Auditor를 통해서만 호출할 수 있습니다.
매개변수:
  • 없음
반환값:
  • 상한값을 나타내는 uint256 값
balanceOf
이 메소드는 지정된 사용자에 대한 현재 토큰 잔액을 반환합니다. 이 메소드는 지정된 조직의 Token Admin 또는 Token Auditor 또는 Org Admin 또는 Org Auditor에 의해서만 호출될 수 있습니다.
매개변수:
  • userAddress: string – 사용자의 전자 지갑 주소이며 0이 아니어야 합니다.
반환값:
  • 현재 잔액을 나타내는 uint256 값입니다.

토큰 동작 방법 - 작동 방식

mint
이 메서드는 ERC-20 토큰을 민트합니다. 이 메소드는 minter 롤을 가진 모든 사용자가 호출할 수 있습니다.
매개변수:
  • to: string – 토큰이 주조되고 있는 사용자의 전자 지갑 주소이며 0이 아니어야 합니다.
  • value: uint256 – 민트에 대한 토큰의 수량입니다.
requestMint
이 메소드는 minter 롤을 가진 모든 사용자가 호출하여 지정된 양의 토큰을 만들기 위해 공증인에게 요청을 보낼 수 있습니다.
매개변수:
  • notary: string – 공증 사용자의 전자 지갑 주소이며 0이 아니어야 합니다.
  • amount: uint256 – 민트에 대한 토큰의 수량입니다.
  • expiration: uint256 – epoch 형식의 요청 만료 시간입니다.
  • opId: string – 요청의 작업 ID입니다.
  • info_details: JSON – 요청의 범주(category) 및 설명(description)을 지정하는 객체입니다.

    Visual Studio Code와 CLI 또는 Postman 컬렉션을 사용하는 경우 info_details 매개변수를 다른 형식으로 지정합니다.

    Visual Studio 코드: { "category": "category value", "description": "description value" }

    CLI/Postman: "{\"category\":\"category value\",\"description\":\"description value\"}"

approveMint
이 메소드는 공증인 역할의 승인자가 ERC-20 토큰에 대한 민트 요청을 승인하기 위해 호출할 수 있습니다.
매개변수:
  • opId: string – 민트 요청의 작업 ID입니다.
rejectMint
공증 역할이 있는 승인자가 이 메소드를 호출하여 ERC-20 토큰에 대한 민트 요청을 거부할 수 있습니다.
매개변수:
  • opId: string – 민트 요청의 작업 ID입니다.

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

burn
이 방법은 ERC-20 토큰을 소모합니다. 이 메소드는 버너 롤을 가진 모든 사용자가 호출할 수 있습니다.
매개변수:
  • account: string – 토큰이 레코딩되는 사용자의 전자 지갑 주소이며 0이 아니어야 합니다.
  • value: uint256 – 레코딩할 토큰 수량입니다.
burnFrom
이 메서드는 위임된 수당을 가진 모든 사용자가 호출할 수 있습니다.
매개변수:
  • account: string – 토큰을 레코딩할 계정의 전자 지갑 주소이며 0이 아니어야 합니다.
  • value: uint256 – 레코딩할 토큰 수량입니다.
requestBurn
이 메서드는 버너 역할의 사용자가 ERC-20 토큰에 대한 레코딩 요청을 승인하기 위해 호출할 수 있습니다.
매개변수:
  • notary: string – 공증 사용자의 전자 지갑 주소이며 0이 아니어야 합니다.
  • amount: uint256 – 레코딩할 토큰 수량입니다.
  • expiration: uint256 – epoch 형식의 요청 만료 시간입니다.
  • opId: string – 요청의 작업 ID입니다.
  • info_details: JSON – 요청의 범주(category) 및 설명(description)을 지정하는 객체입니다.

    Visual Studio Code와 CLI 또는 Postman 컬렉션을 사용하는 경우 info_details 매개변수를 다른 형식으로 지정합니다.

    Visual Studio 코드: { "category": "category value", "description": "description value" }

    CLI/Postman: "{\"category\":\"category value\",\"description\":\"description value\"}"

approveBurn
이 메소드는 공증인 역할의 승인자가 ERC-20 토큰에 대한 레코딩 요청을 승인하기 위해 호출할 수 있습니다.
매개변수:
  • opId: string – 레코딩 요청의 작업 ID입니다.
rejectBurn
이 메서드는 공증 역할의 승인자가 ERC-20 토큰에 대한 레코딩 요청을 거부하기 위해 호출할 수 있습니다.
매개변수:
  • opId: string – 레코딩 요청의 작업 ID입니다.

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

transfer
토큰이 있는 모든 사용자가 이 메소드를 호출하여 다른 사용자에게 전송할 수 있습니다.
매개변수:
  • to: string – 수신기의 전자 지갑 주소이며 0이 아니어야 합니다.
  • value: uint256 – 전송할 토큰 수량입니다.
batchTransfer
토큰이 있는 모든 사용자가 이 메소드를 호출하여 배치로 다른 사용자에게 전송할 수 있습니다.
매개변수:
  • toList: string[] – 수신기의 전자 지갑 주소 목록입니다.
  • amounts: uint256[] – 전송할 토큰 수량 목록입니다.

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

allowance
이 메소드는 토큰을 소유한 모든 사용자가 토큰을 사용할 다른 사용자를 위임하기 위해 호출할 수 있습니다.
매개변수:
  • owner: string – 토큰 소유자의 전자 지갑 주소로, 0이 아니어야 합니다.
  • spender: string – 토큰 스펜더의 전자 지갑 주소로, 0이 아니어야 합니다.
반환값:
  • 지출하도록 위임된 토큰 양의 uint256 값입니다.
approve
이 메소드는 토큰을 소유한 모든 사용자가 호출하여 위임된 지출자가 지출할 수 있는 금액을 설정할 수 있습니다.
매개변수:
  • spender: string – 토큰 스펜더의 전자 지갑 주소로, 0이 아니어야 합니다.
  • value: uint256 – 지출이 허용되는 토큰의 양입니다.
transferFrom
이 메소드는 위임된 수당이 있는 사용자가 토큰을 다른 사용자에게 전송할 수 있도록 호출할 수 있습니다.
매개변수:
  • from: string – 발신자의 전자 지갑 주소이며 0이 아니어야 합니다.
  • to: string – 수신기의 전자 지갑 주소이며 0이 아니어야 합니다.
  • value: uint256 – 전송할 토큰 수량입니다.

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

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

토큰 동작 방법 - 보유 가능 동작

hold
토큰 전송을 요청하기 위해 토큰이 있는 모든 사용자가 이 메소드를 호출할 수 있습니다.
매개변수:
  • to: string – 수신기의 전자 지갑 주소이며 0이 아니어야 합니다.
  • notary: string – 공증 사용자의 전자 지갑 주소이며 0이 아니어야 합니다.
  • amount: uint256 – 전송할 토큰 수량입니다.
  • expiration: uint256 – epoch 형식의 요청 만료 시간입니다.
  • opId: string – 요청의 작업 ID입니다.
  • holdType: string – 보류 유형입니다. 예: transfer.
  • info_details: JSON – 요청의 범주(category) 및 설명(description)을 지정하는 객체입니다.

    Visual Studio Code와 CLI 또는 Postman 컬렉션을 사용하는 경우 info_details 매개변수를 다른 형식으로 지정합니다.

    Visual Studio 코드: { "category": "category value", "description": "description value" }

    CLI/Postman: "{\"category\":\"category value\",\"description\":\"description value\"}"

holdFrom
이 메소드는 다른 사용자의 전자 지갑 주소에서 토큰을 보유할 수 있는 권한이 있는 위임된 사용자에 의해 호출될 수 있습니다. 이 방법에는 위임 가능한 동작이 필요합니다.
매개변수:
  • fromAccount: string – 토큰이 보유될 사용자의 전자 지갑 주소로, 0이 아니어야 합니다.
  • toAccount: string – 수신기의 전자 지갑 주소이며 0이 아니어야 합니다.
  • notary: string – 공증 사용자의 전자 지갑 주소이며 0이 아니어야 합니다.
  • amount: uint256 – 전송할 토큰 수량입니다.
  • expiration: uint256 – epoch 형식의 요청 만료 시간입니다.
  • opId: string – 요청의 작업 ID입니다.
  • holdType: string – 보류 유형입니다. 예: transfer.
  • info_details: JSON – 요청의 범주(category) 및 설명(description)을 지정하는 객체입니다.

    Visual Studio Code와 CLI 또는 Postman 컬렉션을 사용하는 경우 info_details 매개변수를 다른 형식으로 지정합니다.

    Visual Studio 코드: { "category": "category value", "description": "description value" }

    CLI/Postman: "{\"category\":\"category value\",\"description\":\"description value\"}"

executeHold
공증 역할이 있는 승인자가 보류 요청을 승인하기 위해 이 방법을 호출할 수 있습니다.
매개변수:
  • amount: uint256 – 전송을 승인할 토큰의 수량입니다.
  • opId: string – 보류 요청의 작업 ID입니다.
releaseHold
공증 역할이 있는 승인자가 보류 요청을 거부하기 위해 이 방법을 호출할 수 있습니다.
매개변수:
  • opId: string – 보류 요청의 작업 ID입니다.
updateNotary
이 메소드는 공증인 역할이 있는 승인자가 호출하여 지정된 요청에 대한 공증인을 업데이트할 수 있습니다.
매개변수:
  • opId: string – 보류 요청의 작업 ID입니다.
  • newNotary: string – 새 공증 사용자의 전자 지갑 주소로, 0이 아니어야 합니다.
getOnHoldBalanceWithOperationId
이 방법은 지정된 작업 ID에 대한 보류 잔액을 가져옵니다. 이 메소드는 지정된 조직의 Token Admin 또는 Token Auditor, Org Admin 또는 Org Auditor 또는 트랜잭션 참가자(발신자, 수신자, 공증인)에 의해서만 호출될 수 있습니다.
매개변수:
  • opId: string – 보류 요청의 작업 ID입니다.
반환값:
  • 보류 잔액의 uint256 값입니다.
getOnHoldDetailsWithOperationId
이 메소드는 지정된 작업 ID에 대한 보류 세부정보를 가져옵니다. 이 메소드는 지정된 조직의 Token Admin 또는 Token Auditor, Org Admin 또는 Org Auditor 또는 트랜잭션 참가자(발신자, 수신자, 공증인)에 의해서만 호출될 수 있습니다.
매개변수:
  • opId: string – 보류 요청의 작업 ID입니다.
반환값:
  • 다음 정보가 포함된 hold 객체입니다.
    • to: address – 수신기의 전자 지갑 주소입니다.
    • notary: address – 공증인의 전자 지갑 주소입니다.
    • amount: uint256 – 전송할 토큰 수량입니다.
    • expiration: uint256 – epoch 형식의 요청 만료 시간입니다.
    • opId: string – 요청의 작업 ID입니다.
    • holdType: string – 보류 유형(예: transfer)입니다.
    • info: infoDetails – 요청의 범주(category) 및 설명(description)을 지정하는 객체입니다.
getAccountOnHoldBalance
이 방법은 지정된 계정에 대한 보류 잔액을 가져옵니다. 이 메소드는 지정된 조직의 Token Admin 또는 Token Auditor, Org Admin 또는 Org Auditor 또는 트랜잭션 참가자(발신자, 수신자, 공증인)에 의해서만 호출될 수 있습니다.
매개변수:
  • account: string – 확인할 계정의 전자 지갑 주소로, 0이 아니어야 합니다.
반환값:
  • 보류 잔액의 uint256 값입니다.

토큰 동작 방법 - 다중 레벨 승인 동작

createOrupdateAccountPolicy
이 메소드는 Token Admin 또는 Org Admin에서 호출하여 지정된 계정에 대한 정책을 생성하거나 업데이트할 수 있습니다.
매개변수:
  • accountPolicyId – 시스템에서 지정된 orgId 및 userId 필드에서 이 ID를 생성합니다. 이 필드는 수동으로 제공하지 않습니다.
  • orgId – 정책을 만들 사용자의 멤버쉽 서비스 공급자(MSP) ID입니다.
  • userId – 정책을 만들 사용자의 사용자 이름 또는 전자 메일 ID입니다.
  • kycCompliance – 계정이 KYC(Know Your Customer) 요구 사항을 충족하는지 여부를 나타내는 문자열 값(true 또는 false)입니다.
  • amlCompliance – 계정이 AML(금융 세탁 방지) 요구 사항을 충족하는지 여부를 나타내는 문자열 값(true 또는 false)입니다.
  • riskScore – 준수 평가에 사용되는 계정과 연관된 위험 점수입니다.
  • restrictionFlag – 계정에 제한된 전송이 적용되는지 여부를 나타내는 문자열 값(true 또는 false)입니다. true로 설정된 경우 직접 이전은 이전 제한 버켓 한도를 따르며 보류 이전은 최저 승인 정책 임계값을 따릅니다.
getAccountPolicyById
이 방법은 지정된 정책 ID에 대한 계정 정책 세부정보를 가져옵니다. 이 메소드는 계정 정책을 인출할 조직의 Token Admin 또는 Token Auditor, Org Admin 또는 Org Auditor에서 호출할 수 있습니다.
매개변수:
  • accountPolicyId: string – 고유한 계정 정책 ID입니다.
반환값:
  • accountPolicyId – 시스템에서 지정된 orgId 및 userId 필드에서 이 ID를 생성합니다. 이 필드는 수동으로 제공하지 않습니다.
  • orgId – 사용자의 멤버쉽 서비스 공급자(MSP) ID입니다.
  • userId – 사용자의 사용자 이름 또는 전자메일 ID입니다.
  • kycCompliance – 계정이 KYC(Know Your Customer) 요구 사항을 충족하는지 여부를 나타내는 문자열 값(true 또는 false)입니다.
  • amlCompliance – 계정이 AML(금융 세탁 방지) 요구 사항을 충족하는지 여부를 나타내는 문자열 값(true 또는 false)입니다.
  • riskScore – 준수 평가에 사용되는 계정과 연관된 위험 점수입니다.
  • restrictionFlag – 계정에 제한된 전송이 적용되는지 여부를 나타내는 문자열 값(true 또는 false)입니다. true로 설정된 경우 직접 이전은 이전 제한 버켓 한도를 따르며 보류 이전은 최저 승인 정책 임계값을 따릅니다.
getAccountPolicyById
이 방법은 지정된 사용자에 대한 계정 정책 세부정보를 가져옵니다. 이 메소드는 모든 유저가 호출할 수 있습니다.
매개변수:
  • who: address – 사용자의 전자 지갑 주소입니다.
반환값:
  • accountPolicyId 문자열입니다.
deleteAccountPolicyById
이 방법은 지정된 정책 ID에 대한 정책을 삭제합니다. 이 메소드는 계정 정책이 삭제될 사용자를 포함하는 조직의 Token Admin 또는 Org Admin에 의해 호출될 수 있습니다.
매개변수:
  • accountPolicyId – 고유한 계정 정책 ID입니다.
반환값:
  • accountPolicyId 문자열입니다.
createOrupdateApprovalPolicy
이 메소드는 Token Admin에 의해 호출될 수 있습니다.
매개변수:
  • approvalPolicyId – 시스템에서 이 ID를 생성합니다. 이 필드는 수동으로 제공하지 않습니다.
  • transactionLowerLimit – 승인 정책이 적용되는 최소 거래 금액입니다.
  • transactionUpperLimit – 승인 정책이 적용되는 최대 트랜잭션 금액입니다.
  • numberOfApprovalsRequired – 트랜잭션을 완료하기 전에 필요한 총 승인 수입니다.
  • approverDetails – 승인에 대한 필수 순서를 정의하는 지정된 승인 순서와 함께 승인자 목록입니다.
  • version – 승인 정책 버전. 새 정책을 생성할 때는 0을 사용합니다.
  • status – 활성 또는 비활성화
getApprovalPolicyById
이 방법은 지정된 정책 ID에 대한 승인 정책 세부정보를 가져옵니다. 이 메소드는 Token Admin 또는 Token Auditor에서 호출할 수 있습니다.
매개변수:
  • approvalPolicyId: string – 고유한 승인 정책 ID입니다.
반환값:
  • approvalPolicyId – 시스템에서 이 ID를 생성합니다.
  • transactionLowerLimit – 승인 정책이 적용되는 최소 거래 금액입니다.
  • transactionUpperLimit – 승인 정책이 적용되는 최대 트랜잭션 금액입니다.
  • numberOfApprovalsRequired – 트랜잭션을 완료하기 전에 필요한 총 승인 수입니다.
  • approverDetails – 승인에 대한 필수 순서를 정의하는 지정된 승인 순서와 함께 승인자 목록입니다.
  • version – 승인 정책 버전.
  • status – 활성 또는 비활성화
deleteApprovalPolicy
이 방법은 지정된 정책 ID에 대한 정책을 삭제합니다. 이 메소드는 Token Admin에 의해 호출될 수 있습니다.
매개변수:
  • approvalPolicyId: string – 고유한 승인 정책 ID입니다.
getApprovalTransactionsById
이 방법은 지정된 계정에 대한 보류 잔액을 가져옵니다. 이 메소드는 Token Admin, Token Auditor, Org Admin 또는 Org Auditor에 의해 호출될 수 있습니다.
매개변수:
  • opId: string – 보류 요청에 대한 작업 ID입니다.
반환값:
  • approvalTransactions 객체입니다.
반환 값 예제:
{
"approvalTransactionId": "",
"approvalPolicyId": "",
"approvalPolicyVersion": "",
"fromAccount": "",
"toAccount": "",
"totalApprovals": "",
"numberaOfApprovalsRequired": "",
"status": "",
"approverDetails": ""
}
getApprovalStatusByOperationId
이 방법은 지정된 보류 요청에 대한 승인 세부정보를 가져옵니다. 이 메소드는 Token Admin, Token Auditor, Org Admin 또는 Org Auditor에 의해 호출될 수 있습니다.
매개변수:
  • opId: string – 보류 요청에 대한 작업 ID입니다.
반환 값 예제:
{
"approvalWorkflowExists": "",
"activePolicyFound": "",
"receivedApprovals": "",
"requiredApprovals": "",
"approvalRequirementMet": "",
"nextApprovalSequence": "",
"nextApprover": "",
"workflowStatus": "",
"approvalPolicyId": "",
"approvalPolicyVersion": ""
}
approveTransaction
승인자는 이 방법을 사용하여 보류 트랜잭션을 승인할 수 있습니다.
매개변수:
  • opId: string – 보류 요청에 대한 작업 ID입니다.
  • amount: uint256 – 승인할 금액입니다.
rejectTransaction
공증인은 이 방법을 사용하여 보류 트랜잭션을 거부할 수 있습니다.
매개변수:
  • opId: string – 보류 요청에 대한 작업 ID입니다.
getTransferRestriction
이 방법은 하위 및 상위 트랜잭션 한도를 포함하여 현재 이전 제한 구성을 반환합니다. 이 메소드는 Token Admin 또는 Token Auditor에서 호출할 수 있습니다.
매개변수:
  • account: address – 보류 중인 잔액을 확인할 사용자의 전자 지갑 주소입니다. 주소는 0이 아니어야 합니다.
반환값:
  • transferRestriction 객체입니다.
반환 값 예제:
transactionLowerLimit: 0transactionUpperLimit: 100
setOrupdateTransferRestriction
이 방법은 새 하위 및 상위 트랜잭션 제한을 설정하여 이전 제한 구성을 업데이트합니다. 이 메소드는 Token Admin에 의해 호출될 수 있습니다.
매개변수:
  • transactionLowerLimit: uint256 – 허용되는 최소 트랜잭션 금액입니다.
  • transactionUpperLimit: uint256 – 허용되는 최대 트랜잭션 금액입니다.

컨텍스트 관리 방법

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