前回は、在庫追加数としてuint8の範囲を超える数値を設定してしまったため、とオーバーフローが発生し257が1に変換されてしまいました。
今回はこの問題を解消していきます。
ソースコード(改善2)
改善策としまして、在庫数を追加する関数(AddStock関数)の引数を、データ型uint8からuintに変更してみます。
uint8の範囲は0~255ですが、uintの範囲は0~2の256乗までとかなりの大きな数字となります。
[ソースコード]
1 | pragma solidity ^0.4.11; |
追加在庫数(_addedQuantity)の修正箇所は12行目と21行目で、uint8をuintに変更しています。
また追加在庫数と合わせて、現在の在庫数(stockQuantity)のデータ型もuintに変更しておきます。(4行目)
次回はこの改善でオーバーフローが解消しているかどうかの確認してみます。