Solidity

#juneboku > topics > Solidity
created: 2022-08-12 / updated: 2022-08-14

Solidity is a statically-typed curly-braces programming language designed for developing smart contracts that run on Ethereum.
https://soliditylang.org/

プログラミング言語、スマートコントラクト
Programming Language、Smart Contract、Ethereum、EVM

  • ぼくは「書き味がJavaに似ている」と感じる
    • class の代わりに contract があるような感じ、クラスではなくコントラクトを作って組み合わせていく
    • クラスの継承のような雰囲気で、コントラクトを拡張する機構がある
  • uint や string と並んで address という型があるのはブロックチェーンの世界という感じでおもしろい
  • 計算量やガス代を常に意識しながらコードを書くことになるのがおもしろい
  • 関数の modifier の仕組みは、Railsの before_action みたいでおもしろい
    • 引数もやりとりできて便利
  • 関数の可視性修飾詞
    • private
    • internal はRubyでいう protected みたいな位置づけ
    • external コントラクトの外からだけ呼び出せる
    • public どこからでも呼び出せる
  • 関数の状態修飾子
    • pure
    • view
  • 関数の payable 修飾子
    • ETHを受け取れるようにするやつ
  • ブロックチェーンネットワーク上にデプロイされた他のコントラクトを参照できる
  • event って概念で「こういうことが起きたよ」をPublish/Subscribeできる
  • NatSpec

Mentioned in topics

GPT-4版のChatGPTにDappsを実装してもらう実験
2023-03-31

GPT-4版のChatGPTと会話しながらSolidityでスマートコントラクトを実装して、それから「このスマートコントラクトとインタラクションするための簡易なウェブサイトもつくりたい」と相談したらHTMLとJavaScriptも生成してくれた。 詳細は https://github.com/june29/token-sandbox/pull/3 に記録しておいた。 今後もこの手の作業にChatG

Pochi Bukuroの開発体験記
2023-01-01

2022-12-30、2022-12-31、2023-01-01とPochi Bukuroというプロジェクトに取り組んでいた。学びが多く、いいテンションで取り組めたので少し記録を残しておきたい。 謝辞 まずなにより、いっしょに遊んでくれたchanohaに感謝である。chanohaがいなければ走り始めることもなかっただろうし、たとえ走り始めたとしてもリリースにいたらなかったんじゃないかと思う。 数年

Pochi Bukuro
2023-01-01

ポチ袋を表現したトークン。お年玉としてETHとNFTをセットで送付できる。Solidityで実装して、Ethereum Mainnetにデプロイした。スマートコントラクトの習作。 2022-12-30にchanohaと話しているときにアイディアが出て、年末の2日間の隙間時間を使って開発して、年明け2023-01-01にリリースした。 開発リポジトリ Etherscan OpenSeaのコレクション

Marimo.solを読む会
2022-09-25

https://marimo.life/ のSmart Contractのソースコードを読む会をやった。chanohaといっしょに読み読み。 Marimo.solは200行もないくらいの量で、Solidityを学ぶ教材としてもいい感じ。 ---- function getCurrentSize(uint256 tokenId) public view returns (uint16) { requ

HardhatのTutorialをやっていく
2022-08-27

1. Overview 読んでおわり 2. Setting up the environment VS Code用の便利なやつがあるとのこと インストールした Node.jsはセットアップ済みなのでそれを使うだけ 3. Creating a new Hardhat project Hardhatの設定ファイルをつくっておすすめプラグインを導入しておわり 4. Writing and compili

契約プログラミングのメモ書き
2022-02-01

2022-01-05に開催されたtoruby 177thの勉強会の中で、m_sekiさんが「契約プログラミング」の話をしてくれた。 そこで紹介されたサンプルコードにassertやrequireといった語彙があり、Solidityで見たことあるやつだな〜となった。 エンジニア必須の概念 – 契約による設計と信頼境界線 –yohgaki's blog Solidityのassertとrequireとr

Mentioned in days

In 2022-12-31 Sat Read full day →

今日の生活

大晦日じゃん。

さかなバルRENGEでランチ。前菜もスパゲッティもおいしかった。いい場所だなあ。妻が頼んだ日替わりメニューは漁師飯ってやつで、ヒンナヒンナという感じで妻がよろこんでいたのでよかった。

夕方に買い出しに行って、帰ってきてうま煮をやった。調理酒がなかったので代わりに白ワインを入れた。雑な料理だねぇ、ガッハッハ。実家では母がつくっているようだし、妹は年明けにつくるそうな。日本の各地で大和田たちがうま煮をやっている。

きのうの夕方からchanohaとふたりでトークンの実装を進めている。プロジェクト名はPochi Bukuroかな。今日の22:00過ぎに動くものができた。わーい。明日の午前にリリース作業を行うつもり。

