<?xml version="1.0" encoding="utf-8" ?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:tt="http://teletype.in/" xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/"><title>c7nsgte</title><author><name>c7nsgte</name></author><id>https://teletype.in/atom/c7nsgte</id><link rel="self" type="application/atom+xml" href="https://teletype.in/atom/c7nsgte?offset=0"></link><link rel="alternate" type="text/html" href="https://teletype.in/@c7nsgte?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=c7nsgte"></link><link rel="next" type="application/rss+xml" href="https://teletype.in/atom/c7nsgte?offset=10"></link><link rel="search" type="application/opensearchdescription+xml" title="Teletype" href="https://teletype.in/opensearch.xml"></link><updated>2026-10-29T20:30:19.190Z</updated><entry><id>c7nsgte:VJyrCtam7g2</id><link rel="alternate" type="text/html" href="https://teletype.in/@c7nsgte/VJyrCtam7g2?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=c7nsgte"></link><title>Fuel Deploy Smart Contract</title><published>2023-01-18T16:47:30.875Z</published><updated>2023-01-18T16:47:30.875Z</updated><summary type="html">&lt;img src=&quot;https://img1.teletype.in/files/4c/c8/4cc8f297-b7f9-4453-badf-c6ab874c3d87.png&quot;&gt;Все действия выполнялись через workspace на сайте gitpod.</summary><content type="html">
  &lt;p id=&quot;2qGx&quot;&gt;Все действия выполнялись через workspace на сайте &lt;a href=&quot;https://gitpod.io/workspaces&quot; target=&quot;_blank&quot;&gt;gitpod&lt;/a&gt;.&lt;/p&gt;
  &lt;p id=&quot;hLyu&quot;&gt;&lt;strong&gt;Выполняем каждую команду отдельно:&lt;/strong&gt;&lt;/p&gt;
  &lt;ul id=&quot;TD6G&quot;&gt;
    &lt;li id=&quot;zztt&quot;&gt;curl --proto &amp;#x27;=https&amp;#x27; --tlsv1.2 -sSf \&lt;br /&gt;    &lt;a href=&quot;https://fuellabs.github.io/fuelup/fuelup-init.sh&quot; target=&quot;_blank&quot;&gt;https://fuellabs.github.io/fuelup/fuelup-init.sh&lt;/a&gt; | sh&lt;/li&gt;
    &lt;li id=&quot;jbDj&quot;&gt;export PATH=&amp;quot;${HOME}/.fuelup/bin:${PATH}&amp;quot;&lt;/li&gt;
    &lt;li id=&quot;qrtu&quot;&gt;fuelup toolchain install beta-2&lt;/li&gt;
    &lt;li id=&quot;YSeZ&quot;&gt;fuelup default beta-2 &lt;/li&gt;
    &lt;li id=&quot;LUmM&quot;&gt;mkdir fuel-project &lt;/li&gt;
    &lt;li id=&quot;5Up7&quot;&gt;cd fuel-project &lt;/li&gt;
    &lt;li id=&quot;r35U&quot;&gt;forc new counter-contract &lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;FT9D&quot;&gt;открывае файл main.sw, находящийся по пути fuel-project/src&lt;/p&gt;
  &lt;pre id=&quot;aAnG&quot;&gt;contract;

storage {
    counter: u64 = 0,
}

abi Counter {
    #[storage(read, write)]
    fn increment();

    #[storage(read)]
    fn count() -&amp;gt; u64;
}

impl Counter for Contract {
    #[storage(read)]
    fn count() -&amp;gt; u64 {
        storage.counter
    }

