We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
distributeではレポート未提出者の場合には基本的に処理がスキップされて報酬0になるので、rewardが_amounts[index]+ minimumRewardPerReporterにならないケースがあるけどこれは意図通り?
異なるケースの例: 例えばrequestが
minimumReward = 0 deposit = 10
で
reporters: AとBの2人 A: (applyだけして)レポート未提出 B: レポート提出済
とする。 このときに
_amounts = [10000000000000, 10, 0, 0, ...(中略)..., 0]
を指定してdistributeすると
log.Distributed(uuid, Aのアドレス, 0) log.Distributed(uuid, Bのアドレス, 10)
というログが出てきそう
The text was updated successfully, but these errors were encountered:
・frontにはvalidationがあるので前提としてcontractを直接ぶっ叩かれた時の話 ・depositされている額が10000000000010だとする ・reportを提出しているのはB一人、Aはapplyだけしているとする ・この時、Aに10000000000000、Bに10の報酬をdistributeするというリクエストを投げた場合に、 assert self.requests[_uuid].deposit == total + self.requests[_uuid].minimumReward は通過してしまう
assert self.requests[_uuid].deposit == total + self.requests[_uuid].minimumReward
・その後の
if self.requests[_uuid].reports[index] == EMPTY_BYTES32: continue
で実際のdistribute送金はBに10しかされないが、statusがisCompletedになってしまうため、 10000000000000のETHはコントラクトに残ってしまうことになる。
ということですか?:bow:
Sorry, something went wrong.
submitしてない人はtotalの計算に含まれないので、depositは10じゃないとバリデーションに通らないんじゃないかなと思うですがどうでしょ…? コントラクト上だと「applyだけした人に(amountで任意の値を指定しても)0の報酬が支払われている」というログが出てくるようなケースがあって、ちょっと違和感があるという程度の認識です 🙇
なるほど! 「Applyだけした人に対して0送ったよ!」というログって要らなくね? ってことですね!
それだ、最初からそう言うべきだった…mm です!!!
No branches or pull requests
distributeではレポート未提出者の場合には基本的に処理がスキップされて報酬0になるので、rewardが_amounts[index]+ minimumRewardPerReporterにならないケースがあるけどこれは意図通り?
異なるケースの例:
例えばrequestが
で
とする。
このときに
を指定してdistributeすると
というログが出てきそう
The text was updated successfully, but these errors were encountered: