Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
O
openzeppelin-contracts-upgradeable
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
俞永鹏
openzeppelin-contracts-upgradeable
Commits
917b1295
Commit
917b1295
authored
Feb 10, 2017
by
Jorge Izquierdo
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add safeDiv and min/max functions to SafeMath
parent
abc646a9
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
25 additions
and
10 deletions
+25
-10
SafeMath.sol
contracts/SafeMath.sol
+23
-0
GrantableToken.sol
contracts/token/GrantableToken.sol
+2
-10
No files found.
contracts/SafeMath.sol
View file @
917b1295
...
...
@@ -11,6 +11,13 @@ contract SafeMath {
return c;
}
function safeDiv(uint a, uint b) internal returns (uint) {
assert(b > 0);
uint c = a / b;
assert(a == b * c + a % b);
return c;
}
function safeSub(uint a, uint b) internal returns (uint) {
assert(b <= a);
return a - b;
...
...
@@ -22,6 +29,22 @@ contract SafeMath {
return c;
}
function max64(uint64 a, uint64 b) internal constant returns (uint64) {
return a >= b ? a : b;
}
function min64(uint64 a, uint64 b) internal constant returns (uint64) {
return a < b ? a : b;
}
function max256(uint256 a, uint256 b) internal constant returns (uint256) {
return a >= b ? a : b;
}
function min256(uint256 a, uint256 b) internal constant returns (uint256) {
return a < b ? a : b;
}
function assert(bool assertion) internal {
if (!assertion) throw;
}
...
...
contracts/token/GrantableToken.sol
View file @
917b1295
...
...
@@ -67,12 +67,12 @@ contract GrantableToken is StandardToken {
if (time < cliff) return 0;
if (time > vesting) return tokens;
uint256 cliffTokens = safeMul(tokens,
(cliff - start) / (vesting - start
));
uint256 cliffTokens = safeMul(tokens,
safeDiv(safeSub(cliff, start), safeSub(vesting, start)
));
vestedTokens = cliffTokens;
uint256 vestingTokens = safeSub(tokens, cliffTokens);
vestedTokens = safeAdd(vestedTokens,
vestingTokens * (time - cliff) / (vesting - start
));
vestedTokens = safeAdd(vestedTokens,
safeMul(vestingTokens, safeDiv(safeSub(time, cliff), safeSub(vesting, start))
));
}
function nonVestedTokens(TokenGrant grant, uint64 time) private constant returns (uint256) {
...
...
@@ -102,12 +102,4 @@ contract GrantableToken is StandardToken {
return super.transfer(_to, _value);
}
function max64(uint64 a, uint64 b) private constant returns (uint64) {
return a >= b ? a : b;
}
function min256(uint256 a, uint256 b) private constant returns (uint256) {
return a < b ? a : b;
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment