summirizing contract

This commit is contained in:
dmitry.shakhtarin 2018-09-09 10:50:33 +03:00
parent 3adf7c3f51
commit c3f30a2b71
2 changed files with 11 additions and 12 deletions

View File

@ -123,5 +123,10 @@ object Expr {
(Symbol("False") ->> bool) ::
HNil
)
val `block.timestamp` = predef.ref(Symbol("block.timestamp"))
val `msg.value` = predef.ref(Symbol("msg.value"))
val `msg.sender` = predef.ref(Symbol("msg.sender"))
val `True` = predef.ref('True)
}
}

View File

@ -13,11 +13,6 @@ import shapeless.HNil
object Auction extends App {
import Expr.Defs._
val `block.timestamp` = predef.ref(Symbol("block.timestamp"))
val `msg.value` = predef.ref(Symbol("msg.value"))
val `msg.sender` = predef.ref(Symbol("msg.sender"))
val `True` = predef.ref('True)
val data = ProductType.self(
('beneficiary ->> public(address)) ::
('auction_start ->> public(timestamp)) ::
@ -51,12 +46,6 @@ object Auction extends App {
} yield Void
}
val bidIf: () Free[Expr, Void] = { () =>
for {
_ <- FuncDef.send(highest_bidder :: highest_bid :: HNil).liftF
} yield Void
}
val bid = `@public` @: `@payable` @: ProductType.hNil.funcDef(
"bid",
Void
@ -64,7 +53,12 @@ object Auction extends App {
for {
_ <- `assert`(`<<`(`block.timestamp`, auction_end))
_ <- `assert`(`>>`(`msg.value`, highest_bid))
_ <- `if`(`not`(`:===:`(highest_bid, `msg.value`)), bidIf)
_ <- `if`(`not`(`:===:`(highest_bid, `msg.value`)), {
() =>
for {
_ <- FuncDef.send(highest_bidder :: highest_bid :: HNil).liftF
} yield Void
})
_ <- highest_bidder :=: `msg.sender`
_ <- highest_bid :=: `msg.value`
} yield Void