版权声明:转载请说明出处 https://blog.csdn.net/weixin_39842528/article/details/84025368
c++的:
合约参数类型:
signature sig
//游戏随机数hash
checksum256 random_num_hash;
sha256( (char *)&sig, sizeof(sig), &random_num_hash );
//计算出随机的骰子点数
const uint64_t random_roll = ((random_num_hash.hash[0] + random_num_hash.hash[1] + random_num_hash.hash[2] + random_num_hash.hash[3] + random_num_hash.hash[4] + random_num_hash.hash[5] + random_num_hash.hash[6] + random_num_hash.hash[7]) % 100) + 1;
解释:
sig :为开奖的参数之一,私钥签名消息/交易之后的字符串
js的:
tempSig = sig.substring(7);
bytes = bs58.decode(tempSig);
bytes_str = bytes.toString('hex');
bytes_str = bytes_str.substring(0, bytes_str.length - 8);
bytes_str = '00' + bytes_str;
hash = eosecc.sha256(Buffer.from(bytes_str, 'hex'));
// now get random number of this hash
// rand = parseInt(hash.substring(0,2)) + parseInt(hash.substring(2,4)) + parseInt(hash.substring(4,6)) + parseInt(hash.substring(6,8)) + parseInt(hash.substring(8,10)) + parseInt(hash.substring(10,12)) + parseInt(hash.substring(12,14)) + parseInt(hash.substring(14,16));
var rand = 0;
for (var j = 0; j <= 14; j += 2){
rand += parseInt(hash.substring(j, j + 2), 16);
}
rand = (rand % 100) + 1
console.log("Your random number is: ", rand);
解释:
sig :为开奖的参数之一,私钥签名消息之后的字符串
如果感兴趣欢迎添加博主微信交流: