@dharitri-sdk/web-wallet-provider
v0.0.1
Published
Signing provider for dApps: Dharitri (Web) Wallet
Downloads
71
Readme
drt-sdk-js-web-wallet-provider
Signing provider for dApps: Dharitri (Web) Wallet.
Documentation is available on docs.dharitri.org, while an integration example can be found here.
Note that we recommend using dapp-core instead of integrating the signing provider on your own.
Distribution
Installation
npm install @dharitri-sdk/web-wallet-provider
Building the library
In order to compile the library, run the following:
npm install
npm run compile
Usage Examples
####Login
export async function login() {
let provider = createProvider();
await provider.login();
}
####Sign Transactions
export async function signTransactions() {
let provider = createProvider();
let firstTransaction = {
toPlainObject: function () {
return {
nonce: 42,
value: "1",
receiver: "moa1uv40ahysflse896x4ktnh6ecx43u7cmy9wnxnvcyp7deg299a4sqh5mtjd",
gasPrice: 1000000000,
gasLimit: 70000,
data: Buffer.from("hello").toString("base64"),
chainID: "T",
version: 1
};
}
};
let secondTransaction = {
toPlainObject: function () {
return {
nonce: 43,
value: "1",
receiver: "moa1uv40ahysflse896x4ktnh6ecx43u7cmy9wnxnvcyp7deg299a4sqh5mtjd",
gasPrice: 1000000000,
gasLimit: 70000,
data: Buffer.from("world").toString("base64"),
chainID: "T",
version: 1
};
}
};
await provider.signTransactions([firstTransaction, secondTransaction]);
}
In production, if needed, one can use sdk-core' Transaction.fromPlainObject()
to wrap the plain transaction objects returned by the provider.
For example:
let plainSignedTransactions = provider.getTransactionsFromWalletUrl();
let transactions = plainSignedTransactions.map(item => Transaction.fromPlainObject(item));
Show signed messages
export async function showSignedTransactions() {
let provider = createProvider();
let plainSignedTransactions = provider.getTransactionsFromWalletUrl();
alert(JSON.stringify(plainSignedTransactions, null, 4));
}
Logout
export async function logout() {
let provider = createProvider();
await provider.logout({ callbackUrl: window.location.href, redirectDelayMilliseconds: 10 });
}