Solidity:マッピング(mapping)に2つの鍵(key)を持ちたい

DApps開発:Solidityのハウツー

sponcered by







課題:マッピング(mapping)に2つの鍵(key)を持ちたい

鍵(key)と値(Value)を1:1で紐づけて記録しておき、鍵から値を検索できるという便利な仕組み「mapping」ですが、mappingはその仕様上、鍵をひとつしか許容しません。

しかし、実際の開発においては、鍵を2つ許容してほしい場面があります。

例えば、アンケート機能を作りたい場合、各ユーザーは一度しかそれぞれのアンケートに回答できないようにしておきたいところ。

このとき、(1)回答者のウォレットアドレスと(2)アンケートのIDを鍵として、アンケートに回答済みかどうか(true/false)を値として、mappingに保有しておきたいというケースが生じます。

解決策:2つの鍵をあわせてハッシュ化したものを鍵にする

解決策

上述のケースは、2つの鍵をあわせてハッシュ化したものを鍵にすることで解決します。

Solidityにおいては、keccak256()でハッシュ化できます。ハッシュ値はbytes32型です。

サンプルコード

「Solidity」のトップに戻る

DApps開発入門:Solidityの初心者向け完全ガイド

DApps開発入門:Solidityの初心者向けガイド

2022年4月30日

「Web3の教科書」に戻る

Web3の教科書:わかりやすく解説

Web3の教科書:わかりやすく解説

2022年6月23日

sponcered by







コメントを残す

メールアドレスが公開されることはありません。

ABOUTこの記事をかいた人

ラップをしています!アルバム『アウフヘーベン』、EP『Lost Tapes vol.1』、『Lost Tapes col.2』を発売中!