# cbwsdk

> CBW wallet vue plugin. Use WalletConnect protocol.

Latest version **0.2.2** (published 2021-07-13) · 0 weekly downloads

## Install

```sh
npm install cbwsdk
pnpm add cbwsdk
yarn add cbwsdk
bun add cbwsdk
```

## Health

**Score 10/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support; low quality score; large bundle; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.2.2 |
| Published | 2021-07-13 |
| First published | 2021-06-17 |
| Weekly downloads | 0 |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 12 |
| Unpacked size | 12.7 MB |
| Known vulnerabilities | 0 (+25 in 3 direct dependencies) |
| Install scripts | no |
| Maintainers | sxqnpm |

## Links

- npm: https://www.npmjs.com/package/cbwsdk
- npm.io page: https://npm.io/package/cbwsdk

## Dependencies (12)

- [vue](https://npm.io/package/vue.md) ^2.6.11
- [web3](https://npm.io/package/web3.md) ^1.3.6
- [axios](https://npm.io/package/axios.md) ^0.21.1
- [js-md5](https://npm.io/package/js-md5.md) ^0.7.3
- [core-js](https://npm.io/package/core-js.md) ^3.6.5
- [popper.js](https://npm.io/package/popper.js.md) ^1.16.1
- [web3modal](https://npm.io/package/web3modal.md) ^1.9.3
- [lodash.pick](https://npm.io/package/lodash.pick.md) ^4.4.0
- [lodash.sortby](https://npm.io/package/lodash.sortby.md) ^4.7.0
- [vue-clipboard2](https://npm.io/package/vue-clipboard2.md) ^0.3.1
- [@walletconnect/client](https://npm.io/package/@walletconnect/client.md) ^1.4.1
- [@walletconnect/web3-provider](https://npm.io/package/@walletconnect/web3-provider.md) ^1.4.1

## Recent versions

- 0.2.2 (latest) — 2021-07-13
- 0.2.1 — 2021-07-12
- 0.2.0 — 2021-07-09
- 0.1.9 — 2021-07-09
- 0.1.8 — 2021-06-25
- 0.1.7 — 2021-06-25
- 0.1.6 — 2021-06-24
- 0.1.4 — 2021-06-17
- 0.1.3 — 2021-06-17
- 0.1.2 — 2021-06-17
- 0.1.1 — 2021-06-17
- 0.1.0 — 2021-06-17

## README

# cbwsdk

## 介绍
> CBW 收银台使用 WalletConnect 协议连接第三方钱包进行快速安全支付。同时集成 CBW 钱包。

## 安装

Using npm:

```
$ npm install cbwsdk 
```

Using yarn:

```
$ yarn add cbwsdk 
```

## 示例

### 引入项目

```javascript
import cbwsdk from 'cbwsdk'
import 'cbwsdk/lib/styles/iview.css'

Vue.use(cbwsdk)
```

### API

#### 方式一

> 使用 CBW 的默认界面，一般操作按照界面操作即可

```javascript
import { CBWSDK } from 'cbwsdk'

// 初始化
this.sdk = new CBWSDK({
    // tenantKey 需要申请
    tenantKey: 'xxxx',
    // options
})
```

```text
SDK options:
{
    tenantKey: '必填，由接入方申请',
    env: '可选，环境设置，默认为 "ropsten".  可选值为: mainnet(正式网), ropsten(测试环境)',
    infuraId: '可选, 用于统计访问数',
    chain: '可选， 默认为 ETH, 其它有 ETH，TRX，BSC 等'
    bridge: 'url',
    secure: true,   默认为 true,  使用 https 协议和 wss 协议，false 为使用 http 和 ws 协议
}
```

```javascript
// 打开界面
this.CBWButton.open(this.sdk)

// 隐藏右下角按钮
this.CBWButton.hide()
```

```javascript
/**
* 申请转账
* 
* @param orderId 用于使用 sdk 方对账的订单id, 不要重复使用
* @param symbol 转账币种，如: USDT
* @param address 一般为商户收款地址: 如果为 null，则默认为商户的收款地址
* @param amount 金额
*/
this.CBWButton.transfer(orderId, symbol, address, amount)
```

#### 方式二

> 自定义界面，只使用 API 方式

```javascript
// 初始化
this.sdk = new CBWSDK({
  tenantKey: 'xxx'
})
```

> 用户登录

```javascript
const sdk = this.sdk
// account 为用户手机号或者邮箱
sdk.setAccount(account)

// 发送验证码
sdk.sendVcode().then(res => {
  if (res.code === 0) {
    console.log('发送验证码成功.')
  }
}).catch(err => {
  console.log('catch: ', err)
})

// 登录, vcode 为接受到的验证码
sdk.login(vcode).then(res => {
  console.log('login: ', res)
  console.log('login status: ', sdk.getAccount().logged)
})
```

> 连接钱包

```javascript

// 选择连接 CBW 还是 第三方钱包
const isCBW = true
this.sdk.connect(isCBW)

// 如果选择连接第三方钱包，就到第三方钱包中去授权
// 如果选择 cbw，授权如下
this.sdk.wallet.approveConnect()
```

> 发起转账

```javascript
/**
* 申请转账
* 
* @param orderId 针对接入 sdk 的商家，用于对账的订单id, 不要重复使用
* @param symbol 转账币种，如: USDT
* @param address 一般为商户收款地址
* @param amount 金额
*/
let result = this.sdk.transfer(orderId, symbol, address, amount)
if (result instanceof Error) {
  console.log('转账失败: ', result.message)
} else {
  result.then(res => {
    console.log('转账成功: ', res)
  })
}
```

> 授权转账

```javascript
// 如果是连接第三方钱包，则去钱包中操作同意转账

// 如果是连接的 CBW，则授权操作如下
/**
* 
* @param orderId 对账的订单id, 为发起转账时的 orderId
*/
this.sdk.wallet.approveRequest(orderId)
```

---
_Source: https://npm.io/package/cbwsdk · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
