mirror of
https://github.com/XRPLF/xrpl-dev-portal.git
synced 2025-11-25 06:05:51 +00:00
chore(samples): replace tab for 4 spaces
This commit is contained in:
@@ -1,151 +1,151 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"fmt"
|
||||
|
||||
"github.com/Peersyst/xrpl-go/pkg/crypto"
|
||||
"github.com/Peersyst/xrpl-go/xrpl/faucet"
|
||||
transactions "github.com/Peersyst/xrpl-go/xrpl/transaction"
|
||||
"github.com/Peersyst/xrpl-go/xrpl/transaction/types"
|
||||
"github.com/Peersyst/xrpl-go/xrpl/wallet"
|
||||
"github.com/Peersyst/xrpl-go/xrpl/websocket"
|
||||
"github.com/Peersyst/xrpl-go/pkg/crypto"
|
||||
"github.com/Peersyst/xrpl-go/xrpl/faucet"
|
||||
transactions "github.com/Peersyst/xrpl-go/xrpl/transaction"
|
||||
"github.com/Peersyst/xrpl-go/xrpl/transaction/types"
|
||||
"github.com/Peersyst/xrpl-go/xrpl/wallet"
|
||||
"github.com/Peersyst/xrpl-go/xrpl/websocket"
|
||||
)
|
||||
|
||||
func main() {
|
||||
// Connect to testnet
|
||||
client := websocket.NewClient(
|
||||
websocket.NewClientConfig().
|
||||
WithHost("wss://s.devnet.rippletest.net:51233").
|
||||
WithFaucetProvider(faucet.NewDevnetFaucetProvider()),
|
||||
)
|
||||
defer client.Disconnect()
|
||||
// Connect to testnet
|
||||
client := websocket.NewClient(
|
||||
websocket.NewClientConfig().
|
||||
WithHost("wss://s.devnet.rippletest.net:51233").
|
||||
WithFaucetProvider(faucet.NewDevnetFaucetProvider()),
|
||||
)
|
||||
defer client.Disconnect()
|
||||
|
||||
if err := client.Connect(); err != nil {
|
||||
fmt.Println(err)
|
||||
return
|
||||
}
|
||||
if err := client.Connect(); err != nil {
|
||||
fmt.Println(err)
|
||||
return
|
||||
}
|
||||
|
||||
// Create and fund wallets
|
||||
delegatorWallet, err := wallet.New(crypto.ED25519())
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
return
|
||||
}
|
||||
// Create and fund wallets
|
||||
delegatorWallet, err := wallet.New(crypto.ED25519())
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
return
|
||||
}
|
||||
|
||||
delegateeWallet, err := wallet.New(crypto.ED25519())
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
return
|
||||
}
|
||||
delegateeWallet, err := wallet.New(crypto.ED25519())
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
return
|
||||
}
|
||||
|
||||
fmt.Println("⏳ Funding wallets...")
|
||||
if err := client.FundWallet(&delegatorWallet); err != nil {
|
||||
fmt.Println(err)
|
||||
return
|
||||
}
|
||||
if err := client.FundWallet(&delegateeWallet); err != nil {
|
||||
fmt.Println(err)
|
||||
return
|
||||
}
|
||||
fmt.Println("💸 Wallets funded")
|
||||
fmt.Println("⏳ Funding wallets...")
|
||||
if err := client.FundWallet(&delegatorWallet); err != nil {
|
||||
fmt.Println(err)
|
||||
return
|
||||
}
|
||||
if err := client.FundWallet(&delegateeWallet); err != nil {
|
||||
fmt.Println(err)
|
||||
return
|
||||
}
|
||||
fmt.Println("💸 Wallets funded")
|
||||
|
||||
// Check initial balances
|
||||
delegatorBalance, err := client.GetXrpBalance(delegatorWallet.ClassicAddress)
|
||||
if err != nil {
|
||||
delegatorBalance = "0"
|
||||
}
|
||||
delegateeBalance, err := client.GetXrpBalance(delegateeWallet.ClassicAddress)
|
||||
if err != nil {
|
||||
delegateeBalance = "0"
|
||||
}
|
||||
// Check initial balances
|
||||
delegatorBalance, err := client.GetXrpBalance(delegatorWallet.ClassicAddress)
|
||||
if err != nil {
|
||||
delegatorBalance = "0"
|
||||
}
|
||||
delegateeBalance, err := client.GetXrpBalance(delegateeWallet.ClassicAddress)
|
||||
if err != nil {
|
||||
delegateeBalance = "0"
|
||||
}
|
||||
|
||||
fmt.Printf("💳 Delegator initial balance: %s XRP\n", delegatorBalance)
|
||||
fmt.Printf("💳 Delegatee initial balance: %s XRP\n", delegateeBalance)
|
||||
fmt.Println()
|
||||
fmt.Printf("💳 Delegator initial balance: %s XRP\n", delegatorBalance)
|
||||
fmt.Printf("💳 Delegatee initial balance: %s XRP\n", delegateeBalance)
|
||||
fmt.Println()
|
||||
|
||||
// Create DelegateSet transaction
|
||||
delegateSetTx := &transactions.DelegateSet{
|
||||
BaseTx: transactions.BaseTx{
|
||||
Account: types.Address(delegatorWallet.ClassicAddress),
|
||||
},
|
||||
Authorize: types.Address(delegateeWallet.ClassicAddress),
|
||||
Permissions: []types.Permission{
|
||||
{
|
||||
Permission: types.PermissionValue{
|
||||
PermissionValue: "Payment",
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
// Create DelegateSet transaction
|
||||
delegateSetTx := &transactions.DelegateSet{
|
||||
BaseTx: transactions.BaseTx{
|
||||
Account: types.Address(delegatorWallet.ClassicAddress),
|
||||
},
|
||||
Authorize: types.Address(delegateeWallet.ClassicAddress),
|
||||
Permissions: []types.Permission{
|
||||
{
|
||||
Permission: types.PermissionValue{
|
||||
PermissionValue: "Payment",
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
// Submit DelegateSet transaction
|
||||
flattenedTx := delegateSetTx.Flatten()
|
||||
if err := client.Autofill(&flattenedTx); err != nil {
|
||||
fmt.Println(err)
|
||||
return
|
||||
}
|
||||
// Submit DelegateSet transaction
|
||||
flattenedTx := delegateSetTx.Flatten()
|
||||
if err := client.Autofill(&flattenedTx); err != nil {
|
||||
fmt.Println(err)
|
||||
return
|
||||
}
|
||||
|
||||
txBlob, _, err := delegatorWallet.Sign(flattenedTx)
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
return
|
||||
}
|
||||
txBlob, _, err := delegatorWallet.Sign(flattenedTx)
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
return
|
||||
}
|
||||
|
||||
response, err := client.SubmitTxBlobAndWait(txBlob, false)
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
return
|
||||
}
|
||||
response, err := client.SubmitTxBlobAndWait(txBlob, false)
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
return
|
||||
}
|
||||
|
||||
fmt.Println("✅ DelegateSet transaction submitted")
|
||||
fmt.Printf("🌐 Hash: %s\n", response.Hash)
|
||||
fmt.Printf("🌐 Validated: %t\n", response.Validated)
|
||||
fmt.Println()
|
||||
fmt.Println("✅ DelegateSet transaction submitted")
|
||||
fmt.Printf("🌐 Hash: %s\n", response.Hash)
|
||||
fmt.Printf("🌐 Validated: %t\n", response.Validated)
|
||||
fmt.Println()
|
||||
|
||||
// Create delegated payment transaction
|
||||
delegatedPaymentTx := &transactions.Payment{
|
||||
BaseTx: transactions.BaseTx{
|
||||
Account: types.Address(delegatorWallet.ClassicAddress),
|
||||
Delegate: types.Address(delegateeWallet.ClassicAddress),
|
||||
},
|
||||
Destination: types.Address(delegateeWallet.ClassicAddress),
|
||||
Amount: types.XRPCurrencyAmount(1000000), // 1 XRP
|
||||
}
|
||||
// Create delegated payment transaction
|
||||
delegatedPaymentTx := &transactions.Payment{
|
||||
BaseTx: transactions.BaseTx{
|
||||
Account: types.Address(delegatorWallet.ClassicAddress),
|
||||
Delegate: types.Address(delegateeWallet.ClassicAddress),
|
||||
},
|
||||
Destination: types.Address(delegateeWallet.ClassicAddress),
|
||||
Amount: types.XRPCurrencyAmount(1000000), // 1 XRP
|
||||
}
|
||||
|
||||
// Submit delegated payment
|
||||
flatDelegatedPayment := delegatedPaymentTx.Flatten()
|
||||
if err := client.Autofill(&flatDelegatedPayment); err != nil {
|
||||
fmt.Println(err)
|
||||
return
|
||||
}
|
||||
// Submit delegated payment
|
||||
flatDelegatedPayment := delegatedPaymentTx.Flatten()
|
||||
if err := client.Autofill(&flatDelegatedPayment); err != nil {
|
||||
fmt.Println(err)
|
||||
return
|
||||
}
|
||||
|
||||
txBlob2, _, err := delegateeWallet.Sign(flatDelegatedPayment)
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
return
|
||||
}
|
||||
txBlob2, _, err := delegateeWallet.Sign(flatDelegatedPayment)
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
return
|
||||
}
|
||||
|
||||
response2, err := client.SubmitTxBlobAndWait(txBlob2, false)
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
return
|
||||
}
|
||||
response2, err := client.SubmitTxBlobAndWait(txBlob2, false)
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
return
|
||||
}
|
||||
|
||||
fmt.Println("✅ Delegated payment submitted")
|
||||
fmt.Printf("🌐 Hash: %s\n", response2.Hash)
|
||||
fmt.Printf("🌐 Validated: %t\n", response2.Validated)
|
||||
fmt.Println()
|
||||
fmt.Println("✅ Delegated payment submitted")
|
||||
fmt.Printf("🌐 Hash: %s\n", response2.Hash)
|
||||
fmt.Printf("🌐 Validated: %t\n", response2.Validated)
|
||||
fmt.Println()
|
||||
|
||||
// Check final balances
|
||||
finalDelegatorBalance, err := client.GetXrpBalance(delegatorWallet.ClassicAddress)
|
||||
if err != nil {
|
||||
finalDelegatorBalance = "0"
|
||||
}
|
||||
finalDelegateeBalance, err := client.GetXrpBalance(delegateeWallet.ClassicAddress)
|
||||
if err != nil {
|
||||
finalDelegateeBalance = "0"
|
||||
}
|
||||
// Check final balances
|
||||
finalDelegatorBalance, err := client.GetXrpBalance(delegatorWallet.ClassicAddress)
|
||||
if err != nil {
|
||||
finalDelegatorBalance = "0"
|
||||
}
|
||||
finalDelegateeBalance, err := client.GetXrpBalance(delegateeWallet.ClassicAddress)
|
||||
if err != nil {
|
||||
finalDelegateeBalance = "0"
|
||||
}
|
||||
|
||||
fmt.Printf("💳 Delegator final balance: %s XRP\n", finalDelegatorBalance)
|
||||
fmt.Printf("💳 Delegatee final balance: %s XRP\n", finalDelegateeBalance)
|
||||
fmt.Printf("💳 Delegator final balance: %s XRP\n", finalDelegatorBalance)
|
||||
fmt.Printf("💳 Delegatee final balance: %s XRP\n", finalDelegateeBalance)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user