Skip to content

Commit

Permalink
build: use dotenv
Browse files Browse the repository at this point in the history
  • Loading branch information
chadoh committed Oct 20, 2023
1 parent 1292f01 commit 5898251
Show file tree
Hide file tree
Showing 4 changed files with 131 additions and 36 deletions.
2 changes: 2 additions & 0 deletions cmd/crates/soroban-spec-typescript/ts-tests/.env
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
SOROBAN_NETWORK_PASSPHRASE="Standalone Network ; February 2017"
SOROBAN_RPC_URL="http://localhost:8000/soroban/rpc"
96 changes: 96 additions & 0 deletions cmd/crates/soroban-spec-typescript/ts-tests/initialize.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
#!/bin/bash

set +x

# read .env file, but prefer explicitly set environment variables
IFS=$'\n'
for l in $(cat .env); do
IFS='=' read -ra VARVAL <<< "$l"
# If variable with such name already exists, preserves it's value
eval "export ${VARVAL[0]}=\${${VARVAL[0]}:-${VARVAL[1]}}"
done
unset IFS

echo Network
echo " RPC: $SOROBAN_RPC_URL"
echo " Passphrase: \"$SOROBAN_NETWORK_PASSPHRASE\""

exe() { echo"${@/eval/}" ; "$@" ; }

function main() {
curl -X POST "http://localhost:8000/soroban/rpc" || { echo "Make sure you're running standalone RPC network on localhost:8000" && exit 1; }
fund
deploy
initialize
bindings
}
function fund_root() {
exe eval "./soroban config identity fund"
}
function fund_alice() {
exe eval "./soroban config identity generate alice"
exe eval "./soroban config identity fund alice"
}
function fund() {
fund_root
fund_alice
}
function bindings_custom_types() {
exe eval "./soroban contract bindings typescript --contract-id $(cat contract-id-custom-types.txt) --output-dir ./node_modules/test-custom-types --overwrite"
}
function bindings_hello_world() {
exe eval "./soroban contract bindings typescript --contract-id $(cat contract-id-hello-world.txt) --output-dir ./node_modules/test-hello-world --overwrite"
}
function bindings_swap() {
exe eval "./soroban contract bindings typescript --contract-id $(cat contract-id-swap.txt) --output-dir ./node_modules/test-swap --overwrite"
}
function bindings_token() {
exe eval "./soroban contract bindings typescript --contract-id $(cat contract-id-token-a.txt) --output-dir ./node_modules/token --overwrite"
}
function bindings() {
bindings_custom_types
bindings_hello_world
bindings_swap
bindings_token
}
function deploy_custom_types() {
exe eval "(./soroban contract deploy --wasm ../../../../target/wasm32-unknown-unknown/test-wasms/test_custom_types.wasm) > contract-id-custom-types.txt"
}
function deploy_hello_world() {
exe eval "(./soroban contract deploy --wasm ../../../../target/wasm32-unknown-unknown/test-wasms/test_hello_world.wasm) > contract-id-hello-world.txt"
}
function deploy_swap() {
exe eval "(./soroban contract deploy --wasm ../../../../target/wasm32-unknown-unknown/test-wasms/test_swap.wasm) > contract-id-swap.txt"
}
function install_token() {
exe eval "(./soroban contract install --wasm ../../../../target/wasm32-unknown-unknown/test-wasms/test_token.wasm) > contract-token-hash.txt"
}
function deploy_token_a() {
exe eval "(./soroban contract deploy --wasm-hash $(cat contract-token-hash.txt)) > contract-id-token-a.txt"
}
function deploy_token_b() {
exe eval "(./soroban contract deploy --wasm-hash $(cat contract-token-hash.txt)) > contract-id-token-b.txt"
}
function deploy_token() {
install_token
deploy_token_a
deploy_token_b
}
function deploy() {
deploy_custom_types
deploy_hello_world
deploy_swap
deploy_token
}
function initialize_token_a() {
exe eval "./soroban contract invoke --id $(cat contract-id-token-a.txt) -- initialize --admin $(./soroban config identity address) --decimal 0 --name 'Token A' --symbol 'A'"
}
function initialize_token_b() {
exe eval "./soroban contract invoke --id $(cat contract-id-token-b.txt) -- initialize --admin $(./soroban config identity address) --decimal 0 --name 'Token B' --symbol 'B'"
}
function initialize() {
initialize_token_a
initialize_token_b
}