    #[storage(read, write)]
    fn increment() {
        storage.counter = storage.counter + 1;
    }
}
&lt;/pre&gt;
  &lt;p id=&quot;QWyw&quot;&gt;&lt;/p&gt;
  &lt;ul id=&quot;zNO7&quot;&gt;
    &lt;li id=&quot;LpPB&quot;&gt;fuelup component add forc-wallet&lt;/li&gt;
    &lt;li id=&quot;DA24&quot;&gt;cd counter-contract&lt;/li&gt;
    &lt;li id=&quot;bQPG&quot;&gt;forc build&lt;/li&gt;
    &lt;li id=&quot;XNuO&quot;&gt;forc-wallet init&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;LGIi&quot;&gt;Придумываем пароль и сохраняем мнемоник&lt;/p&gt;
  &lt;ul id=&quot;ByG1&quot;&gt;
    &lt;li id=&quot;AIxt&quot;&gt;forc-wallet new&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;nUVZ&quot;&gt;Пишем пароль&lt;/p&gt;
  &lt;p id=&quot;XJWH&quot;&gt;&lt;strong&gt;Копируем адрес кошелька и идем в &lt;a href=&quot;https://faucet-beta-2.fuel.network/&quot; target=&quot;_blank&quot;&gt;кран&lt;/a&gt; за тестовыми токенами&lt;/strong&gt;&lt;/p&gt;
  &lt;ul id=&quot;oVYk&quot;&gt;
    &lt;li id=&quot;s3DD&quot;&gt;forc deploy --url node-beta-2.fuel.network/graphql --gas-price 1&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;Hw9C&quot;&gt;Вставляем адрес кошелька (который ранее сохранили), жмем Enter, получаем &lt;strong&gt;Tx id to sign&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;JBmZ&quot;&gt;&lt;strong&gt;Далее, не закрывая текущий терминал, открываем еще один&lt;/strong&gt;&lt;/p&gt;
  &lt;ul id=&quot;ZHjK&quot;&gt;
    &lt;li id=&quot;1e8q&quot;&gt;cd fuel-project&lt;/li&gt;
    &lt;li id=&quot;llWw&quot;&gt;cd counter-contract&lt;/li&gt;
    &lt;li id=&quot;OjsX&quot;&gt;export PATH=&amp;quot;${HOME}/.fuelup/bin:${PATH}&amp;quot;&lt;/li&gt;
    &lt;li id=&quot;GXmP&quot;&gt;forc wallet sign &amp;quot;&lt;strong&gt;Tx id to sign&lt;/strong&gt; из первого окна&amp;quot; 0&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;mNUO&quot;&gt;&lt;strong&gt;Копируем сигнатуру, возвращаемся в первый терминал и вставляем ее там&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;LpUU&quot;&gt;Копируем &lt;strong&gt;Tx id to sign &lt;/strong&gt;подставляем 0x в начале идем в &lt;a href=&quot;https://fuellabs.github.io/block-explorer-v2&quot; target=&quot;_blank&quot;&gt;&lt;strong&gt;эксплорер&lt;/strong&gt;&lt;/a&gt; и радуемся запущеному контракту.&lt;/p&gt;
  &lt;figure id=&quot;Xwa5&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/4c/c8/4cc8f297-b7f9-4453-badf-c6ab874c3d87.png&quot; width=&quot;1166&quot; /&gt;
  &lt;/figure&gt;

</content></entry><entry><id>c7nsgte:HHcmDWfYexn</id><link rel="alternate" type="text/html" href="https://teletype.in/@c7nsgte/HHcmDWfYexn?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=c7nsgte"></link><title>StarkNet Deploy Smart Contract</title><published>2022-12-26T21:40:22.142Z</published><updated>2022-12-26T23:12:42.238Z</updated><summary type="html">Все действия выполнялись через workspace на сайте gitpod.</summary><content type="html">
  &lt;p id=&quot;2qGx&quot;&gt;Все действия выполнялись через workspace на сайте &lt;a href=&quot;https://gitpod.io/workspaces&quot; target=&quot;_blank&quot;&gt;gitpod&lt;/a&gt;.&lt;/p&gt;
  &lt;p id=&quot;hLyu&quot;&gt;&lt;strong&gt;Выполняем каждую команду отдельно:&lt;/strong&gt;&lt;/p&gt;
  &lt;ul id=&quot;ylMS&quot;&gt;
    &lt;li id=&quot;3a17&quot;&gt;sudo apt install -y libgmp3-dev&lt;/li&gt;
    &lt;li id=&quot;de40&quot;&gt;sudo apt install python3.9&lt;/li&gt;
    &lt;li id=&quot;HGR4&quot;&gt;pip3 install cairo-lang&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;txsr&quot;&gt;Везде, где просит нажимаем &amp;quot;y&amp;quot;&lt;/p&gt;
  &lt;p id=&quot;89ox&quot;&gt;&lt;strong&gt;Создаем кошелёк:&lt;/strong&gt;&lt;/p&gt;
  &lt;ul id=&quot;iliB&quot;&gt;
    &lt;li id=&quot;9b55&quot;&gt;export STARKNET_NETWORK=alpha-goerli&lt;/li&gt;
    &lt;li id=&quot;DVID&quot;&gt;export STARKNET_WALLET=starkware.starknet.wallets.open_zeppelin.OpenZeppelinAccount&lt;/li&gt;
    &lt;li id=&quot;5eye&quot;&gt;starknet new_account&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;0rGy&quot;&gt;Сохраняем &lt;strong&gt;account address&lt;/strong&gt; и &lt;strong&gt;public key.  &lt;/strong&gt;Получаем тестовые токены через &lt;a href=&quot;https://faucet.goerli.starknet.io/&quot; target=&quot;_blank&quot;&gt;StarkNet Faucet&lt;/a&gt;&lt;/p&gt;
  &lt;ul id=&quot;cnZF&quot;&gt;
    &lt;li id=&quot;DOYx&quot;&gt;starknet deploy_account&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;kHGN&quot;&gt;Получаем Transaction Hash и ждём пока аккаунт задеплоится, отслеживать транзакцию можно через &lt;a href=&quot;https://testnet.starkscan.co/&quot; target=&quot;_blank&quot;&gt;Starscan&lt;/a&gt;.&lt;/p&gt;
  &lt;ul id=&quot;qGvY&quot;&gt;
    &lt;li id=&quot;35e3&quot;&gt;mkdir starknet&lt;/li&gt;
    &lt;li id=&quot;9b97&quot;&gt;cd starknet&lt;/li&gt;
    &lt;li id=&quot;25c7&quot;&gt;vim contract.cairo&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;lHiX&quot;&gt;Нажимаем &amp;quot;Ctrl+Z&amp;quot; и идём в папку &lt;strong&gt;starknet&lt;/strong&gt;. Открываем файл&lt;strong&gt; contract.cairo&lt;/strong&gt; и вставляем в него следующий код:&lt;/p&gt;
  &lt;pre id=&quot;MRbj&quot;&gt;// Declare this file as a StarkNet contract.
