Algorand Günlüğüm(7/10)

Enes POLAT
Turk Telekom Bulut Teknolojileri
4 min readOct 4, 2022

10 bölümden oluşan Algorand günlüğüm serisinde JavaScript diliyle Algorand blokzincirinde uygulama geliştirmeye öğrenmeye devam ediyoruz.

Daha önceki birinci bölüm, ikinci bölüm, üçüncü bölüm, dördüncü bölüm, beşinci bölüm ve altıncı bölümlerini okumadıysanız linklerden erişebilirsiniz.

Kaynak: https://yoyodex.io/algorand-yukselis-trendini-surdurmek-icin-temel-destegin-uzerinde-kalmali/?amp=1

Hesaplar Arası Balance Transferi

Şimdi gelin iki hesap oluşturalım, hesaplara Algo ekleyelim ve daha sonra JavaScript kodları ile iki hesap arası Algo gönderimini gerçekleştirelim.

Önce index.js’i aşağıdaki gibi güncelliyoruz.

const algosdk= require(‘algosdk’ ) ;

const createadress= require(‘./address’)

const checkBalance= require(‘./balance’)

require(‘dotenv’).config()

createadress()

Tabi hatırlamak gerekirse address.js aşağıdaki gibiydi:

const algosdk= require(‘algosdk’)

creteAddres=()=>{

let account=algosdk.generateAccount();

console.log(“Account addres: “,account);

let mn=algosdk.secretKeyToMnemonic(account.sk);

console.log(“Account Mnemonic: “,mn);

}

module.exports = creteAddres

İki hesap oluşturacağımızdan npm start komutunu iki kere çağırıyoruz.

npm start

Kodun çıktısı:

npm start

> ilk-proje@1.0.0 start
> node index.js

Account addres: {
addr: ‘THYJOXJPRAX6ETMMCPYPWKUDUP7Z6TIF433JUN4N3EQJ6OD7MTAX7HKBJI’,
sk: Uint8Array(64) [
231, 52, 65, 244, 53, 214, 125, 2, 51, 182, 213,
92, 216, 124, 89, 49, 106, 210, 33, 83, 90, 252,
124, 153, 164, 230, 196, 216, 93, 6, 143, 250, 153,
240, 151, 93, 47, 136, 47, 226, 77, 140, 19, 240,
251, 42, 131, 163, 255, 159, 77, 5, 230, 246, 154,
55, 141, 217, 32, 159, 56, 127, 100, 193
]
}
Account Mnemonic: ostrich age when globe wing scene ranch stick argue vibrant protect perfect pill silent spoon wisdom convince mystery infant middle roof screen stamp abstract entry
╭─░▒▓ ~/Desktop/ilk-proje ▓▒░··················································································░▒▓ ✔ base 🐍 at 11:31:49 AM ▓▒░
╰─ npm start

> ilk-proje@1.0.0 start
> node index.js

Account addres: {
addr: ‘ZBGKZ6PXBLUENEGHKSEDN74D4BUCYQUH3GMOEEXLDSIVRKIHBUMMMECHQM’,
sk: Uint8Array(64) [
134, 167, 88, 0, 80, 165, 190, 231, 250, 172, 93,
168, 217, 136, 202, 8, 171, 142, 10, 0, 110, 54,
242, 22, 137, 110, 177, 90, 58, 193, 137, 137, 200,
76, 172, 249, 247, 10, 232, 70, 144, 199, 84, 136,
54, 255, 131, 224, 104, 44, 66, 135, 217, 152, 226,
18, 235, 28, 145, 88, 169, 7, 13, 24
]
}
Account Mnemonic: valid glad ability fence later rigid guitar frozen crush casino grab rack bubble actor hybrid cushion tattoo cattle resemble prison input icon era above glass

Görüldüğü gibi 2 hesap oluştu. Bunlar:

THYJOXJPRAX6ETMMCPYPWKUDUP7Z6TIF433JUN4N3EQJ6OD7MTAX7HKBJI

ZBGKZ6PXBLUENEGHKSEDN74D4BUCYQUH3GMOEEXLDSIVRKIHBUMMMECHQM