main
13 changes: 13 additions & 0 deletions cmd/crates/soroban-spec-typescript/ts-tests/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

56 changes: 20 additions & 36 deletions cmd/crates/soroban-spec-typescript/ts-tests/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,42 +2,26 @@
"private": true,
"type": "module",
"scripts": {
"postinstall": "curl -X POST \"http://localhost:8000/soroban/rpc\" && npm run fund && npm run deploy && npm run initialize && npm run bindings || { echo \"Make sure you're running standalone RPC network on localhost:8000\" && exit 1; }",
"fund:root": "./soroban config identity fund",
"fund:alice": "./soroban config identity generate alice && ./soroban config identity fund alice",
"fund": "npm run fund:root && npm run fund:alice",
"bindings:custom-types": "./soroban contract bindings typescript --contract-id $(cat contract-id-custom-types.txt) --output-dir ./node_modules/test-custom-types --overwrite",
"bindings:hello-world": "./soroban contract bindings typescript --contract-id $(cat contract-id-hello-world.txt) --output-dir ./node_modules/test-hello-world --overwrite",
"bindings:swap": "./soroban contract bindings typescript --contract-id $(cat contract-id-swap.txt) --output-dir ./node_modules/test-swap --overwrite",
"bindings:token": "./soroban contract bindings typescript --contract-id $(cat contract-id-token-a.txt) --output-dir ./node_modules/token --overwrite",
"bindings": "npm run bindings:custom-types && npm run bindings:hello-world && npm run bindings:swap && npm run bindings:token",
"deploy:custom-types": "(./soroban contract deploy --wasm ../../../../target/wasm32-unknown-unknown/test-wasms/test_custom_types.wasm) > contract-id-custom-types.txt",
"deploy:hello-world": "(./soroban contract deploy --wasm ../../../../target/wasm32-unknown-unknown/test-wasms/test_hello_world.wasm) > contract-id-hello-world.txt",
"deploy:swap": "(./soroban contract deploy --wasm ../../../../target/wasm32-unknown-unknown/test-wasms/test_swap.wasm) > contract-id-swap.txt",
"install:token": "(./soroban contract install --wasm ../../../../target/wasm32-unknown-unknown/test-wasms/test_token.wasm) > contract-token-hash.txt",
"deploy:token:a": "(./soroban contract deploy --wasm-hash $(cat contract-token-hash.txt)) > contract-id-token-a.txt",
"deploy:token:b": "(./soroban contract deploy --wasm-hash $(cat contract-token-hash.txt)) > contract-id-token-b.txt",
"deploy:token": "npm run install:token && npm run deploy:token:a && npm run deploy:token:b",
"deploy": "npm run deploy:custom-types && npm run deploy:hello-world && npm run deploy:swap && npm run deploy:token",
"initialize:token:a": "./soroban contract invoke --id $(cat contract-id-token-a.txt) -- initialize --admin $(./soroban config identity address) --decimal 0 --name 'Token A' --symbol 'A'",
"initialize:token:b": "./soroban contract invoke --id $(cat contract-id-token-b.txt) -- initialize --admin $(./soroban config identity address) --decimal 0 --name 'Token B' --symbol 'B'",
"initialize:tokens": "npm run initialize:token:a && npm run initialize:token:b",
"initialize": "npm run deploy:token && npm run initialize:tokens",
"postinstall": "./initialize.sh",
"test": "ava"
},
"devDependencies": {
"@ava/typescript": "^4.1.0",
"@types/node": "^20.4.9",
"ava": "^5.3.1",
"soroban-client": "1.0.0-beta.2",
"typescript": "^5.1.6"
},
"ava": {
"typescript": {
"rewritePaths": {
"src/": "build/"
},
"compile": "tsc"
}
}
"devDependencies": {
"@ava/typescript": "^4.1.0",
"@types/node": "^20.4.9",
"ava": "^5.3.1",
"dotenv": "^16.3.1",
"soroban-client": "1.0.0-beta.2",
"typescript": "^5.1.6"
},
"ava": {
"typescript": {
"rewritePaths": {
"src/": "build/"
},
"compile": "tsc"
},
"require": [
"dotenv/config"
]
}
}

0 comments on commit 5898251

Please sign in to comment.