1.11.0 • Published 3 months ago

@qubic-js/core v1.11.0

Weekly downloads
-
License
Apache License 2....
Repository
-
Last release
3 months ago

AMIS Wallet SDK

Node.js CI

Demo

https://qubic-js-sdk-example.netlify.app/

Installation

React

$ npm install @qubic-js/react

Javascript

$ npm install @qubic-js/browser

Usage

React

import Web3 from 'web3';
import { QubicConnector } from '@qubic-js/react';
import { Web3ReactProvider, useWeb3React } from '@web3-react/core';

const qubicConnector = new QubicConnector( {
  apiKey: API_KEY,
  apiSecret: API_SECRET,
  chainId: CHAIN_ID,
  infuraProjectId: INFURA_PROJECT_ID,
  // optional, default: false, when value is true, the popup will hide automatically
  autoHideWelcome: true
  // optional, default: false, when value is true, the show iframe instead of new window, credit card payment will failed with this option value true
  enableIframe: true
});

export default () => {
  const context = useWeb3React<Web3>();
  const { account, chainId, activate, library: web3 } = context;

  const handleSignIn = useCallback(async () => {
    activate(qubicConnector, (e: Error): void => {
      console.error(e);
    });
  }, [activate]);

  return (
    <Web3ReactProvider getLibrary={library}>
      <App />
    </Web3ReactProvider>
  );
}

Javascript

import Web3 from 'web3';
import QubicProvider from '@qubic-js/browser';

const provider = new QubicProvider({
  apiKey: API_KEY,
  apiSecret: API_SECRET,
  chainId: Network.RINKEBY,
  infuraProjectId: INFURA_PROJECT_ID,
  enableIframe: true,
});

const web3 = new Web3(provider);

Run Example

$ git clone git@github.com:getamis/qubic-js.git
$ cd qubic-js
$ yarn example

Features

更好的使用者入門體驗

No Private Key

透過 TSS 技術,使用者無需自行保管私鑰,完整的私鑰也絕對不會出現在網路或任何儲存空間中。

不同於市面上其他替使用者保管私鑰的錢包,AMIS 錢包的使用者依然擁有完全的所有權,即便完整的私鑰不在使用者手中,但沒有使用者的簽名,任一方都無法將使用者的資產轉移。

更高的安全性

HTSS 階層式門檻簽章

透過 AMIS 專利的 HTSS 技術,將私鑰拆分為多組 shares,分別交由使用者、可靠第三方與 AMIS 保管,即便任何一個 share 丟失,使用者的資產也無法被竊取。

若不幸 share 流出,可以透過 reshare 流程作廢舊的 share,重新取回安全的錢包。

SDK Spec

Enums & Types

Network

enum Network {
  MAINNET,
  ROPSTEN,
  RINKEBY,
  POLYGON,
  MUMBAI
}

Initializer

constructor

// import QubicProvider from '@qubic-js/browser';
constructor(apiKey: string, apiSecret: string, network: Network, options): QubicProvider

初始化 Qubic 錢包客戶端

Params

  • apiKey: 在 AMIS 後台申請 apiKey
  • apiSecret: 在 AMIS 後台申請 apiSecret
  • network: 目前提供 MAINNETRINKEBYPOLYGONMUMBAI
  • options
    • enableIframe: true 時,會使用 iframe 顯示,其他狀況是打開新視窗

Return

Web3 Provider

Methods - Basic

串接 Qubic 錢包,包含內建的 Web UI

eth_requestAccounts

provider.request({ method: 'eth_requestAccounts' });

開啟 Social Login 登入流程

Provider structure

flowchart TB
  subgraph QubicProvider
    subgraph API
      provider.method
      provider.event
    end
    provider.method <--> Middlewares

    subgraph Middlewares
      cacheMiddleware --> prepareBridgeMiddleware
      prepareBridgeMiddleware --> walletMiddleware
      walletMiddleware --> infuraMiddleware
    end
    walletMiddleware <--> bridge.send

    subgraph Bridge
      bridge.emitEvent
      bridge.send
    end
    bridge.emitEvent --> prepareBridgeMiddleware
    bridge.emitEvent --> walletMiddleware
    bridge.emitEvent --> provider.event

  end

  infuraMiddleware <--> infuraRpcNode

  subgraph QubicWallet
    iFrame
    popupWindow
    webview
  end
  QubicWallet --> bridge.emitEvent
  QubicWallet <--> bridge.send
  prepareBridgeMiddleware -.->|initialize| QubicWallet
1.10.6

3 months ago

1.11.0

3 months ago

1.10.5

4 months ago

1.10.4

9 months ago

1.10.3

10 months ago

1.10.2

11 months ago

1.9.6

11 months ago

1.10.1-alpha.1

11 months ago

1.10.1-alpha.0

11 months ago

1.10.1

11 months ago

1.10.0

11 months ago

1.9.5

1 year ago

1.9.4

1 year ago

1.9.3

1 year ago

1.9.2

1 year ago

1.9.1

1 year ago

1.9.0

1 year ago

1.8.7

1 year ago

1.8.6

1 year ago

1.8.2

1 year ago

1.8.1

1 year ago

1.6.3

1 year ago

1.8.0

1 year ago

1.6.2

2 years ago

1.7.0

1 year ago

1.8.5

1 year ago

1.8.4

1 year ago

1.8.3

1 year ago

1.6.1

2 years ago

1.6.0

2 years ago

1.5.4

2 years ago

1.2.8

2 years ago

1.2.6

2 years ago

1.2.5

2 years ago

1.4.1

2 years ago

1.4.0

2 years ago

1.2.12

2 years ago

1.2.10

2 years ago

1.2.11

2 years ago

1.5.3

2 years ago

1.5.2

2 years ago

1.5.1

2 years ago

1.5.0

2 years ago

1.3.0

2 years ago

1.2.9

2 years ago

1.2.0

2 years ago

1.1.1

2 years ago

1.2.3

2 years ago

1.2.2

2 years ago

1.2.1

2 years ago

1.1.0

2 years ago

1.0.11

2 years ago

1.0.10

2 years ago

1.0.9

2 years ago

1.0.8

2 years ago

1.0.7

2 years ago

1.0.6

2 years ago

1.0.2

2 years ago

1.0.1

2 years ago

1.0.0

2 years ago

1.0.5

2 years ago

1.0.4

2 years ago

1.0.3

2 years ago

0.3.0

2 years ago

0.2.7

2 years ago

0.2.6

2 years ago

0.2.5

2 years ago

0.2.0

3 years ago

0.2.3

2 years ago

0.2.4

2 years ago

0.1.32

3 years ago

0.1.30

3 years ago

0.1.27

3 years ago

0.1.28

3 years ago

0.1.29

3 years ago

0.1.26

3 years ago

0.1.25

3 years ago

0.1.24

3 years ago

0.1.23

3 years ago

0.1.22

3 years ago

0.1.20

3 years ago

0.1.19

3 years ago

0.1.18

3 years ago

0.1.17

3 years ago

0.1.16

3 years ago

0.1.13

3 years ago

0.1.14

3 years ago

0.1.15

3 years ago

0.1.13-alpha.0

3 years ago

0.1.12

3 years ago

0.1.12-alpha.0

3 years ago