github.com/muhammedhassanm/blockchain@v0.0.0-20200120143007-697261defd4d/blockapps-ba-master/server/lib/project/project.js (about) 1 const ba = require('blockapps-rest'); 2 const rest = ba.rest; 3 const util = ba.common.util; 4 const config = ba.common.config; 5 6 const contractName = 'Project'; 7 const contractFilename = `${config.libPath}/project/contracts/Project.sol`; 8 9 const ErrorCodes = rest.getEnums(`${config.libPath}/common/ErrorCodes.sol`).ErrorCodes; 10 11 function* uploadContract(admin, args) { 12 const contract = yield rest.uploadContract(admin, contractName, contractFilename, args); 13 yield compileSearch(contract); 14 contract.src = 'removed'; 15 16 contract.getState = function* () { 17 return yield rest.getState(contract); 18 } 19 20 return contract; 21 } 22 23 function* compileSearch(contract) { 24 rest.verbose('compileSearch', contract.codeHash); 25 if (yield rest.isSearchable(contract.codeHash)) { 26 return; 27 } 28 const searchable = [contractName]; 29 yield rest.compileSearch(searchable, contractName, contractFilename); 30 } 31 32 function* getProjectByName(name) { 33 return (yield rest.waitQuery(`${contractName}?name=eq.${encodeURIComponent(name)}`, 1))[0]; 34 } 35 36 function* getProjectByAddress(address) { 37 return (yield rest.waitQuery(`${contractName}?address=eq.${address}`, 1))[0]; 38 } 39 40 41 module.exports = { 42 compileSearch: compileSearch, 43 uploadContract: uploadContract, 44 getProjectByName: getProjectByName, 45 // constants 46 contractName: contractName, 47 };