ERC-20 계정 계약 API

ERC-20 계정 계약에서 다음과 같은 ID 및 액세스 제어 방법을 사용할 수 있습니다.

계정 관리 방법

createAccount
이 방법은 지정된 사용자의 계정을 만듭니다. 언제든지 토큰을 가질 사용자에 대해 계정을 생성해야 합니다. 계정은 잔액 및 보류 중인 잔액을 추적합니다. 이 메소드는 Token Admin 또는 지정된 조직의 Org Admin에 의해서만 호출될 수 있습니다.
매개변수:
  • userId: string – 사용자의 사용자 이름 또는 전자메일 ID입니다. 사용자 ID가 빈 문자열이 아니어야 합니다.
  • orgId: string – 현재 조직에 있는 사용자의 멤버쉽 서비스 공급자(MSP) ID입니다. 조직 ID는 빈 문자열이 아니어야 합니다.
  • userAddress: string – 사용자의 전자 지갑 주소이며 0이 아니어야 합니다.
  • maxDailyAmount: int256 – 매일 트랜잭션에 사용할 수 있는 최대 토큰 양입니다. 값이 -1이면 제한이 없습니다.
  • maxDailyTransactions: int256 – 매일 완료할 수 있는 최대 트랜잭션 수입니다. 값이 -1이면 제한이 없습니다.
  • applicationGroups: string[] – 사용자가 속한 응용 프로그램 그룹 목록입니다.
deleteAccount
이 방법은 지정된 사용자의 계정을 삭제합니다. 이 메소드는 Token Admin 또는 지정된 조직의 Org Admin에 의해서만 호출될 수 있습니다.
매개변수:
  • userAddress: string – 사용자의 전자 지갑 주소이며 0이 아니어야 합니다.
getAccountStatus
이 방법은 지정된 사용자의 현재 계정 상태를 가져옵니다. 이 메소드는 Token Admin 또는 Token Auditor, 지정된 조직의 Org Admin 또는 토큰 계정 소유자가 호출할 수 있습니다.
매개변수:
  • userAddress: string – 사용자의 전자 지갑 주소이며 0이 아니어야 합니다.
반환값:
  • AccountStatus enum 객체의 값으로, 0, 1 또는 2입니다.
    enum AccountStatus {
    active,
    suspended,
    deleted
    }
getAccountByAddress
이 메소드는 지정된 사용자의 계정을 가져옵니다. 이 메소드는 Token Admin 또는 Token Auditor, 지정된 조직의 Org Admin 또는 토큰 계정 소유자가 호출할 수 있습니다.
매개변수:
  • userAddress: string – 사용자의 전자 지갑 주소이며 0이 아니어야 합니다.
반환 값 예제:
{
    "userId": "userA",
    "orgId": "orgA",
	"accountAddress": "0x0fbdc686b912d7722dc86510934589e0aaf3b55a",
    "dailyLimits": {
          "isMaxDailyTxnEnabled": true,
    	  "isMaxDailyAmtEnabled": true, 
		  "dailyAmount": 100,
    	  "dailyTransactions": 5,
		  "maxDailyAmount": 100000,
    	  "maxDailyTransactions": 50,
          "applicationGroups":[]                
    },
	"status":0
}
getAllAccounts
이 방법은 페이지 매김된 출력과 함께 모든 계정을 가져옵니다. 이 메소드는 Token Admin 또는 Token Auditor를 통해서만 호출할 수 있습니다.
매개변수:
  • offset: uint256 – 계정 정보 가져오기를 시작할 위치를 나타내는 오프셋 인덱스입니다.
  • limit: uint256 – 반환할 항목 수입니다.
반환값:
  • Return (UserAccount[] memory items, uint256 total, uint256 nextOffset)