%lang starknet

from starkware.cairo.common.cairo_builtins import HashBuiltin

// Define a storage variable.
@storage_var
func balance() -&amp;gt; (res: felt) {
}

// Increases the balance by the given amount.
@external
func increase_balance{
    syscall_ptr: felt*,
    pedersen_ptr: HashBuiltin*,
    range_check_ptr,
}(amount: felt) {
    let (res) = balance.read();
    balance.write(res + amount);
    return ();
}

// Returns the current balance.
@view
func get_balance{
    syscall_ptr: felt*,
    pedersen_ptr: HashBuiltin*,
    range_check_ptr,
}() -&amp;gt; (res: felt) {
    let (res) = balance.read();
    return (res=res);
}&lt;/pre&gt;
  &lt;p id=&quot;kUSs&quot;&gt;Удаляем из названия файла первую точку и .swp что-бы финальное название было &amp;quot;contract.cairo&amp;quot;.&lt;/p&gt;
  &lt;ul id=&quot;hXn0&quot;&gt;
    &lt;li id=&quot;3Bom&quot;&gt;starknet-compile contract.cairo \&lt;br /&gt;    --output contract_compiled.json \&lt;br /&gt;    --abi contract_abi.json&lt;/li&gt;
    &lt;li id=&quot;IEl4&quot;&gt;starknet declare --contract contract_compiled.json&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;LucX&quot;&gt;Сохраняем &lt;strong&gt;contract class hash&lt;/strong&gt; для следующего шага и ждём завершения транзакции.&lt;/p&gt;
  &lt;ul id=&quot;GPyQ&quot;&gt;
    &lt;li id=&quot;D5VD&quot;&gt;starknet deploy --class_hash $CLASS_HASH (заменяем $CLASS_HASH на &lt;strong&gt;contract class hash&lt;/strong&gt; из предыдущего шага)&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;EN6L&quot;&gt;Сохраняем &lt;strong&gt;contract address&lt;/strong&gt; и ждём завершения транзакции.&lt;/p&gt;
  &lt;ul id=&quot;zXum&quot;&gt;
    &lt;li id=&quot;1XNe&quot;&gt;starknet invoke \&lt;br /&gt;    --address ${CONTRACT_ADDRESS} \&lt;br /&gt;    --abi contract_abi.json \&lt;br /&gt;    --function increase_balance \&lt;br /&gt;    --inputs 1234&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;hDuL&quot;&gt;Заменяем ${CONTRACT_ADDRESS} на &lt;strong&gt;contract address&lt;/strong&gt; из предыдущего шага.&lt;/p&gt;
  &lt;p id=&quot;iBp5&quot;&gt;Проверяем прошла ли последняя транзакция и радуемся запущеному контракту.&lt;/p&gt;

</content></entry></feed>