#### 代码解释

2. _value

0x0e823ffe018727585eaf5bc769fa80472f76c3d7

0xb4d30cac5124b46c2df0cf3e3e1be05f42119033

_value 的值是 8000000000000000000000000000000000000000000000000000000000000000

uint cnt = _receivers.length;

uint256 amount = uint256(cnt) * _value;

#### uint256

uintx 类型的取值范围是 0 到 2的x次方 -1

0 - 2的256次方-1 也就是 0 到115792089237316195423570985008687907853269984665640564039457584007913129639935

python 算 2的256次方是多少

amount = uint256(cnt) * _value

amount = 2* _value

（python 16进制转10进制）

require(_value > 0 && balances[msg.sender] >= amount);

balances[msg.sender] = balances[msg.sender].sub(amount);

for (uint i = 0; i < cnt; i++) {
}

balances[_receivers[i]] = balances[_receivers[i]].add(_value); _receivers中的地址 的余额 = 原本余额+value

Transfer(msg.sender, _receivers[i], _value); } 这句则只是把赠送代币的记录存下来！！！

#### 啥是safeMath

safeMath 是为了计算安全 而写的一个library

function mul(uint256 a, uint256 b) internal constant returns (uint256) {
uint256 c = a * b;
assert(a == 0 || c / a == b);
return c;
}

#### 总结

1. 只要涉及到计算，一定要用safeMath
2. 代码一定要测试！
3. 代码一定要review！
4. 必要时，要请专门做代码审计的公司来 测试代码

https://github.com/jin10086/ico-spider