Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
3
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

posted at

Organization

TruffleがVyperをサポートしたので触ってみる

Truffleのv5Vyperがサポートされたので触ってみます。
環境構築は地味に面倒なのでDockerイメージを作成しました(Dockerfile)。

利用手順

docker run -it sot528/truffle-vyper-test

コンテナ内で挙動確認

vyper-example-boxをunboxしているので↓のコマンドでテストが走ります。

$ truffle test

Using network 'test'.



  Contract: VyperStorage
    ✓ ...should store the value 89. (114ms)


  1 passing (129ms)

VyperのContractのテストが走りました。
テスト対象のContract ./contracts/VyperStorage.vy をいじってtruffle compileすればいろいろ挙動確認できます。

stored_data: uint256

@public
def set(new_value : uint256):
    self.stored_data = new_value

@public
@constant
def get() -> uint256:
    return self.stored_data

テストファイルは ./test/vyperStorage.js です。

const VyperStorage = artifacts.require("VyperStorage");

contract("VyperStorage", () => {
  it("...should store the value 89.", async () => {
    const storage = await VyperStorage.deployed();

    // Set value of 89
    await storage.set(89);

    // Get stored value
    const storedData = await storage.get();

    assert.equal(storedData, 89, "The value 89 was not stored.");
  });
});

以下のようなエラーが出る場合は build以下を削除すると解決します。

Error parsing /code/contracts/VyperStorage.vy: ParsedContract.sol:1:1: ParserError: Expected pragma, import directive or contract/interface/library definition.
stored_data: uint256
^---------^
Compilation failed. See above.
Truffle v5.0.0 (core: 5.0.0)

以上。
Vyperも着実に環境が整ってきていますね。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
3
Help us understand the problem. What are the problem?