
Linkler
GÖREV 1
Cüzdan Oluşturuyoruz. Cüzdanismi yerine kendi cüzdanınıza vermek istediğiniz ismi girin.
cd; cline wallet create --file Cüzdanismi.txt
Cüzdanımızı açık hâle getiriyoruz. Cüzdan şifresi yazan yere kendi cüzdanınıza ait şifreyi girmelisiniz.
Cüzdanımızın şifresini bulmak için öncelikle WinSCP kullanarak sunucumuza bağlanıyoruz ve cüzdan ismimizin olduğu dosyayı açıyoruz. Dosyanın içindeki bilgi bizim cüzdan şifremiz.
cline wallet unlock --password cüzdanşifresi
Hesabımıza ait olan private keyi import ediyoruz. PrivateKey yazan kısma kendi keyinizi girmelisiniz.
cline wallet import --private-key PrivateKey
Producer olarak kayıt yapıyoruz. Hesapismi ve PublicKey yazan yerlere kendimize ait bilgileri giriyoruz.
cline system regproducer Hesapismi PublicKey 0.0.0.0:9010
cline system makeprod approve Hesapismi Hesapismi
Bu adımdan sonra https://explorer.inery.io/ 'a giderek master nodes listesinden ismimizin listede olduğunu teyit ediyoruz. Teyit aşamasından sonra https://testnet.inery.io/dashboard/ bu linke gidip birinci görevde finish task diyerek görevimizi onaylıyoruz.
GÖREV 2
İlk adım olarak cüzdanımızın kilidini açıyoruz. Cüzdanismi yazan yere kendi cüzdanınızın ismini yazın.
cline wallet unlock -n Cüzdanismi
token.wasm ve token.abi Dosyalarını Oluşturıyoruz.
cline get code inery.token -c token.wasm -a token.abi --wasm
Tokenimizi oluşturuyoruz. HUGG yazan yere kendi token kısaltmanızı giriniz. Ayrıca tokenimi olusturuyorum kısmına da istediğiniz açıklamayı girebilirsiniz.
cline push action inery.token create '["Hesapismi", "500000.0000 HUGG" , "tokenimi olusturuyorum."]' -p Hesapismi
Tokenimizin simgesini kesinleştiriyoruz.
cline push action inery.token issue '["Hesapismi", "5000.0000 TEST", "bir miktar resmi HUGG token"]' -p Hesapismi
Başka bir hesaba token gönderiyoruz. ''inery'' hesabı da dahil olmak üzere minimum 10 adet token gönderme işlemi yapalım(Görev kabulü için zorunlu).
cline push action inery.token transfer '["Hesapismi", "AlıcıHesapİsmi", "1.0000 HUGG", "1 adet HUGG token gönderdim"]' -p Hesapismi
Inery explorer'dan birkaç hesap seçerek token gönderimi yapabilirsiniz.
GÖREV 3
Değişkenleri yüklüyoruz.
source .bashrc
Hesap ismimizi değişken olarak atıyoruz. ''Hesapismi'' yazan yere kendi hesap isminizi girin.
IneryAccname=Hesapismi
inery.cdt Aracını sunucumuza indiriyoruz.
cd ~
git clone https://github.com/inery-blockchain/inery.cdt
Değişkenleri geçici olarak yüklüyoruz.
export PATH=$PATH:$HOME/inery.cdt/bin/
incrud Dosyası oluşturuyoruz.
mkdir -p inrcrud
Kontratımızın içeriğini belirliyoruz. Komutu olduğu gibi kopyalayın.
tee inrcrud/inrcrud.cpp >/dev/null <<EOF
#include <inery/inery.hpp>
#include <inery/print.hpp>
#include <string>
using namespace inery;
using std::string;
class [[inery::contract]] inrcrud : public inery::contract {
public:
using inery::contract::contract;
[[inery::action]] void create( uint64_t id, name user, string data ) {
records recordstable( _self, id );
auto existing = recordstable.find( id );
check( existing == recordstable.end(), "record with that ID already exists" );
check( data.size() <= 256, "data has more than 256 bytes" );
recordstable.emplace( _self, [&]( auto& s ) {
s.id = id;
s.owner = user;
s.data = data;
});
print( "Hello, ", name{user} );
print( "Created with data: ", data );
}
[[inery::action]] void read( uint64_t id ) {
records recordstable( _self, id );
auto existing = recordstable.find( id );
check( existing != recordstable.end(), "record with that ID does not exist" );
const auto& st = *existing;
print("Data: ", st.data);
}
[[inery::action]] void update( uint64_t id, string data ) {
records recordstable( _self, id );
auto st = recordstable.find( id );
check( st != recordstable.end(), "record with that ID does not exist" );
recordstable.modify( st, get_self(), [&]( auto& s ) {
s.data = data;
});
print("Data: ", data);
}
[[inery::action]] void destroy( uint64_t id ) {
records recordstable( _self, id );
auto existing = recordstable.find( id );
check( existing != recordstable.end(), "record with that ID does not exist" );
const auto& st = *existing;
recordstable.erase( st );
print("Record Destroyed: ", id);
}
private:
struct [[inery::table]] record {
uint64_t id;
name owner;
string data;
uint64_t primary_key()const { return id; }
};
typedef inery::multi_index<"records"_n, record> records;
};
EOF
Kontratı derliyoruz.
inery-cpp inrcrud/inrcrud.cpp -o inrcrud/inrcrud.wasm
KONTRATI DAĞITMA
İlk adım olarak cüzdanımızın kilidini açıyoruz.
cline wallet unlock --password
Sözleşmemizi ayarlıyoruz.
cline set contract $IneryAccname ./inrcrud
Kontrat oluşturma işlemi
cline push action $IneryAccname create "[1, $IneryAccname, My first Record]" -p $IneryAccname -j
Kontrat okuma işlemi
cline push action $IneryAccname read [1] -p $IneryAccname -j
Kontrat güncelleme işlemi
cline push action $IneryAccname update '[ 1, "My first Record Modified"]' -p $IneryAccname -j
Kontrat destroy işlemi
cline push action $IneryAccname destroy [1] -p $IneryAccname -j
Via1: https://github.com/Agus1224/NODE_TESTNET/tree/main/INERY
Via2: https://github.com/koltigin/Inery-Node-Kurulum-Rehberi