1.0.0 • Published 2 years ago

klip-sdk-global v1.0.0

Weekly downloads
-
License
MIT
Repository
-
Last release
2 years ago

Klip A2A JavaScript SDK

App2App SDK allows you to easily integrate Klip to your applications. For more detailed explanation and usage, please refer to Klip Docs.

(- If you have any questions, you can visit the Developer Forum for help.)

How to install

When using npm (node 10 or higher recommended)

Install using the npm install klip-sdk-global or yarn add klip-sdk-global command. It should be imported as an ES module as shown below

import {prepare, request, getResult, getCardList} from 'klip-sdk-global';

When downloading the file directly

Download Klip JavaScript SDK in the Download tab. Place the file in the repository and insert a script tag in the HTML file as shown below:

<script src="./lib/klipSDKGlobal-1.0.0.min.js"></script>

Access each method using the klipSDKGlobal variable declared in the global namespace.

klipGlobal.prepare(...)
klipGlobal.request(...)
klipGlobal.getResult(...)
klipGlobal.getCardList(...)

API

Overview

App2App API requests are made in the order: prepare, request, and getResult.

  • prepare is the step in which requests (from of a total of five) are defined
  • request is the step in which the function is called and the signing takes place on Klip
  • getResult is the step in which the result is returned from the function call

In addition, getCardList is a function for the convenience of BApp developers that returns a list of NFTs of Klip users. If you need help with this document or Klip in general, please visit our Developer Forum.

prepare

Prepares a App2App API request and obtains a request key.

prepare.auth

Obtains user information.

Parameters

NameTypeDescription
bappNamestringThe name of the BApp displayed to users
successLinkstring(optional) The return link after obtaining user consent
failLinkstring(optional) The return link in case of a problem while obtaining user consent

Example

const bappName = 'my app';
const successLink = 'myApp://...';
const failLink = 'myApp://...';
const res = await prepare.auth({bappName, successLink, failLink});
if (res.err) {
  // Handle error
} else if (res.request_key) {
  // Store request_key
}

prepare.sendKLAY

A request to send a user's KLAY to a certain address.

Parameters

NameTypeDescription
bappNamestringThe name of the BApp displayed to users
tostringThe address of the recipient
amountstringThe amount of KLAY to send (Unit: KLAY, up to the 6th decimal place)
fromstring(optional) To check if the Klip account address matches with the from address
successLinkstring(optional) The return link after obtaining user consent
failLinkstringoptional) The return link in case of a problem while obtaining user consent

Example

cconst bappName = 'my app'
const from = '0xB21F0285d27beb2373EC...'
const to = '0xD8b1dC332...'
const amount = '13.2'
const successLink = 'myApp://...'
const failLink = 'myApp://...'
const res = await prepare.sendKLAY({ bappName, from, to, amount, successLink, failLink })
if (res.err) {
  // Handle error
} else if (res.request_key) {
  // Store request_key
}

prepare.sendToken

A request to send a user's tokens to a certain address.

Parameters

NameTypeDescription
bappNamestring유저에게 표시될 BApp의 이름
tostring받는 사람의 주소
amountstring보낼 토큰 수량 (단위: 토큰의 default 단위, 소수점 최대 6자리 허용)
contractstring토큰 컨트랙트 주소
fromstring유저의 클립 계정 주소가 from 주소와 일치하는 경우만 진행 (optional)
successLinkstring유저 동의과정 완료 후 돌아올 링크 (optional)
failLinkstring유저 동의과정에서 문제가 발생 할 경우 돌아올 링크 (optional)

Example

const bappName = 'my app';
const from = '0xB21F0285d27beb2373EC...';
const to = '0xD8b1dC332...';
const amount = '10.123';
const contract = '0x813FB7677BbBAA...';
const successLink = 'myApp://...';
const failLink = 'myApp://...';
const res = await prepare.sendToken({
  bappName,
  from,
  to,
  amount,
  contract,
  successLink,
  failLink
});
if (res.err) {
  // 에러 처리
} else if (res.request_key) {
  // request_key 보관
}

