https://github.com/amdev9/web3override
override web3 signTransaction method to use keychain
https://github.com/amdev9/web3override
Last synced: about 12 hours ago
JSON representation
override web3 signTransaction method to use keychain
- Host: GitHub
- URL: https://github.com/amdev9/web3override
- Owner: amdev9
- Created: 2018-12-25T15:19:36.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2019-02-18T09:47:36.000Z (over 7 years ago)
- Last Synced: 2025-10-23T18:47:26.497Z (8 months ago)
- Language: JavaScript
- Homepage:
- Size: 1.3 MB
- Stars: 0
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
[](https://badge.fury.io/js/web3override)
* `bitcoin.js` - extend `bitcoinjs-lib` with keychain related methods `prepareTx`, `buildTxKeychain`
* `keychain.js` - Keychain class with ws connection initialization
* `index.js` - override `web3.eth.accounts.signTransaction` method
* `test.js` - example usage together (`keychain` + `web3`)
**Usage**
* Sign ethereum transaction
```javascript
import { web3Override, Keychain } from 'web3override'
// create new key in Keychain
const keyInstance = await Keychain.create();
const data = await keyInstance.selectKey();
const key = data.result;
await keyInstance.term();
web3.eth.accounts.signTransaction = web3Override(web3).signTransaction;
// now we use web3 with keychain
await web3.eth.accounts.signTransaction(transactionParams, key); // overriden web3 function usage
```
* Sign & build ready for broadcast bitcoin transaction
```javascript
// import library
import { bitcoin, Keychain } from 'web3override';
// tx - bitcoin.TransactionBuilder instance with inputs & outputs
const keyInstance = await Keychain.create();
const data = await keyInstance.selectKey();
const publicKey = data.result;
tx.inputs.forEach((input, index) => {
tx.prepareTx(index, publicKey)
});
const txRawHex = await tx.buildTxKeychain(keyInstance, publicKey);
```
**Run tests**
```
npm run test
```
Add key to your `key_data`:
```
keyname: test1@76de427d42c38be4
password: qwe
```

*TODO bitcoin tests*