반환 값 예제:
[{
    "userId": "userA",
    "orgId": "orgA",
	"accountAddress": "0x0fbdc686b912d7722dc86510934589e0aaf3b55a",
    "dailyLimits": {
          "isMaxDailyTxnEnabled": true,
    	  "isMaxDailyAmtEnabled": true, 
		  "dailyAmount": 100,
    	  "dailyTransactions": 5,
		  "maxDailyAmount": 100000,
    	  "maxDailyTransactions": 50,
		  "applicationGroups":[]           
	},
	"status":0
}]
total: 15
nextoffset: 6
activateAccount
이 메소드는 지정된 사용자의 계정을 활성화합니다. 이 메소드는 Token Admin 또는 지정된 조직의 Org Admin에 의해서만 호출될 수 있습니다.
매개변수:
  • userAddress: string – 사용자의 전자 지갑 주소이며 0이 아니어야 합니다.
suspendAccount
이 메소드는 지정된 사용자의 계정을 활성화합니다. 이 메소드는 Token Admin 또는 지정된 조직의 Org Admin에 의해서만 호출될 수 있습니다.
매개변수:
  • userAddress: string – 사용자의 전자 지갑 주소이며 0이 아니어야 합니다.
setMaxDailyAmount
이 방법은 지정된 사용자가 매일 트랜잭션에 사용할 수 있는 최대 토큰 수를 설정합니다. 이 메소드는 Token Admin 또는 지정된 조직의 Org Admin에 의해서만 호출될 수 있습니다.
매개변수:
  • value: int256 – 매일 트랜잭션에 사용할 수 있는 최대 토큰 양입니다.
  • userAddress: string – 사용자의 전자 지갑 주소이며 0이 아니어야 합니다.
setMaxDailyTransactionCount
이 메소드는 지정된 사용자가 매일 완료할 수 있는 최대 트랜잭션 수를 설정합니다. 이 메소드는 Token Admin 또는 지정된 조직의 Org Admin에 의해서만 호출될 수 있습니다.
매개변수:
  • count: int256 – 매일 완료할 수 있는 최대 트랜잭션 수입니다.
  • userAddress: string – 사용자의 전자 지갑 주소이며 0이 아니어야 합니다.

관리 방법

addTokenAdmin
이 메소드는 Token Admin를 추가합니다. 이 메소드는 Token Admin에 의해서만 호출될 수 있습니다.
매개변수:
  • adminDetails: object – 다음 예와 같이 사용자 ID, 조직 ID 및 전자 지갑 주소를 지정하는 객체입니다.
    {
        "userId": "tokenAdmin1",
        "orgId": "orgA",
    	"accountAddress": "0x0fbdc686b912d7722dc86510934589e0aaf3b55a"    
    }
removeTokenAdmin
이 방법은 Token Admin를 제거합니다. 이 메소드는 Token Admin에 의해서만 호출될 수 있습니다.
매개변수:
  • userAddress: string – 사용자의 전자 지갑 주소이며 0이 아니어야 합니다.
getAllTokenAdmins
이 방법은 모든 Token Admin 사용자에 대한 계정 정보를 가져옵니다. 이 메소드는 Token Admin 또는 Token Auditor에 의해서만 호출될 수 있습니다.
매개변수:
  • 없음
반환 값 예제:
[{
    "userId": "tokenadmin1",
    "orgId": "orgA",
	"accountAddress": "0x0fbdc686b912d7722dc86510934589e0aaf3b55a"
},
{
    "userId": "tokenadmin2",
    "orgId": "orgB",
	"accountAddress": "0xfe3b557e8fb62b89f4916b721be55ceb828dbd73"
}]
isTokenAdmin
이 메소드는 지정된 사용자가 Token Admin인지 여부를 확인합니다. 이 메소드는 Token Admin, Token Auditor, Org Admin 또는 Org Auditor를 통해서만 호출할 수 있습니다.
매개변수:
  • userAddress: string – 사용자의 전자 지갑 주소이며 0이 아니어야 합니다.
반환값:
  • 지정된 사용자가 Token Admin인지 여부를 나타내는 부울 값(true 또는 false)입니다.
