Solana devnet fixtures and lockup generator
This commit is contained in:
parent
a04fe2b447
commit
86ccc1c617
|
@ -39,6 +39,10 @@ Generate test ETH lockups once the cluster is up:
|
||||||
|
|
||||||
kubectl exec -it -c tests eth-devnet-0 -- npx truffle exec src/send-lockups.js
|
kubectl exec -it -c tests eth-devnet-0 -- npx truffle exec src/send-lockups.js
|
||||||
|
|
||||||
|
Initialize contract on devnet and generate test SOL lockups:
|
||||||
|
|
||||||
|
kubectl exec -it guardian-0 -c agent ./devnet_setup.sh
|
||||||
|
|
||||||
Adjust number of nodes in running cluster:
|
Adjust number of nodes in running cluster:
|
||||||
|
|
||||||
tilt args -- --num=2
|
tilt args -- --num=2
|
||||||
|
|
5
Tiltfile
5
Tiltfile
|
@ -45,6 +45,11 @@ docker_build(
|
||||||
|
|
||||||
# Ignore target folders from local (non-container) development.
|
# Ignore target folders from local (non-container) development.
|
||||||
ignore = ["./solana/target", "./solana/agent/target", "./solana/cli/target"],
|
ignore = ["./solana/target", "./solana/agent/target", "./solana/cli/target"],
|
||||||
|
|
||||||
|
# See below for --sync-mode caveats.
|
||||||
|
live_update = [
|
||||||
|
sync("./solana/devnet_setup.sh", "/usr/src/solana/devnet_setup.sh"),
|
||||||
|
],
|
||||||
)
|
)
|
||||||
|
|
||||||
# solana smart contract
|
# solana smart contract
|
||||||
|
|
|
@ -37,8 +37,6 @@ spec:
|
||||||
volumes:
|
volumes:
|
||||||
- name: key-volume
|
- name: key-volume
|
||||||
configMap:
|
configMap:
|
||||||
# Provide the name of the ConfigMap containing the files you want
|
|
||||||
# to add to the container
|
|
||||||
name: bridge-keypair
|
name: bridge-keypair
|
||||||
containers:
|
containers:
|
||||||
- name: guardiand
|
- name: guardiand
|
||||||
|
@ -68,7 +66,7 @@ spec:
|
||||||
image: solana-agent
|
image: solana-agent
|
||||||
command:
|
command:
|
||||||
- /usr/local/bin/agent
|
- /usr/local/bin/agent
|
||||||
- 'Bridge1p5gheXUvJ6jGWGeCsgPKgnE3YgdGKRVCMY9o' # TODO: program address
|
- 'Bridge1p5gheXUvJ6jGWGeCsgPKgnE3YgdGKRVCMY9o'
|
||||||
- 'solana-devnet' # host
|
- 'solana-devnet' # host
|
||||||
- '8899' # rpc port
|
- '8899' # rpc port
|
||||||
- '8900' # pubsub/ws port
|
- '8900' # pubsub/ws port
|
||||||
|
@ -77,11 +75,6 @@ spec:
|
||||||
- containerPort: 9000
|
- containerPort: 9000
|
||||||
name: grpc
|
name: grpc
|
||||||
protocol: TCP
|
protocol: TCP
|
||||||
volumeMounts:
|
|
||||||
- name: key-volume
|
|
||||||
mountPath: /usr/src/solana
|
|
||||||
- name: key-volume
|
|
||||||
mountPath: /root/.config/solana
|
|
||||||
# volumeClaimTemplates:
|
# volumeClaimTemplates:
|
||||||
# - metadata:
|
# - metadata:
|
||||||
# name: guardian-data
|
# name: guardian-data
|
||||||
|
@ -90,13 +83,4 @@ spec:
|
||||||
# resources:
|
# resources:
|
||||||
# requests:
|
# requests:
|
||||||
# storage: 1Gi
|
# storage: 1Gi
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: ConfigMap
|
|
||||||
metadata:
|
|
||||||
name: bridge-keypair
|
|
||||||
namespace: default
|
|
||||||
data:
|
|
||||||
# Key with pubkey 6sbzC1eH4FTujJXWj51eQe25cYvr4xfXbJ1vAj7j2k5J
|
|
||||||
id.json: |
|
|
||||||
[14,173,153,4,176,224,201,111,32,237,183,185,159,247,22,161,89,84,215,209,212,137,10,92,157,49,29,192,101,164,152,70,87,65,8,174,214,157,175,126,98,90,54,24,100,177,247,77,19,112,47,44,165,109,233,102,14,86,109,29,134,145,132,141]
|
|
||||||
|
|
|
@ -0,0 +1,48 @@
|
||||||
|
#!/bin/bash
|
||||||
|
# This script configures the devnet for test transfers with hardcoded addresses.
|
||||||
|
set -x
|
||||||
|
|
||||||
|
# Configure CLI (works the same as upstream Solana CLI)
|
||||||
|
mkdir -p ~/.config/solana/cli
|
||||||
|
cat <<EOF > ~/.config/solana/cli/config.yml
|
||||||
|
json_rpc_url: "http://solana-devnet:8899"
|
||||||
|
websocket_url: ""
|
||||||
|
keypair_path: /usr/src/solana/id.json
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# Constants
|
||||||
|
cli_address=6sbzC1eH4FTujJXWj51eQe25cYvr4xfXbJ1vAj7j2k5J
|
||||||
|
bridge_address=Bridge1p5gheXUvJ6jGWGeCsgPKgnE3YgdGKRVCMY9o
|
||||||
|
initial_guardian=5b1869D9A4C187F2EAa108f3062412ecf0526b24
|
||||||
|
chain_id_ethereum=2
|
||||||
|
|
||||||
|
# TODO: use proper confirmation level to avoid retries (except for faucet, which waits for devnet to come up)
|
||||||
|
retry () {
|
||||||
|
while ! $@; do
|
||||||
|
sleep 1
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
# Fund our account (as seen in id.json).
|
||||||
|
retry cli airdrop solana-devnet:9900
|
||||||
|
|
||||||
|
# Create the bridge contract at a known address
|
||||||
|
# OK to fail on subsequent attempts (already created).
|
||||||
|
cli create-bridge "$bridge_address" "$initial_guardian"
|
||||||
|
|
||||||
|
# Create a new SPL token (at a random address)
|
||||||
|
token=$(cli create-token | grep 'Creating token' | awk '{ print $3 }')
|
||||||
|
echo "Created token $token"
|
||||||
|
|
||||||
|
# Create token account
|
||||||
|
account=$(cli create-account "$token" | grep 'Creating account' | awk '{ print $3 }')
|
||||||
|
echo "Created token account $account"
|
||||||
|
|
||||||
|
# Mint new tokens owned by our CLI account
|
||||||
|
retry cli mint "$token" 10000000000 "$account"
|
||||||
|
|
||||||
|
# Do lock transactions <3
|
||||||
|
while : ; do
|
||||||
|
cli lock "$bridge_address" "$account" "$token" 10 "$chain_id_ethereum" "$((RANDOM % 254))"
|
||||||
|
sleep 5
|
||||||
|
done
|
|
@ -0,0 +1 @@
|
||||||
|
[14,173,153,4,176,224,201,111,32,237,183,185,159,247,22,161,89,84,215,209,212,137,10,92,157,49,29,192,101,164,152,70,87,65,8,174,214,157,175,126,98,90,54,24,100,177,247,77,19,112,47,44,165,109,233,102,14,86,109,29,134,145,132,141]
|
Loading…
Reference in New Issue