https://github.com/wavesplatform/provider-metamask
https://github.com/wavesplatform/provider-metamask
Last synced: 8 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/wavesplatform/provider-metamask
- Owner: wavesplatform
- Created: 2021-09-03T12:08:36.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2022-11-01T15:06:55.000Z (over 3 years ago)
- Last Synced: 2024-11-29T20:18:43.931Z (over 1 year ago)
- Language: TypeScript
- Size: 192 KB
- Stars: 1
- Watchers: 8
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
Awesome Lists containing this project
README
# ProviderMetamask
* [Overview](#overview)
* [Getting Started](#getting-started)
ProviderMetamask
### 1. Library installation
To install Signer and ProviderMetamask libraries use
```bash
npm i @waves/signer @waves/provider-metamask
```
### 2. Library initialization
Add library initialization to your app.
* For Stagenet:
```js
import { Signer } from '@waves/signer';
import { ProviderMetamask } from '@waves/provider-metamask';
const signer = new Signer({
// Specify URL of the node on Stagenet
NODE_URL: 'https://nodes-stagenet.wavesnodes.com'
});
const provider = new ProviderMetamask({
wavesConfig: {
nodeUrl: 'https://nodes-stagenet.wavesnodes.com',
chainId: 'S'.charCodeAt(0)
}
});
signer.setProvider(provider);
```
* For Mainnet:
```js
import { Signer } from '@waves/signer';
import { ProviderMetamask } from '@waves/provider-metamask';
const signer = new Signer();
const provider = new ProviderMetamask();
signer.setProvider(provider);
```
### 3. Basic example
Now your application is ready to work with Waves Platform. Let's test it by implementing basic functionality. For example, we could try to authenticate user and transfer funds.
```js
const user = await signer.login();
const [transfer] = await signer
.transfer({
amount: 1,
recipient: 'alias:T:merry',
})
.broadcast();
```
```js
const user = await signer.login();
const [invoke] = await signer
.invoke({
dApp: "3F4bY4PsS8E1tShx9ruSYthie3uzYiSffSv",
call:{
function: "deposit",
args:[{ type: "string", value: "string" }]
},
payment:[]
})
.broadcast();
```
For more information see [Signer documentation](https://github.com/wavesplatform/signer/blob/master/README.md).
### 4. How to sign order
Set the order parameters:
- Omit senderPublicKey.
- Specify asset IDs in Waves format: 32 bytes in base58. For WAVES use the string WAVES.
```js
const orderData = {
orderType: 'sell',
version: 4,
assetPair: {
amountAsset: '8KTfWNoWYf9bP3hg1QYBLpkk9tgRb5wiUZnT1HUiNa9r',
priceAsset: 'WAVES',
},
price: 100000,
amount: 100000,
timestamp: 1634563969123,
expiration: 1637069590926,
matcherFee: 300000,
matcherFeeAssetId: null,
};
const provider = new ProviderMetamask();
const sign = await provider.signOrder(orderData);
```
### 5. How to get Ethereum address
```js
import { ProviderMetamask } from '@waves/provider-metamask';
import { wavesAddress2eth } from '@waves/node-api-js';
const user = await signer.login();
const ethereumAddress = wavesAddress2eth(user.address);
```
### 6. How to sign message
```js
const message = 'message text';
const provider = new ProviderMetamask();
const sign = await provider.signMessage(message);
```