Skip to content

About

Run Agora Stable Swaps end to end on Ethereum Sepolia and Avalanche Fuji. Faucet, self-whitelist, inspect, exact-in and exact-out swaps. One env var switches chains.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Agora Stable Swaps: iki testnette uçtan uca

Agora Stable Swaps protokolünü Ethereum Sepolia ve Avalanche Fuji üzerinde sıfırdan çalıştıran minimal TypeScript scriptleri. Faucet, self-whitelist, inspect, swap. Tek satır ortam değişkeniyle zincir değiştiriyor.

Toplam 19 işlem gönderildi. Ölçümler ve karşılaştırma BULGULAR.md içinde. English: FINDINGS.md

Kurulum

git clone https://github.com/iamiskender/agora-ausd-testnet.git
cd agora-ausd-testnet
npm install
cp .env.example .env

.env içine sadece bu iş için oluşturduğun bir test cüzdanının private key'ini yaz. İçinde gerçek para olan bir cüzdanı kullanma, key diskte düz metin duruyor.

Kullanım

npm run inspect       # zinciri oku, gas harcamaz
npm run faucet        # AUSD ve CTK çek
npm run whitelist     # APPROVED_SWAPPER rolünü kendine ver
npm run swap          # 100 AUSD -> CTK (exact-in)
npm run swap -- 250   # farklı miktar
npm run swap-out      # 250 AUSD al, CTK harca (exact-out)

Başka bir zincirde çalıştırmak için:

NETWORK=fuji npm run inspect
NETWORK=base npm run swap

Desteklenen ağlar: sepolia (varsayılan), fuji, base, arbitrum. Kontrat adresleri CREATE3 ile deterministik deploy edildiği için tüm testnetlerde aynı.

Gas token faucet'leri:

Yapı

Dosya İş
src/client.ts Çok zincirli istemci, ağ tanımları
src/config.ts Kontrat adresleri ve ABI'lar
src/tx.ts Zincire yazan çağrılar için ortak yol, gas tahmini düzeltmesi burada
src/inspect.ts Pair, rezervler, fiyat, bakiyeler
src/faucet.ts Test tokeni çek
src/whitelist.ts Kendini APPROVED_SWAPPER yap
src/swap.ts Sabit girdi swap
src/swap-exact-out.ts Sabit çıktı swap, ters yön

Neden ayrı bir tx.ts var

viem, üzerinde local account bulunan bir istemcide gas tahmini yaparken işlemi önce tam hazırlıyor ve ücret alanlarını dolduruyor. Fuji'nin baseFee'si wei ölçeğinde, yani Sepolia'nın milyarda biri. RPC'nin eth_estimateGas fonksiyonu ücret parametresi aldığında ikili aramayı bakiye / gasPrice tavanıyla kuruyor ve doğru değeri bulmak yerine o tavanı döndürüyor.

Aynı çağrı, dört farklı biçimde:

Nasıl çağrıldı Tahmin
publicClient, adres string 119.136
publicClient, ücret parametresiyle 33.599.051
walletClient, local account 6.221.830.295.905.538
gerçek kullanım 115.068

Blok gas limiti 32.000.000. Üçüncü satır exceeds block gas limit ile reddediliyor.

Çözüm: tahmini local account'suz bir publicClient üzerinden yapıp gas'ı writeContract'a açıkça geçmek.

Kaynaklar

Lisans

MIT


Tüm işlemler test ağlarında gerçekleştirildi. Testnet varlıklarının parasal değeri yoktur.

About

Run Agora Stable Swaps end to end on Ethereum Sepolia and Avalanche Fuji. Faucet, self-whitelist, inspect, exact-in and exact-out swaps. One env var switches chains.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Contributors

Languages