@mocanetwork/airkit 0.5.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +177 -0
- package/dist/airkit.cjs.js +2662 -0
- package/dist/airkit.esm.js +2468 -0
- package/dist/airkit.umd.min.js +2 -0
- package/dist/airkit.umd.min.js.LICENSE.txt +12 -0
- package/dist/lib.cjs/common/src/error.js +25 -0
- package/dist/lib.cjs/common/src/realm/messaging/auth.js +28 -0
- package/dist/lib.cjs/common/src/realm/messaging/types.js +15 -0
- package/dist/lib.cjs/ws-embed/src/PopupHandler.js +64 -0
- package/dist/lib.cjs/ws-embed/src/airService.js +364 -0
- package/dist/lib.cjs/ws-embed/src/baseProvider.js +178 -0
- package/dist/lib.cjs/ws-embed/src/communicationProvider.js +346 -0
- package/dist/lib.cjs/ws-embed/src/embed.js +735 -0
- package/dist/lib.cjs/ws-embed/src/error.js +21 -0
- package/dist/lib.cjs/ws-embed/src/iframeController.js +68 -0
- package/dist/lib.cjs/ws-embed/src/inPageProvider.js +307 -0
- package/dist/lib.cjs/ws-embed/src/index.js +20 -0
- package/dist/lib.cjs/ws-embed/src/interfaces.js +29 -0
- package/dist/lib.cjs/ws-embed/src/isStream.js +20 -0
- package/dist/lib.cjs/ws-embed/src/loglevel.js +7 -0
- package/dist/lib.cjs/ws-embed/src/messageService.js +212 -0
- package/dist/lib.cjs/ws-embed/src/messages.js +22 -0
- package/dist/lib.cjs/ws-embed/src/siteMetadata.js +77 -0
- package/dist/lib.cjs/ws-embed/src/utils.js +95 -0
- package/dist/lib.esm/common/src/error.js +23 -0
- package/dist/lib.esm/common/src/realm/messaging/auth.js +26 -0
- package/dist/lib.esm/common/src/realm/messaging/types.js +13 -0
- package/dist/lib.esm/ws-embed/src/PopupHandler.js +62 -0
- package/dist/lib.esm/ws-embed/src/airService.js +362 -0
- package/dist/lib.esm/ws-embed/src/baseProvider.js +176 -0
- package/dist/lib.esm/ws-embed/src/communicationProvider.js +344 -0
- package/dist/lib.esm/ws-embed/src/embed.js +730 -0
- package/dist/lib.esm/ws-embed/src/error.js +18 -0
- package/dist/lib.esm/ws-embed/src/iframeController.js +66 -0
- package/dist/lib.esm/ws-embed/src/inPageProvider.js +302 -0
- package/dist/lib.esm/ws-embed/src/index.js +5 -0
- package/dist/lib.esm/ws-embed/src/interfaces.js +21 -0
- package/dist/lib.esm/ws-embed/src/isStream.js +15 -0
- package/dist/lib.esm/ws-embed/src/loglevel.js +5 -0
- package/dist/lib.esm/ws-embed/src/messageService.js +210 -0
- package/dist/lib.esm/ws-embed/src/messages.js +20 -0
- package/dist/lib.esm/ws-embed/src/siteMetadata.js +75 -0
- package/dist/lib.esm/ws-embed/src/utils.js +88 -0
- package/dist/types/PopupHandler.d.ts +24 -0
- package/dist/types/airService.d.ts +34 -0
- package/dist/types/baseProvider.d.ts +66 -0
- package/dist/types/common/custom.d.ts +4 -0
- package/dist/types/common/error.d.ts +17 -0
- package/dist/types/common/realm/error/auth.d.ts +1 -0
- package/dist/types/common/realm/error/types.d.ts +1 -0
- package/dist/types/common/realm/messaging/auth.d.ts +138 -0
- package/dist/types/common/realm/messaging/types.d.ts +95 -0
- package/dist/types/common/realm/partner/config.d.ts +68 -0
- package/dist/types/common/realm/user/types.d.ts +78 -0
- package/dist/types/common/realm/wallet/bybit/bybit.d.ts +2 -0
- package/dist/types/common/realm/wallet/coinbase/coinbase.d.ts +2 -0
- package/dist/types/common/realm/wallet/cryptoCom/cryptoCom.d.ts +2 -0
- package/dist/types/common/realm/wallet/index.d.ts +22 -0
- package/dist/types/common/realm/wallet/metamask/metamask.d.ts +2 -0
- package/dist/types/common/realm/wallet/okx/okx.d.ts +2 -0
- package/dist/types/common/realm/wallet/phantom/phantom.d.ts +2 -0
- package/dist/types/common/realm/wallet/rabby/rabby.d.ts +2 -0
- package/dist/types/common/realm/wallet/rainbow/rainbow.d.ts +2 -0
- package/dist/types/common/realm/wallet/trust/trust.d.ts +2 -0
- package/dist/types/common/types.d.ts +8 -0
- package/dist/types/common/utils.d.ts +2 -0
- package/dist/types/communicationProvider.d.ts +82 -0
- package/dist/types/embed.d.ts +42 -0
- package/dist/types/error.d.ts +9 -0
- package/dist/types/iframeController.d.ts +18 -0
- package/dist/types/inPageProvider.d.ts +106 -0
- package/dist/types/index.d.ts +4 -0
- package/dist/types/interfaces.d.ts +261 -0
- package/dist/types/isStream.d.ts +4 -0
- package/dist/types/loglevel.d.ts +3 -0
- package/dist/types/messageService.d.ts +51 -0
- package/dist/types/messages.d.ts +19 -0
- package/dist/types/siteMetadata.d.ts +9 -0
- package/dist/types/utils.d.ts +24 -0
- package/package.json +76 -0
package/README.md
ADDED
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
# Air Kit
|
|
2
|
+
|
|
3
|
+
This SDK is part of the [Moca Network](https://moca.network/) offering and provides a convenient way to add Air Account Login, Air Id Minting and Air Account Management to your DApp.
|
|
4
|
+
|
|
5
|
+
## ⚡ Quick Start
|
|
6
|
+
|
|
7
|
+
```shell
|
|
8
|
+
npm install path/to/mocanetwork-airkit-0.5.0.tgz
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
### Initialize & Login
|
|
12
|
+
|
|
13
|
+
```ts
|
|
14
|
+
import AirService, { EMBED_BUILD_ENV } from "@mocanetwork/airkit";
|
|
15
|
+
|
|
16
|
+
const service = new AirService({
|
|
17
|
+
partnerId: YOUR_PARTNER_ID,
|
|
18
|
+
});
|
|
19
|
+
await service.init({
|
|
20
|
+
buildEnv: EMBED_BUILD_ENV.STAGING,
|
|
21
|
+
enableLogging: true,
|
|
22
|
+
});
|
|
23
|
+
await embed.login();
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
The AirService creates an iframe that loads the login flow and sets up communication streams between
|
|
27
|
+
the iframe and the DApp's javascript context.
|
|
28
|
+
|
|
29
|
+
## 🔗 Installation
|
|
30
|
+
|
|
31
|
+
### Bundling
|
|
32
|
+
|
|
33
|
+
This module is distributed in 3 formats
|
|
34
|
+
|
|
35
|
+
- `esm` build `dist/airkit.esm.js` is es6 format
|
|
36
|
+
- `commonjs` build `dist/airkit.cjs.js` in es5 format
|
|
37
|
+
- `umd` build `dist/airkit.umd.min.js` in es5 format without polyfilling corejs minified
|
|
38
|
+
|
|
39
|
+
By default, the appropriate format is used for your specified use case.
|
|
40
|
+
You can use a different format (if you know what you're doing) by referencing the correct file.
|
|
41
|
+
|
|
42
|
+
### Dynamic Import
|
|
43
|
+
|
|
44
|
+
If not already, some node libraries need to be polyfilled.
|
|
45
|
+
|
|
46
|
+
<details>
|
|
47
|
+
<summary>Webpack</summary>
|
|
48
|
+
Install dev packages:
|
|
49
|
+
|
|
50
|
+
```shell
|
|
51
|
+
npm install --save-dev node-polyfill-webpack-plugin
|
|
52
|
+
```
|
|
53
|
+
Add following to your Webpack config:
|
|
54
|
+
|
|
55
|
+
```js
|
|
56
|
+
const NodePolyfillPlugin = require("node-polyfill-webpack-plugin");
|
|
57
|
+
|
|
58
|
+
module.exports = {
|
|
59
|
+
webpack: {
|
|
60
|
+
plugins: [
|
|
61
|
+
new NodePolyfillPlugin({
|
|
62
|
+
additionalAliases: [
|
|
63
|
+
"buffer",
|
|
64
|
+
"crypto",
|
|
65
|
+
"assert",
|
|
66
|
+
"http",
|
|
67
|
+
"https",
|
|
68
|
+
"os",
|
|
69
|
+
"url",
|
|
70
|
+
"zlib",
|
|
71
|
+
"stream",
|
|
72
|
+
"_stream_duplex",
|
|
73
|
+
"_stream_passthrough",
|
|
74
|
+
"_stream_readable",
|
|
75
|
+
"_stream_writable",
|
|
76
|
+
"_stream_transform",
|
|
77
|
+
"process",
|
|
78
|
+
],
|
|
79
|
+
}),
|
|
80
|
+
],
|
|
81
|
+
},
|
|
82
|
+
};
|
|
83
|
+
```
|
|
84
|
+
</details>
|
|
85
|
+
|
|
86
|
+
<details>
|
|
87
|
+
<summary>Vite</summary>
|
|
88
|
+
Install dev packages:
|
|
89
|
+
|
|
90
|
+
```shell
|
|
91
|
+
npm install --save-dev vite-plugin-node-polyfills
|
|
92
|
+
```
|
|
93
|
+
Add following to your Vite config:
|
|
94
|
+
|
|
95
|
+
```js
|
|
96
|
+
import react from "@vitejs/plugin-react";
|
|
97
|
+
import { defineConfig } from "vite";
|
|
98
|
+
import { nodePolyfills } from "vite-plugin-node-polyfills";
|
|
99
|
+
|
|
100
|
+
// https://vitejs.dev/config/
|
|
101
|
+
export default defineConfig({
|
|
102
|
+
plugins: [
|
|
103
|
+
react(),
|
|
104
|
+
nodePolyfills({
|
|
105
|
+
include: [
|
|
106
|
+
"buffer",
|
|
107
|
+
"crypto",
|
|
108
|
+
"assert",
|
|
109
|
+
"http",
|
|
110
|
+
"https",
|
|
111
|
+
"os",
|
|
112
|
+
"url",
|
|
113
|
+
"zlib",
|
|
114
|
+
"stream",
|
|
115
|
+
"_stream_duplex",
|
|
116
|
+
"_stream_passthrough",
|
|
117
|
+
"_stream_readable",
|
|
118
|
+
"_stream_writable",
|
|
119
|
+
"_stream_transform",
|
|
120
|
+
],
|
|
121
|
+
}),
|
|
122
|
+
],
|
|
123
|
+
});
|
|
124
|
+
```
|
|
125
|
+
</details>
|
|
126
|
+
|
|
127
|
+
## Usage
|
|
128
|
+
Once the SDK is installed and the `AirService` successfully initialized, it can be used to authenticate users. Further, the native provider given by the embed instance can be used to let users interact with the blockchain.
|
|
129
|
+
|
|
130
|
+
### Signing Example
|
|
131
|
+
|
|
132
|
+
<details open>
|
|
133
|
+
<summary>Using ethers</summary>
|
|
134
|
+
|
|
135
|
+
```ts
|
|
136
|
+
const ethProvider = new BrowserProvider(service.provider, 'any');
|
|
137
|
+
const signer = await ethProvider.getSigner();
|
|
138
|
+
const signedMessage = await signer.signMessage('Your message');
|
|
139
|
+
```
|
|
140
|
+
</details>
|
|
141
|
+
|
|
142
|
+
<details>
|
|
143
|
+
<summary>Using web3</summary>
|
|
144
|
+
|
|
145
|
+
```ts
|
|
146
|
+
const web3 = new Web3(service.provider);
|
|
147
|
+
const signedMessage = await web3.eth.personal.sign(
|
|
148
|
+
'Your message',
|
|
149
|
+
eoaAccount,
|
|
150
|
+
'password',
|
|
151
|
+
);
|
|
152
|
+
```
|
|
153
|
+
</details>
|
|
154
|
+
|
|
155
|
+
### Sending Transaction Example
|
|
156
|
+
|
|
157
|
+
<details open>
|
|
158
|
+
<summary>Using ethers</summary>
|
|
159
|
+
|
|
160
|
+
```ts
|
|
161
|
+
const transactionParams: TransactionRequest = {...};
|
|
162
|
+
const ethProvider = new BrowserProvider(service.provider, 'any');
|
|
163
|
+
const signer = await ethProvider.getSigner();
|
|
164
|
+
const response = signer.sendTransaction(transactionParams);
|
|
165
|
+
```
|
|
166
|
+
</details>
|
|
167
|
+
|
|
168
|
+
<details>
|
|
169
|
+
<summary>Using web3</summary>
|
|
170
|
+
|
|
171
|
+
```ts
|
|
172
|
+
const transactionParams: Transaction = {...};
|
|
173
|
+
const web3 = new Web3(service.provider);
|
|
174
|
+
const response = await web3.eth.sendTransaction(transactionParams);
|
|
175
|
+
```
|
|
176
|
+
</details>
|
|
177
|
+
|