Skip to content

Commit 3d13ed7

Browse files
committed
added examples of using python-sdk for interacting with smart contract
1 parent 3a93b02 commit 3d13ed7

File tree

4 files changed

+147
-0
lines changed

4 files changed

+147
-0
lines changed
Lines changed: 4 additions & 0 deletions
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'
Lines changed: 73 additions & 0 deletions
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)
Lines changed: 21 additions & 0 deletions
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)
Lines changed: 49 additions & 0 deletions
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)