Solidity

solidityで素数判定

solidityで素数判定

getPrimeNumbers(100000)の出力値

solidityで平方根(整数、小数点以下切り捨て)を取得

solidityで平方根(整数、小数点以下切り捨て)を取得

https://ethfiddle.com/iklY1QezRl

[DApps]ゆずのは銀行(仮)

[DApps]ゆずのは銀行(仮)

http://yuzunoha.jp/yuzubank/

web3とpromiseの組み合わせやっとしっくり来た

web3とpromiseの組み合わせやっとしっくり来た

このタイミングでpromise使えば、EVMと通信後に処理を進められる。

32bit16進数の文字列をint[32]に変換

32bit16進数の文字列をint[32]に変換

int[32]は要素数32のint型配列。

Solidityのkeccak256()は本当に分散した値を生成しているのか確認した。
結果はOK。

keccak256()の戻り値はbytes32。
keccak256()を入力をずらしながら1000回実行して、
1000個のbytes32文字列を取得して、
JavaScriptで全部8bitずつ数値に変換して、
出現頻度を調べた。

solidityでクイックソート

solidityでクイックソート

storage領域はめっちゃ書き換えるより最後に完成品を代入したほうがよさそう。
詳しいことは知らないけれど。

https://ethfiddle.com/7SYPK8FEVO

仮想猫ゲームの全猫データ取得作戦

仮想猫ゲームの全猫データ取得作戦

全猫データを一撃で取得する方法をgetCatAll関数に実装した。
一度に返却できる可変長配列の最大要素数は規定されているのだろうか。
誰かおしえて欲しい。

https://ethfiddle.com/Z-r9GPxQQ3

solidityで2次元配列を1次元配列にして返却する

solidityで2次元配列を1次元配列にして返却する

solidityは現状多次元配列を返却できない。stringの配列も2次元配列扱いだから返却できない。
どうにかして数値データだけでも一撃で取得できないものかと下記のコードを書いてみた。
データをuint256に限定とかすれば一応、一撃で取得できる?これ実用的なのかな。
まだよくわかっていないけれど、viewの関数はgasが一切かからないからこれはこれでいいかも知れない。

solidityのgas消費量調査

solidityのgas消費量調査

例えばバブルソート実行時、
storage領域(メンバ変数的なとこ)を直接何回も書き換えるより、
memory領域で計算終わらせて最後にstorage領域にコピーした方がgasが安いことがわかった。

https://ethfiddle.com/Ge47VLSHtf

Solidityでクイックソート

Solidityでクイックソート