From 6c28eca339891bfacf2b8710d9f9ba8385a297b0 Mon Sep 17 00:00:00 2001 From: "Matthew B. White" Date: Wed, 6 Feb 2019 14:29:56 +0000 Subject: [PATCH] [FAB-13823] Commercial Paper fixes Change-Id: I35e3e02fe9672ea79bd96e4d49926c900dfa627d Signed-off-by: Matthew B. White --- .../contract/contract-metadata/metadata.json | 137 ++++++++++++++++++ .../digibank/contract/ledger-api/statelist.js | 8 +- .../digibank/contract/lib/papercontract.js | 4 +- .../digibank/contract/package.json | 4 +- .../contract/contract-metadata/metadata.json | 137 ++++++++++++++++++ .../contract/ledger-api/statelist.js | 8 +- .../magnetocorp/contract/lib/papercontract.js | 2 +- .../magnetocorp/contract/package.json | 4 +- 8 files changed, 293 insertions(+), 11 deletions(-) create mode 100644 commercial-paper/organization/digibank/contract/contract-metadata/metadata.json create mode 100644 commercial-paper/organization/magnetocorp/contract/contract-metadata/metadata.json diff --git a/commercial-paper/organization/digibank/contract/contract-metadata/metadata.json b/commercial-paper/organization/digibank/contract/contract-metadata/metadata.json new file mode 100644 index 00000000..8e4057d6 --- /dev/null +++ b/commercial-paper/organization/digibank/contract/contract-metadata/metadata.json @@ -0,0 +1,137 @@ +{ + "$schema": "http://fabric-shim.github.io/contract-schema.json", + "info": { + "title": "papercontract", + "version": "1.4.1", + "description": "Commercial Paper example", + "termsOfService": "https://github.com/hyperledger/fabric-samples/", + "contact": { + "name": "Hyperledger Fabric", + "url": "https://chat.hyperledger.org/channel/fabric-samples", + "email": "fabric@lists.hyperledger.org" + }, + "license": { + "name": "Apache 2.0", + "url": "https://www.apache.org/licenses/LICENSE-2.0.html" + } + }, + "contracts": { + "org.papernet.commercialpaper": { + "name": "org.papernet.commercialpaper", + "transactions": [ + { + "name": "issue", + "parameters": [ + { + "name": "issuer", + "schema": { + "type":"string" + } + }, + { + "name": "paperNumber", + "schema": { + "type":"integer" + } + }, + { + "name": "issueDateTime", + "schema": { + "type":"string" + } + }, + { + "name": "maturityDateTime", + "schema": { + "type":"string" + } + }, + { + "name": "faceValue", + "schema": { + "type":"integer" + } + } + ] + }, + { + "name": "buy", + "parameters": [ + { + "name": "issuer", + "schema": { + "type":"string" + } + }, + { + "name": "paperNumber", + "schema": { + "type":"integer" + } + }, + { + "name": "currentOwner", + "schema": { + "type":"string" + } + }, + { + "name": "newOwner", + "schema": { + "type":"string" + } + }, + { + "name": "price", + "schema": { + "type":"integer" + } + }, + { + "name": "purchaseDateTime", + "schema": { + "type":"string" + } + } + ] + }, + { + "name": "redeem", + "parameters": [ + { + "name": "issuer", + "schema": { + "type":"string" + } + }, + { + "name": "paperNumber", + "schema": { + "type":"integer" + } + }, + { + "name": "redeemingOwner", + "schema": { + "type":"string" + } + }, + { + "name": "redeemDateTime", + "schema": { + "type":"string" + } + } + ] + } + ], + "info": { + "title": "", + "version": "1.4.1" + } + } + }, + "components": { + "schemas": {} + } +} \ No newline at end of file diff --git a/commercial-paper/organization/digibank/contract/ledger-api/statelist.js b/commercial-paper/organization/digibank/contract/ledger-api/statelist.js index 3c39671a..17604334 100644 --- a/commercial-paper/organization/digibank/contract/ledger-api/statelist.js +++ b/commercial-paper/organization/digibank/contract/ledger-api/statelist.js @@ -42,8 +42,12 @@ class StateList { async getState(key) { let ledgerKey = this.ctx.stub.createCompositeKey(this.name, State.splitKey(key)); let data = await this.ctx.stub.getState(ledgerKey); - let state = State.deserialize(data, this.supportedClasses); - return state; + if (data){ + let state = State.deserialize(data, this.supportedClasses); + return state; + } else { + return null; + } } /** diff --git a/commercial-paper/organization/digibank/contract/lib/papercontract.js b/commercial-paper/organization/digibank/contract/lib/papercontract.js index c0b132bf..b96a12ea 100644 --- a/commercial-paper/organization/digibank/contract/lib/papercontract.js +++ b/commercial-paper/organization/digibank/contract/lib/papercontract.js @@ -31,7 +31,7 @@ class CommercialPaperContext extends Context { class CommercialPaperContract extends Contract { constructor() { - // Unique namespace when multiple contracts per chaincode file + // Unique name when multiple contracts per chaincode file super('org.papernet.commercialpaper'); } @@ -111,7 +111,7 @@ class CommercialPaperContract extends Contract { if (paper.isTrading()) { paper.setOwner(newOwner); } else { - throw new Error('Paper ' + issuer + paperNumber + ' is not trading. Current state = ' + cp.getCurrentState()); + throw new Error('Paper ' + issuer + paperNumber + ' is not trading. Current state = ' +paper.getCurrentState()); } // Update the paper diff --git a/commercial-paper/organization/digibank/contract/package.json b/commercial-paper/organization/digibank/contract/package.json index f6513130..cf55702f 100644 --- a/commercial-paper/organization/digibank/contract/package.json +++ b/commercial-paper/organization/digibank/contract/package.json @@ -1,6 +1,6 @@ { - "name": "papernet-js", - "version": "0.0.1", + "name": "papercontract", + "version": "0.0.3", "description": "Papernet Contract", "main": "index.js", "engines": { diff --git a/commercial-paper/organization/magnetocorp/contract/contract-metadata/metadata.json b/commercial-paper/organization/magnetocorp/contract/contract-metadata/metadata.json new file mode 100644 index 00000000..8e4057d6 --- /dev/null +++ b/commercial-paper/organization/magnetocorp/contract/contract-metadata/metadata.json @@ -0,0 +1,137 @@ +{ + "$schema": "http://fabric-shim.github.io/contract-schema.json", + "info": { + "title": "papercontract", + "version": "1.4.1", + "description": "Commercial Paper example", + "termsOfService": "https://github.com/hyperledger/fabric-samples/", + "contact": { + "name": "Hyperledger Fabric", + "url": "https://chat.hyperledger.org/channel/fabric-samples", + "email": "fabric@lists.hyperledger.org" + }, + "license": { + "name": "Apache 2.0", + "url": "https://www.apache.org/licenses/LICENSE-2.0.html" + } + }, + "contracts": { + "org.papernet.commercialpaper": { + "name": "org.papernet.commercialpaper", + "transactions": [ + { + "name": "issue", + "parameters": [ + { + "name": "issuer", + "schema": { + "type":"string" + } + }, + { + "name": "paperNumber", + "schema": { + "type":"integer" + } + }, + { + "name": "issueDateTime", + "schema": { + "type":"string" + } + }, + { + "name": "maturityDateTime", + "schema": { + "type":"string" + } + }, + { + "name": "faceValue", + "schema": { + "type":"integer" + } + } + ] + }, + { + "name": "buy", + "parameters": [ + { + "name": "issuer", + "schema": { + "type":"string" + } + }, + { + "name": "paperNumber", + "schema": { + "type":"integer" + } + }, + { + "name": "currentOwner", + "schema": { + "type":"string" + } + }, + { + "name": "newOwner", + "schema": { + "type":"string" + } + }, + { + "name": "price", + "schema": { + "type":"integer" + } + }, + { + "name": "purchaseDateTime", + "schema": { + "type":"string" + } + } + ] + }, + { + "name": "redeem", + "parameters": [ + { + "name": "issuer", + "schema": { + "type":"string" + } + }, + { + "name": "paperNumber", + "schema": { + "type":"integer" + } + }, + { + "name": "redeemingOwner", + "schema": { + "type":"string" + } + }, + { + "name": "redeemDateTime", + "schema": { + "type":"string" + } + } + ] + } + ], + "info": { + "title": "", + "version": "1.4.1" + } + } + }, + "components": { + "schemas": {} + } +} \ No newline at end of file diff --git a/commercial-paper/organization/magnetocorp/contract/ledger-api/statelist.js b/commercial-paper/organization/magnetocorp/contract/ledger-api/statelist.js index 3c39671a..17604334 100644 --- a/commercial-paper/organization/magnetocorp/contract/ledger-api/statelist.js +++ b/commercial-paper/organization/magnetocorp/contract/ledger-api/statelist.js @@ -42,8 +42,12 @@ class StateList { async getState(key) { let ledgerKey = this.ctx.stub.createCompositeKey(this.name, State.splitKey(key)); let data = await this.ctx.stub.getState(ledgerKey); - let state = State.deserialize(data, this.supportedClasses); - return state; + if (data){ + let state = State.deserialize(data, this.supportedClasses); + return state; + } else { + return null; + } } /** diff --git a/commercial-paper/organization/magnetocorp/contract/lib/papercontract.js b/commercial-paper/organization/magnetocorp/contract/lib/papercontract.js index c9e54aa3..b96a12ea 100644 --- a/commercial-paper/organization/magnetocorp/contract/lib/papercontract.js +++ b/commercial-paper/organization/magnetocorp/contract/lib/papercontract.js @@ -31,7 +31,7 @@ class CommercialPaperContext extends Context { class CommercialPaperContract extends Contract { constructor() { - // Unique namespace when multiple contracts per chaincode file + // Unique name when multiple contracts per chaincode file super('org.papernet.commercialpaper'); } diff --git a/commercial-paper/organization/magnetocorp/contract/package.json b/commercial-paper/organization/magnetocorp/contract/package.json index f6513130..cf55702f 100644 --- a/commercial-paper/organization/magnetocorp/contract/package.json +++ b/commercial-paper/organization/magnetocorp/contract/package.json @@ -1,6 +1,6 @@ { - "name": "papernet-js", - "version": "0.0.1", + "name": "papercontract", + "version": "0.0.3", "description": "Papernet Contract", "main": "index.js", "engines": {