0.1.3 • Published 1 year ago
@funded-labs/plug-mobile-sdk v0.1.3
Plug Mobile SDK
Introduction
Plug mobile SDK is a suite that allows you to have an authenticated session with you dApp withing mobile device browser, request token transfers or approve.
Installation
yarn add @funded-labs/plug-mobile-sdk
Integrating Plug Mobile with your dApp
As a secure exchange channel SDK uses WalletConnect, therefore you will have to create account and obtain Project ID from WalletConnect Cloud
- Check that your dApp is running in mobile environment - for that we provider helper method
import { PlugMobileProvider } from '@funded-labs/plug-mobile-sdk'
const isMobile = PlugMobileProvider.isMobileBrowser()
- Initialize provider if running in mobile environment
if (isMobile) {
const provider = new PlugMobileProvider({
debug: true, // If you want to see debug logs in console
walletConnectProjectId: '', // Project ID from WalletConnect console
window: window,
})
provider.initialize().catch(console.log)
}
- In order to esablish connection between dApp and Mobile app you need to pair.
if (!mobileProvider.isPaired()) {
mobileProvider.pair().catch(console.log)
}
Creating agent
When creating actor using SDK, identity delegation request will be performed.
:information_source: Note that for security reasons Plug will restrict identity delegations to token and NFT canisters. Those canisters will be filtered out from the target array, when delegating identity
const createAgent = async () => {
const agent = await mobileProvider.createAgent({
host: 'https://icp0.io',
targets: [], // List of canister you are planning to call
})
return agent
}
You can then use returned agent with delegated identity to create actors etc.
Mobile Provider available methods
Requesting ICP transfer
requestTransfer
Key | Type | Required | Notes |
---|---|---|---|
to | String | True | Principal or account ID |
amount | number | True | E8s |
subaccount | Uint8Array or number[] | False | |
fee | number | False | E8s |
Requesting Token transfer
requestTokenTransfer
Key | Type | Required | Notes |
---|---|---|---|
canisterId | String | True | |
standard | String | True | ICRC1, ICRC2, DIP20, DRC20 |
to | String | True | Principal |
amount | number | True | E8s |
subaccount | Uint8Array or number[] | False | |
fee | number | False | E8s |