Goods shipping

After the seller receives LC advice from the confirming bank, the seller ships the goods. In this step, we define the SellerDeliverGoods transaction and related event for the LC update:

transaction SellerDeliverGoods {
--> LetterOfCredit lc
o String evidence
}

event SellerDeliverGoodsEvent {
--> LetterOfCredit lc
}

The letter status is set to DELIVER_PRODUCT, and the step to 4:

/**
* seller deliver product
* @param {org.example.lc.SellerDeliverGoods} sellerDeliverGoods - seller deliver product
* @transaction
*/
async function sellerDeliverGoods(request) { // eslint-disable-line no-unused-vars
const factory = getFactory();
const namespace = 'org.example.lc';

let letter = request.lc;

if (letter.status === 'CLOSED') {
throw new Error ('This letter of credit has already been closed');
} else if (letter.step!== 3) {
throw new Error ('This letter of credit should be in step 3 - ADVICE_LC');
}
letter.status = 'DELIVER_PRODUCT';
letter.step=4;
letter.evidence.push(request.evidence);
const assetRegistry = await getAssetRegistry(request.lc.getFullyQualifiedType());
await assetRegistry.update(letter);

// emit event
const sellerDeliverGoodsEvent = factory.newEvent(namespace, 'SellerDeliverGoodsEvent');
sellerDeliverGoodsEvent.lc = letter;
emit(sellerDeliverGoodsEvent);
}
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset