Solidity
表示
この記事は英語版の対応するページを翻訳することにより充実させることができます。(2022年1月) 翻訳前に重要な指示を読むには右にある[表示]をクリックしてください。
|
Solidityのロゴ | |
最新リリース | 0.8.28 / 2024年10月9日[1] |
---|---|
影響を受けた言語 | JavaScript, C++, Eiffel, Python |
ウェブサイト |
github |
Solidityとは、ブロックチェーン上で実行されるスマート・コントラクトを記述するための手続き型プログラミング言語である。キャビン・ウッドによって作成された。JavaScriptやC++に似た構文を持つとされる[2]。SolidityによってコンパイルしたプログラムはEthereum Virtual Machine上での実行が想定されている[3]。
例
[編集]Solidityのプログラムの例は以下のようになっている[4]。
pragma solidity >= 0.7.0 <0.8.0;
contract Coin {
// The keyword "public" makes variables
// accessible from other contracts
address public minter;
mapping (address => uint) public balances;
// Events allow clients to react to specific
// contract changes you declare
event Sent (address from, address to, uint amount);
// Constructor code is only run when the contract
// is created
constructor() public {
minter = msg.sender;
}
// Sends an amount of newly created coins to an address
// Can only be called by the contract creator
function mint(address receiver, uint amount) public {
require(msg.sender == minter);
require(amount < 1e60);
balances[receiver] += amount;
}
// Sends an amount of existing coins
// from any caller to an address
function send(address receiver, uint amount) public {
require(amount <= balances[msg.sender], "Insufficient balance.");
balances[msg.sender] -= amount;
balances[receiver] += amount;
emit Sent (msg.sender, receiver, amount);
}
}
実行環境
[編集]Solodityを使えるウェブベース開発環境として、代表的に以下がある[5]。
- Remix IDE
- EthFiddle
Solidityが使えるブロックチェーンプラットフォームは、代表的には以下がある。
- Ethereum
- Binance Smart Chain[6]
- Ethereum Classic
- Tendermint[7]
- Counterparty[8][9]
- Tron
- Avalanche [10]
- Milkomeda[11] (Cardano・Solana・Algorandのサイドチェーン)
脚注
[編集]- ^ 出典URL: https://github.com/ethereum/solidity/releases/tag/v0.8.28, 閲覧日: 2024年10月27日, 題名: Release 0.8.28, 出版日: 2024年10月9日
- ^ Antonopoulos, Andreas『マスタリング・イーサリアム ―スマートコントラクトとDAppの構築』Gavin Wood, 宇野 雅晴, 鳩貝 淳一郎, 中城 元臣, 落合 渉悟, 落合 庸介(1st edition)、オイラリージャパン、[Erscheinungsort nicht ermittelbar]、2019年、xxxix頁。ISBN 978-4-87311-896-3。OCLC 1226442243 。
- ^ “Hyperledger Fabric code pattern - Create a blockchain app for loyalty points” (英語). IBM Developer. 2021年12月29日閲覧。
- ^ “Introduction to Smart Contracts — Solidity 0.5.14 documentation”. docs.soliditylang.org. 2021年12月29日閲覧。
- ^ Antonopoulos, Andreas『マスタリング・イーサリアム ―スマートコントラクトとDAppの構築』Gavin Wood, 宇野 雅晴, 鳩貝 淳一郎, 中城 元臣, 落合 渉悟, 落合 庸介(1st edition)、オイラリージャパン、[Erscheinungsort nicht ermittelbar]、2019年、139頁。ISBN 978-4-87311-896-3。OCLC 1226442243 。
- ^ binance-chain/bsc, binance-chain, (2021-12-29) 2021年12月29日閲覧。
- ^ “What is Tendermint | Tendermint Core”. docs.tendermint.com. 2021年12月29日閲覧。
- ^ Vigna, Michael J. Casey and Paul (2014年11月12日). “BitBeat: Bitcoin 2.0 Firm Counterparty Adopts Ethereum’s Software” (英語). Wall Street Journal. ISSN 0099-9660 2021年12月29日閲覧。
- ^ Swan, Melanie (2015). Blockchain : blueprint for a new economy (First edition ed.). [Sebastopol, Calif.]. ISBN 978-1-4919-2047-3. OCLC 900781291
- ^ “What is Avalanche? | Avalanche Docs” (英語). docs.avax.network. 2021年12月29日閲覧。
- ^ https://dcspark.gitbook.io/milkomeda/