devnet_setup.sh 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. #!/bin/bash
  2. # This script configures the devnet for test transfers with hardcoded addresses.
  3. set -x
  4. # Configure CLI (works the same as upstream Solana CLI)
  5. mkdir -p ~/.config/solana/cli
  6. cat <<EOF > ~/.config/solana/cli/config.yml
  7. json_rpc_url: "http://solana-devnet:8899"
  8. websocket_url: ""
  9. keypair_path: /usr/src/solana/id.json
  10. EOF
  11. # Constants
  12. cli_address=6sbzC1eH4FTujJXWj51eQe25cYvr4xfXbJ1vAj7j2k5J
  13. bridge_address=Bridge1p5gheXUvJ6jGWGeCsgPKgnE3YgdGKRVCMY9o
  14. initial_guardian=befa429d57cd18b7f8a4d91a2da9ab4af05d0fbe
  15. chain_id_ethereum=2
  16. retry () {
  17. while ! $@; do
  18. sleep 1
  19. done
  20. }
  21. # Fund our account (as seen in id.json).
  22. retry cli airdrop solana-devnet:9900
  23. # Create the bridge contract at a known address
  24. # OK to fail on subsequent attempts (already created).
  25. retry cli create-bridge "$bridge_address" "$initial_guardian"
  26. # Create a new SPL token (at a random address)
  27. token=$(cli create-token | grep 'Creating token' | awk '{ print $3 }')
  28. echo "Created token $token"
  29. # Create token account
  30. account=$(cli create-account "$token" | grep 'Creating account' | awk '{ print $3 }')
  31. echo "Created token account $account"
  32. # Mint new tokens owned by our CLI account
  33. cli mint "$token" 10000000000 "$account"
  34. # Do lock transactions <3
  35. while : ; do
  36. cli lock "$bridge_address" "$account" "$token" 10 "$chain_id_ethereum" "$RANDOM"
  37. sleep 5
  38. done