-
Notifications
You must be signed in to change notification settings - Fork 17
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
+ adjust some values in utils.js to enable it to work with httpcalls
- Loading branch information
Showing
3 changed files
with
222 additions
and
5 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,215 @@ | ||
name: Test Stellar | ||
|
||
on: pull_request | ||
|
||
jobs: | ||
check-relevant-changes: | ||
name: Check for Relevant Changes | ||
runs-on: blacksmith-2vcpu-ubuntu-2204 | ||
outputs: | ||
run_tests: ${{ steps.filter.outputs.sui == 'true' || steps.filter.outputs.common == 'true' || steps.filter.outputs.github == 'true' }} | ||
steps: | ||
- uses: actions/checkout@v4 | ||
- uses: dorny/paths-filter@v3 | ||
id: filter | ||
with: | ||
filters: | | ||
sui: | ||
- 'stellar/**' | ||
common: | ||
- 'common/**' | ||
github: | ||
# - '.github/actions/setup-stellar/**' | ||
- '.github/workflows/test-stellar.yaml' | ||
- name: Summarize Changes | ||
run: | | ||
echo "Changes in stellar: ${{ steps.filter.outputs.sui }}" | ||
echo "Changes in common: ${{ steps.filter.outputs.common }}" | ||
echo "Changes in github: ${{ steps.filter.outputs.github }}" | ||
test-stellar: | ||
name: Test Stellar | ||
needs: check-relevant-changes | ||
if: ${{ needs.check-relevant-changes.outputs.run_tests == 'true' }} | ||
runs-on: blacksmith-2vcpu-ubuntu-2204 | ||
steps: | ||
- name: Checkout code | ||
uses: actions/checkout@v4 | ||
|
||
- name: Setup Node.js | ||
uses: actions/setup-node@v4 | ||
with: | ||
node-version: '18' # Hardcoded to ensure consistency. | ||
cache: 'npm' | ||
registry-url: 'https://registry.npmjs.org' | ||
|
||
- name: Install dependencies | ||
shell: bash | ||
run: npm ci | ||
|
||
- name: Install stable toolchain | ||
uses: dtolnay/rust-toolchain | ||
with: | ||
toolchain: 1.81.0 | ||
|
||
- name: Install Stellar CLI | ||
shell: bash | ||
run: | | ||
cargo install --locked stellar-cli --features opt --version ~21 | ||
- name: Pull stellar/quickstart docker image | ||
run: | | ||
docker pull stellar/quickstart | ||
- name: Setup Stellar standalone network | ||
run: | | ||
docker run -d --rm -it \ | ||
-p 8000:8000 \ | ||
--name stellar \ | ||
stellar/quickstart:testing \ | ||
--local \ | ||
--enable-soroban-rpc \ | ||
--protocol-version 21 | ||
RPC_URL="http://localhost:8000" | ||
NETWORK_PASSPHRASE="Standalone Network ; February 2017" | ||
- name: Add as configured network | ||
run: | | ||
stellar network add standalone \ | ||
--rpc-url $RPC_URL \ | ||
--network-passphrase $NETWORK_PASSPHRASE | ||
- name: Setup Stellar wallet | ||
run: | | ||
stellar keys generate test \ | ||
--rpc-url $RPC_URL \ | ||
--network-passphrase $NETWORK_PASSPHRASE | ||
STELLAR_PRIVATE_KEY=$(stellar keys show test) | ||
STELLAR_ADDRESS=$(stellar keys address test) | ||
echo "STELLAR_PRIVATE_KEY=${STELLAR_PRIVATE_KEY}" >> $GITHUB_ENV | ||
echo "STELLAR_ADDRESS=${STELLAR_ADDRESS}" >> $GITHUB_ENV | ||
- name: Prepare local.json | ||
run: | | ||
echo '{ | ||
"chains": { | ||
"stellar": { | ||
"name": "Stellar", | ||
"axelarId": "stellar", | ||
"networkType": "localnet", | ||
"chainType": "stellar", | ||
"tokenSymbol": "XLM", | ||
"rpc": "http://127.0.0.1:8000", | ||
"horizonRpc": "http://127.0.0.1:8000", | ||
"contracts": { | ||
"AxelarGateway": {} | ||
} | ||
} | ||
} | ||
}' > ./axelar-chains-config/info/local.json | ||
- name: Start Stellar network | ||
run: | | ||
stellar network container start local | ||
- name: Wait for Stellar network | ||
uses: nev7n/wait_for_response@v1 | ||
with: | ||
url: 'http://localhost:8000' | ||
responseCode: 200 | ||
timeout: 60000 | ||
interval: 1000 | ||
|
||
# Create .env file with default hardhat private key that's prefunded | ||
- name: Prepare .env | ||
run: | | ||
echo "PRIVATE_KEY=STELLAR_PRIVATE_KEY" >> .env | ||
echo 'ENV=local' >> .env | ||
# echo 'SKIP_EXISTING = true' >> .env | ||
- name: Display local.json | ||
run: cat ./axelar-chains-config/info/local.json | ||
|
||
# - name: Request SUI from faucet | ||
# run: node stellar/faucet.js | ||
|
||
###### Compile Wasm Contracts ###### | ||
|
||
- name: Checkout axelar-cgp-soroban repo | ||
uses: actions/checkout@v4 | ||
with: | ||
repository: axelarnetwork/axelar-cgp-soroban | ||
|
||
- name: Compile WASM contracts | ||
run: | | ||
stellar contract build --manifest-path=axelar-cgp-soroban/Cargo.toml | ||
cd axelar-cgp-soroban | ||
./optmize.sh | ||
cd .. | ||
WASM_DIR=axelar-cgp-soroban/target/wasm32-unknown-unknown/release | ||
echo "WASM_DIR=${WASM_DIR}" >> $GITHUB_ENV | ||
###### Command: Deploy Contract ###### | ||
|
||
- name: Deploy axelar_gateway | ||
run: | | ||
CONTRACT=axelar_gateway | ||
node stellar/deploy-contract deploy $CONTRACT --wasm-path $WASM_DIR/$CONTRACT.optimized.wasm --initialize | ||
- name: Deploy axelar_operators | ||
run: | | ||
CONTRACT=axelar_operators | ||
node stellar/deploy-contract deploy $CONTRACT --wasm-path $WASM_DIR/$CONTRACT.optimized.wasm --initialize | ||
###### Command: Gateway ###### | ||
# - name: Gateway Approve | ||
# run: | | ||
# node stellar/gateway approve avalanche 0x32034b47cb29d162d9d803cc405356f4ac0ec07fe847ace431385fe8acf3e6e5-2 0x4F4495243837681061C4743b74B3eEdf548D56A5 wallet 0x1234 | ||
|
||
|
||
- name: Gateway Call Contract | ||
run: node stellar/gateway.js call-contract avalanche 0x4F4495243837681061C4743b74B3eEdf548D56A5 0x1234 | ||
|
||
- name: Gateway Rotate Signers | ||
run: | | ||
node stellar/gateway rotate --new-nonce test --signers wallet | ||
node stellar/gateway rotate --new-nonce test2 --current-nonce test --signers wallet | ||
- name: Upgrade gateway contract | ||
run: | | ||
CONTRACT=axelar_gateway | ||
node stellar/deploy-contract.js upgrade $CONTRACT --wasm-path $WASM_DIR/$CONTRACT.optimized.wasm | ||
###### Command: Operators ###### | ||
|
||
- name: Store Capability Object in Operators | ||
run: node sui/operators.js storeCap | ||
|
||
- name: Add Operator | ||
run: node sui/operators.js add $SUI_ADDRESS | ||
|
||
- name: Collect Gas with Operator | ||
run: node sui/operators.js collectGas --amount 1 | ||
|
||
- name: Refund Gas with Operator | ||
run: node sui/operators.js refund 0x32034b47cb29d162d9d803cc405356f4ac0ec07fe847ace431385fe8acf3e6e5-2 --amount 1 | ||
|
||
- name: Remove Operator | ||
run: node sui/operators.js remove $SUI_ADDRESS | ||
|
||
###### Command: Generate Keypair ###### | ||
- name: Generate Keypair | ||
run: node sui/generate-keypair.js | ||
|
||
|
||
###### Command: Generate Bindings ##### | ||
- name: generate operators bindings | ||
run: | | ||
CONTRACT=axelar_operators | ||
node stellar/generate-bindings.js --wasm-path $WASM_DIR/$CONTRACT.optimized.wasm --contract-id $(jq .chains.stellar.contracts.$CONTRACT.address axelar-chains-config/info/local.json) --output-dir ./stellar/bindings/$CONTRACT | ||
- name: generate gateway bindings | ||
run: | | ||
CONTRACT=axelar_gateway | ||
node stellar/generate-bindings.js --wasm-path $WASM_DIR/$CONTRACT.optimized.wasm --contract-id $(jq .chains.stellar.contracts.$CONTRACT.address axelar-chains-config/info/local.json) --output-dir ./stellar/bindings/$CONTRACT |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters