auction-createauction.js注释

/*
 * Copyright IBM Corp. All Rights Reserved.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

'use strict';

const { Gateway, Wallets } = require('fabric-network');
const path = require('path');
const { buildCCPOrg1, buildCCPOrg2, buildWallet, prettyJSONString} = require('../../test-application/javascript/AppUtil.js');

const myChannel = 'mychannel';
const myChaincodeName = 'auction';

//命令:node createAuction.js org1 seller PaintingAuction painting
//创建的auction .There are informations about buyers and sellers in the auction
async function createAuction(ccp,wallet,user,auctionID,item) {
    try {

        const gateway = new Gateway();

        //connect using Discovery enabled
        await gateway.connect(ccp,
            { wallet: wallet, identity: user, discovery: { enabled: true, asLocalhost: true } });

        const network = await gateway.getNetwork(myChannel);
        const contract = network.getContract(myChaincodeName);
       
    
        //这样理解:1:statefulTux是合约中createAuction的一个别名,contract.createTransaction('CreateAuction')指调用这个合约的函数
        let statefulTxn = contract.createTransaction('CreateAuction');

        console.log('\n--> Submit Transaction: Propose a new auction');
        //这里的item is means  what belongs to you
        //2:调用这个函数别名,传入id和携带的物件(信息),函数的作用:创建一个acution
        await statefulTxn.submit(auctionID,item);
        console.log('*** Result: committed');

        console.log('\n--> Evaluate Transaction: query the auction that was just created');
        //根据主键id查询acution信息 在另外一个合约中)
        let result = await contract.evaluateTransaction('QueryAuction',auctionID);
        console.log('*** Result: Auction: ' + prettyJSONString(result.toString()));

        gateway.disconnect();
    } catch (error) {
        console.error(`******** FAILED to submit bid: ${error}`);
    }
}

async function main() {
    try {

        if (process.argv[2] === undefined || process.argv[3] === undefined ||
            process.argv[4] === undefined || process.argv[5] === undefined) {
            console.log('Usage: node createAuction.js org userID auctionID item');
            process.exit(1);
        }

        const org = process.argv[2];
        const user = process.argv[3];
        const auctionID = process.argv[4];
        const item = process.argv[5];

        if (org === 'Org1' || org === 'org1') {
            const ccp = buildCCPOrg1();
            const walletPath = path.join(__dirname, 'wallet/org1');
            const wallet = await buildWallet(Wallets, walletPath);
            await createAuction(ccp,wallet,user,auctionID,item);
        }
        else if (org === 'Org2' || org === 'org2') {
            const ccp = buildCCPOrg2();
            const walletPath = path.join(__dirname, 'wallet/org2');
            const wallet = await buildWallet(Wallets, walletPath);
            await createAuction(ccp,wallet,user,auctionID,item);
        }  else {
            console.log('Usage: node createAuction.js org userID auctionID item');
            console.log('Org must be Org1 or Org2');
        }
    } catch (error) {
        console.error(`******** FAILED to run the application: ${error}`);
    }
}


main();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值