addOrgAdmin
이 메소드는 Org Admin를 추가합니다. 이 메소드는 지정된 조직의 Token Admin 또는 Org Admin에 의해서만 호출될 수 있습니다.
매개변수:
  • adminDetails: object – 다음 예와 같이 사용자 ID, 조직 ID 및 전자 지갑 주소를 지정하는 객체입니다.
    {
        "userId": "tokenAdmin1",
        "orgId": "orgA",
    	"accountAddress": "0x0fbdc686b912d7722dc86510934589e0aaf3b55a"    
    }
removeOrgAdmin
이 방법은 Org Admin를 제거합니다. 이 메소드는 지정된 조직의 Token Admin 또는 Org Admin에 의해서만 호출될 수 있습니다.
매개변수:
  • userAddress: string – 사용자의 전자 지갑 주소이며 0이 아니어야 합니다.
getAllOrgAdmins
이 방법은 모든 Org Admin 사용자에 대한 계정 정보를 가져옵니다. 이 메소드는 Token Admin, Token Auditor, Org Admin 또는 Org Auditor를 통해서만 호출할 수 있습니다.
매개변수:
  • 없음
반환 값 예제:
[{
    "userId": "orgadmin1",
    "orgId": "orgA",
	"accountAddress": "0x0fbdc686b912d7722dc86510934589e0aaf3b55a"
},
{
    "userId": "orgadmin2",
    "orgId": "orgB",
	"accountAddress": "0xfe3b557e8fb62b89f4916b721be55ceb828dbd73"
}]
isOrgAdmin
이 메소드는 지정된 사용자가 Org Admin인지 여부를 확인합니다. 이 메소드는 Token Admin, Token Auditor, Org Admin 또는 Org Auditor를 통해서만 호출할 수 있습니다.
매개변수:
  • userAddress: string – 사용자의 전자 지갑 주소이며 0이 아니어야 합니다.
반환값:
  • 지정된 사용자가 Org Admin인지 여부를 나타내는 부울 값(true 또는 false)입니다.

감사자 관리 방법

addTokenAuditor
이 메소드는 Token Auditor를 추가합니다. 이 메소드는 Token Admin에 의해서만 호출될 수 있습니다.
매개변수:
  • auditorDetails: object – 다음 예와 같이 사용자 ID, 조직 ID 및 전자 지갑 주소를 지정하는 객체입니다.
    {
        "userId": "tokenAuditor1",
        "orgId": "orgA",
    	"accountAddress": "0x0fbdc686b912d7722dc86510934589e0aaf3b55a"    
    }
removeTokenAuditor
이 방법은 Token Auditor를 제거합니다. 이 메소드는 Token Admin에 의해서만 호출될 수 있습니다.
매개변수:
  • userAddress: string – 사용자의 전자 지갑 주소이며 0이 아니어야 합니다.
getAllTokenAuditors
이 방법은 모든 Token Auditor 사용자에 대한 계정 정보를 가져옵니다. 이 메소드는 Token Admin 또는 Token Auditor에 의해서만 호출될 수 있습니다.
매개변수:
  • 없음
반환 값 예제:
[{
    "userId": "tokenAuditor1",
    "orgId": "orgA",
	"accountAddress": "0x0fbdc686b912d7722dc86510934589e0aaf3b55a"
},
{
    "userId": "tokenAuditor2",
    "orgId": "orgB",
	"accountAddress": "0xfe3b557e8fb62b89f4916b721be55ceb828dbd73"
}]
isTokenAuditor
이 메소드는 지정된 사용자가 Token Auditor인지 여부를 확인합니다. 이 메소드는 모든 유저가 호출할 수 있습니다.
매개변수:
  • userAddress: string – 사용자의 전자 지갑 주소이며 0이 아니어야 합니다.
반환값:
  • 지정된 사용자가 Token Auditor인지 여부를 나타내는 부울 값(true 또는 false)입니다.
