@bananahq/react-native-sdk
v0.0.1
Published
React Native SDK for Banana Wallet
Downloads
1
Readme
Banana wallet
this is the react native sdk for Banana Wallet
Installation
Install NPM package
npm install react-native-aa-wallet --save
IOS
cd ios
pod install
Usage
Here's how to create app's deeplink: android, ios
- Import Banana, Chains from react-native-aa-wallet
- Use your app's deeplink to initialize bananaInstance
import { Banana, Chains } from 'react-native-aa-wallet';
const APP_DEEPLINK = "<Your app's deeplink>";
const bananaInstance = new Banana(Chains.mumbai, APP_DEEPLINK);
const name = await bananaInstance.getWalletName();
Check if there's an existing wallet in the device before connecting it
const name = await bananaInstance.getWalletName();
if (name) {
const walletInstance = await bananaInstance.connectWallet(name);
const walletAddress = await walletInstance.getAddress();
} else {
// create new wallet
}
Create a new wallet
- Use bananaInstance to create wallet
const createNewBananaWallet = async () => {
try {
const walletInstance = await bananaInstance.createWallet();
const walletAddress = await walletInstance.getAddress();
console.log('Created new wallet', walletAddress);
// setBananaWallet(walletInstance);
} catch (err) {
console.log(err);
}
};
export default Home;
Get signer for connected wallet
const signer = await walletInstance.getSigner();
// get wallet balance
const walletEthBalance = signer.getBalance();
Create a transaction
const createTransaction = async () => {
try {
setLoadingStake(true);
const abi = [
{
inputs: [],
name: 'returnStake',
outputs: [],
stateMutability: 'nonpayable',
type: 'function',
},
{
inputs: [],
name: 'stake',
outputs: [],
stateMutability: 'payable',
type: 'function',
},
];
const signer = bananaWallet?.getSigner();
const stakeAddress = '0x8b370128A84bc2Df7fF4813675e294b1ae816178';
const tx = {
gasLimit: '0x55555',
to: stakeAddress,
value: ethers.utils.parseEther('100'),
data: new ethers.utils.Interface(abi).encodeFunctionData('stake', []),
};
const txn = await signer?.sendTransaction(tx);
console.log('transaction', txn);
} catch (error) {}
};
Setup example project
We also have an example react-native app for testing
- Checkout example directory
- To setup react native project follow the instructions here or do the following
- npm install
cd example
npm i
- Install cocoapods
brew install cocoapods
brew install node
brew install watchman
- Install Android studio and Xcode for setting up build environment
- For ios install pods
cd ios
pod install
Wallet SDK will not work in ios simulator or andriod emulator, so connect real device to test the app.
For iOS:
- Open the ios folder of example app directory in Xcode
- Connect your iPhone through cable and open Xcode, select your iPhone from the available devices
- Go to Signing & Capabilities from project navigator and select your icloud account in the team dropdown
- Create a test build in your device
for Android:
- Open android folder od example directory in Android Studio
- Connect your android device
- Select your device from the dropdown and create a test build