НЕИСПРАВНОСТЬ: адрес в поле "setState" "newAddresses" должен иметь формат SC: адрес:the_crowdfunding_contract

Я пытаюсь запустить тест мандо ниже, но при запуске erdpy contract test, тест не проходит и возвращает следующую ошибку: FAIL: address in "setState" "newAddresses" field should have SC format: address:the_crowdfunding_contract.

Тестовый код взят из учебника по elrond смарт-контрактам, часть 1 .

Какой правильный формат адреса SC в setState шаг?

Используемые версии:

  • erdpy: 1.0.21
  • Элрод-васм: 0,22,9
      {
  "name": "tutorial_crowdfunding",
  "steps": [
    {
      "step": "setState",
      "accounts": {
        "address:my_address": {
          "nonce": "0",
          "balance": "1,000,000"
        }
      },
      "newAddresses": [
        {
          "creatorAddress": "address:my_address",
          "creatorNonce": "0",
          "newAddress": "address:the_crowdfunding_contract"
        }
      ]
    },
    {
      "step": "scDeploy",
      "tx": {
        "from": "address:my_address",
        "contractCode": "file:../output/tutorial_crowdfunding.wasm",
        "value": "0",
        "gasLimit": "1,000,000",
        "gasPrice": "0"
      },
      "expect": {
        "status": "0",
        "gas": "*",
        "refund": "*"
      }
    },
    {
      "step": "checkState",
      "accounts": {
        "address:my_address": {
          "nonce": "1",
          "balance": "1,000,000"
        },
        "address:the_crowdfunding_contract": {
          "nonce": "0",
          "balance": "0",
          "storage": {
            "''owner": "address:my_address"
          },
          "code": "file:../output/tutorial_crowdfunding.wasm"
        }
      }
    }
  ]
}

1 ответ

Адреса SmartContract в mandos должны начинаться с префикса sc:вместо address:

Таким образом, правильный тест будет выглядеть так:

      {
  "name": "tutorial_crowdfunding",
  "steps": [
    {
      "step": "setState",
      "accounts": {
        "address:my_address": {
          "nonce": "0",
          "balance": "1,000,000"
        }
      },
      "newAddresses": [
        {
          "creatorAddress": "address:my_address",
          "creatorNonce": "0",
          "newAddress": "sc:the_crowdfunding_contract"
        }
      ]
    },
    {
      "step": "scDeploy",
      "tx": {
        "from": "address:my_address",
        "contractCode": "file:../output/tutorial_crowdfunding.wasm",
        "value": "0",
        "gasLimit": "1,000,000",
        "gasPrice": "0"
      },
      "expect": {
        "status": "0",
        "gas": "*",
        "refund": "*"
      }
    },
    {
      "step": "checkState",
      "accounts": {
        "address:my_address": {
          "nonce": "1",
          "balance": "1,000,000"
        },
        "sc:the_crowdfunding_contract": {
          "nonce": "0",
          "balance": "0",
          "storage": {
            "''owner": "address:my_address"
          },
          "code": "file:../output/tutorial_crowdfunding.wasm"
        }
      }
    }
  ]
}

Кроме того, ваше имя адреса SmartContract может быть слишком длинным, и сейчас я не уверен в точных ограничениях. Поэтому, если ошибка не устранена после вышеуказанных изменений, попробуйте сократить имя смарт-контракта.

Дополнительное примечание: документация несколько устарела. Для более новой информации вы можете взглянуть на шаблоны, которые можно использовать с расширением elrond ide vscode. Они тоже есть на гитхабе

Другие вопросы по тегам