Mnemonic keyler ayrıca görülüyor. Balance göndereceğimiz hesabın mnemonic key değeri lazım olacak. Şimdi her iki hesaba https://bank.testnet.algorand.network/ sayfasından Algo alalım.

Algo Alma

Her iki hesabın balance değerini Algo Explorer’den kontrol edelim.

Hesap 1 Algo değeri
Hesap 2 Algo Değeri

Artık kod zamanı

transaction.js isminde yeni bir dosya oluşturun ve aşağıdaki kodu yapıştırın

const algosdk = require(‘algosdk’);

const baseServer = “https://testnet-algorand.api.purestake.io/ps2";

const port = “”;

const token = {

‘X-API-key’: “https://developer.purestake.io/ sayfasından alacağınız API key”

}

let algodClient = new algosdk.Algodv2(token, baseServer, port);

(async () => {

let params = await algodClient.getTransactionParams().do();

let amount = Math.floor(Math.random() * 1000);

var mnemonic = “ostrich age when globe wing scene ranch stick argue vibrant protect perfect pill silent spoon wisdom convince mystery infant middle roof screen stamp abstract entry”;

var recoveredAccount = algosdk.mnemonicToSecretKey(mnemonic);

let txn = {

“from”: recoveredAccount.addr,

“to”: “ZBGKZ6PXBLUENEGHKSEDN74D4BUCYQUH3GMOEEXLDSIVRKIHBUMMMECHQM”,

“fee”: 1,

“amount”: amount,

“firstRound”: params.firstRound,

“lastRound”: params.lastRound,

“genesisID”: params.genesisID,

“genesisHash”: params.genesisHash,

“note”: new Uint8Array(0),

};

let signedTxn = algosdk.signTransaction(txn, recoveredAccount.sk);

let sendTx = await algodClient.sendRawTransaction(signedTxn.blob).do();

console.log(“Transaction : “ + sendTx.txId);

})().catch(e => {

console.log(e);

});

Kodu yorumlayalım. Burada X-API-key kısmına https://developer.purestake.io/ sayfasından aldığınız API key i yazın. to kısmına Algo gönderilecek adresi yazın. var mnemonic = kısmına para gönderecek hesabın mnemonic bilgisini işleyin. Kod 0 ile 1 arası rasntgele bir tutarı diğer hesaba yolluyor. Kodumuz gönderime hazır.

node transaction.js komutunu çalıştırın.

node transaction.js
Transaction : NRCPTG2OGVHREML6WZADC2P7N6PBDAGWGN74U47FT4DTUEORVX7A

Bu transaction işlemini Algo Explorer’de gözlemleyelim

İşlemin Gözlemlenmesi

Her iki hesabın güncel balance bilgisini görmek için balance.js scriptinde adreslerini sırayla yazarak index.js kısmında scripti çağırıp npm start ı çağıralım.

balance.js kodu

const algosdk=require( ‘algosdk’ ) ;

checkbalance=()=>{

const port=””

const token={

“x-api-key”:process.env.API

};

const Testserver=”https://testnet-algorand.api.purestake.io/ps2"

let client= new algosdk.Algodv2 (token, Testserver, port) ;

let account=”THYJOXJPRAX6ETMMCPYPWKUDUP7Z6TIF433JUN4N3EQJ6OD7MTAX7HKBJI”;

(async () =>{

let account_info=(await client.accountInformation(account).do());

console.log(“Balance of account :”, JSON.stringify(account_info.amount));

}

)().catch((err) =>{

console.log(err);

})

}

module.exports=checkbalance

index.js kodu

const algosdk= require(‘algosdk’ ) ;

const createadress= require(‘./address’)

const checkBalance= require(‘./balance’)

require(‘dotenv’).config()

//createadress()

checkBalance()

npm start komut çıktısı:

npm start kod çıktısı

Görüldüğü üzere bu hesaptaki tutar azalmış. İlgili hesabın Algo Explorer’de adresini yazarak balance bilgisini görelim:

Güncel Balance bilgisi

İşte bu kadar.

Sonuç

Bu yazımızda iki hesap arası Algo transferini gerçekleştirecek JavaScript kodunu çalıştırdık.

Bir sonraki yazımızda görüşmek üzere.

--

--