addOrgAuditor
이 메소드는 Org Auditor를 추가합니다. 이 메소드는 지정된 조직의 Token Admin 또는 Org Admin에 의해서만 호출될 수 있습니다.
매개변수:
  • adminDetails: object – 다음 예와 같이 사용자 ID, 조직 ID 및 전자 지갑 주소를 지정하는 객체입니다.
    {
        "userId": "tokenAuditor1",
        "orgId": "orgA",
    	"accountAddress": "0x0fbdc686b912d7722dc86510934589e0aaf3b55a"    
    }
removeOrgAuditor
이 방법은 Org Auditor를 제거합니다. 이 메소드는 지정된 조직의 Token Admin 또는 Org Admin에 의해서만 호출될 수 있습니다.
매개변수:
  • userAddress: string – 사용자의 전자 지갑 주소이며 0이 아니어야 합니다.
getAllOrgAuditors
이 방법은 모든 Org Auditor 사용자에 대한 계정 정보를 가져옵니다. 이 메소드는 Token Admin, Token Auditor, Org Admin 또는 Org Auditor를 통해서만 호출할 수 있습니다.
매개변수:
  • 없음
반환 값 예제:
[{
    "userId": "orgAuditor1",
    "orgId": "orgA",
	"accountAddress": "0x0fbdc686b912d7722dc86510934589e0aaf3b55a"
},
{
    "userId": "orgAuditor2",
    "orgId": "orgB",
	"accountAddress": "0xfe3b557e8fb62b89f4916b721be55ceb828dbd73"
}]
isOrgAuditor
이 메소드는 지정된 사용자가 Org Auditor인지 여부를 확인합니다. 이 메소드는 모든 유저가 호출할 수 있습니다.
매개변수:
  • userAddress: string – 사용자의 전자 지갑 주소이며 0이 아니어야 합니다.
반환값:
  • 지정된 사용자가 Org Auditor인지 여부를 나타내는 부울 값(true 또는 false)입니다.

역할 관리 방법

addRole
이 메소드는 지정된 사용자에게 롤을 추가합니다. 이 메소드는 지정된 조직의 Token Admin 또는 Org Admin에 의해서만 호출될 수 있습니다.
매개변수:
  • userAddress: string – 사용자의 전자 지갑 주소이며 0이 아니어야 합니다.
  • role: string – 지정된 사용자에 대해 추가할 역할의 이름(예: minter, burner 또는 notary)입니다.
removeRole
이 방법은 지정된 사용자로부터 역할을 제거합니다. 이 메소드는 지정된 조직의 Token Admin 또는 Org Admin에 의해서만 호출될 수 있습니다.
매개변수:
  • userAddress: string – 사용자의 전자 지갑 주소이며 0이 아니어야 합니다.
  • role: string – 지정된 사용자에 대해 제거할 롤의 이름(예: minter, burner 또는 notary)입니다.
isInRole
이 메소드는 사용자에게 지정된 롤이 있는지 여부를 확인합니다. 이 메소드는 모든 유저가 호출할 수 있습니다.
매개변수:
  • role: string – 지정된 사용자를 확인할 역할의 이름(예: minter, burner 또는 notary)입니다.
  • userAddress: string – 사용자의 전자 지갑 주소이며 0이 아니어야 합니다.
반환값:
  • 사용자에게 지정된 롤이 있는지 여부를 나타내는 부울 값(true 또는 false)입니다.
hasRole
이 메소드는 사용자에게 지정된 롤이 있는지 여부를 확인합니다. 이 메소드는 모든 유저가 호출할 수 있습니다.
매개변수:
  • account: string – 사용자의 전자 지갑 주소이며 0이 아니어야 합니다.
  • role: bytes32 – 지정된 사용자를 확인할 역할의 이름(예: minter, burner 또는 notary)입니다.
반환값:
  • 사용자에게 지정된 롤이 있는지 여부를 나타내는 부울 값(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)입니다.