2023-08-10 11:02:16 +02:00

92 lines
3.6 KiB
JavaScript

/*Public Key
GDY2CP7XLBIY65YX7KS72X7JCZJVJ3AEPEEFTW3TYPLGDRWEZKAC7NR3
Secret Key
SAM4KRGZ4YTAQV3XK3FRKVHZV77AA37KSYZLKZ4OZSX3SBWR6C6NYS4M
*/
import StellarSdk from 'stellar-sdk'
import Swal from "sweetalert2";
import '@sweetalert2/theme-dark/dark.css'
const server = new StellarSdk.Server('https://horizon-testnet.stellar.org'); // const server = new StellarSdk.Server('https://horizon.stellar.org');
const fee = await 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 send(amount, privatekey, destination, memo){
if(memo === undefined || memo === null){
memo = ".";
}
let comision = '0.001';
if(parseFloat(amount) < 1){
comision = '0.001';
} else{
comision = parseFloat(amount) / 500;
comision = comision. toString();
}
console.log(comision)
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.TESTNET})
// 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", "GBPKUSD5ZGMEXCS5YW7WAOC2QJSJLEX6LHGUTJIMDYYPFLPOT6GYFNNX"),
// 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,
})).addOperation(StellarSdk.Operation.payment({
destination: "GDY2CP7XLBIY65YX7KS72X7JCZJVJ3AEPEEFTW3TYPLGDRWEZKAC7NR3",
// The term native asset refers to lumens
asset: new StellarSdk.Asset("BLC", "GBPKUSD5ZGMEXCS5YW7WAOC2QJSJLEX6LHGUTJIMDYYPFLPOT6GYFNNX"),
// 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: comision,
}))
// 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 Comision: " + comision+ " BLC",
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.
}