76 lines
2.8 KiB
JavaScript
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.
|
|
|
|
} |