agd ile Sorgular ve İşlemler Yapmak
agd
, Cosmos SDK'deki simd
'ye veya Cosmos hub'daki gaiad
'ya benzer şekilde çalışan Agoric Cosmos Uygulamasıdır. Çoğu simd
ve agd
içinde benzer şekilde çalışır.
::: tip Dapps Geliştirmek için agd
Bu bölüm, akıllı sözleşmeler ve dapps geliştirme ve dağıtımına yönelik komutlara odaklanmaktadır. Ayrıca bakınız:
:::
::: tip agd Kurulumu
Seçenekler:
- docker konteynerini kullanarak:
agd status
çalıştırmak içinyarn docker:bash
ardındanagd status
yazın; veyadocker-compose exec agd agd status
komutunu kullanın. - yükleyin.
:::
Eğer agd
'yi argüman olmadan çağırırsak, mevcut komutların bir listesini ekrana yazar:
Available Commands:
help Help about any command
keys Manage your application's keys
query Querying subcommands
status Query remote node for status
tx Transactions subcommands
version Print the application binary version information
Flags:
-h, --help help for agd
--home string directory for config and data (default $HOME)
Sorgu Komutları
Çoğu durumda, agd query ...
bir modül adı ile takip edilir, örneğin bank
. Bir istisna agd status
komutudur:
agd status
Uzak düğümü sorgulayarak durumunu kontrol etme
Örnek:
$ agd status
{"NodeInfo":{"protocol_version":{"p2p":"8","block":"11" ... }}}
::: tip jq ile Formatlama
Güzel yazılı JSON için ya da belirli kısımları seçmek için çıktıyı üzerinden iletebilirsiniz.
$ agd status | jq .ValidatorInfo
{
"Address": "B4167E20C19D9B30ACD93865B854555D3823B31C",
"PubKey": {
"type": "tendermint/PubKeyEd25519",
"value": "F9rO2FZ5sliRSRUVYnwWYVS0Ptf8Ll1dIOb6SQkgmTA="
},
"VotingPower": "5000"
}
:::
Sorgu varsayılan olarak tcp://localhost:26657
adresindeki bir yerel düğüme gider. Başka bir düğüm kullanmak için:
$ agd status --node https://devnet.rpc.agoric.net:443
{"NodeInfo":{"protocol_version":{"p2p":"8","block":"11" ... }}}
::: tip Port Gereklidir
Genellikle, https
URL'lerinde :443
portu varsayılan olarak bırakılabilir. Ancak burada bırakılmamalıdır. Aksi takdirde şunu alırız:
Hata: gönderme başarısız: Post "https://devnet.rpc.agoric.net": dial tcp: address devnet.rpc.agoric.net: missing port in address
:::
agd query bank balances
Adresle hesap bakiyelerini sorgulama
Örnek:
$ addr=agoric14pfrxg63jn6ha0cp6wxkm4nlvswtscrh2pymwm
$ agd query bank balances $addr
balances:
- amount: "331000000"
denom: ubld
- amount: "4854000000"
denom: uist
JSON çıktısı almak için YAML yerine:
$ agd query bank balances $addr -o json
{"balances":[{"denom":"ubld","amount":"331000000"},{"denom":"uist","amount":"4854000000"}],...}
agd query gov proposals
Seçenekli filtreleri karşılayan tüm sayfalı teklifler için sorgulama.
Örnek:
$ agd query gov proposals --output json | \
jq -c '.proposals[] | [.proposal_id,.voting_end_time,.status]'
["1","2023-11-14T17:32:16.665791640Z","PROPOSAL_STATUS_PASSED"]
["2","2023-11-14T17:40:16.450879296Z","PROPOSAL_STATUS_PASSED"]
["3","2023-11-14T17:44:37.432643476Z","PROPOSAL_STATUS_PASSED"]
agd query vstorage keys
VStorage'daki belirtilen yoldaki verileri sorgulama.
Örnek:
$ agd query vstorage keys 'published.vaultFactory.managers.manager0.vaults'
children:
- vault0
İşlem Komutları
İşlem yapmak için bir hesap oluşturulması ve imza için özel bir anahtar gereklidir. konteynerinde --keyring-backend=test
ile kullanılabilecek bir dizi anahtar bulunmaktadır. Bunları görüntülemek için agd keys list --keyring-backend=test
komutunu kullanın.
Gerçek müzayedeye tabi varlıkları kontrol eden hesaplar için, gibi bir kullanmak daha basittir. Ayrıca bir donanım cüzdanı (örneğin, Ledger) düşünün.
agd keys add
Yeni bir özel anahtar türetin ve diske şifreleyin.
Kullanım:
agd keys add [flags]
-i
ile çalıştırıldığında, kullanıcıdan BIP44 yolu, BIP39 anahtarı ve şifre istemi açar. --recover
bayrağı, bir anahtarı tohum şifresinden kurtarmak için kullanılabilir.
- Ledger cosmos uygulamasıyla uyumlu olmak için varsayılan 564 yerine
--ledger --coin-type 118
kullanın. - Test için imza istemlerini önlemek için varsayılan işletim sistemi anahtar yönetimini kullanmak yerine
--keyring-backend=test
kullanın. Bu anahtarları$HOME/.agoric
'ten farklı bir dizinde saklamak için--home=DIR
kullanın.
agd tx bank send
Bir hesaptan diğerine fon göndermek.
$ src=agoric14pfrxg63jn6ha0cp6wxkm4nlvswtscrh2pymwm
$ dest=agoric1a3zu5aqw255q0tuxzy9aftvgheekw2wedz3xwq
$ amt=12000000ubld
$ agd tx bank send $src $dest $amt \
--keyring-backend=test --chain-id=agoriclocal \
--gas=auto --gas-adjustment=1.2 \
--yes -b block
Her zamanki gibi, bayrakların belgeleri için agd tx bank send --help
komutunu kullanın, örneğin --yes
, -b
vb.
agd tx swingset provision-one
Zoe akıllı sözleşmeleri ile etkileşimde bulunmak için akıllı bir cüzdan sağlama.
Kullanım:
agd tx swingset provision-one [[,...]] [flags]
Örnek:
KEY_NAME=user1
NICKNAME=my-wallet
KEYRING_BACKEND="--keyring-backend=test"
ADDRESS=$(agd keys show $KEY_NAME $KEYRING_BACKEND | grep address | awk '{print $3}')
agd tx swingset provision-one $NICKNAME $ADDRESS SMART_WALLET --from $KEY_NAME $KEYRING_BACKEND --chain-id agoriclocal -y -b block
Daha fazla bilgi için içindeki MsgProvision
'a bakın.
agd tx swingset install-bundle
agd tx swingset install-bundle --compress "@bundle1.json" \
--from user1 --keyring-backend=test --gas=auto \
--chain-id=agoriclocal -bblock --yes -o json
Ayrıca web arayüzüne de bakın, özellikle depolama ücretlerini anlamak için.
agd tx gov submit-proposal swingset-core-eval
Kullanım:
agd tx gov submit-proposal swingset-core-eval [[permit.json] [code.js]]... [flags]
Örnek:
$ SCRIPT=start-game1.js
$ PERMIT=start-game1-permit.json
agd tx gov submit-proposal swingset-core-eval "$PERMIT" "$SCRIPT" \
--title="Oyun Yeri Sözleşmesini Başlat" --description="Evet $SCRIPT" \
--deposit=10000000ubld --gas=auto --gas-adjustment=1.2 \
--from user1 --chain-id agoriclocal --keyring-backend=test \
--yes -b block
web arayüzü, bunun için güzel bir arayüz sağlar.
agd tx gov vote
Aktif bir teklif için oy gönderin. Teklif kimliğini çalıştırarak bulabilirsiniz.
Kullanım:
agd tx gov vote [proposal-id] [option] [flags]
Örnek:
PROPOSAL=13
agd tx gov vote $PROPOSAL yes \
--keyring-backend test --chain-id agoriclocal --from validator \
--gas auto --gas-adjustment 1.4 \
--broadcast-mode block --output json --yes