Aktywne Wpisy

Duza-fajka +433
Zmarła mi przed chwilą mama, 6 lat temu tata, jak jeszcze byłem nastolatkiem. 22 lata na karku, od dawna się czułem sam na tym świecie, ale teraz to już przesada

Prawda jest taka że
Skopiuj link
Skopiuj link

Wykop.pl
Tak się zastanawiam, jak to jest z tym tworzeniem tokena.
1. Załóżmy, że chcę stworzyć własny token, którego będzie 100'000 sztuk.
2. Przypiszę całą ilość do adresu kontraktu.
3. Napiszę funkcję do wydobywania tokena, czyli ten kontrakt będzie taką kopalnią w której będą te tokeny.
Funkcja po wywołaniu będzie dodawała do konta osoby wywołującej tą funkcję jakąś ilość tokenów, niech ta ilość będzie zdefiniowana w parametrze wejściowym:
Pseudokod:
function KopToken( address kto, uint ilosc ){ balances[kto] += ilosc; }
4. Chcę do tego napisać aplikację, gdzie po wciśnięciu odpowiedniego przycisku będzie się wywoływała funkcja KopToken.
Do tego momentu jest wszystko ok, i teraz nie wiem czy moje założenia są błędne czy czegoś jeszcze nie rozumiem.
5. Skoro każdy może wejść w interakcję bezpośrednio z kontraktem (poprawcie jeśli błędne założenie) to może wywołać funkcję KopToken poza moją aplikacją i wówczas będzie mógł tych moich wypuszczonych tokenów pozyskać całą pulę.
Jak się przed tym zabezpieczyć?
@xDrope: czy public czy external to różnicy nie robi, a w standardzie erc20 jest funkcja transfer. Ale widze ze jest tez cos takiego jak allowance ale musze ogarnac jak to dziala. A taki kontrakt z pseudo-kopalnią da się zrobic by byl bezpieczny?
Chyba na takiej zasadzie działa bitradio. Slucha sie muzyki i co jakis czas sie dostaje tokeny
@kopytko1234: W standardzie ERC20 jest funkcja transfer i jest wbudowana w solidity metoda Transfer. W ERC20 dzieje się dokładnie logika publiczna w funkcji transfer, która przyjmuje jako parametry kwotę i konto docelowe. Konto osoby korzystającej z funkcji jest odczytywane z msg.sender, środki są zmniejszane na koncie sendera o podaną kwotę, a potem
Jest jesscze funkcja transferFrom gdzie jest uzyty mapping allowed. Ale nie ogarnalem jeszcze jak on dziala.
A co do pseudo-kopalni to tak jak opisalem w pierwszym poscie. Smart contract mialby jedna funkcje KopToken i tam by sie okreslalo ile sie kopie. W sumie nawet nie musialby byc w parametrze adres kto kopie bo byloby
To że to tablica dwuwymiarowa to widzę :P ale w jakim celu jest stworzona to jeszcze nie ogarniałem.
A co do pseudo-kopalni to chciałbym żeby każdy kto kliknie przycisk na mojej stronie dostał token.
Na przykład logujesz się poprzez metamask (jak w kryptokotach), wciskasz przycisk na stronie i dostajesz token.
Do tego timeout na 5 minut na przykład, że znów po 5 minutach można kliknąć, to mogłoby być sprawdzane po
@kopytko1234: poczytaj, to
Jeśli chodzi o cooldown to w kryptokotach jest zrobiony tak:
function _isReadyToGiveBirth(Kitty _matron) private view returns2. Gas kosztują funckcje zmieniające stan kontraktu. View i pure o ile się czegoś nie spieprzy są darmowe. Eventy też chyba miały być darmowe finalnie. Czyli odczytywanie storage kontraktu jest za darmo, a to drugie z logiką przyniosło library w solidity,
Ad. 1. To akurat bardziej skomplikowana rzecz i w kotach też się tym nie martwili, więc póki co można to pominąć ( ͡° ͜ʖ ͡°)
Ad. 2. Ale np funkcja GiveBirth w kotach zmienia stan kontraktu, więc ktoś za to płaci, i pytanie - kto, ile i jak? Podobnie jak z aukcjami w kotach, samo wystawienie aukcji też zmienia stan kontraktu, więc pewnie i wystawienie aukcji kosztuje gas.
Ad. 3.
3. Raczej chodzi o kolejną rzecz do zabezpieczenia, bo dałoby się zerować gas. Pewnie powstałąby conajmniej jedna nowa podatność z fallbackami.
4. No to luzik. Na tym poziomie jest łatwiej i bezpieczniej.
5. Koszt mógłby być baardzo duży przy dużej bazie - storage przy każdej nowej instancji kosztuje gas,
@xDrope: Właśnie chodzi o takie zesłownikowanie bazy danych, żeby potem służyła za szablon tylko do pobierania.
A co do tych tablic to jak widzisz