-
Notifications
You must be signed in to change notification settings - Fork 65
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #360 from airgap-it/develop
Develop
- Loading branch information
Showing
31 changed files
with
247 additions
and
118 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,6 @@ | ||
{ | ||
"packages": ["packages/*"], | ||
"version": "3.1.0" | ||
"packages": [ | ||
"packages/*" | ||
], | ||
"version": "3.1.1" | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,11 +1,23 @@ | ||
# `@airgap/beacon-blockchain-substrate` | ||
|
||
> TODO: description | ||
This package is part of the `@airgap/beacon-sdk` project. [Read more](https://github.com/airgap-it/beacon-sdk) | ||
|
||
## Introduction | ||
|
||
This package adds support for `substrate` based blockchains. It can be used in combination with the `@airgap/beacon-dapp` or `@airgap/beacon-wallet` packages. | ||
|
||
## Usage | ||
|
||
``` | ||
const beaconProtocolSubstrate = require('@airgap/beacon-blockchain-substrate'); | ||
import { DAppClient } from '@airga/beacon-dapp' | ||
import { SubstrateBlockchain } from '@airga/beacon-blockchain-substrate' | ||
// TODO: DEMONSTRATE API | ||
const client = new DAppClient({ | ||
name: 'Example DApp', | ||
}) | ||
const substrateBlockchain = new SubstrateBlockchain() | ||
client.addBlockchain(substrateBlockchain) | ||
``` | ||
|
||
Check our documentation for more information. [Documentation](https://docs.walletbeacon.io) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,6 @@ | ||
{ | ||
"name": "@airgap/beacon-blockchain-substrate", | ||
"version": "3.1.0", | ||
"version": "3.1.1", | ||
"description": "> TODO: description", | ||
"author": "Andreas Gassmann <[email protected]>", | ||
"homepage": "https://walletbeacon.io", | ||
|
@@ -34,7 +34,7 @@ | |
"url": "https://github.com/airgap-it/beacon-sdk/issues" | ||
}, | ||
"dependencies": { | ||
"@airgap/beacon-types": "^3.1.0", | ||
"@airgap/beacon-ui": "^3.1.0" | ||
"@airgap/beacon-types": "^3.1.1", | ||
"@airgap/beacon-ui": "^3.1.1" | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,11 +1,23 @@ | ||
# `@airgap/beacon-blockchain-tezos-sapling` | ||
|
||
> TODO: description | ||
This package is part of the `@airgap/beacon-sdk` project. [Read more](https://github.com/airgap-it/beacon-sdk) | ||
|
||
## Introduction | ||
|
||
This package adds support for `tezos-sapling`, the sapling integration on the Tezos blockchain. It can be used in combination with the `@airgap/beacon-dapp` or `@airgap/beacon-wallet` packages. | ||
|
||
## Usage | ||
|
||
``` | ||
const beaconProtocolTezosSapling = require('@airgap/beacon-blockchain-tezos-sapling'); | ||
import { DAppClient } from '@airga/beacon-dapp' | ||
import { TezosSaplingBlockchain } from '@airga/beacon-blockchain-tezos-sapling' | ||
// TODO: DEMONSTRATE API | ||
const client = new DAppClient({ | ||
name: 'Example DApp', | ||
}) | ||
const tezosSaplingBlockchain = new TezosSaplingBlockchain() | ||
client.addBlockchain(tezosSaplingBlockchain) | ||
``` | ||
|
||
Check our documentation for more information. [Documentation](https://docs.walletbeacon.io) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,6 @@ | ||
{ | ||
"name": "@airgap/beacon-blockchain-tezos-sapling", | ||
"version": "3.1.0", | ||
"version": "3.1.1", | ||
"description": "> TODO: description", | ||
"author": "Andreas Gassmann <[email protected]>", | ||
"homepage": "https://walletbeacon.io", | ||
|
@@ -34,7 +34,7 @@ | |
"url": "https://github.com/airgap-it/beacon-sdk/issues" | ||
}, | ||
"dependencies": { | ||
"@airgap/beacon-types": "^3.1.0", | ||
"@airgap/beacon-ui": "^3.1.0" | ||
"@airgap/beacon-types": "^3.1.1", | ||
"@airgap/beacon-ui": "^3.1.1" | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,11 +1,23 @@ | ||
# `@airgap/beacon-blockchain-tezos` | ||
|
||
> TODO: description | ||
This package is part of the `@airgap/beacon-sdk` project. [Read more](https://github.com/airgap-it/beacon-sdk) | ||
|
||
## Introduction | ||
|
||
This package adds support for the `tezos` blockchain. It can be used in combination with the `@airgap/beacon-dapp` or `@airgap/beacon-wallet` packages. | ||
|
||
## Usage | ||
|
||
``` | ||
const beaconProtocolTezos = require('@airgap/beacon-blockchain-tezos'); | ||
import { DAppClient } from '@airga/beacon-dapp' | ||
import { TezosBlockchain } from '@airga/beacon-blockchain-tezos' | ||
// TODO: DEMONSTRATE API | ||
const client = new DAppClient({ | ||
name: 'Example DApp', | ||
}) | ||
const tezosBlockchain = new TezosBlockchain() | ||
client.addBlockchain(tezosBlockchain) | ||
``` | ||
|
||
Check our documentation for more information. [Documentation](https://docs.walletbeacon.io) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,6 @@ | ||
{ | ||
"name": "@airgap/beacon-blockchain-tezos", | ||
"version": "3.1.0", | ||
"version": "3.1.1", | ||
"description": "> TODO: description", | ||
"author": "Andreas Gassmann <[email protected]>", | ||
"homepage": "https://walletbeacon.io", | ||
|
@@ -34,7 +34,7 @@ | |
"url": "https://github.com/airgap-it/beacon-sdk/issues" | ||
}, | ||
"dependencies": { | ||
"@airgap/beacon-types": "^3.1.0", | ||
"@airgap/beacon-ui": "^3.1.0" | ||
"@airgap/beacon-types": "^3.1.1", | ||
"@airgap/beacon-ui": "^3.1.1" | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,11 +1,11 @@ | ||
# `@airgap/beacon-core` | ||
|
||
> TODO: description | ||
This package is part of the `@airgap/beacon-sdk` project. [Read more](https://github.com/airgap-it/beacon-sdk) | ||
|
||
## Usage | ||
## Introduction | ||
|
||
``` | ||
const beaconCore = require('@airgap/beacon-core'); | ||
This package contains internal methods that are used by both the dApp and wallet client. | ||
|
||
// TODO: DEMONSTRATE API | ||
``` | ||
Unless you need to import types from this package, you probably don't need to add it to your project. | ||
|
||
Check our documentation for more information. [Documentation](https://docs.walletbeacon.io) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,6 @@ | ||
{ | ||
"name": "@airgap/beacon-core", | ||
"version": "3.1.0", | ||
"version": "3.1.1", | ||
"description": "> TODO: description", | ||
"author": "Andreas Gassmann <[email protected]>", | ||
"homepage": "https://walletbeacon.io", | ||
|
@@ -34,8 +34,8 @@ | |
"url": "https://github.com/airgap-it/beacon-sdk/issues" | ||
}, | ||
"dependencies": { | ||
"@airgap/beacon-types": "^3.1.0", | ||
"@airgap/beacon-utils": "^3.1.0", | ||
"@airgap/beacon-types": "^3.1.1", | ||
"@airgap/beacon-utils": "^3.1.1", | ||
"@types/libsodium-wrappers": "0.7.9", | ||
"bs58check": "2.1.2", | ||
"libsodium-wrappers": "0.7.9" | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,2 @@ | ||
export const SDK_VERSION: string = '3.1.0' | ||
export const SDK_VERSION: string = '3.1.1' | ||
export const BEACON_VERSION: string = '3' |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,11 +1,17 @@ | ||
# `@airgap/beacon-dapp` | ||
|
||
> TODO: description | ||
This package is part of the `@airgap/beacon-sdk` project. [Read more](https://github.com/airgap-it/beacon-sdk) | ||
|
||
## Introduction | ||
|
||
Use this package on your dApp to instanciate a `DAppClient` object and communicate to wallets. | ||
|
||
## Usage | ||
|
||
``` | ||
const beaconDapp = require('@airgap/beacon-dapp'); | ||
import { DAppClient } from '@airgap/beacon-dapp' | ||
// TODO: DEMONSTRATE API | ||
const dAppClient = new DAppClient({ name: "Beacon Docs" }); | ||
``` | ||
|
||
Check our documentation for more information. [Documentation](https://docs.walletbeacon.io) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,6 @@ | ||
{ | ||
"name": "@airgap/beacon-dapp", | ||
"version": "3.1.0", | ||
"version": "3.1.1", | ||
"description": "> TODO: description", | ||
"author": "Andreas Gassmann <[email protected]>", | ||
"homepage": "https://walletbeacon.io", | ||
|
@@ -35,10 +35,10 @@ | |
"url": "https://github.com/airgap-it/beacon-sdk/issues" | ||
}, | ||
"dependencies": { | ||
"@airgap/beacon-core": "^3.1.0", | ||
"@airgap/beacon-transport-matrix": "^3.1.0", | ||
"@airgap/beacon-transport-postmessage": "^3.1.0", | ||
"@airgap/beacon-ui": "^3.1.0", | ||
"@airgap/beacon-core": "^3.1.1", | ||
"@airgap/beacon-transport-matrix": "^3.1.1", | ||
"@airgap/beacon-transport-postmessage": "^3.1.1", | ||
"@airgap/beacon-ui": "^3.1.1", | ||
"qrcode-generator": "1.4.4" | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,11 +1,93 @@ | ||
# `@airgap/beacon-sdk` | ||
# Beacon SDK | ||
|
||
> TODO: description | ||
[![npm](https://img.shields.io/npm/v/@airgap/beacon-sdk.svg?colorB=brightgreen)](https://www.npmjs.com/package/@airgap/beacon-sdk) | ||
[![documentation](https://img.shields.io/badge/documentation-online-brightgreen.svg)](https://airgap-it.github.io/beacon-sdk/) | ||
[![GitHub Action](https://github.com/airgap-it/beacon-sdk/workflows/Build%2C%20Test%20and%20Analyze/badge.svg)](https://github.com/airgap-it/beacon-sdk/actions?query=workflow%3A%22Build%2C+Test+and+Analyze%22+branch%3Amain) | ||
[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=airgap-it_beacon-sdk&metric=alert_status)](https://sonarcloud.io/dashboard?id=airgap-it_beacon-sdk) | ||
[![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettier) | ||
|
||
## Usage | ||
> Connect Wallets with dApps on Tezos | ||
[Beacon](https://walletbeacon.io) is the implementation of the wallet interaction standard [tzip-10](https://gitlab.com/tzip/tzip/blob/master/proposals/tzip-10/tzip-10.md) which describes the connnection of a dApp with a wallet. | ||
|
||
## Intro | ||
|
||
The `beacon-sdk` simplifies and abstracts the communication between dApps and wallets over different transport layers. | ||
|
||
Developers that plan to develop complex smart contract interactions can use [Taquito](https://github.com/ecadlabs/taquito) with the `BeaconWallet`, which uses this SDK under the hood, but provides helpful methods to interact with contracts. | ||
|
||
Besides this Typescript SDK, we also provide SDKs for native iOS and Android Wallets: | ||
|
||
- [Beacon Android SDK (Kotlin)](https://github.com/airgap-it/beacon-android-sdk) | ||
- [Beacon iOS SDK (Swift)](https://github.com/airgap-it/beacon-ios-sdk) | ||
|
||
## Documentation | ||
|
||
The documentation can be found [here](https://docs.walletbeacon.io/), technical documentation can be found [here](https://typedocs.walletbeacon.io/). | ||
|
||
## Installation | ||
|
||
``` | ||
npm i --save @airgap/beacon-sdk | ||
``` | ||
|
||
## Example DApp integration | ||
|
||
```ts | ||
const client = new DAppClient({ name: 'My Sample DApp' }) | ||
|
||
client | ||
.requestPermissions() // Send a permission request and automatically show UI to the user to select his favorite wallet | ||
.then((permissions) => { | ||
// Account that has been shared by the wallet | ||
console.log('got permissions', permissions) | ||
}) | ||
.catch((error) => console.log(error)) | ||
``` | ||
const beaconSdk = require('@airgap/beacon-sdk'); | ||
|
||
// TODO: DEMONSTRATE API | ||
For a more complete example, take a look at the `example-dapp.html` file. | ||
|
||
## Example Wallet integration | ||
|
||
```ts | ||
const client = new WalletClient({ name: 'My Wallet' }) | ||
await client.init() // Establish P2P connection | ||
|
||
client | ||
.connect(async (message) => { | ||
// Example: Handle PermissionRequest. A wallet should handle all request types | ||
if (message.type === BeaconMessageType.PermissionRequest) { | ||
// Show a UI to the user where he can confirm sharing an account with the DApp | ||
|
||
const response: PermissionResponseInput = { | ||
type: BeaconMessageType.PermissionResponse, | ||
network: message.network, // Use the same network that the user requested | ||
scopes: [PermissionScope.OPERATION_REQUEST], // Ignore the scopes that have been requested and instead give only operation permissions | ||
id: message.id, | ||
publicKey: 'tezos public key' | ||
} | ||
|
||
// Send response back to DApp | ||
await client.respond(response) | ||
} | ||
}) | ||
.catch((error) => console.error('connect error', error)) | ||
``` | ||
|
||
For a more complete example, take a look at the `example-wallet.html` file. | ||
|
||
## Adding a wallet to beacon-sdk | ||
|
||
Please create a PR and add your wallet [here](https://github.com/airgap-it/beacon-sdk/blob/master/scripts/generate-wallet-list.ts). | ||
|
||
For iOS wallets, the wallet needs to define a custom url scheme to support the same-device functionality. | ||
|
||
## Development | ||
|
||
``` | ||
$ npm i | ||
$ npm run build | ||
$ npm run test | ||
``` | ||
|
||
Once the SDK is built, you can open the `example-dapp.html` file in your browser and try out the basic functionality. To support browser extensions as well, the file should be viewed over a webserver. You can easily start one with `python -m SimpleHTTPServer 8000` and then open the file with `http://localhost:8000/example-dapp.html`. |
Oops, something went wrong.