Locus Wallet API
웹페이지와 지갑 연동
- Javascript
if (!window.locus) {
alert('Locus wallet is not installed.');
return;
}
const addr = await window.locus.request('connect').catch(err => {
console.error(err);
});
console.log(addr);
함수 사용
const params = {
assetType: 'asset1',
amount: '1000',
operator: '',
metaData: await window.locus.utils.ConvertStringToData(
'{"imageUrl":"https://foo/test.png"}'
)
};
const result = await window.locus.request('createAssetObject', params).catch(err => {
console.error(err);
});
console.log('createAssetObject result', result);
이벤트 리스너 등록
window.locus.on("accountChanged", (data) => {
console.log(`accountChanged! ${data.addr}`);
});
함수 목록
connect
대상 사이트와 지갑을 연결합니다.
입력
[없음]
출력
키 | 타입 | 설명 |
---|---|---|
- | string | 연결된 지갑 주소 |
getAccount
대상 사이트와 연결된 계정을 구합니다.
입력
[없음]
출력
키 | 타입 | 설명 |
---|---|---|
- | string | 계정 주소 |
getAccountDetail
계정의 상태를 조회합니다.
입력
[없음]
출력
키 | 타입 | 설명 |
---|---|---|
status | string | 계정 상태 (pending: 오픈어카운트가 완료되지 않은 상태, activated: 오픈어카운트가 완료된 상태) |
info | object | locus_getAccountDetail rpc 응답값 Locus JSON-RPC |
getBalance
계정이 보유한 코인량을 구합니다.
입력
키 | 타입 | 설명 |
---|---|---|
addr | string | 계정 주소 |
출력
키 | 타입 | 설명 |
---|---|---|
- | string | 보유한 코인량 |
getNodeUrl
선택된 네트워크의 RPC url을 구합니다.
입력
[없음]
출력
키 | 타입 | 설명 |
---|---|---|
- | string | RPC url |
sign
Normal private key로 문자열을 서명합니다.
입력
키 | 타입 | 설명 |
---|---|---|
input | string | 서명할 대상 |
출력
키 | 타입 | 설명 |
---|---|---|
- | string | 서명 결과 |
addNetwork
새로운 네트워크를 지갑에 등록합니다.
입력
키 | 타입 | 설명 |
---|---|---|
name | string | 이름 |
rpcUrl | string | RPC 호출 url |
currencySymbol | string | 기본 통화 |
explorerUrl | string | (선택) 익스플로어 url |
출력
키 | 타입 | 설명 |
---|---|---|
- | boolean | 성공 여부 |
transferCoin
코인을 다른 계정으로 보냅니다.
입력
키 | 타입 | 설명 |
---|---|---|
to | string | 받을 계정 주소 |
amount | string | 보낼 코 인 수량 |
출력
키 | 타입 | 설명 |
---|---|---|
Hash | base64 | |
Tx | string | |
Success | bool | 성공 여부 |
transferToken
토큰을 다른 계정으로 보냅니다.
입력
키 | 타입 | 설명 |
---|---|---|
contractAddr | string | 컨트랙트 주소 |
to | string | 받는 계정 주소 |
amount | string | 보낼 토큰 수량 |
decimal | int32 | 토큰 소수점 자릿수 |
출력
키 | 타입 | 설명 |
---|---|---|
Hash | base64 | |
Tx | string | 생성된 Tx |
Success | bool | 성공 여부 |
createContract
Contract를 생성합니다.
입력
키 | 타입 | 설명 |
---|---|---|
contractAccount | string | (선택) 생성할 컨트랙트 주소. 입력하지 않으면 새로운 주소로 생성 |
code | string | 소스의 binary code |
amount | string | 생성된 contract account에 deposite 해 놓을 코인 creator의 코인에서 차감된다. |
fuelLimit | uint32 | contract 생성에 소모할 fuel의 한계치 |
tokenAmounts | []{TokenID base32, AmountToken string} | contract에 전송할 token 정보 |
sysId | base32 | |
until | base32 | 생성 재시도할 최대 라운드 |
출력
키 | 타입 | 설명 |
---|---|---|
ContractAccount | base32 | 생성된 Contract 주소. 첫번째 call의 리턴값을 두번째 call의 인자로 넣으면 된다. |
Hash | base64 | |
Tx | string | 생성된 Tx |
Success | bool | 성공 여부 |
callContract
Contract 함수를 실행합니다.
입력
키 | 타입 | 설명 |
---|---|---|
contractAccount | string | 스마트 컨트랙트 주소 |
func | string | 함수명 |
argData | string | 매개 변수 |
abi | string | 실행할 함수의 abi json 문자열 |
funcStr | string | (선택) 지갑에 표시하기위한 함수명 |
funcArgs | []string | (선택) 지갑에 표시하기위한 매개변수 |
출력
키 | 타입 | 설명 |
---|---|---|
Hash | base64 | |
Tx | string | 생성된 Tx |
Success | bool | 성공 여부 |
viewContract
스마트 컨트랙트의 데이터를 읽기 위한 함수를 호출합니다.
입력
키 | 타입 | 설명 |
---|---|---|
contractAccount | string | 스마트 컨트랙트 주소 |
func | string | 함수명 |
argData | string | 매개 변수 |
출력
키 | 타입 | 설명 |
---|---|---|
Result | base64 | 호출한 결과 값 |
Err | string | 오류 발생 시 내용 |
createAssetObject
AssetObject 를 생성 한다.
입력
키 | 타입 | 설명 |
---|---|---|
assetType | string | 생성할 객체의 형식 |
amount | string | 생성할 수량 , 0 으로 설정시 수량이 없는 단일 Object 로 생성 |
operator | string | 관리 계정 (Contract 주소) |
metaData | base64 | 사용자 지정하는 형식의 정보 데이타 |
출력
키 | 타입 | 설명 |
---|---|---|
Tx | object | 생성된 Tx |
transferAssetObject
AssetObject 를 전송한다.
입력
키 | 타입 | 설명 |
---|---|---|
to | base32 | Asset 객체를 받을 계정 |
assetId | base64 | Asset 의 고유 ID |
amount | string | 수량 |
출력
키 | 타입 | 설명 |
---|---|---|
Tx | object | 생성된 Tx |
getAccountAssetList
계정의 Asset 목록을 조회하여 AssetId 별로 Object ID 와 수량을 조회 한다.
입력
키 | 타입 | 설명 |
---|---|---|
count | number | 가져올 갯수 제한치, 0 이면 전부 |
출력
키 | 타입 | 설명 |
---|---|---|
AssetList | string | 보유한 객체 정보 배열 (통합수량, ObjectId 배열) []{Amount, []Digest} |
getAccountAssetObject
계정에서 지정한 AssetId 에 해당하는 AssetObject 들을 출력 한다.
입력
키 | 타입 | 설명 |
---|---|---|
AssetId | []base64 | Asset 의 고유 ID의 배열 |
출력
키 | 타입 | 설명 |
---|---|---|
Objects | []AssetObject | 보유한 객체 정보 |
AssetObject
키 | 타입 | 설명 |
---|---|---|
Version | number | 이 객체구조의 버전 |
Type | string | 객체 타입명 |
AssetId | string | 객체 타입에 대한 고유 ID |
ObjectId | string | 객체의 고유 ID |
Amount | string | 수량 (수량이 0 이면 객체 자체가 단 1 개만 존재) |
Operator | string | 객체 생성 또는 관리시 연계할 주소 (컨트랙트 연동 주소) |
MetaData | base64 | 이 객체에 대한 기타 정보들 (사용자 정의) |
Hash | string | 객체의 유효함을 확인하기 위한 Hash |
이벤트 목록
init
지갑이 정상적으로 설치되어 사용이 가능한 상태일때 한번 발생합니다.
출력
키 | 타입 | 설명 |
---|---|---|
addr | string | 현재 선택된 계정 주소 |
connected | boolean | 계정이 사이트에 연결됬는지 여부 |
extensionId | string | 지갑의 익스텐션 ID |
network | network | 선택된 네트워크 정보 |
network
키 | 타입 | 설명 |
---|---|---|
id | string | 네트워크 ID |
name | string | 네트워크명 |
rpcUrl | string | RPC URL |
currencySymbol | string | 통화 기호 |
explorerUrl | string | 익스플로어 url |
connectionChanged
대상 사이트에 연결된 계정이 감지되거나 변경되었을 때 발생합니다.
출력
키 | 타입 | 설명 |
---|---|---|
addr | string | 연결된 계정 주소 |
connected
대상 사이트에 지갑이 연결 되었을 때 발생합니다.
출력
키 | 타입 | 설명 |
---|---|---|
addr | string | 연결된 계정 주소 |
disconnected
대상 사이트에 연결된 계정이 없을때 발생합니다.
출력
키 | 타입 | 설명 |
---|---|---|
addr | string | 해제된 계정 주소 |
accountChanged
계정이 변경 되었을 때 발생합니다.
출력
키 | 타입 | 설명 |
---|---|---|
addr | string | 계정 주소 |
networkChanged
네트워크가 변경 되었을 때 발생합니다.
출력
키 | 타입 | 설명 |
---|---|---|
id | string | 등록된 네트워크의 네트워크 ID |
name | string | 등록된 네트워크의 이름 |
rpcUrl | string | 등록된 네트워크의 RPC 호출 url |
currencySymbol | string | 등록된 네트워크의 기본 통화 기호 |
explorerUrl | string | 등록된 네트워크의 익스플로어 url |
lockWallet
지갑에서 로그아웃 했을 때 발생합니다.
출력
[없음]
unlockWallet
지갑에 로그인 했을 때 발생합니다.
출력
키 | 타입 | 설명 |
---|---|---|
addr | string | 로그인한 계정 주소 |
acceptConfirmation
지갑 확인 창에서 수락 했을 때 발생합니다.
출력
키 | 타입 | 설명 |
---|---|---|
uuid | string | 요청 유니크키 |
data | string | 실행 결과 |
rejectConfirmation
지갑 확인 창에서 거부 했을 때 발생합니다.
출력
키 | 타입 | 설명 |
---|---|---|
uuid | string | 요청 Unique Key |
code | string | 0: 일반 1: 사용자에 의한 거부 |
message | string | 에러 메세지 |
rejectAllConfirmations
지갑 확인 창에서 모든 요청을 거부 했을 때 발생합니다.
출력
키 | 타입 | 설명 |
---|---|---|
- | []result | 요청 거부 목록 |
result
키 | 타입 | 설명 |
---|---|---|
uuid | string | 요청 Unique Key |
code | string | 0: 일반 1: 사용자에 의한 거부 |
message | string | 에러 메세지 |