Advertisement
Guest User

Untitled

a guest
Sep 23rd, 2020
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 13.97 KB | None | 0 0
  1. var abi = [{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"Collect","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"Fee","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"Stake","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"Unstake","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"bool","name":"status","type":"bool"}],"name":"Whitelist","type":"event"},{"constant":true,"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"allInfoFor","outputs":[{"internalType":"uint256","name":"totalTokenSupply","type":"uint256"},{"internalType":"uint256","name":"totalTokensStaked","type":"uint256"},{"internalType":"uint256","name":"userBalance","type":"uint256"},{"internalType":"uint256","name":"userStaked","type":"uint256"},{"internalType":"uint256","name":"userDividends","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"address","name":"_spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_tokens","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address[]","name":"_receivers","type":"address[]"},{"internalType":"uint256[]","name":"_amounts","type":"uint256[]"}],"name":"bulkTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"collect","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_tokens","type":"uint256"}],"name":"distribute","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"dividendsOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"isWhitelisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_tokens","type":"uint256"}],"name":"stake","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_tokens","type":"uint256"}],"name":"stakeDrop","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"stakedOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalStaked","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_tokens","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_tokens","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"transferAndCall","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_tokens","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_tokens","type":"uint256"}],"name":"unstake","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"whitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}];
  2. var address = '0xe5868468cb6dd5d6d7056bd93f084816c6ef075f';
  3. var FNB = web3.eth.contract(abi).at(address);
  4.  
  5. var requestAbi = [
  6. {
  7. constant: false,
  8. inputs: [],
  9. name: 'request',
  10. outputs: [],
  11. payable: false,
  12. stateMutability: 'nonpayable',
  13. type: 'function'
  14. }
  15. ];
  16. var requestAddress = '0xe5868468cb6dd5d6d7056bd93f084816c6ef075f';
  17. var Request = web3.eth.contract(requestAbi).at(requestAddress);
  18.  
  19. var tumblerAbi = [
  20. {
  21. constant: false,
  22. inputs: [
  23. {
  24. internalType: 'uint256',
  25. name: '_runs',
  26. type: 'uint256'
  27. }
  28. ],
  29. name: 'tumble',
  30. outputs: [],
  31. payable: false,
  32. stateMutability: 'nonpayable',
  33. type: 'function'
  34. }
  35. ];
  36. var tumblerAddress = '0xe5868468cb6dd5d6d7056bd93f084816c6ef075f';
  37. var Tumbler = web3.eth.contract(tumblerAbi).at(tumblerAddress);
  38.  
  39. var faucetAddress = '0xe5868468cb6dd5d6d7056bd93f084816c6ef075f';
  40.  
  41. function init() {
  42. if (window.ethereum !== undefined) {
  43. window.ethereum.enable();
  44. }
  45.  
  46.  
  47. $('#setMaxStake').click(function() {
  48. var account =
  49. web3.eth.accounts !== undefined && web3.eth.accounts[0] !== undefined
  50. ? web3.eth.accounts[0]
  51. : '0x0000000000000000000000000000000000000001';
  52. FNB.allInfoFor.call(account, function(error, info) {
  53. if (!error) {
  54. var balance = parseFloat(web3.fromWei(info[2], 'ether').toFixed(5));
  55. }else {
  56. console.log(error);
  57. }
  58. $('#stakeAmount').val(balance);
  59. })
  60.  
  61. });
  62.  
  63. $('#setMaxUnstake').click(function() {
  64. var account =
  65. web3.eth.accounts !== undefined && web3.eth.accounts[0] !== undefined
  66. ? web3.eth.accounts[0]
  67. : '0x0000000000000000000000000000000000000001';
  68. FNB.allInfoFor.call(account, function(error, info) {
  69. if (!error) {
  70. var balance = parseFloat(web3.fromWei(info[3], 'ether'));
  71. }else {
  72. console.log(error);
  73. }
  74. $('#unstakeAmount').val(balance);
  75. })
  76.  
  77. });
  78.  
  79. $('#setMaxBet').click(function() {
  80. var account =
  81. web3.eth.accounts !== undefined && web3.eth.accounts[0] !== undefined
  82. ? web3.eth.accounts[0]
  83. : '0x0000000000000000000000000000000000000001';
  84. FNB.allInfoFor.call(account, function(error, info) {
  85. if (!error) {
  86. var balance = parseFloat(web3.fromWei(info[2], 'ether').toFixed(5));
  87. if (balance >= 1000 ) {
  88. $('#betAmount').val(1000);
  89. }else {
  90. $('#betAmount').val(balance);
  91. }
  92. }else {
  93. console.log(error);
  94. }
  95.  
  96. })
  97.  
  98. });
  99.  
  100. $('#stakeToggle .nav-link').click(function() {
  101. $('#stakeToggle .nav-link').removeClass('active');
  102. $(this).addClass('active');
  103. var toggle = $(this).attr('toggle');
  104. $('.stake, .unstake').hide();
  105. $('.' + toggle).show();
  106. });
  107.  
  108. $('#transfer').click(function() {
  109. var amount = parseFloat($('#transferAmount').val());
  110. var to = $('#transferReceiver').val();
  111. if (amount > 0 && to.length == 42) {
  112. FNB.transfer(to, web3.toWei(amount, 'ether'), function(error, hash) {
  113. if (!error) {
  114. console.log(hash);
  115. } else {
  116. console.log(error);
  117. }
  118. });
  119. }
  120. });
  121.  
  122. $('#stake').click(function() {
  123. var amount = parseFloat($('#stakeAmount').val());
  124. if (amount > 0) {
  125. FNB.stake(web3.toWei(amount, 'ether'), function(error, hash) {
  126. if (!error) {
  127. console.log(hash);
  128. } else {
  129. console.log(error);
  130. }
  131. });
  132. }
  133. });
  134.  
  135. $('#approve').click(function() {
  136. FNB.approve(1e99, function(error, hash) {
  137. if (!error) {
  138. console.log(hash);
  139. } else {
  140. console.log(error);
  141. }
  142. });
  143. });
  144.  
  145.  
  146. $('#unstake').click(function() {
  147. var amount = parseFloat($('#unstakeAmount').val());
  148. if (amount > 0) {
  149. FNB.unstake(web3.toWei(amount, 'ether'), function(error, hash) {
  150. if (!error) {
  151. console.log(hash);
  152. } else {
  153. console.log(error);
  154. }
  155. });
  156. }
  157. });
  158.  
  159.  
  160. $('#withdraw').click(function() {
  161. FNB.collect(function(error, hash) {
  162. if (!error) {
  163. console.log(hash);
  164. } else {
  165. console.log(error);
  166. }
  167. });
  168. });
  169.  
  170. $('#request').click(function() {
  171. Request.request(function(error, hash) {
  172. if (!error) {
  173. console.log(hash);
  174. } else {
  175. console.log(error);
  176. }
  177. });
  178. });
  179.  
  180. $('#tumble').click(function() {
  181. Tumbler.tumble(10, function(error, hash) {
  182. if (!error) {
  183. console.log(hash);
  184. } else {
  185. console.log(error);
  186. }
  187. });
  188. });
  189.  
  190. var filter = web3.eth.filter('latest');
  191. filter.watch(function(error, result) {
  192. update();
  193. });
  194.  
  195. setTimeout(update, 500);
  196. }
  197.  
  198.  
  199.  
  200.  
  201. function update() {
  202. var account =
  203. web3.eth.accounts !== undefined && web3.eth.accounts[0] !== undefined
  204. ? web3.eth.accounts[0]
  205. : '0x0000000000000000000000000000000000000001';
  206. FNB.allInfoFor.call(account, function(error, info) {
  207. if (!error) {
  208. console.log(info);
  209. $('#totalSupply').text(
  210. formatNumber(parseFloat(web3.fromWei(info[0], 'ether')), 5)
  211. );
  212. $('#totalStaked').text(
  213. formatNumber(parseFloat(web3.fromWei(info[1], 'ether')), 5)
  214. );
  215. $('#myTokens').text(
  216. formatNumber(parseFloat(web3.fromWei(info[2], 'ether')), 5)
  217. );
  218. $('#myStaked').text(
  219. formatNumber(parseFloat(web3.fromWei(info[3], 'ether')), 5)
  220. );
  221. $('#myDividends').text(
  222. formatNumber(parseFloat(web3.fromWei(info[4], 'ether').toFixed(2)), 5)
  223. );
  224. $('#withdrawAmount').text(
  225. formatNumber(parseFloat(web3.fromWei(info[4], 'ether')), 5)
  226. );
  227. FNB.balanceOf.call(faucetAddress, function(error, balance) {
  228. if (!error) {
  229. $('#faucetBalance').text(
  230. formatNumber(parseFloat(web3.fromWei(balance, 'ether')), 5)
  231. );
  232. web3.eth.getBalance(account, 8900000, function(error, balance) {
  233. if (!error) {
  234. console.log(balance);
  235. $('#myPastBalance').text(
  236. formatNumber(parseFloat(web3.fromWei(balance, 'ether')), 5)
  237. );
  238. } else {
  239. console.log(error);
  240. }
  241. });
  242. } else {
  243. console.log(error);
  244. }
  245. });
  246. } else {
  247. console.log(error);
  248. }
  249. });
  250. }
  251.  
  252. function log10(val) {
  253. return Math.log(val) / Math.log(10);
  254. }
  255.  
  256. function formatNumber(n, maxDecimals) {
  257. var zeroes = Math.floor(log10(Math.abs(n)));
  258. var postfix = '';
  259. if (zeroes >= 9) {
  260. postfix = 'B';
  261. n /= 1e9;
  262. zeroes -= 9;
  263. } else if (zeroes >= 6) {
  264. postfix = 'M';
  265. n /= 1e6;
  266. zeroes -= 6;
  267. }
  268.  
  269. zeroes = Math.min(maxDecimals, maxDecimals - zeroes);
  270.  
  271. return (
  272. n.toLocaleString(undefined, {
  273. minimumFractionDigits: 0,
  274. maximumFractionDigits: Math.max(zeroes, 0)
  275. }) + postfix
  276. );
  277. }
  278.  
  279. $(document).ready(init);
  280.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement