fabric-web3js
v1.0.55
Published
Provide offline transaction proposal and transaction sign function.
Downloads
1
Readme
Fabric-web3js
Provide offline transaction proposal and transaction sign function.
install
yarn add fabric-web3js
npm install fabric-web3js
Sample
1. Singleton ClientProxy
ClientProxy is the main object used to do most stuff, so firstly get one and the only one instance of it.
Call method - getInstance to get the only one instance.
import { ClientProxy } from 'fabric-web3js';
// singleton instance
const clientProxy = ClientProxy.getInstance();
2. Setup Credential Store for ClientProxy Instance
ClientProxy manages keys(private/public) and certificate through credential store.
Call async method - initCredentialStores to setup credential store. It takes two string parameters:
- one for KVS
- one for CVS
await clientProxy.initCredentialStores(
'/Users/zhangmingqi/Documents/fabric-ca/store/kvs/',
'/Users/zhangmingqi/Documents/fabric-ca/store/cvs/',
);
3. Add user keys and certificate into credential store.
Call asyc method - addUser to achieve that.
It requires 4 string parameters:
- identity name/username: unique required
- organization MSP id
- private key
- certificate
import * as fs from 'fs';
import { ClientProxy } from 'fabric-web3js';
const pathOfPrivateKeyFile = '...';
const pathOfCertificateFile = '...';
const privateKeyPEM = fs.readFileSync(pathOfPrivateKeyFile).toString();
const certificate = fs.readFileSync(pathOfCertificateFile,).toString();
const user = await clientProxy.addUser('admin04.org2.test.example.com', 'Org3MSP', privateKeyPEM, certificate);
4. Get user by username
ClientProxy can manage multiple users and username is the only field used to query a user from credential store.
Call method - getUser to get a user from credential store.
const user = await clientProxy.getUser('admin04.org2.test.example.com');
5. Generate unsigned endorsement proposal
Compose a proposal request, then call method - generateUnsignedProposal to achieve that.
const proposalRequest: ProposalRequest = {
fcn: 'invoke',
args: ['a', 'b', '10'],
chaincodeId: 'sample',
channelId: 'mychannel',
};
const unsignedProposal = clientProxy.generateUnsignedProposal(proposalRequest);
API
initCredentialStores
addUser
getUser
generateUnsignedProposal
generateUnsignedTXPayload
sign
generateSignedProposal
generateSignedTXPayload
License
MIT
Keywords
fabric offline sign proposal transaction client signature