본문으로 건너뛰기

Locus Wallet API

웹페이지와 지갑 연동

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

계정의 상태를 조회합니다.

입력

[없음]

출력

타입설명
statusstring계정 상태 (pending: 오픈어카운트가 완료되지 않은 상태, activated: 오픈어카운트가 완료된 상태)
infoobjectlocus_getAccountDetail rpc 응답값 Locus JSON-RPC

getBalance

계정이 보유한 코인량을 구합니다.

입력

타입설명
addrstring계정 주소

출력

타입설명
-string보유한 코인량

getNodeUrl

선택된 네트워크의 RPC url을 구합니다.

입력

[없음]

출력

타입설명
-stringRPC url

sign

Normal private key로 문자열을 서명합니다.

입력

타입설명
inputstring서명할 대상

출력

타입설명
-string서명 결과

addNetwork

새로운 네트워크를 지갑에 등록합니다.

입력

타입설명
namestring이름
rpcUrlstringRPC 호출 url
currencySymbolstring기본 통화
explorerUrlstring(선택) 익스플로어 url

출력

타입설명
-boolean성공 여부

transferCoin

코인을 다른 계정으로 보냅니다.

입력

타입설명
tostring받을 계정 주소
amountstring보낼 코인 수량

출력

타입설명
Hashbase64
Txstring
Successbool성공 여부

transferToken

토큰을 다른 계정으로 보냅니다.

입력

타입설명
contractAddrstring컨트랙트 주소
tostring받는 계정 주소
amountstring보낼 토큰 수량
decimalint32토큰 소수점 자릿수

출력

타입설명
Hashbase64
Txstring생성된 Tx
Successbool성공 여부

createContract

Contract를 생성합니다.

입력

타입설명
contractAccountstring(선택) 생성할 컨트랙트 주소. 입력하지 않으면 새로운 주소로 생성
codestring소스의 binary code
amountstring생성된 contract account에 deposite 해 놓을 코인
creator의 코인에서 차감된다.
fuelLimituint32contract 생성에 소모할 fuel의 한계치
tokenAmounts[]{TokenID base32, AmountToken string}contract에 전송할 token 정보
sysIdbase32
untilbase32생성 재시도할 최대 라운드

출력

타입설명
ContractAccountbase32생성된 Contract 주소.
첫번째 call의 리턴값을 두번째 call의 인자로 넣으면 된다.
Hashbase64
Txstring생성된 Tx
Successbool성공 여부

callContract

Contract 함수를 실행합니다.

입력

타입설명
contractAccountstring스마트 컨트랙트 주소
funcstring함수명
argDatastring매개 변수
abistring실행할 함수의 abi json 문자열
funcStrstring(선택) 지갑에 표시하기위한 함수명
funcArgs[]string(선택) 지갑에 표시하기위한 매개변수

출력

타입설명
Hashbase64
Txstring생성된 Tx
Successbool성공 여부

viewContract

스마트 컨트랙트의 데이터를 읽기 위한 함수를 호출합니다.

입력

타입설명
contractAccountstring스마트 컨트랙트 주소
funcstring함수명
argDatastring매개 변수

출력

타입설명
Resultbase64호출한 결과 값
Errstring오류 발생 시 내용

createAssetObject

AssetObject 를 생성 한다.

입력

타입설명
assetTypestring생성할 객체의 형식
amountstring생성할 수량 , 0 으로 설정시 수량이 없는 단일 Object 로 생성
operatorstring관리 계정 (Contract 주소)
metaDatabase64사용자 지정하는 형식의 정보 데이타

출력

타입설명
Txobject생성된 Tx

transferAssetObject

AssetObject 를 전송한다.

입력

타입설명
tobase32Asset 객체를 받을 계정
assetIdbase64Asset 의 고유 ID
amountstring수량

출력

타입설명
Txobject생성된 Tx

getAccountAssetList

계정의 Asset 목록을 조회하여 AssetId 별로 Object ID 와 수량을 조회 한다.

입력

타입설명
countnumber가져올 갯수 제한치, 0 이면 전부

출력

타입설명
AssetListstring보유한 객체 정보 배열
(통합수량, ObjectId 배열)
[]{Amount, []Digest}

getAccountAssetObject

계정에서 지정한 AssetId 에 해당하는 AssetObject 들을 출력 한다.

입력

타입설명
AssetId[]base64Asset 의 고유 ID의 배열

출력

타입설명
Objects[]AssetObject보유한 객체 정보

AssetObject

타입설명
Versionnumber이 객체구조의 버전
Typestring객체 타입명
AssetIdstring객체 타입에 대한 고유 ID
ObjectIdstring객체의 고유 ID
Amountstring수량 (수량이 0 이면 객체 자체가 단 1 개만 존재)
Operatorstring객체 생성 또는 관리시 연계할 주소 (컨트랙트 연동 주소)
MetaDatabase64이 객체에 대한 기타 정보들 (사용자 정의)
Hashstring객체의 유효함을 확인하기 위한 Hash

이벤트 목록


init

지갑이 정상적으로 설치되어 사용이 가능한 상태일때 한번 발생합니다.

출력

타입설명
addrstring현재 선택된 계정 주소
connectedboolean계정이 사이트에 연결됬는지 여부
extensionIdstring지갑의 익스텐션 ID
networknetwork선택된 네트워크 정보

network

타입설명
idstring네트워크 ID
namestring네트워크명
rpcUrlstringRPC URL
currencySymbolstring통화 기호
explorerUrlstring익스플로어 url

connectionChanged

대상 사이트에 연결된 계정이 감지되거나 변경되었을 때 발생합니다.

출력

타입설명
addrstring연결된 계정 주소

connected

대상 사이트에 지갑이 연결 되었을 때 발생합니다.

출력

타입설명
addrstring연결된 계정 주소

disconnected

대상 사이트에 연결된 계정이 없을때 발생합니다.

출력

타입설명
addrstring해제된 계정 주소

accountChanged

계정이 변경 되었을 때 발생합니다.

출력

타입설명
addrstring계정 주소

networkChanged

네트워크가 변경 되었을 때 발생합니다.

출력

타입설명
idstring등록된 네트워크의 네트워크 ID
namestring등록된 네트워크의 이름
rpcUrlstring등록된 네트워크의 RPC 호출 url
currencySymbolstring등록된 네트워크의 기본 통화 기호
explorerUrlstring등록된 네트워크의 익스플로어 url

lockWallet

지갑에서 로그아웃 했을 때 발생합니다.

출력

[없음]


unlockWallet

지갑에 로그인 했을 때 발생합니다.

출력

타입설명
addrstring로그인한 계정 주소

acceptConfirmation

지갑 확인 창에서 수락 했을 때 발생합니다.

출력

타입설명
uuidstring요청 유니크키
datastring실행 결과

rejectConfirmation

지갑 확인 창에서 거부 했을 때 발생합니다.

출력

타입설명
uuidstring요청 Unique Key
codestring0: 일반
1: 사용자에 의한 거부
messagestring에러 메세지

rejectAllConfirmations

지갑 확인 창에서 모든 요청을 거부 했을 때 발생합니다.

출력

타입설명
-[]result요청 거부 목록

result

타입설명
uuidstring요청 Unique Key
codestring0: 일반
1: 사용자에 의한 거부
messagestring에러 메세지