prepare.sendCard

A request to send a user's NFT to a certain address.

Parameters

NameTypeDescription
bappNamestringThe name of the BApp displayed to users
tostringThe address of the recipient
idstringID of the NFT
contractstringThe address of the NFT contract
fromstring(optional) To check if the Klip account address matches with the from address
successLinkstring(optional) The return link after obtaining user consent
failLinkstring(optional) The return link in case of a problem while obtaining user consent

Example

const res = await prepare.sendCard({
  bappName,
  from,
  to,
  id,
  contract,
  successLink,
  failLink
});
if (res.err) {
  setErrorMsg(res.err);
} else {
  setRequestKey(res.request_key);
}

prepare.executeContract

A request for the user to execute the functino of a certain contract.

Parameters

NameTypeDescription
bappNamestringThe name of the BApp displayed to users
tostringThe address of the contract
valuestringAmount of KLAY to be sent during contract execution (unit: peb)
abistringABI of the function to execute
paramsstringList of parameters of the function to execute
fromstring(optional) To check if the Klip account address matches with the from address
successLinkstring(optional) The return link after obtaining user consent
failLinkstring(optional) The return link in case of a problem while obtaining user consent

Example

const bappName = 'my app';
const from = '0xB21F0285d27beb2373EC...';
const to = '0xD8b1dC332...';
const value = '800000000';
const abi =
  '{"constant":false,"inputs":[{"name":"tokenId","type":"uint256"}],"name":"buyCard","outputs":[],"payable":true,"stateMutability":"payable","type":"function"}';
const params = '["2829"]';
const successLink = 'myApp://...';
const failLink = 'myApp://...';
const res = await prepare.executeContract({
  bappName,
  from,
  to,
  value,
  abi,
  params,
  successLink,
  failLink
});
if (res.err) {
  // Handle error
} else if (res.request_key) {
  // Store request_key
}

Klip request

Request authentification or signature using deep link. If the device doesn't have Klip installed, it redirects automatically to the download page on Google Play. You need to pass the request key obtained during the prepare step as a parameter. To implement the request step using QR code, please refer to QR Code Tutorial.

Parameters

NameTypeDescription
requestKeyStringRequest number
onUnsupportedEnvironmentFunction(optional) The callback function to execute in a non-mobile environment

Example

request('b37f873d-32ce-4d5d-b72e-08d528e7fb8e', () =>
  alert('Please execute in a mobile environment')
);

getResult

Returns the response of an App2App API request.

Parameters

NameTypeDescription
requestKeyStringRequest number

Example

getResult('b37f873d-32ce-4d5d-b72e-08d528e7fb8e');

getCardList

Returns a list of a user's Cards (NFTs). You have to know the contract address of the NFTs that you want to return. It must be a contract supported on Klip.

Parameters

NameTypeDescription
contractStringThe contract address of the Cards to retrieve
eoaStringAddress of the user to retrieve
cursorString(optional) The pointer after which the next request will retrieve the next 100 items if the number of Cards exceeds 100

Example

const contract = '0xB21F0285d27beb2373EC...';
const eoa = '0xD8b1dC332...';
const cursor = '';
getCardList({contract, eoa, cursor});

Error Code

Http StatusError CodeDescription
--Same as Klip REST API Error Code

Example Code

For a simple example code, please refer to the download page.

Directory Structure

project
├── dist/
│   ├── KlipGlobal.js
│   ├── KlipGlobal-1.0.0.min.js
│── src/
│   ├── config.js
│   ├── index.js
│   ├── web2app-standalone-1.0.15.js
├── example_react/
├── example_vanilla/
├── rollup.config.js
...
  • /dist : built file
  • /src : source
  • /example_react: React example code
  • /example_vanilla: Vanilla JS example code
  • rollup.config.js : rollup config file

License

MIT