tx · 3vySaBVcRRzV47cxw38CvrKm53DYnhg8NtRgyZBV62UG

3PCoF5ZnsQJKAJJCoSqUcVVqJ2Dm4fvn9ar:  -0.01400000 Waves

2021.10.13 22:42 [2809898] smart account 3PCoF5ZnsQJKAJJCoSqUcVVqJ2Dm4fvn9ar > SELF 0.00000000 Waves

{ "type": 13, "id": "3vySaBVcRRzV47cxw38CvrKm53DYnhg8NtRgyZBV62UG", "fee": 1400000, "feeAssetId": null, "timestamp": 1634154150158, "version": 2, "chainId": 87, "sender": "3PCoF5ZnsQJKAJJCoSqUcVVqJ2Dm4fvn9ar", "senderPublicKey": "2RFPMtHxVSEG1LnET2FGshyhRepA7zJmx6tPwdHeNpJi", "proofs": [ "31kooHb6cgJBNNkJrKnj2S6tGuANuvCAxSwFGodVMduPSUK5fXNno6R39GzUWcYf4EUT5joVeM42qvchQNJdh8my" ], "script": "base64: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AAAAAQUAAAAOaXNzdWVNYW50bGVORlQEAAAADGtNYW50bGVMZXZlbAkBAAAAEGtleUFydGVmYWN0TGV2ZWwAAAADBQAAAApNQU5UTEVOQU1FCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgUAAAALbWFudGxlTmZ0SWQEAAAADWtNYW50bGVFeGlzdHMJAQAAABFrZXlBcnRlZmFjdEV4aXN0cwAAAAIFAAAACk1BTlRMRU5BTUUFAAAAC21hbnRsZU5mdElkBAAAAAxrTWFudGxlT3duZXIJAQAAABBrZXlBcnRlZmFjdE93bmVyAAAAAgUAAAAKTUFOVExFTkFNRQUAAAALbWFudGxlTmZ0SWQEAAAADWtNYW50bGVTdGF0dXMJAQAAABFrZXlBcnRlZmFjdFN0YXR1cwAAAAIFAAAACk1BTlRMRU5BTUUFAAAAC21hbnRsZU5mdElkBAAAAA1rQXJ0ZWZhY3RUeXBlCQEAAAAPa2V5QXJ0ZWZhY3RUeXBlAAAAAQUAAAALbWFudGxlTmZ0SWQEAAAAD2tNYW50bGVJbnZlc3RlZAkBAAAAE2tleUFydGVmYWN0SW52ZXN0ZWQAAAACBQAAAApNQU5UTEVOQU1FCQACWAAAAAEFAAAAC21hbnRsZU5mdElkBAAAABdrQXJ0ZWZhY3RPd25lckFuZFN0YXR1cwkBAAAAGWtleUFydGVmYWN0T3duZXJBbmRTdGF0dXMAAAADBQAAAApNQU5UTEVOQU1FCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgUAAAALbWFudGxlTmZ0SWQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAADGtNYW50bGVMZXZlbAAAAAAAAAAAAQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAPa01hbnRsZUludmVzdGVkBQAAAAtNQU5UTEVQUklDRQkABEwAAAACCQEAAAAMQm9vbGVhbkVudHJ5AAAAAgUAAAANa01hbnRsZUV4aXN0cwYJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgUAAAAMa01hbnRsZU93bmVyCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACBQAAAA1rTWFudGxlU3RhdHVzBQAAAApTVEFUVVNGUkVFCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIFAAAADWtBcnRlZmFjdFR5cGUFAAAACk1BTlRMRU5BTUUJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgUAAAAXa0FydGVmYWN0T3duZXJBbmRTdGF0dXMFAAAAClNUQVRVU0ZSRUUFAAAAA25pbAAAAAFpAQAAAA11cGdyYWRlTWFudGxlAAAAAQAAAAphcnRlZmFjdElkBAAAABF1cGdyYWRlUG9pbnRQcmljZQAAAAAAAA9CQAQAAAAMZmlyc3RQYXltZW50CQEAAAAFdmFsdWUAAAABCQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAAAwkBAAAAAiE9AAAAAggFAAAADGZpcnN0UGF5bWVudAAAAAdhc3NldElkBQAAAAplZ2dBc3NldElkCQAAAgAAAAEJAAEsAAAAAgIAAAA8WW91IGNhbiBhdHRhY2ggb25seSBFR0cgdG9rZW5zIHdpdGggdGhlIGZvbGxvd2luZyBhc3NldCBpZDogCQACWAAAAAEFAAAACmVnZ0Fzc2V0SWQDCQAAZgAAAAIFAAAAEXVwZ3JhZGVQb2ludFByaWNlCAUAAAAMZmlyc3RQYXltZW50AAAABmFtb3VudAkAAAIAAAABCQABLAAAAAICAAAAKU1pbmltYWwgcGF5bWVudCBmb3IgdXBncmFkaW5nIG1hbnRsZSBpczogCQABpAAAAAEFAAAAEXVwZ3JhZGVQb2ludFByaWNlBAAAAA1rTWFudGxlRXhpc3RzCQEAAAARa2V5QXJ0ZWZhY3RFeGlzdHMAAAACBQAAAApNQU5UTEVOQU1FCQACWQAAAAEFAAAACmFydGVmYWN0SWQEAAAADGtNYW50bGVPd25lcgkBAAAAEGtleUFydGVmYWN0T3duZXIAAAACBQAAAApNQU5UTEVOQU1FCQACWQAAAAEFAAAACmFydGVmYWN0SWQEAAAADG1hbnRsZUV4aXN0cwkBAAAAEUBleHRyTmF0aXZlKDEwNTYpAAAAAQUAAAANa01hbnRsZUV4aXN0cwQAAAALbWFudGxlT3duZXIJAQAAABFAZXh0ck5hdGl2ZSgxMDU4KQAAAAEFAAAADGtNYW50bGVPd25lcgMJAQAAAAEhAAAAAQUAAAAMbWFudGxlRXhpc3RzCQAAAgAAAAECAAAAJU1hbnRsZSB3aXRoIHN1Y2ggYW4gSUQgZG9lcyBub3QgZXhpc3QDCQEAAAACIT0AAAACBQAAAAttYW50bGVPd25lcgkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIJAAACAAAAAQIAAAAhWW91J3JlIG5vdCBhbiBvd25lciBvZiB0aGUgbWFudGxlBAAAAA9rTWFudGxlSW52ZXN0ZWQJAQAAABNrZXlBcnRlZmFjdEludmVzdGVkAAAAAgUAAAAKTUFOVExFTkFNRQUAAAAKYXJ0ZWZhY3RJZAQAAAAVbWFudGxlQWxyZWFkeUludmVzdGVkCQEAAAARQGV4dHJOYXRpdmUoMTA1NSkAAAABBQAAAA9rTWFudGxlSW52ZXN0ZWQEAAAADGtNYW50bGVMZXZlbAkBAAAAEGtleUFydGVmYWN0TGV2ZWwAAAADBQAAAApNQU5UTEVOQU1FCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgkAAlkAAAABBQAAAAphcnRlZmFjdElkBAAAAA10b3RhbEludmVzdGVkCQAAZAAAAAIFAAAAFW1hbnRsZUFscmVhZHlJbnZlc3RlZAgFAAAADGZpcnN0UGF5bWVudAAAAAZhbW91bnQEAAAACG5ld0xldmVsCQAAaQAAAAIJAABkAAAAAgkAAGgAAAACAAAAAAAAAAAKCQAAbAAAAAYFAAAADXRvdGFsSW52ZXN0ZWQAAAAAAAAAAAgAAAAAAAAAAAYAAAAAAAAAAAEAAAAAAAAAAAgFAAAABkhBTEZVUAAAAAAABfXhAAAAAAAABfXhAAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAMa01hbnRsZUxldmVsBQAAAAhuZXdMZXZlbAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAPa01hbnRsZUludmVzdGVkBQAAAA10b3RhbEludmVzdGVkBQAAAANuaWwAAAABaQEAAAANcHV0T25BcnRlZmFjdAAAAAEAAAAKYXJ0ZWZhY3RJZAQAAAAMZmlyc3RQYXltZW50CQEAAAAFdmFsdWUAAAABCQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAABAAAABFhdHRhY2hlZEFzc2V0SW5mbwkBAAAABXZhbHVlAAAAAQkAA+wAAAABCQEAAAAFdmFsdWUAAAABCAUAAAAMZmlyc3RQYXltZW50AAAAB2Fzc2V0SWQDAwkBAAAAAiE9AAAAAggIBQAAABFhdHRhY2hlZEFzc2V0SW5mbwAAAAZpc3N1ZXIAAAAFYnl0ZXMFAAAAEWluY3ViYXRvckNvbnRyYWN0CQEAAAACIT0AAAACCAgFAAAAEWF0dGFjaGVkQXNzZXRJbmZvAAAABmlzc3VlcgAAAAVieXRlcwUAAAAPYnJlZWRlckNvbnRyYWN0BwkAAAIAAAABAgAAADlZb3UgY2FuIGF0dGFjaCBvbmx5IERVQ0tzIGlzc3VlZCBieSBpbmN1YmF0b3Igb3IgYnJlZWRlciAEAAAADWtNYW50bGVFeGlzdHMJAQAAABFrZXlBcnRlZmFjdEV4aXN0cwAAAAIFAAAACk1BTlRMRU5BTUUJAAJZAAAAAQUAAAAKYXJ0ZWZhY3RJZAQAAAAMa01hbnRsZU93bmVyCQEAAAAQa2V5QXJ0ZWZhY3RPd25lcgAAAAIFAAAACk1BTlRMRU5BTUUJAAJZAAAAAQUAAAAKYXJ0ZWZhY3RJZAQAAAANa01hbnRsZVN0YXR1cwkBAAAAEWtleUFydGVmYWN0U3RhdHVzAAAAAgUAAAAKTUFOVExFTkFNRQkAAlkAAAABBQAAAAphcnRlZmFjdElkBAAAABdrQXJ0ZWZhY3RPd25lckFuZFN0YXR1cwkBAAAAGWtleUFydGVmYWN0T3duZXJBbmRTdGF0dXMAAAADBQAAAApNQU5UTEVOQU1FCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgkAAlkAAAABBQAAAAphcnRlZmFjdElkBAAAAAlrRHVja0xvY2sJAQAAAAtrZXlEdWNrTG9jawAAAAIJAAQlAAAAAQgFAAAAAWkAAAAMb3JpZ2luQ2FsbGVyCQACWAAAAAEJAQAAAAV2YWx1ZQAAAAEIBQAAAAxmaXJzdFBheW1lbnQAAAAHYXNzZXRJZAQAAAAMbWFudGxlRXhpc3RzCQEAAAARQGV4dHJOYXRpdmUoMTA1NikAAAABBQAAAA1rTWFudGxlRXhpc3RzBAAAAAttYW50bGVPd25lcgkBAAAAEUBleHRyTmF0aXZlKDEwNTgpAAAAAQUAAAAMa01hbnRsZU93bmVyBAAAAAxtYW50bGVTdGF0dXMJAQAAABFAZXh0ck5hdGl2ZSgxMDU4KQAAAAEFAAAADWtNYW50bGVTdGF0dXMEAAAAEWtBcnRlZmFjdElkQnlUeXBlCQEAAAAaa2V5QXJ0ZWZhY3RJZEJ5RHVja0FuZFR5cGUAAAACBQAAAApNQU5UTEVOQU1FCQEAAAAFdmFsdWUAAAABCAUAAAAMZmlyc3RQYXltZW50AAAAB2Fzc2V0SWQDCQEAAAABIQAAAAEFAAAADG1hbnRsZUV4aXN0cwkAAAIAAAABAgAAACVNYW50bGUgd2l0aCBzdWNoIGFuIElEIGRvZXMgbm90IGV4aXN0AwkBAAAAAiE9AAAAAgUAAAALbWFudGxlT3duZXIJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyCQAAAgAAAAECAAAAIVlvdSdyZSBub3QgYW4gb3duZXIgb2YgdGhlIG1hbnRsZQMJAQAAAAIhPQAAAAIFAAAADG1hbnRsZVN0YXR1cwUAAAAKU1RBVFVTRlJFRQkAAAIAAAABAgAAABdNYW50bGUgaXMgYWxyZWFkeSB1c2VkIQQAAAAOa1B1dE9uQXJ0ZWZhY3QJAQAAABBrZXlQdXRPbkFydGVmYWN0AAAABAUAAAAKTUFOVExFTkFNRQkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIJAAJYAAAAAQkBAAAABXZhbHVlAAAAAQgFAAAADGZpcnN0UGF5bWVudAAAAAdhc3NldElkCQACWQAAAAEFAAAACmFydGVmYWN0SWQJAARMAAAAAgkBAAAADEJvb2xlYW5FbnRyeQAAAAIFAAAADmtQdXRPbkFydGVmYWN0BgkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACBQAAAA1rTWFudGxlU3RhdHVzBQAAAA5TVEFUVVNPQ0NVUElFRAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACBQAAABdrQXJ0ZWZhY3RPd25lckFuZFN0YXR1cwUAAAAOU1RBVFVTT0NDVVBJRUQJAARMAAAAAgkBAAAADEJvb2xlYW5FbnRyeQAAAAIFAAAACWtEdWNrTG9jawYJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgUAAAARa0FydGVmYWN0SWRCeVR5cGUFAAAACmFydGVmYWN0SWQFAAAAA25pbAAAAAFpAQAAAA90YWtlT2ZmQXJ0ZWZhY3QAAAACAAAABmR1Y2tJZAAAAAxhcnRlZmFjdFR5cGUEAAAAGGtBcnRlZmFjdElkQnlUeXBlQW5kRHVjawkBAAAAGmtleUFydGVmYWN0SWRCeUR1Y2tBbmRUeXBlAAAAAgUAAAAMYXJ0ZWZhY3RUeXBlCQACWQAAAAEFAAAABmR1Y2tJZAQAAAAKYXJ0ZWZhY3RJZAkBAAAAEUBleHRyTmF0aXZlKDEwNTgpAAAAAQUAAAAYa0FydGVmYWN0SWRCeVR5cGVBbmREdWNrBAAAAA1rQXJ0ZWZhY3RUeXBlCQEAAAAPa2V5QXJ0ZWZhY3RUeXBlAAAAAQkAAlkAAAABBQAAAAphcnRlZmFjdElkBAAAAA5rUHV0T25BcnRlZmFjdAkBAAAAEGtleVB1dE9uQXJ0ZWZhY3QAAAAEBQAAAAxhcnRlZmFjdFR5cGUJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyBQAAAAZkdWNrSWQJAAJZAAAAAQUAAAAKYXJ0ZWZhY3RJZAQAAAAUa1B1dE9uQXJ0ZWZhY3RTdGF0dXMJAQAAABFAZXh0ck5hdGl2ZSgxMDU2KQAAAAEFAAAADmtQdXRPbkFydGVmYWN0BAAAABdrQXJ0ZWZhY3RPd25lckFuZFN0YXR1cwkBAAAAGWtleUFydGVmYWN0T3duZXJBbmRTdGF0dXMAAAADBQAAAAxhcnRlZmFjdFR5cGUJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyCQACWQAAAAEFAAAACmFydGVmYWN0SWQEAAAACWtEdWNrTG9jawkBAAAAC2tleUR1Y2tMb2NrAAAAAgkABCUAAAABCAUAAAABaQAAAAxvcmlnaW5DYWxsZXIFAAAABmR1Y2tJZAQAAAANa01hbnRsZVN0YXR1cwkBAAAAEWtleUFydGVmYWN0U3RhdHVzAAAAAgUAAAAMYXJ0ZWZhY3RUeXBlCQACWQAAAAEFAAAACmFydGVmYWN0SWQDCQEAAAACIT0AAAACBQAAABRrUHV0T25BcnRlZmFjdFN0YXR1cwYJAAACAAAAAQIAAAAmVGhlcmUgaXMgbm8gZHVjayB3aXRoIHN1Y2ggcGFyYW1ldGVyZXMJ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", "height": 2809898, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: BvSxudcSCUbaB4z2A7XKuzqtFGms9e8LEDkwr7vf1R7d Next: FAYKXJJ9XqLfxR3wWp2M5tSew88XiM3y3diUw69RKrmq Diff:
OldNewDifferences
128128 then throw("Mantle is already used!")
129129 else {
130130 let kPutOnArtefact = keyPutOnArtefact(MANTLENAME, toString(i.caller), toBase58String(value(firstPayment.assetId)), fromBase58String(artefactId))
131-[BooleanEntry(kPutOnArtefact, true), StringEntry(kMantleStatus, STATUSOCCUPIED), StringEntry(kArtefactOwnerAndStatus, STATUSOCCUPIED), StringEntry(kArtefactIdByType, artefactId)]
131+[BooleanEntry(kPutOnArtefact, true), StringEntry(kMantleStatus, STATUSOCCUPIED), StringEntry(kArtefactOwnerAndStatus, STATUSOCCUPIED), BooleanEntry(kDuckLock, true), StringEntry(kArtefactIdByType, artefactId)]
132132 }
133133 }
134134 }
143143 let kPutOnArtefact = keyPutOnArtefact(artefactType, toString(i.caller), duckId, fromBase58String(artefactId))
144144 let kPutOnArtefactStatus = getBooleanValue(kPutOnArtefact)
145145 let kArtefactOwnerAndStatus = keyArtefactOwnerAndStatus(artefactType, toString(i.caller), fromBase58String(artefactId))
146+ let kDuckLock = keyDuckLock(toString(i.originCaller), duckId)
146147 let kMantleStatus = keyArtefactStatus(artefactType, fromBase58String(artefactId))
147148 if ((kPutOnArtefactStatus != true))
148149 then throw("There is no duck with such parameteres")
149- else [DeleteEntry(kPutOnArtefact), DeleteEntry(kArtefactIdByTypeAndDuck), StringEntry(kMantleStatus, STATUSFREE), StringEntry(kArtefactOwnerAndStatus, STATUSFREE)]
150+ else [DeleteEntry(kPutOnArtefact), DeleteEntry(kArtefactIdByTypeAndDuck), DeleteEntry(kDuckLock), StringEntry(kMantleStatus, STATUSFREE), StringEntry(kArtefactOwnerAndStatus, STATUSFREE)]
150151 }
151152
152153
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let breederContract = base58'3P9REuLBnYBafDqtEu6hfzs2Rv2haSU158y'
55
66 let incubatorContract = base58'3P6TwNU39Ykkbeqhn5TE4a2736xsA1vXemM'
77
88 let eggAssetId = base58'3v7zGkeHS6KrsvmTRzEzvCxm5cdzkCtM7z5cM6efcjCB'
99
1010 let MANTLENAME = "mantle"
1111
1212 let STATUSFREE = "FREE"
1313
1414 let STATUSOCCUPIED = "OCCUPIED"
1515
1616 func keyDuckLock (callerAddress,duckId) = (((("address_" + callerAddress) + "_duck_") + duckId) + "_status")
1717
1818
1919 func keyInvestor (callerAddress) = (("address_" + callerAddress) + "_amount")
2020
2121
2222 func keyArtefactInvested (type,artefactId) = (((("artefact_" + type) + "_artefactId_") + artefactId) + "_invested")
2323
2424
2525 func keyArtefactIdByDuckAndType (type,duckId) = (((("artefact_ " + type) + "_duck_") + toBase58String(duckId)) + "_artefactId")
2626
2727
2828 func keyArtefactOwner (type,artefactId) = (((("artefact_ " + type) + "_artefactId_") + toBase58String(artefactId)) + "_owner")
2929
3030
3131 func keyArtefactOwnerAndStatus (type,owner,artefactId) = (((((("address_" + owner) + "_artefact_") + type) + "_artefactId_") + toBase58String(artefactId)) + "_status")
3232
3333
3434 func keyArtefactStatus (type,artefactId) = (((("artefact_ " + type) + "_artefactId_") + toBase58String(artefactId)) + "_status")
3535
3636
3737 func keyArtefactType (artefactId) = (("artefactId_" + toBase58String(artefactId)) + "_type")
3838
3939
4040 func keyArtefactLevel (type,owner,artefactId) = (((((("address_" + owner) + "_artefact_") + type) + "_artefactId_") + toBase58String(artefactId)) + "_level")
4141
4242
4343 func keyPutOnArtefact (type,owner,duckId,artefactId) = (((((((("address_" + owner) + "_duck_") + duckId) + "_artefact_") + type) + "_artefactId_") + toBase58String(artefactId)) + "_status")
4444
4545
4646 func keyArtefactExists (type,artefactId) = ((("artefact_" + type) + "_artefactId_") + toBase58String(artefactId))
4747
4848
4949 @Callable(i)
5050 func buyArtefact (type) = if ((type != MANTLENAME))
5151 then throw("You can buy only mantles now")
5252 else {
5353 let MANTLEPRICE = 1000000
5454 let firstPayment = value(i.payments[0])
5555 if ((firstPayment.assetId != eggAssetId))
5656 then throw(("You can attach only EGG tokens with the following asset id: " + toBase58String(eggAssetId)))
5757 else if ((firstPayment.amount != MANTLEPRICE))
5858 then throw(("To buy a mantle you currently need the following amount of EGGlets: " + toString(MANTLEPRICE)))
5959 else {
6060 let issueMantleNFT = Issue("DUCK-MANTLE-0", "[Artefact] Mantle NFT for Jeduck", 1, 0, false)
6161 let mantleNftId = calculateAssetId(issueMantleNFT)
6262 let kMantleLevel = keyArtefactLevel(MANTLENAME, toString(i.caller), mantleNftId)
6363 let kMantleExists = keyArtefactExists(MANTLENAME, mantleNftId)
6464 let kMantleOwner = keyArtefactOwner(MANTLENAME, mantleNftId)
6565 let kMantleStatus = keyArtefactStatus(MANTLENAME, mantleNftId)
6666 let kArtefactType = keyArtefactType(mantleNftId)
6767 let kMantleInvested = keyArtefactInvested(MANTLENAME, toBase58String(mantleNftId))
6868 let kArtefactOwnerAndStatus = keyArtefactOwnerAndStatus(MANTLENAME, toString(i.caller), mantleNftId)
6969 [IntegerEntry(kMantleLevel, 1), IntegerEntry(kMantleInvested, MANTLEPRICE), BooleanEntry(kMantleExists, true), StringEntry(kMantleOwner, toString(i.caller)), StringEntry(kMantleStatus, STATUSFREE), StringEntry(kArtefactType, MANTLENAME), StringEntry(kArtefactOwnerAndStatus, STATUSFREE)]
7070 }
7171 }
7272
7373
7474
7575 @Callable(i)
7676 func upgradeMantle (artefactId) = {
7777 let upgradePointPrice = 1000000
7878 let firstPayment = value(i.payments[0])
7979 if ((firstPayment.assetId != eggAssetId))
8080 then throw(("You can attach only EGG tokens with the following asset id: " + toBase58String(eggAssetId)))
8181 else if ((upgradePointPrice > firstPayment.amount))
8282 then throw(("Minimal payment for upgrading mantle is: " + toString(upgradePointPrice)))
8383 else {
8484 let kMantleExists = keyArtefactExists(MANTLENAME, fromBase58String(artefactId))
8585 let kMantleOwner = keyArtefactOwner(MANTLENAME, fromBase58String(artefactId))
8686 let mantleExists = getBooleanValue(kMantleExists)
8787 let mantleOwner = getStringValue(kMantleOwner)
8888 if (!(mantleExists))
8989 then throw("Mantle with such an ID does not exist")
9090 else if ((mantleOwner != toString(i.caller)))
9191 then throw("You're not an owner of the mantle")
9292 else {
9393 let kMantleInvested = keyArtefactInvested(MANTLENAME, artefactId)
9494 let mantleAlreadyInvested = getIntegerValue(kMantleInvested)
9595 let kMantleLevel = keyArtefactLevel(MANTLENAME, toString(i.caller), fromBase58String(artefactId))
9696 let totalInvested = (mantleAlreadyInvested + firstPayment.amount)
9797 let newLevel = (((10 * pow(totalInvested, 8, 6, 1, 8, HALFUP)) + 100000000) / 100000000)
9898 [IntegerEntry(kMantleLevel, newLevel), IntegerEntry(kMantleInvested, totalInvested)]
9999 }
100100 }
101101 }
102102
103103
104104
105105 @Callable(i)
106106 func putOnArtefact (artefactId) = {
107107 let firstPayment = value(i.payments[0])
108108 let attachedAssetInfo = value(assetInfo(value(firstPayment.assetId)))
109109 if (if ((attachedAssetInfo.issuer.bytes != incubatorContract))
110110 then (attachedAssetInfo.issuer.bytes != breederContract)
111111 else false)
112112 then throw("You can attach only DUCKs issued by incubator or breeder ")
113113 else {
114114 let kMantleExists = keyArtefactExists(MANTLENAME, fromBase58String(artefactId))
115115 let kMantleOwner = keyArtefactOwner(MANTLENAME, fromBase58String(artefactId))
116116 let kMantleStatus = keyArtefactStatus(MANTLENAME, fromBase58String(artefactId))
117117 let kArtefactOwnerAndStatus = keyArtefactOwnerAndStatus(MANTLENAME, toString(i.caller), fromBase58String(artefactId))
118118 let kDuckLock = keyDuckLock(toString(i.originCaller), toBase58String(value(firstPayment.assetId)))
119119 let mantleExists = getBooleanValue(kMantleExists)
120120 let mantleOwner = getStringValue(kMantleOwner)
121121 let mantleStatus = getStringValue(kMantleStatus)
122122 let kArtefactIdByType = keyArtefactIdByDuckAndType(MANTLENAME, value(firstPayment.assetId))
123123 if (!(mantleExists))
124124 then throw("Mantle with such an ID does not exist")
125125 else if ((mantleOwner != toString(i.caller)))
126126 then throw("You're not an owner of the mantle")
127127 else if ((mantleStatus != STATUSFREE))
128128 then throw("Mantle is already used!")
129129 else {
130130 let kPutOnArtefact = keyPutOnArtefact(MANTLENAME, toString(i.caller), toBase58String(value(firstPayment.assetId)), fromBase58String(artefactId))
131-[BooleanEntry(kPutOnArtefact, true), StringEntry(kMantleStatus, STATUSOCCUPIED), StringEntry(kArtefactOwnerAndStatus, STATUSOCCUPIED), StringEntry(kArtefactIdByType, artefactId)]
131+[BooleanEntry(kPutOnArtefact, true), StringEntry(kMantleStatus, STATUSOCCUPIED), StringEntry(kArtefactOwnerAndStatus, STATUSOCCUPIED), BooleanEntry(kDuckLock, true), StringEntry(kArtefactIdByType, artefactId)]
132132 }
133133 }
134134 }
135135
136136
137137
138138 @Callable(i)
139139 func takeOffArtefact (duckId,artefactType) = {
140140 let kArtefactIdByTypeAndDuck = keyArtefactIdByDuckAndType(artefactType, fromBase58String(duckId))
141141 let artefactId = getStringValue(kArtefactIdByTypeAndDuck)
142142 let kArtefactType = keyArtefactType(fromBase58String(artefactId))
143143 let kPutOnArtefact = keyPutOnArtefact(artefactType, toString(i.caller), duckId, fromBase58String(artefactId))
144144 let kPutOnArtefactStatus = getBooleanValue(kPutOnArtefact)
145145 let kArtefactOwnerAndStatus = keyArtefactOwnerAndStatus(artefactType, toString(i.caller), fromBase58String(artefactId))
146+ let kDuckLock = keyDuckLock(toString(i.originCaller), duckId)
146147 let kMantleStatus = keyArtefactStatus(artefactType, fromBase58String(artefactId))
147148 if ((kPutOnArtefactStatus != true))
148149 then throw("There is no duck with such parameteres")
149- else [DeleteEntry(kPutOnArtefact), DeleteEntry(kArtefactIdByTypeAndDuck), StringEntry(kMantleStatus, STATUSFREE), StringEntry(kArtefactOwnerAndStatus, STATUSFREE)]
150+ else [DeleteEntry(kPutOnArtefact), DeleteEntry(kArtefactIdByTypeAndDuck), DeleteEntry(kDuckLock), StringEntry(kMantleStatus, STATUSFREE), StringEntry(kArtefactOwnerAndStatus, STATUSFREE)]
150151 }
151152
152153
153154
154155 @Callable(i)
155156 func unlockNftForWars (keys) = if ((i.callerPublicKey != base58'ArbTEDzZLUKHkNzZSqEHfu5cpjvXnPtEPqBVwUTiCRSa'))
156157 then throw("Cannot call this method")
157158 else {
158159 let keysList = split(keys, ";")
159160 if ((size(keysList) > 10))
160161 then throw("You cannot unlock more than 10 ducks in one transaction")
161162 else {
162163 func handleUnlockOneDuck (accum,key) = {
163164 let kDuckLock = split(key, "_")
164165 (accum ++ [DeleteEntry(key), ScriptTransfer(addressFromStringValue(value(kDuckLock[1])), 1, fromBase58String(value(kDuckLock[3])))])
165166 }
166167
167168 let $l = keysList
168169 let $s = size($l)
169170 let $acc0 = nil
170171 func 1 ($a,$i) = if (($i >= $s))
171172 then $a
172173 else handleUnlockOneDuck($a, $l[$i])
173174
174175 func 2 ($a,$i) = if (($i >= $s))
175176 then $a
176177 else throw("List size exceeds 10")
177178
178179 2(1(1(1(1(1(1(1(1(1(1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
179180 }
180181 }
181182
182183
183184 @Verifier(tx)
184185 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
185186

github/deemru/w8io/3ef1775 
52.49 ms