Skip to content

Commit

Permalink
Create kava-localnet-ci directory
Browse files Browse the repository at this point in the history
  • Loading branch information
evgeniy-scherbina committed Aug 12, 2024
1 parent 618978a commit 6b7d503
Show file tree
Hide file tree
Showing 4 changed files with 210 additions and 0 deletions.
3 changes: 3 additions & 0 deletions .github/workflows/process_kava_dispatch.yml
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,9 @@ jobs:
- name: Wait until kava node is ready to serve traffic
run: bash ${GITHUB_WORKSPACE}/rosetta-kava/.github/scripts/wait-for-node-init.sh

# - name: Setup tmate session
# uses: mxschmitt/action-tmate@v3

- name: Run integration tests
run: KAVA_RPC_URL=http://localhost:26657 NETWORK=kava-local PORT=4000 SKIP_LIVE_NODE_TESTS=true make test-integration
working-directory: ./rosetta-kava
Expand Down
4 changes: 4 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,10 @@ run-testnet:
run-local:
MODE=online NETWORK=kava-localnet PORT=8000 KAVA_RPC_URL=http://localhost:26657 go run . run

.PHONY: run-local-offline
run-local-offline:
MODE=offline NETWORK=kava-localnet PORT=8001 KAVA_RPC_URL=http://localhost:26657 go run . run

.PHONY: test
test:
go test -v ./...
Expand Down
69 changes: 69 additions & 0 deletions rosetta-cli-conf/kava-localnet-ci/config.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
{
"network": {
"blockchain": "Kava",
"network": "kava-localnet"
},
"online_url": "http://localhost:8000",
"data_directory": "./rosetta-cli-conf/cache2",
"http_timeout": 10,
"max_retries": 25,
"retry_elapsed_time": 0,
"max_online_connections": 120,
"max_sync_concurrency": 5,
"tip_delay": 30,
"max_reorg_depth": 100,
"log_configuration": false,
"compression_disabled": false,
"construction": {
"offline_url": "http://localhost:8001",
"max_offline_connections": 100,
"force_retry": true,
"stale_depth": 5,
"broadcast_limit": 5,
"ignore_broadcast_failures": false,
"clear_broadcasts": false,
"prefunded_accounts": [
{
"privkey": "aa50f4c6c15190d9e18bf8b14fc09bfba0e7306331a4f232d10a77c2879e7966",
"account_identifier": {
"address": "kava1q0dkky0505r555etn6u2nz4h4kjcg5y8dg863a"
},
"curve_type": "secp256k1",
"currency":{
"symbol": "KAVA",
"decimals": 6
}
}
],
"constructor_dsl_file": "kava.ros",
"end_conditions": {
"create_account": 10,
"transfer": 10
},
"quiet": false,
"initial_balance_fetch_disabled": false
},
"data": {
"active_reconciliation_concurrency": 16,
"inactive_reconciliation_concurrency": 4,
"inactive_reconciliation_frequency": 250,
"log_blocks": false,
"log_transactions": false,
"log_balance_changes": false,
"log_reconciliations": false,
"ignore_reconciliation_error": false,
"exempt_accounts": "",
"bootstrap_balances": "",
"interesting_accounts": "",
"reconciliation_disabled": false,
"reconciliation_drain_disabled": false,
"balance_tracking_disabled": false,
"coin_tracking_disabled": false,
"status_port": 9090,
"results_output_file": "",
"initial_balance_fetch_disabled": false,
"end_conditions": {
"tip": true
}
}
}
134 changes: 134 additions & 0 deletions rosetta-cli-conf/kava-localnet-ci/kava.ros
Original file line number Diff line number Diff line change
@@ -0,0 +1,134 @@
request_funds(1){
find_account{
currency = {"symbol":"KAVA", "decimals":6};
random_account = find_balance({
"minimum_balance": {
"value": "0",
"currency": {{currency}}
},
"create_limit":1
});
},
request{
loaded_account = find_balance({
"account_identifier": {{random_account.account_identifier}},
"minimum_balance":{
"value": "1000000",
"currency": {{currency}}
}
});
}
}

create_account(1){
create{
network = set_variable({"network":"kava-localnet", "blockchain":"Kava"});
key = generate_key({"curve_type": "secp256k1"});
account = derive({
"network_identifier": {{network}},
"public_key": {{key.public_key}}
});
save_account({
"account_identifier": {{account.account_identifier}},
"keypair": {{key}}
});
}
}

transfer(10){
transfer{
transfer.network = set_variable({"network":"kava-localnet", "blockchain":"Kava"});
currency = {"symbol":"KAVA", "decimals":6};
sender = find_balance({
"minimum_balance":{
"value": "100000",
"currency": {{currency}}
}
});

// Set the recipient_amount as some value <= sender.balance-max_fee
max_fee = "1000";
recipient_amount = "1001";
print_message({"recipient_amount":{{recipient_amount}}});

// Find recipient and construct operations
sender_amount = 0 - {{recipient_amount}};
recipient = find_balance({
"not_account_identifier":[{{sender.account_identifier}}],
"minimum_balance":{
"value": "0",
"currency": {{currency}}
},
"create_limit": 100,
"create_probability": 50
});
transfer.confirmation_depth = "1";
transfer.operations = [
{
"operation_identifier":{"index":0},
"type":"transfer",
"account":{{sender.account_identifier}},
"amount":{
"value":{{sender_amount}},
"currency":{{currency}}
}
},
{
"operation_identifier":{"index":1},
"related_operations":[{"index":0}],
"type":"transfer",
"account":{{recipient.account_identifier}},
"amount":{
"value":{{recipient_amount}},
"currency":{{currency}}
}
}
];
}
}

return_funds(10){
transfer{
transfer.network = set_variable({"network":"kava-localnet", "blockchain":"Kava"});
currency = {"symbol":"KAVA", "decimals":6};
max_fee = "1000";
sender = find_balance({
"minimum_balance":{
"value": {{max_fee}},
"currency": {{currency}}
}
});

print_message({"sender":{{sender}}});

// Set the recipient_amount as some sender.balance-max_fee
available_amount = {{sender.balance.value}} - {{max_fee}};
print_message({"available_amount":{{available_amount}}});
sender_amount = 0 - {{available_amount}};

// Provide a static address as the recipient and construct operations
faucet = {"address":"kava1vlpsrmdyuywvaqrv7rx6xga224sqfwz3fyfhwq"};
transfer.confirmation_depth = "1";
transfer.operations = [
{
"operation_identifier":{"index":0},
"type":"transfer",
"account":{{sender.account_identifier}},
"amount":{
"value":{{sender_amount}},
"currency":{{currency}}
}
},
{
"operation_identifier":{"index":1},
"related_operations":[{"index":0}],
"type":"transfer",
"account":{{faucet}},
"amount":{
"value":{{available_amount}},
"currency":{{currency}}
}
}
];
}
}

0 comments on commit 6b7d503

Please sign in to comment.