Skip to content

Commit 004dd71

Browse files
committed
added examples of using python-sdk for interacting with smart contract
1 parent bf1e01e commit 004dd71

File tree

4 files changed

+147
-0
lines changed

4 files changed

+147
-0
lines changed

worker-manager/integration-tests/.env

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
CHAIN_ID=pulsar-3
2+
CONTRACT_ADDRESS=secret1xy3tf8f80k7czypsn2j29z3jfcxny5x244znv7
3+
NODE_URL=https://api.pulsar.scrttestnet.com
4+
MNEMONIC='grant rice replace explain federal release fix clever romance raise often wild taxi quarter soccer fiber love must tape steak together observe swap guitar'
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
import os
2+
from time import sleep
3+
4+
from dotenv import load_dotenv
5+
from secret_sdk.client.lcd import LCDClient
6+
from secret_sdk.client.localsecret import LocalSecret, main_net_chain_id, test_net_chain_id
7+
from secret_sdk.core.coins import Coins
8+
from secret_sdk.key.mnemonic import MnemonicKey
9+
from secret_sdk.protobuf.cosmos.tx.v1beta1 import BroadcastMode
10+
11+
load_dotenv()
12+
chain_id = os.getenv('CHAIN_ID')
13+
contract = os.getenv('CONTRACT_ADDRESS')
14+
node_url = os.getenv('NODE_URL')
15+
mnemonic = os.getenv('MNEMONIC')
16+
17+
print("chain_id: " + chain_id)
18+
print("node_url: " + node_url)
19+
print("contract: " + contract)
20+
print("mnemonic: " + mnemonic)
21+
22+
mk = MnemonicKey(mnemonic=mnemonic)
23+
secret = LCDClient(chain_id=chain_id, url=node_url)
24+
wallet = secret.wallet(mk)
25+
26+
wallet_public_key = str(wallet.key.acc_address)
27+
28+
print("wallet_public_key: " + wallet_public_key)
29+
30+
contract_address = contract
31+
sent_funds = Coins('100uscrt')
32+
33+
handle_msg = {"set_worker_address": {"new_ip_address": "192.168.0.3", "old_ip_address": "192.168.0.1"}}
34+
35+
t = wallet.execute_tx(
36+
contract_addr=contract_address,
37+
handle_msg=handle_msg,
38+
transfer_amount=sent_funds,
39+
)
40+
41+
print(t)
42+
43+
assert t.code == 0, f"Transaction failed with code {t.code}: {t.rawlog}"
44+
print("Transaction successful:", t.txhash)
45+
46+
sleep(10)
47+
48+
# test set_worker_wallet
49+
50+
tx_info = secret.tx.tx_info(
51+
tx_hash=t.txhash,
52+
)
53+
print("Transaction info:", tx_info)
54+
55+
handle_msg = {"set_worker_wallet": {"payment_wallet": "secret1ap26qrlp8mcq2pg6r47w43l0y8zkqm8a450s07"}}
56+
57+
t = wallet.execute_tx(
58+
contract_addr=contract_address,
59+
handle_msg=handle_msg,
60+
transfer_amount=sent_funds,
61+
)
62+
63+
print(t)
64+
65+
assert t.code == 0, f"Transaction failed with code {t.code}: {t.rawlog}"
66+
print("Transaction successful:", t.txhash)
67+
68+
sleep(10)
69+
70+
tx_info = secret.tx.tx_info(
71+
tx_hash=t.txhash,
72+
)
73+
print("Transaction info:", tx_info)
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
import os
2+
3+
from dotenv import load_dotenv
4+
from secret_sdk.client.lcd import LCDClient
5+
6+
load_dotenv()
7+
chain_id = os.getenv('CHAIN_ID')
8+
contract = os.getenv('CONTRACT_ADDRESS')
9+
node_url = os.getenv('NODE_URL')
10+
11+
print("chain_id: " + chain_id)
12+
print("node_url: " + node_url)
13+
print("contract: " + contract)
14+
15+
secret = LCDClient(chain_id=chain_id, url=node_url)
16+
17+
query = {"get_workers": {"address": "", "signature": "", "subscriber_public_key": ""}}
18+
19+
result = secret.wasm.contract_query(contract, query)
20+
21+
print(result)
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
import os
2+
from time import sleep
3+
4+
from dotenv import load_dotenv
5+
from secret_sdk.client.lcd import LCDClient
6+
from secret_sdk.core.coins import Coins
7+
from secret_sdk.key.mnemonic import MnemonicKey
8+
9+
load_dotenv()
10+
chain_id = os.getenv('CHAIN_ID')
11+
contract = os.getenv('CONTRACT_ADDRESS')
12+
node_url = os.getenv('NODE_URL')
13+
mnemonic = os.getenv('MNEMONIC')
14+
15+
print("chain_id: " + chain_id)
16+
print("node_url: " + node_url)
17+
print("contract: " + contract)
18+
print("mnemonic: " + mnemonic)
19+
20+
mk = MnemonicKey(mnemonic=mnemonic)
21+
secret = LCDClient(chain_id=chain_id, url=node_url)
22+
wallet = secret.wallet(mk)
23+
24+
wallet_public_key = str(wallet.key.acc_address)
25+
26+
print("wallet_public_key: " + wallet_public_key)
27+
28+
contract_address = contract
29+
sent_funds = Coins('10000uscrt')
30+
31+
handle_msg = {"register_worker" : {"ip_address" : "192.0.0.1", "payment_wallet" : wallet_public_key, "attestation_report": ""}}
32+
33+
t = wallet.execute_tx(
34+
contract_addr=contract_address,
35+
handle_msg=handle_msg,
36+
transfer_amount=sent_funds,
37+
)
38+
39+
print(t)
40+
41+
assert t.code == 0, f"Transaction failed with code {t.code}: {t.rawlog}"
42+
print("Transaction successful:", t.txhash)
43+
44+
sleep(10)
45+
46+
tx_info = secret.tx.tx_info(
47+
tx_hash=t.txhash,
48+
)
49+
print("Transaction info:", tx_info)

0 commit comments

Comments
 (0)