2022年5月25日水曜日

bsc contract dev memo

<要件定義>
・コントラクトを生成する
・コントラクト更新の機能を無しに
・コントラクトを配る
・配ったコントラクトは、ロックが掛かっていて動かせない
・ロックは(アドレス毎または購入した時期)から期間で解除される
・解除されても、ある期間までは保有量の80%しか動かせない
・ユーザーロックが解除される時間を確認できる
・管理者はロック解除のアドレスと期間を設定できる

<ロック解除や期間設定>
DEXのステーキングの場合だと、ユーザー自身が行うのに対して、これは管理者が行なう。
どこかにコントラクトからアドレスを管理するストレージが必要になる。
しかも頻繁に書き換わる。



===一般的な動作を試しにfirebird finance(polygon)で見てみた===

<ステーキング Increase_amount>
https://polygonscan.com/tx/0x9c8b6a2354728c1823d3023edc794e041895df17f1af8b497db7e5997f90f63b

<期間延長 Increase_unlock_time>
https://polygonscan.com/tx/0x4562bcd3fdd876fb953439ccccf5de963943180450c38fab40118397e922f0cf

<コントラクトコード>
https://polygonscan.com/address/0x12bdad0abfccb9d88e9cc047f1e4cfab94947af3#code
<埋め込まれた別コントラクトのコード>
https://polygonscan.com/address/0x2dcbaba8d0db21677dad2b5beccb9db6cada42fd#code


動作としては、送信者がmintすることによって、デポジットと期間設定をしている。
上の仕様だと要件には合わない。
トークン保有者がウォレットでトークン量を確認できない。


単純な解決方法として、transferに購入時期からの期間による制限と保有数による制限を予めコントラクトに記述しておく。
運用もすべてコントラクトに沿って行わなきゃいけなくなるけど・・・


0 件のコメント:

コメントを投稿