@linenext/dapp-portal-sdk
Version:
Dapp Portal SDK
58 lines (49 loc) • 2.07 kB
Markdown
# Dapp Portal SDK
## Quick start
### 프로젝트 생성
전달받은 clientId를 준비합니다. SDK는 사전에 협의된 Host주소에서만 작동됩니다.
### SDK 설치
다음 명령어를 입력하여 프로젝트에 Dapp portal SDK를 추가합니다.
```bash
npm install @linenext/dapp-portal-sdk
```
또는
```bash
yarn add @linenext/dapp-portal-sdk
```
### Transaction 서명
프로젝트 생성단계에서 확인한 `clientId`를 사용하여 SDK를 초기화하고, `WalletProvider`를 얻어옵니다.
```typescript
import DappPortalSDK from '@linenext/dapp-portal-sdk'
const sdk = await DappPortalSDK.init({ clientId: '<CLIENT_ID>' });
const provider = sdk.getWalletProvider()
```
testnet을 사용하고 싶다면 SDK를 다음과 같이 초기화합니다.
```typescript
const sdk = await DappPortalSDK.init({
clientId: '<CLIENT_ID>',
chainId: '1001',
});
```
지갑에 `kaia_requestAccounts` 요청을 보내 연결되어있는 지갑의 주소를 확인합니다. 이 과정에서 지갑의 종류를 선택하고 연결여부를 확인하는 화면이 사용자에게 보여집니다.
```typescript
const accounts = await provider.request({ method: 'kaia_requestAccounts' });
const accountAddress = accounts[0]
```
사용자의 서명이 필요한 Teansaction을 만들어줍니다. 이때 from에 들어가는 주소는 전 단계에서 받아온 지갑의 주소와 일치해야 합니다.
```typescript
const tx = {
from: accountAddress,
to: '0xBBBBBBBBBBBB',
value: '10',
gas: '21000',
};
```
지갑에 kaia_sendTransaction 요청합니다. 이 과정에서 사용자에게 서명하는 Transaction에 대한 내용을 확인하는 팝업이 열립니다. 성공했을경우 Tx hash를 반환합니다.
```typescript
const txHash = await provider.request({method: 'kaia_sendTransaction', params: [tx]});
```
## 호환되는 Lib
- https://docs.kaia.io/ko/references/sdk/ethers-ext/getting-started/
- https://docs.kaia.io/ko/references/sdk/web3js-ext/getting-started/
- https://docs.kaia.io/ko/references/sdk/caver-js/