2023-08-17 19:40:49 +02:00

76 lines
2.8 KiB
JavaScript

import StellarSdk from 'stellar-sdk'
import Swal from "sweetalert2";
import '@sweetalert2/theme-dark/dark.css'
const server = new StellarSdk.Server('https://horizon.stellar.org'); // const server = new StellarSdk.Server('https://horizon.stellar.org');
const fee = server.fetchBaseFee();
export default function getAccount(privatekey){
const keypair = StellarSdk.Keypair.fromSecret(privatekey)
return server.loadAccount(keypair.publicKey())
}
export function getAddress(privatekey){
const keypair = StellarSdk.Keypair.fromSecret(privatekey)
return keypair.publicKey()
}
export function getFee(){
return fee
}
export function send(amount, privatekey, destination, memo){
console.log(amount)
console.log(privatekey)
if(memo === undefined || memo === null){
memo = ".";
}
const keypair = StellarSdk.Keypair.fromSecret(privatekey)
server.loadAccount(keypair.publicKey()).then(account => {
console.log(account)
try{
const transaction = new StellarSdk.TransactionBuilder(account, {fee, networkPassphrase: StellarSdk.Networks.PUBLIC})
// Add a payment operation to the transaction
.addOperation(StellarSdk.Operation.payment({
destination: destination,
// The term native asset refers to lumens
asset: new StellarSdk.Asset("BLC", "GC4PNLO7X3AVON2RZQ44FJDPODB5RCWORWJY6O5I4O7GHSWFECGDF662"),
// Specify 350.1234567 lumens. Lumens are divisible to seven digits past
// the decimal. They are represented in JS Stellar SDK in string format
// to avoid errors from the use of the JavaScript Number data structure.
amount: amount,
}))
// Make this transaction valid for the next 30 seconds only
.setTimeout(30)
.addMemo(StellarSdk.Memo.text(memo))
// Uncomment to add a memo (https://www.stellar.org/developers/learn/concepts/transactions.html)
// .addMemo(StellarSdk.Memo.text('Hello world!'))
.build();
// Sign this transaction with the secret key
// NOTE: signing is transaction is network specific. Test network transactions
// won't work in the public network. To switch networks, use the Network object
// as explained above (look for StellarSdk.Network).
transaction.sign(keypair)
try {
server.submitTransaction(transaction);
} catch (e) {
console.log('An error has occured:');
console.log(e);
}Swal.fire({
title: "Payment sent successfully",
icon: "success",
confirmButtonText: "OK",
});}
catch(err){
console.log(err)
Swal.fire({
title: "Error!",
text: "Invalid Transaction Data",
icon: "error",
confirmButtonText: "OK",
});
}
});
// Let's see the XDR (encoded in base64) of the transaction we just built
// Submit the transaction to the Horizon server. The Horizon server will then
// submit the transaction into the network for us.
}