きのう今日でEthereum、スマートコントラクト、Solidity、NFTあたりの知見が一気に増えて興奮している。きのうchanohaと話し始めたときは「来年はいろいろとつくっていこうぜ!」くらいの気持ちでいたが、年が明ける前におもちゃがひとつ形になったことがとてもうれしい。

「スマートコントラクトで遊びたい!!」って気持ちが高まっていたんだろうなあ。年末のまとまった時間においてそれが炸裂した感じ。よかったのは、直近数ヶ月でchanohaとぼくがそれぞれ体験して思考して持ち寄ったものたちが、いい感じにトークンの設計に練り込まれていったところ。今のぼくらふたりだから、この設計に着地したと思う。

あれだな、初めてウェブアプリケーションをつくってデプロイしたときの興奮に近いものがあるな。だいたい15年くらい前のテンションに近い。新鮮なよろこびに包まれている。いい機会をくれたchanohaに感謝したい。

In 2022-09-20 Tue Read full day →

今日の取り組み

macOSのクリーンセットアップ2022-09を少し進めて、ソフトウェア開発のためのあれこれを整えた。M2 MacBook Air 2022でSolidityを書く活動をやっていくぞい。

In 2022-08-21 Sun Read full day →

今日の取り組み

HardhatのTutorialをやっていく。

GitHub Copilotは便利だなあ。なんだけれど、Project WWの執筆作業のときにサジェストされる内容に思考が引っ張られるのがとても怖くて、原稿を書いていたMarkdownファイルについては早々に無効化したのだった。なんとなくGitHub Copilotを使っていると権利的にまずいことが起きてしまいそうで心配だよな。プログラミング言語だけじゃなくて、自然言語でもそうだよな〜と思ったのだった。

自分でもSolidityのコードを書きつつ、Twitterでpaji_aさんが『dGirlsNFT』というプロジェクトを動かしていて、おもしろがってウォッチしていた。詳しいことはdGirlsNFTのページにまとめていく。

スマートコントラクトはNoCode系のツールがどんどん充実していきそうだなあ。まったく前例のないことをやろうとしたら自前のプログラミングが必要になるだろうけれど、事例が生まれたものはどんどん仕組み化されていきそう。コンポーザビリティ。プログラミングの仕事の重要性はどれだけ残るだろうか。

In 2022-08-12 Fri Read full day →

今日の取り組み

いつもBraveを使ってやっているようなことを、今日はArcだけでやってみる。けっこう独特の雰囲気があっておもしろい。拡張機能はBraveと同様にChrome向けのものをインストールして使えるのだけれど、なにか独自のハンドリングをしているのか、Create Linkが機能しないもんだから「これだと常用できねぇな…」と困っている。

カウントダウン生活に関連して、日本のさまざまな地域についてあらためて調べている。「日本に暮らす」をテーマとしたゲームがあったとして、その攻略情報を調べているような気分。めちゃ楽しい。いちおう40年近く日本での生活をやってきたことになるのだけれど、本当に知らないことだらけだ。オープンワールドはすごい。まだ見たことのない景色を、たくさん見ていきたいなあ。

あらためてCryptoZombiesをやりつつSolidityに触れていっている。Lesson 4まで終わった。

In 2022-08-04 Thu Read full day →

今日の暮らし

丸亀製麺でお昼ごはんを食べました。周囲の人々に生かされているな、と実感する日々です。

あらためてスマートコントラクト開発をやっていくぞ、ってことで数年ぶりにCryptoZombiesに再入門する。
https://cryptozombies.io/ は2018-01-26にブックマークしているから、約4年半ぶりか。なんも覚えていない。この期間でSolidityのバージョンもけっこう変わっちゃっているんじゃないの? 現時点での最新バージョンはv0.8.15かな。

進捗 → https://share.cryptozombies.io/jp/lesson/1/share/june29?id=Y3p8NTQ2NTU4

カエルちゃんがはむみ(作業部屋)の窓までやってきた様子。

In 2022-03-17 Thu Read full day →

今日のウェブログ

ほっとテックからのお知らせ | Revue

POAPの話。きのうの続き。

先日は自前のNFTを発行して、きのう今日でPOAPに触れてみて、なんとなく手触りはわかってきたので、次はSolidityでなにかしら独自のギミックを持ったトークンを実装してデプロイしてみよう。どんなトークンにしようかな〜。

In 2022-03-16 Wed Read full day →

今日のウェブログ

Algaの話

POAPの話

In 2020-06-25 Thu Read full day →

今日の自由研究

  • Project KT
    • βリリースの日を決めたので、そこに向かって開発を進めていく
    • おもしろいことになりそうでわくわくしている
  • 鎖野郎

Archives : 2,609 days