Метод не найден: erisdb.call

Привет, я пытаюсь использовать пакет eris-contracts для взаимодействия со смарт-контрактами на платформе monax.

Контракты, которые я использовал, нормально работали в выпуске блокчейна eris, но когда я обновился до новой версии monax, я получил эту странную ошибку:

Ошибка Eris DB: вызов метода call с параметрами {from: '424FF9990BD1AD02CB7294914986E27343E702EB', адрес: '723388A1EA103460561FA1758CE4BBCD8322F9F6', данные: 'a5f3c23b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

Я попытался создать действительно простой контракт (с методом добавления) и попытался вызвать его. Но всякий раз, когда я пытаюсь вызвать какой-либо метод в контракте:

sumContract.add(34, 22, addCallback);

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

Я вернул указанную выше ошибку.

Я слежу за JS SDK смарт-контрактов на сайте, просто чтобы убедитесь, что при переходе на монаксиальный синтаксис не изменится.

Похоже, что с самой установкой блокчейна что-то не так, поскольку запуск epm.yaml дает желаемый результат.

jobs:

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

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

Вот код запуска контракта:

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.15.12
  • монакс: 0,16,0
  • прочность: 0.40.0
  • узел: 8.1.0
  • npm: 5.0.3

person alokraop    schedule 09.06.2017    source источник


Ответы (1)


Хорошо, получается, что eris-контракты не применимы к более новым версиям monax (я думаю).

Появилась новая библиотека npm: @ monax / legacy-contract, которая будет Покажи фокус. Я не совсем понимаю, почему контракты eris не работают, но изменение зависимости исправляет ситуацию.

person alokraop    schedule 09.06.2017