2017-06-09 21 views
0

ちょっと私はeris-contractsパッケージを使用してmonaxプラットフォームのスマートコントラクトとやりとりしようとしています。メソッドが見つかりません:erisdb.call

私はblockchainのエリスリリースで正常に動作するために使用していたが、私は新しいmonaxのバージョンに更新するとき、私はこの奇妙なエラーを取得しています契約:

Eris DB error: Call of method "call" with parameters { from: '424FF9990BD1AD02CB7294914986E27343E702EB', address: '723388A1EA103460561FA1758CE4BBCD8322F9F6', data: 'a5f3c23b00000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000000000000000000000000000016' } responded with "Method not found: erisdb.call".

私は本当に作ってみました単純なコントラクト(addメソッドを使って)を呼び出して呼び出しようとしました。しかし、私が契約の方法を呼び出すときはいつでも:

sumContract.add(34, 22, addCallback); 

function addCallback(error, sum){ 
    console.log(sum.toString()); // Would print: 56 
} 

私は上記のエラーを取り戻しました。

サイトでSmart Contracts JS SDKをフォローしていますが、monaxにアップグレードしたときに構文が変更されていないことを確認しています。

ブロックチェーンのインストール自体に問題はないように見えます。なぜなら、epm.yamlを実行すると望ましい結果が得られるからです。

jobs: 

- name: deployAddContract 
    job: 
    deploy: 
     contract: AddContract.sol 

- name: queryStorage 
    job: 
    query-contract: 
     destination: $deployAddContract 
     data: add 5 6 

はここで契約開始コードです:

  • エリス-契約:0.15.12
  • monax:0.16.0ここ

    var fs = require('fs'); 
    var erisC = require('eris-contracts'); 
    
    var erisdbURL = "http://localhost:1337/rpc"; 
    
    var contractData = require('./jobs_output.json'); 
    var contractAddress = contractData["deployAddContract"]; 
    var contractAbi = JSON.parse(fs.readFileSync("./abi/" + contractAddress)); 
    
    var contractsManager = erisC.newContractManagerDev(erisdbURL, { 
        "address": "424FF9990BD1AD02CB7294914986E27343E702EB", 
        "pubKey": "97AE5615D4C6CB3C5F949B1EFC3F6B841EBF4BE4069A942F02D9CF654614D3D6", 
        "privKey": "FD5C9BAA698FF3B13B94B2F9CCCB74DDD62257D787839A57B70EDD32E59B467497AE5615D4C6CB3C5F949B1EFC3F6B841EBF4BE4069A942F02D9CF654614D3D6" 
    }); 
    
    var sumContract = contractsManager.newContractFactory(contractAbi).at(contractAddress); 
    

    は異なる部分のバージョンです

  • 硬度:0.40.0
  • ノード:8.1.0
  • NPM:5.0.3

答えて

0

わかりましたので、新しいmonaxバージョン(と思う)には適用されませんエリス-契約が判明。

新しいnpmライブラリ:@monax/legacy-contractsがあります。これはそのトリックを行う予定です。 私はeris-contractsが失敗している理由を正確には知りませんが、依存関係を変更すると問題が解決します。

関連する問題