send-lockups.js 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. const Wormhole = artifacts.require("Wormhole");
  2. const WrappedAsset = artifacts.require("WrappedAsset");
  3. const ERC20 = artifacts.require("ERC20PresetMinterPauser");
  4. advanceBlock = () => {
  5. return new Promise((resolve, reject) => {
  6. web3.currentProvider.send({
  7. jsonrpc: "2.0",
  8. method: "evm_mine",
  9. id: new Date().getTime()
  10. }, (err, result) => {
  11. if (err) {
  12. return reject(err);
  13. }
  14. const newBlockHash = web3.eth.getBlock('latest').hash;
  15. return resolve(newBlockHash)
  16. });
  17. });
  18. }
  19. function sleep(ms) {
  20. return new Promise(resolve => setTimeout(resolve, ms));
  21. }
  22. module.exports = function(callback) {
  23. const fn = async () => {
  24. let bridge = await Wormhole.deployed();
  25. let token = await ERC20.deployed();
  26. console.log("Token:", token.address);
  27. while (true) {
  28. let ev = await bridge.lockAssets(
  29. /* asset address */
  30. token.address,
  31. /* amount */
  32. "1000000005",
  33. /* recipient
  34. * 7EFk3VrWeb29SWJPQs5cUyqcY3fQd33S9gELkGybRzeu base58 -> hex) */
  35. "0x5c8b574eced4dbea1bbf23d5149564791900129ede419a6860e3e706b426b2ba",
  36. /* target chain: solana */
  37. 1,
  38. /* nonce */
  39. Math.floor(Math.random() * 65535),
  40. /* refund dust? */
  41. false
  42. );
  43. let block = await web3.eth.getBlock('latest');
  44. console.log("block", block.number, "with txs", block.transactions, "and time", block.timestamp);
  45. await advanceBlock();
  46. await sleep(5000);
  47. }
  48. }
  49. fn().catch(reason => console.error(reason))
  50. }