react-native-trust-sdk
v0.0.6
Published
The react-native-trust-sdk lets you sign Ethereum transactions and messages with Trust Wallet so that you can bulid a react native DApp without having to worry about keys or wallets.
Downloads
11
Maintainers
Readme
react-native-trust-sdk
The react-native-trust-sdk lets you sign Ethereum transactions and messages with Trust Wallet so that you can bulid a react native DApp without having to worry about keys or wallets.
Installation
npm i react-native-trust-sdk
Configuring Android
Make sure you have set up intent-filter for your app (documentation here)
example app settings:
<activity
android:name=".MainActivity"
android:launchMode="singleTask"
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="trust-rn-example"/>
</intent-filter>
</activity>
Configuring iOS
Make sure you have set up url scheme for your app (Open Xcode an click on your project. Go to the 'Info' tab and expand the 'URL Types' group).
example app settings:
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>CFBundleURLSchemes</key>
<array>
<string>trust-rn-example</string>
</array>
</dict>
</array>
// iOS 9.x or newer
#import <React/RCTLinkingManager.h>
- (BOOL)application:(UIApplication *)application
openURL:(NSURL *)url
options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options
{
return [RCTLinkingManager application:application openURL:url options:options];
}
// If your app is using Universal Links
- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity
restorationHandler:(void (^)(NSArray * _Nullable))restorationHandler
{
return [RCTLinkingManager application:application
continueUserActivity:userActivity
restorationHandler:restorationHandler];
}
Example
Checkout the example typescript project in example
folder.
npm install && npm start
react-native run-ios
Usage
import the package:
import TrustWallet, { MessagePayload, TransactionPayload } from 'react-native-trust-sdk';
initialize an instance, e.g. in componentDidMount
:
const wallet = new TrustWallet('<your_app_scheme>://');
sign a message:
const payload = new MessagePayload('hello trust');
wallet.signMessage(payload)
.then((result) => {
console.log('Message Signed', result);
}).catch((error) => {
console.log('Error', error);
});
sign a transaction:
const payload = new TransactionPayload('<address>', '<amount>', '<data>');
wallet.signTransaction(payload)
.then((result) => {
console.log('Transaction Signed', result);
})
.catch((error) => {
console.log('Error', error);
});
});
clean up all resolve handlers, e.g. incomponentWillUnmount
:
wallet.cleanup();
Contributing
You are welcome! Create pull requests and help to improve the package.
License
GPLv3