Tools, FAQ, Tutorials:
buy.js - Application to Buy Paper
What is the Application to Buy Paper, buy.js?
✍: FYIcenter.com
buy.js is a client application using the Hyperledger Fabric Node.js
SDK library to invoke the buy() function of the papercontract
running on the PaperNet.
1. View buy.js source code:
(balaji)$ cd ~/hyperledger-binaries/fabric-samples (balaji)$ cd commercial-paper/organization/digibank/application (balaji)$ more buy.js /* SPDX-License-Identifier: Apache-2.0 * This application has 6 basic steps: * 1. Select an identity from a wallet * 2. Connect to network gateway * 3. Access PaperNet network * 4. Construct request to issue commercial paper * 5. Submit transaction * 6. Process response */ 'use strict'; // Bring key classes into scope, most importantly Fabric SDK network class const fs = require('fs'); const yaml = require('js-yaml'); const { FileSystemWallet, Gateway } = require('fabric-network'); const CommercialPaper = require('../contract/lib/paper.js'); // A wallet stores a collection of identities for use const wallet = new FileSystemWallet('../identity/user/balaji/wallet'); // Main program function async function main() { // A gateway defines the peers used to access Fabric networks const gateway = new Gateway(); // Main try/catch block try { // Specify userName for network access // const userName = 'isabella.issuer@magnetocorp.com'; const userName = 'Admin@org1.example.com'; // Load connection profile; will be used to locate a gateway let connectionProfile = yaml.safeLoad(fs.readFileSync('../gateway/networkConnection.yaml', 'utf8')); // Set connection options; identity and wallet let connectionOptions = { identity: userName, wallet: wallet, discovery: { enabled:false, asLocalhost: true } }; // Connect to gateway using application specified parameters console.log('Connect to Fabric gateway.'); await gateway.connect(connectionProfile, connectionOptions); // Access PaperNet network console.log('Use network channel: mychannel.'); const network = await gateway.getNetwork('mychannel'); // Get addressability to commercial paper contract console.log('Use org.papernet.commercialpaper smart contract.'); const contract = await network.getContract('papercontract', 'org.papernet.commercialpaper'); // buy commercial paper console.log('Submit commercial paper buy transaction.'); const buyResponse = await contract.submitTransaction('buy', 'MagnetoCorp', '00001', 'MagnetoCorp', 'DigiBank', '4900000', '2020-05-31'); // process response console.log('Process buy transaction response.'); let paper = CommercialPaper.fromBuffer(buyResponse); console.log(`${paper.issuer} commercial paper : ${paper.paperNumber} successfully purchased by ${paper.owner}`); console.log('Transaction complete.'); } catch (error) { console.log(`Error processing transaction. ${error}`); console.log(error.stack); } finally { // Disconnect from the gateway console.log('Disconnect from Fabric gateway.') gateway.disconnect(); } } main().then(() => { console.log('Buy program complete.'); }).catch((e) => { console.log('Buy program exception.'); console.log(e); console.log(e.stack); process.exit(-1); });
2. Run buy.js:
(balaji)$ node buy.js Connect to Fabric gateway. Use network channel: mychannel. Use org.papernet.commercialpaper smart contract. Submit commercial paper buy transaction. Process buy transaction response. MagnetoCorp commercial paper : 00001 successfully purchased by DigiBank Transaction complete. Disconnect from Fabric gateway. Buy program complete.
Note that how the gateway uses the networkConnection.yaml file to store the connection addresses and port number of PaperNet.
⇒ redeem.js - Application to Redeem Paper
⇐ Create Identity Wallet for Balaji
2019-11-08, 1129🔥, 0💬
Popular Posts:
How to login to the Developer Portal internally by you as the publisher? Normally, the Developer Por...
How To Access a Global Variable inside a Function? in PHP? By default, global variables are not acce...
Where to find tutorials on Using Azure API Management Developer Portal? Here is a list of tutorials ...
How to convert JSON Objects to PHP Associative Arrays using the json_decode() function? Actually, JS...
How To Set session.gc_divisor Properly in PHP? As you know that session.gc_divisor is the frequency ...