tx · 5rQbDpMuwqQLRnGMRUcbecepLpaBQw5aq4W2axGrbceA

3MxfEq17wZjAWQfckWycU9o4oTkvf9nfNQX:  -0.01000000 Waves

2021.12.12 16:43 [1831116] smart account 3MxfEq17wZjAWQfckWycU9o4oTkvf9nfNQX > SELF 0.00000000 Waves

{ "type": 13, "id": "5rQbDpMuwqQLRnGMRUcbecepLpaBQw5aq4W2axGrbceA", "fee": 1000000, "feeAssetId": null, "timestamp": 1639316642194, "version": 2, "chainId": 84, "sender": "3MxfEq17wZjAWQfckWycU9o4oTkvf9nfNQX", "senderPublicKey": "HUca7AqRs4Zs9sU1AFcufmBC4XpT4sN79aFScNRT4LxQ", "proofs": [ "653Fg66rzxvfycxS1nqXYnvBGDFT7k8WM5wr8gArAwcjscGycAujysBum1BmKbyhPVT1oG5s65rDkMUDheVKFcmE" ], "script": "base64:AAIFAAAAAAAAAAsIAhIAEgMKAQgSAAAAAAQAAAAABXRva2VuAQAAACA7Jny2nzFIkOmS/dy/eTheDQdpxX81oDDtGoXKk37pSwAAAAAGdG9rZW5kAAAAAAAF9eEAAAAAAAdhaXJkcm9wCQEAAAAHQWRkcmVzcwAAAAEBAAAAGgFUX+pzJtA2DV6Pr0xhS8z4foIVUAfq2c0IAAAAAAp0ZWFtQWRyZXNzCQEAAAAHQWRkcmVzcwAAAAEBAAAAGgFUACYJT8ivNONGpFPWk1FdqVPAxApBcmLaAAAAAwAAAAFpAQAAAAVyZXNldAAAAAAJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAAAVidXJudAAAAAAAAAAAAAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAHZHJvcHBlZAAAAAAAAAAAAAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAFc29sZDEAAAAAAAAAAAAJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAABXNvbGQyAAAAAAAAAAAACQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAAAh0ZWFtZ2lmdAAAAAAAAAAAAAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAGaXNzdWVkAAAAAAA7msoACQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAICAAAADGJ1cm5pbmdzdGFnZQIAAAAHd2FpdGluZwkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQABLAAAAAIJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwIAAAAGX2Vycm9yBQAAAANuaWwAAAABaQEAAAAEZnJlZQAAAAEAAAAEaWQ1OAQAAAAKZHJvcGFtb3VudAkAAGgAAAACAAAAAAAAAAPoBQAAAAZ0b2tlbmQEAAAACHRlYW1naWZ0CQAAaAAAAAIAAAAAAAAAAAoFAAAABnRva2VuZAQAAAAEdHJpZAkAAlkAAAABBQAAAARpZDU4BAAAAAxjYWxsZXJBZHJlc3MJAQAAAAdBZGRyZXNzAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwQAAAAIZGVhZGxpbmUAAAABfa6DmgAEAAAADGJ1cm5kZWFkbGluZQAAAAF9rrqIgAQAAAALY3VycmVudHRpbWUEAAAAByRtYXRjaDAJAAPtAAAAAQUAAAAGaGVpZ2h0AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAlCbG9ja0luZm8EAAAABWJsb2NrBQAAAAckbWF0Y2gwCAUAAAAFYmxvY2sAAAAJdGltZXN0YW1wCQAAAgAAAAECAAAAEENhbid0IGZpbmQgYmxvY2sEAAAAB2JhbGFuY2UJAAPwAAAAAgUAAAAHYWlyZHJvcAUAAAAFdG9rZW4EAAAACmJ1cm5hbW91bnQDAwkAAGYAAAACBQAAAAtjdXJyZW50dGltZQUAAAAMYnVybmRlYWRsaW5lCQAAAAAAAAIJAQAAABFAZXh0ck5hdGl2ZSgxMDU4KQAAAAECAAAADGJ1cm5pbmdzdGFnZQIAAAAHd2FpdGluZwcJAABlAAAAAgkAAGUAAAACBQAAAAdiYWxhbmNlBQAAAApkcm9wYW1vdW50BQAAAAh0ZWFtZ2lmdAAAAAAAAAAAAAQAAAAIaXNlbm91Z2gDCQAAZgAAAAIFAAAAB2JhbGFuY2UFAAAACmRyb3BhbW91bnQGCQAAAgAAAAECAAAACm5vdCBlbm91Z2gDCQAAAAAAAAIFAAAACGlzZW5vdWdoBQAAAAhpc2Vub3VnaAQAAAAIdHJleGlzdHMEAAAAByRtYXRjaDAJAAPuAAAAAQUAAAAEdHJpZAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAATVHJhbnNmZXJUcmFuc2FjdGlvbgQAAAADdHR4BQAAAAckbWF0Y2gwBgcEAAAABnRydGltZQQAAAAHJG1hdGNoMAkAA+4AAAABBQAAAAR0cmlkAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAABNUcmFuc2ZlclRyYW5zYWN0aW9uBAAAAAN0dHgFAAAAByRtYXRjaDAIBQAAAAN0dHgAAAAJdGltZXN0YW1wAAAACRhOcp//BAAAAAh0cnNlbmRlcgQAAAAHJG1hdGNoMAkAA+4AAAABBQAAAAR0cmlkAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAABNUcmFuc2ZlclRyYW5zYWN0aW9uBAAAAAN0dHgFAAAAByRtYXRjaDAIBQAAAAN0dHgAAAAGc2VuZGVyBQAAAAdhaXJkcm9wBAAAAAhyZWNlaXZlZAMJAAAAAAAAAgkAAS8AAAACCQEAAAALdmFsdWVPckVsc2UAAAACCQAEIgAAAAEJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwIAAAAAAAAAAAAAAAAIAgAAAAhyZWNlaXZlZAYHBAAAAAlpc3Byb292ZWQDAwMJAABmAAAAAgUAAAAGdHJ0aW1lBQAAAAhkZWFkbGluZQYJAQAAAAIhPQAAAAIFAAAADGNhbGxlckFkcmVzcwUAAAAIdHJzZW5kZXIGBQAAAAhyZWNlaXZlZAcGBAAAAAZyZXN1bHQDBQAAAAh0cmV4aXN0cwMJAABmAAAAAgUAAAAGdHJ0aW1lBQAAAAhkZWFkbGluZQkAASwAAAACAgAAACJ0cmFuc2FjdGlvbiBpcyBvdXQgb2YgdGltZSByYW5nZTogCQABpAAAAAEFAAAABnRydGltZQkAASwAAAACAgAAAAADCQEAAAACIT0AAAACBQAAAAxjYWxsZXJBZHJlc3MFAAAACHRyc2VuZGVyCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAABhpdCBpcyBpbmNvcnJlY3Qgc2VuZGVyOiAJAAQlAAAAAQUAAAAMY2FsbGVyQWRyZXNzAgAAAAMgLyAJAAQlAAAAAQUAAAAIdHJzZW5kZXIJAAEsAAAAAgIAAAAAAwUAAAAIcmVjZWl2ZWQJAQAAABFAZXh0ck5hdGl2ZSgxMDU4KQAAAAEJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwkAASwAAAACAgAAAAADBQAAAAlpc3Byb292ZWQCAAAACHJlY2VpdmVkAgAAAAACAAAAFmNhbmB0IGZpbmQgdHJhbnNhY3Rpb24DBQAAAAlpc3Byb292ZWQDCQAAZgAAAAIFAAAACmJ1cm5hbW91bnQAAAAAAAAAAAAJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwUAAAAMY2FsbGVyQWRyZXNzBQAAAApkcm9wYW1vdW50BQAAAAV0b2tlbgkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADBQAAAAp0ZWFtQWRyZXNzBQAAAAh0ZWFtZ2lmdAUAAAAFdG9rZW4JAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzBQAAAAZyZXN1bHQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAB2Ryb3BwZWQJAABkAAAAAgkBAAAAEUBleHRyTmF0aXZlKDEwNTUpAAAAAQIAAAAHZHJvcHBlZAUAAAAKZHJvcGFtb3VudAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAIdGVhbWdpZnQJAABkAAAAAgkBAAAAEUBleHRyTmF0aXZlKDEwNTUpAAAAAQIAAAAIdGVhbWdpZnQFAAAACHRlYW1naWZ0CQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAAEsAAAAAgkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzAgAAAAZfZXJyb3IJAARMAAAAAgkBAAAABEJ1cm4AAAACBQAAAAV0b2tlbgUAAAAKYnVybmFtb3VudAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACAgAAAAxidXJuaW5nc3RhZ2UCAAAACnRvdGFsYnVybnQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAABWJ1cm50CQAAZAAAAAIJAQAAABFAZXh0ck5hdGl2ZSgxMDU1KQAAAAECAAAABWJ1cm50BQAAAApidXJuYW1vdW50BQAAAANuaWwJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwUAAAAMY2FsbGVyQWRyZXNzBQAAAApkcm9wYW1vdW50BQAAAAV0b2tlbgkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADBQAAAAp0ZWFtQWRyZXNzBQAAAAh0ZWFtZ2lmdAUAAAAFdG9rZW4JAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzBQAAAAZyZXN1bHQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAB2Ryb3BwZWQJAABkAAAAAgkBAAAAEUBleHRyTmF0aXZlKDEwNTUpAAAAAQIAAAAHZHJvcHBlZAUAAAAKZHJvcGFtb3VudAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAIdGVhbWdpZnQJAABkAAAAAgkBAAAAEUBleHRyTmF0aXZlKDEwNTUpAAAAAQIAAAAIdGVhbWdpZnQFAAAACHRlYW1naWZ0CQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAAEsAAAAAgkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzAgAAAAZfZXJyb3IFAAAAA25pbAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQABLAAAAAIJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwIAAAAGX2Vycm9yBQAAAAZyZXN1bHQFAAAAA25pbAkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4AAAABaQEAAAADYnV5AAAAAAQAAAALY3VycmVudHRpbWUEAAAAByRtYXRjaDAJAAPtAAAAAQUAAAAGaGVpZ2h0AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAlCbG9ja0luZm8EAAAABWJsb2NrBQAAAAckbWF0Y2gwCAUAAAAFYmxvY2sAAAAJdGltZXN0YW1wCQAAAgAAAAECAAAAEENhbid0IGZpbmQgYmxvY2sEAAAAB2JhbGFuY2UJAAPwAAAAAgUAAAAHYWlyZHJvcAUAAAAFdG9rZW4EAAAACnNlbGxhbW91bnQJAABoAAAAAgAAAAAAAAAD6AUAAAAGdG9rZW5kBAAAAAZwcmljZTEJAABoAAAAAgAAAAAAAAAAAQAAAAAABfXhAAQAAAAGcHJpY2UyCQAAaAAAAAIAAAAAAAAAAAIAAAAAAAX14QAEAAAADGNhbGxlckFkcmVzcwkBAAAAB0FkZHJlc3MAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzBAAAAAliYWxhbmNlb2sDCQAAZwAAAAIFAAAAB2JhbGFuY2UFAAAACnNlbGxhbW91bnQGBwQAAAAKY2FsbGVyRGF0YQkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABCIAAAABCQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMCAAAAAAQAAAAOY2FsbGVyUmVjZWl2ZWQDCQAAAAAAAAIJAAEvAAAAAgUAAAAKY2FsbGVyRGF0YQAAAAAAAAAACAIAAAAIcmVjZWl2ZWQGBwQAAAAOY2FsbGVyQnV5bGV2ZWwDAwUAAAAOY2FsbGVyUmVjZWl2ZWQJAAAAAAAAAgkAAZAAAAABCQAEtQAAAAIFAAAACmNhbGxlckRhdGECAAAAAXwAAAAAAAAAAAEHAAAAAAAAAAAAAwMFAAAADmNhbGxlclJlY2VpdmVkCQAAAAAAAAIJAAGQAAAAAQkABLUAAAACBQAAAApjYWxsZXJEYXRhAgAAAAF8AAAAAAAAAAACBwAAAAAAAAAAAQAAAAAAAAAAYwQAAAAMY2FsbGVyQ2FuQnV5AwMFAAAADmNhbGxlclJlY2VpdmVkAwkAAAAAAAACBQAAAA5jYWxsZXJCdXlsZXZlbAAAAAAAAAAAAAYJAAAAAAAAAgUAAAAOY2FsbGVyQnV5bGV2ZWwAAAAAAAAAAAEHBgcEAAAAC2NhbGxlclByaWNlAwkAAAAAAAACBQAAAA5jYWxsZXJCdXlsZXZlbAAAAAAAAAAAAAUAAAAGcHJpY2UxAwkAAAAAAAACBQAAAA5jYWxsZXJCdXlsZXZlbAAAAAAAAAAAAQUAAAAGcHJpY2UyAAAAAAAAAAAABAAAAAVwbXRvawMJAAAAAAAAAgkAAZAAAAABCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAQMDCQEAAAABIQAAAAEJAQAAAAlpc0RlZmluZWQAAAABCAkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAAAAAdhc3NldElkCQAAZwAAAAIICQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAAAAAABmFtb3VudAUAAAALY2FsbGVyUHJpY2UHBgcHBAAAAARtZXNzAwkBAAAAASEAAAABBQAAAAxjYWxsZXJDYW5CdXkCAAAAE25vdCBwcm9vdmVkIGZvciBidXkJAAEsAAAAAgIAAAAAAwkBAAAAASEAAAABBQAAAAVwbXRvawIAAAASbm90IGVub3VnaCBwYXltZW50CQABLAAAAAICAAAAAAMJAQAAAAEhAAAAAQUAAAAJYmFsYW5jZW9rAgAAAA9iYWxsYW5jZSBlbXB0eSACAAAAAAQAAAAIZGF0YXJlY3MJAAS1AAAAAgUAAAAKY2FsbGVyRGF0YQIAAAABfAQAAAAHbmV3ZGF0YQMJAAAAAAAAAgUAAAAOY2FsbGVyQnV5bGV2ZWwAAAAAAAAAAAAJAAEsAAAAAgkAAZEAAAACBQAAAAhkYXRhcmVjcwAAAAAAAAAAAAIAAAAIfGJvdWdodDEDCQAAAAAAAAIFAAAADmNhbGxlckJ1eWxldmVsAAAAAAAAAAABCQABLAAAAAIJAAGRAAAAAgUAAAAIZGF0YXJlY3MAAAAAAAAAAAACAAAAEHxib3VnaHQxfGJvdWdodDICAAAAAAQAAAAEZGVhbAMDAwUAAAAJYmFsYW5jZW9rBQAAAAxjYWxsZXJDYW5CdXkHBQAAAAVwbXRvawcGBwMFAAAABGRlYWwJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzBQAAAAduZXdkYXRhCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMFAAAACnRlYW1BZHJlc3MFAAAAC2NhbGxlclByaWNlBQAAAAR1bml0CQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMFAAAADGNhbGxlckFkcmVzcwUAAAAKc2VsbGFtb3VudAUAAAAFdG9rZW4JAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkAASwAAAACCQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMCAAAABl9lcnJvcgUAAAADbmlsCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAAEsAAAAAgkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzAgAAAAZfZXJyb3IFAAAABG1lc3MFAAAAA25pbAAAAAAAnwes", "height": 1831116, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: F26Zt2DiR1LfK693YDsaVQSgmohtVpWzXzZAAPFfdod6 Next: A8dQzQ8x91SPbQr8nqaYe3wy5z7onWnxxRL7KfRPtveU Diff:
OldNewDifferences
33 {-# CONTENT_TYPE DAPP #-}
44 let token = base58'4yu6Ms41FW8T9ABJ724ZUBKA1QrA8LQskK6csQiC8ynJ'
55
6-let tokend = 8
6+let tokend = 100000000
77
88 let airdrop = Address(base58'3MxfEq17wZjAWQfckWycU9o4oTkvf9nfNQX')
99
1515
1616
1717 @Callable(i)
18-func call (id58) = {
18+func free (id58) = {
1919 let dropamount = (1000 * tokend)
2020 let teamgift = (10 * tokend)
2121 let trid = fromBase58String(id58)
3232 let burnamount = if (if ((currenttime > burndeadline))
3333 then (getStringValue("burningstage") == "waiting")
3434 else false)
35- then balance
35+ then ((balance - dropamount) - teamgift)
3636 else 0
3737 let isenough = if ((balance > dropamount))
3838 then true
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let token = base58'4yu6Ms41FW8T9ABJ724ZUBKA1QrA8LQskK6csQiC8ynJ'
55
6-let tokend = 8
6+let tokend = 100000000
77
88 let airdrop = Address(base58'3MxfEq17wZjAWQfckWycU9o4oTkvf9nfNQX')
99
1010 let teamAdress = Address(base58'3MovsLjXpJr9HD2vBqmAf7Gze6jwuRxX1fX')
1111
1212 @Callable(i)
1313 func reset () = [DeleteEntry(toBase58String(i.caller.bytes)), IntegerEntry("burnt", 0), IntegerEntry("dropped", 0), IntegerEntry("sold1", 0), IntegerEntry("sold2", 0), IntegerEntry("teamgift", 0), IntegerEntry("issued", 1000000000), StringEntry("burningstage", "waiting"), DeleteEntry((toBase58String(i.caller.bytes) + "_error"))]
1414
1515
1616
1717 @Callable(i)
18-func call (id58) = {
18+func free (id58) = {
1919 let dropamount = (1000 * tokend)
2020 let teamgift = (10 * tokend)
2121 let trid = fromBase58String(id58)
2222 let callerAdress = Address(i.caller.bytes)
2323 let deadline = 1639310400000
2424 let burndeadline = 1639314000000
2525 let currenttime = match blockInfoByHeight(height) {
2626 case block: BlockInfo =>
2727 block.timestamp
2828 case _ =>
2929 throw("Can't find block")
3030 }
3131 let balance = assetBalance(airdrop, token)
3232 let burnamount = if (if ((currenttime > burndeadline))
3333 then (getStringValue("burningstage") == "waiting")
3434 else false)
35- then balance
35+ then ((balance - dropamount) - teamgift)
3636 else 0
3737 let isenough = if ((balance > dropamount))
3838 then true
3939 else throw("not enough")
4040 if ((isenough == isenough))
4141 then {
4242 let trexists = match transferTransactionById(trid) {
4343 case ttx: TransferTransaction =>
4444 true
4545 case _ =>
4646 false
4747 }
4848 let trtime = match transferTransactionById(trid) {
4949 case ttx: TransferTransaction =>
5050 ttx.timestamp
5151 case _ =>
5252 9999999999999
5353 }
5454 let trsender = match transferTransactionById(trid) {
5555 case ttx: TransferTransaction =>
5656 ttx.sender
5757 case _ =>
5858 airdrop
5959 }
6060 let received = if ((take(valueOrElse(getString(toBase58String(i.caller.bytes)), ""), 8) == "received"))
6161 then true
6262 else false
6363 let isprooved = if (if (if ((trtime > deadline))
6464 then true
6565 else (callerAdress != trsender))
6666 then true
6767 else received)
6868 then false
6969 else true
7070 let result = if (trexists)
7171 then if ((trtime > deadline))
7272 then ("transaction is out of time range: " + toString(trtime))
7373 else ("" + (if ((callerAdress != trsender))
7474 then ((("it is incorrect sender: " + toString(callerAdress)) + " / ") + toString(trsender))
7575 else ("" + (if (received)
7676 then getStringValue(toBase58String(i.caller.bytes))
7777 else ("" + (if (isprooved)
7878 then "received"
7979 else ""))))))
8080 else "can`t find transaction"
8181 if (isprooved)
8282 then if ((burnamount > 0))
8383 then [ScriptTransfer(callerAdress, dropamount, token), ScriptTransfer(teamAdress, teamgift, token), StringEntry(toBase58String(i.caller.bytes), result), IntegerEntry("dropped", (getIntegerValue("dropped") + dropamount)), IntegerEntry("teamgift", (getIntegerValue("teamgift") + teamgift)), DeleteEntry((toBase58String(i.caller.bytes) + "_error")), Burn(token, burnamount), StringEntry("burningstage", "totalburnt"), IntegerEntry("burnt", (getIntegerValue("burnt") + burnamount))]
8484 else [ScriptTransfer(callerAdress, dropamount, token), ScriptTransfer(teamAdress, teamgift, token), StringEntry(toBase58String(i.caller.bytes), result), IntegerEntry("dropped", (getIntegerValue("dropped") + dropamount)), IntegerEntry("teamgift", (getIntegerValue("teamgift") + teamgift)), DeleteEntry((toBase58String(i.caller.bytes) + "_error"))]
8585 else [StringEntry((toBase58String(i.caller.bytes) + "_error"), result)]
8686 }
8787 else throw("Strict value is not equal to itself.")
8888 }
8989
9090
9191
9292 @Callable(i)
9393 func buy () = {
9494 let currenttime = match blockInfoByHeight(height) {
9595 case block: BlockInfo =>
9696 block.timestamp
9797 case _ =>
9898 throw("Can't find block")
9999 }
100100 let balance = assetBalance(airdrop, token)
101101 let sellamount = (1000 * tokend)
102102 let price1 = (1 * 100000000)
103103 let price2 = (2 * 100000000)
104104 let callerAdress = Address(i.caller.bytes)
105105 let balanceok = if ((balance >= sellamount))
106106 then true
107107 else false
108108 let callerData = valueOrElse(getString(toBase58String(i.caller.bytes)), "")
109109 let callerReceived = if ((take(callerData, 8) == "received"))
110110 then true
111111 else false
112112 let callerBuylevel = if (if (callerReceived)
113113 then (size(split(callerData, "|")) == 1)
114114 else false)
115115 then 0
116116 else if (if (callerReceived)
117117 then (size(split(callerData, "|")) == 2)
118118 else false)
119119 then 1
120120 else 99
121121 let callerCanBuy = if (if (callerReceived)
122122 then if ((callerBuylevel == 0))
123123 then true
124124 else (callerBuylevel == 1)
125125 else false)
126126 then true
127127 else false
128128 let callerPrice = if ((callerBuylevel == 0))
129129 then price1
130130 else if ((callerBuylevel == 1))
131131 then price2
132132 else 0
133133 let pmtok = if ((size(i.payments) == 1))
134134 then if (if (!(isDefined(i.payments[0].assetId)))
135135 then (i.payments[0].amount >= callerPrice)
136136 else false)
137137 then true
138138 else false
139139 else false
140140 let mess = if (!(callerCanBuy))
141141 then "not prooved for buy"
142142 else ("" + (if (!(pmtok))
143143 then "not enough payment"
144144 else ("" + (if (!(balanceok))
145145 then "ballance empty "
146146 else ""))))
147147 let datarecs = split(callerData, "|")
148148 let newdata = if ((callerBuylevel == 0))
149149 then (datarecs[0] + "|bought1")
150150 else if ((callerBuylevel == 1))
151151 then (datarecs[0] + "|bought1|bought2")
152152 else ""
153153 let deal = if (if (if (balanceok)
154154 then callerCanBuy
155155 else false)
156156 then pmtok
157157 else false)
158158 then true
159159 else false
160160 if (deal)
161161 then [StringEntry(toBase58String(i.caller.bytes), newdata), ScriptTransfer(teamAdress, callerPrice, unit), ScriptTransfer(callerAdress, sellamount, token), DeleteEntry((toBase58String(i.caller.bytes) + "_error"))]
162162 else [StringEntry((toBase58String(i.caller.bytes) + "_error"), mess)]
163163 }
164164
165165

github/deemru/w8io/169f3d6 
89.20 ms