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  };