tx · GygoekZJLB6Ez6n3bsXQzCPyjTvhdmgQKsahhFy2hh6 3MuHvzW1hrUfxXGmJqxtG3JFYutK5XoqAjk: -0.01000000 Waves 2019.09.21 01:07 [685216] smart account 3MuHvzW1hrUfxXGmJqxtG3JFYutK5XoqAjk > SELF 0.00000000 Waves
{ "type": 13, "id": "GygoekZJLB6Ez6n3bsXQzCPyjTvhdmgQKsahhFy2hh6", "fee": 1000000, "feeAssetId": null, "timestamp": 1569017271542, "version": 1, "sender": "3MuHvzW1hrUfxXGmJqxtG3JFYutK5XoqAjk", "senderPublicKey": "661EYbc9oP5DPEXAPZrnPMxtjnQYoeAzL7VEvMxXmJzp", "proofs": [ "38hVnPe5jgpmEFnutQu2VL7NFzNvnNWMATCDevfWZpVvWHQwT5qqA8Y7JpDtG4287WzC1CEtDTavqh1aja4DZnNP" ], "script": "base64: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", "chainId": 84, "height": 685216, "spentComplexity": 0 } View: original | compacted Prev: none Next: none Full:
Old | New | Differences | |
---|---|---|---|
1 | - | # no script | |
1 | + | {-# STDLIB_VERSION 3 #-} | |
2 | + | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | + | {-# CONTENT_TYPE DAPP #-} | |
4 | + | ||
5 | + | ||
6 | + | @Callable(i) | |
7 | + | func init (name,photo,price,tokenId) = WriteSet([DataEntry("name", name), DataEntry("photo", photo), DataEntry("price", price), DataEntry("token", tokenId), DataEntry("owner", toBase58String(i.caller.bytes))]) | |
8 | + | ||
9 | + | ||
10 | + | ||
11 | + | @Callable(i) | |
12 | + | func buyToken () = { | |
13 | + | let pmt = extract(i.payment) | |
14 | + | let receivedPayment = match i.payment { | |
15 | + | case p: AttachedPayment => | |
16 | + | p.amount | |
17 | + | case _ => | |
18 | + | 0 | |
19 | + | } | |
20 | + | let price = getIntegerValue(this, "price") | |
21 | + | let tokenId = getStringValue(this, "token") | |
22 | + | if (isDefined(pmt.assetId)) | |
23 | + | then throw("waves only accepted") | |
24 | + | else if ((receivedPayment >= price)) | |
25 | + | then TransferSet([ScriptTransfer(i.caller, 1, fromBase58String(tokenId)), ScriptTransfer(i.caller, (receivedPayment - price), unit)]) | |
26 | + | else throw("not enough waves to buy the token") | |
27 | + | } | |
28 | + | ||
29 | + | ||
30 | + | ||
31 | + | @Callable(i) | |
32 | + | func activateAccess () = { | |
33 | + | let pmt = i.payment | |
34 | + | if (isDefined(pmt)) | |
35 | + | then { | |
36 | + | let extractedPmt = extract(pmt) | |
37 | + | let tokenId = getStringValue(this, "token") | |
38 | + | if (if (if (isDefined(extractedPmt.assetId)) | |
39 | + | then (toBase58String(extract(extractedPmt.assetId)) == tokenId) | |
40 | + | else false) | |
41 | + | then (extractedPmt.amount == 1) | |
42 | + | else false) | |
43 | + | then WriteSet([DataEntry("renter", toBase58String(i.caller.bytes))]) | |
44 | + | else throw("payment error, you need to send 1 token") | |
45 | + | } | |
46 | + | else throw("no payment attached") | |
47 | + | } | |
48 | + | ||
49 | + | ||
50 | + | @Verifier(tx) | |
51 | + | func verify () = true | |
52 | + |
github/deemru/w8io/169f3d6 23.53 ms ◑