fix incorrect vesting remainder behavior

also checks vesting schedule range when calculating
This commit is contained in:
2022-09-15 00:41:33 +00:00
parent f3ddfca045
commit 0e39e78a0f
2 changed files with 12 additions and 5 deletions

View File

@@ -1,6 +1,7 @@
package colinearmath
import (
"fmt"
"math/big"
"time"
)
@@ -11,11 +12,15 @@ import (
func CalcAmountVestableLinear(
total *big.Int,
remaining *big.Int,
date time.Time,
now time.Time,
beginDate time.Time,
endDate time.Time,
) (*big.Int, error) {
timePassed := big.NewInt(date.Unix() - beginDate.Unix())
timePassed := big.NewInt(now.Unix() - beginDate.Unix())
if timePassed.Cmp(big.NewInt(0)) == -1 {
return nil, fmt.Errorf("time %d is out of range (%d, %d)", now.Unix(), beginDate.Unix(), endDate.Unix())
}
totalTime := big.NewInt(endDate.Unix() - beginDate.Unix())
taken := big.NewInt(0)