"Замороженные" транзакции.

alpetalpet Member Posts: 1
Можно-ли для эфириума реализовать транзакции с фиксированным временем выполнения? Скажем 20-30 лет. Суть в том, что я например хочу отложить какое-то число монет на старость, и соответственно лишиться возможности потратить эти средства раньше срока. Ну и другие участники рынка будут видеть такие транзакции, что позволит им оценить максимальное предложение монет на бирже в настоящее время (дефляционный фактор).

Comments

  • jesus666jesus666 Member Posts: 62 ✭✭
    @alpet: da, eto dostatochno prosto. V lyubom iz kontraktnih yazykov (serpent, solidity, lll, mutan) est' reference na posledniy block (i v tom chisle ego nomer) - dostatochno ego proverit' na vyhode, i esli posledniy block vyshe kakogo-to zaranee zaprogrammirovannogo chisla, to otdat' ether. Primer:
    
    def init():
        self.storage[0] = msg.sender
        self.storage[1] = block.number
    def deposit():
        if msg.value > 0:
            return(0)
    def withdraw(amount):
        if msg.sender == self.storage[0] and self.balance >= amount and block.number >= self.storage[1] + 30000:
            send(msg.sender, amount)
            return(1)
    
    init(inicializacitya contracta): sohranit' address hozyaina kontrakta i nomer (na tot moment) poslednego bloka.

    deposit: Primer tranzakcii:
    
    amount: 10000000000
    data: 0x00 #(reference na deposit())
    
    tut vprincipe nichego ne nado delat', no na vsyakiy sluchay mozhno proverit' byl li prislan Ether s tranzakciey.

    withdraw: Primer tranzakcii:
    
    amount: 0
    data: 0x01 100000000 # (reference na withdraw, amount)
    
    Proverit' address otkuda poslana tranzakciya, esli takoy zhe kak i sohranenniy address hozyaina kontrakta, to proverit' ne prevyshaet li zaproshennaya summa balans kontrakta, esli net - to proverit' "vysotu" poslednego bloka - esli ona "vyshe" bloka sohranennogo pri inicializacii minimum na 30000 blokov, to otpravit' finansy otpravitelyu tranzakcii
Sign In or Register to comment.