Vyperсреда для разработки смарт контрактовЧто такое Vyper?
Коротко:
Vyper - это экспериментальный язык программирования с синтаксисом python,
ориентированный на контракты для виртуальной машины Ethereum, который
стремится обеспечить превосходную возможность аудита, облегчая разработчикам
создание понятного кода.
Один из принципов Vyper - сделать так, чтобы разработчики фактически не могли
писать вводящий в заблуждение код.
Vyper стремится выделиться, сосредоточившись на трех конкретных целях:
безопасности , простоте языка и возможности аудита .
Vyper разработан так, чтобы упростить написание защищенного кода или в равной
степени усложнить его случайное написание.
Vyper похож на Solidity, который получил наибольшее распространение для
разработки Ethereum Smart Contract на данный момент.
Примерно Так выглядит начало части кода смарт контракта "ERC20" в Vyper:
# @dev Implementation of ERC-20 token standard.
# @author Takayuki Jimba (@yudetamago)
# https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20.md
Transfer: event({_from: indexed(address), _to: indexed(address), _value: uint256})
Approval: event({_owner: indexed(address), _spender: indexed(address), _value: uint256})
name: public(string[64])
symbol: public(string[32])
decimals: public(uint256)
# NOTE: By declaring `balanceOf` as public, vyper automatically generates a 'balanceOf()' getter
# method to allow access to account balances.
# The _KeyType will become a required parameter for the getter and it will return _ValueType.
# See: https://vyper.readthedocs.io/en/v0.1.0-beta.8/types.html?highlight=getter#mappings
balanceOf: public(map(address, uint256))
allowances: map(address, map(address, uint256))
total_supply: uint256
minter: address
@public
def __init__(_name: string[64], _symbol: string[32], _decimals: uint256, _supply: uint256):
init_supply: uint256 = _supply * 10 ** _decimals
self.name = _name
self.symbol = _symbol
self.decimals = _decimals
self.balanceOf[msg.sender] = init_supply
self.total_supply = init_supply
self.minter = msg.sender
log.Transfer(ZERO_ADDRESS, msg.sender, init_supply)
Документация:
https://vyper.readthedocs.io/en/v0.1.0-beta.10/index.htmlGitHub:
https://github.com/ethereum/vyperОнлайн-компилятор:
https://vyper.onlineОбзоры и руководства:
https://www.coinbureau.com/smart-contracts/beginners-guide-vyper-language/https://blockgeeks.com/guides/understanding-vyper/Полезные статьи:
https://medium.com/block-journal/get-started-with-vyper-the-pythonic-ethereum-smart-contract-language-e5e58969087ehttps://medium.com/@maurelian/an-early-look-at-vyper-d101e0c349c1https://medium.com/coinmonks/simple-vyper-erc-20-token-template-b60212b22662 https://medium.com/coinmonks/first-attempt-on-vyper-eb1d1ccea6edНаиболее обширная ссылка ресурсов с GitHub по Vyper:
https://github.com/ethereum/vyper/wiki/Vyper-tools-and-resources