tx · BSfZANzveHUAkmp1QZjkk4PwsRxPgbHq3UEuEP4JzDw5

3PFkgvC9y6zHy64zEAscKKgaNY3yipiLqbW:  -0.01400000 Waves

2022.06.07 14:55 [3151499] smart account 3PFkgvC9y6zHy64zEAscKKgaNY3yipiLqbW > SELF 0.00000000 Waves

{ "type": 13, "id": "BSfZANzveHUAkmp1QZjkk4PwsRxPgbHq3UEuEP4JzDw5", "fee": 1400000, "feeAssetId": null, "timestamp": 1654602950236, "version": 2, "chainId": 87, "sender": "3PFkgvC9y6zHy64zEAscKKgaNY3yipiLqbW", "senderPublicKey": "7jCQKcWZnuCAfyCTbd9H8HUGnxsbF7eE29tYRJ78TEba", "proofs": [ "eHsuJh7x9Lo2TwhA3LoHesWrMoTpEjPxVzpY928rK2qCR2o3xEsapMpudmFtFVkHNjGscUAj2YnWYteY8sepuK4" ], "script": "base64:AAIFAAAAAAAAAAkIAhIAEgMKAQgAAAAOAAAAAA1wdXp6bGVBc3NldElkAQAAACDxGv4l/vaZOPRpKsTf4RLWR7LGyg66Nwmvd20fjqLlYwAAAAALdXNkbkFzc2V0SWQBAAAAILYmKcME9c5TkaQOS3UkL2SMUbH6369UKb1I0h0qsqrRAAAAABFwdXp6bGVQb29sQWRkcmVzcwEAAAAaAVeRxuop6nlnD9mE7zJ2lLPAdULkNYPB01gAAAAAEm5mdENyZWF0aW9uQWRkcmVzcwEAAAAaAVeT3cTSF+cgCv33IRJO8PB2ZyaDA3jUXEwAAAAAEmVhZ2xlSG9sZGVyQWRkcmVzcwEAAAAaAVfAiq1zlCEzvbAYVg8otbk+QXfOv2/y/tcAAAAACWFydGVmYWN0cwkABEwAAAACCQAETAAAAAICAAAAC1B1enpsZSBTdXJmCQAETAAAAAICAAAAWVB1enpsZSBTdXJmIGFydGVmYWN0IGNhbiBiZSB1c2VkIHRvIGxhdW5jaCBhIGN1c3RvbSBwb29sIG9uIFB1enpsZSBTd2FwIChQdXp6bGVTd2FwLm9yZykuCQAETAAAAAICAAAAQ2h0dHBzOi8vaXBmcy5pby9pcGZzL1FtVWF3UWhQVmhQaXRCU1J0Z2Q2Wkt1cnNlWUozUVdZVWhZbVYyM1BTMnFMNFkFAAAAA25pbAkABEwAAAACCQAETAAAAAICAAAADVB1enpsZSBEZXNlcnQJAARMAAAAAgIAAABbUHV6emxlIERlc2VydCBhcnRlZmFjdCBjYW4gYmUgdXNlZCB0byBsYXVuY2ggYSBjdXN0b20gcG9vbCBvbiBQdXp6bGUgU3dhcCAoUHV6emxlU3dhcC5vcmcpLgkABEwAAAACAgAAAENodHRwczovL2lwZnMuaW8vaXBmcy9RbWE3QmVoOXBQa1JoZ0s2V05NUUtMSGFoUURLZUtScDVteWp2Mm14MXp2MXptBQAAAANuaWwJAARMAAAAAgkABEwAAAACAgAAAA9QdXp6bGUgQWlycGxhbmUJAARMAAAAAgIAAABdUHV6emxlIEFpcnBsYW5lIGFydGVmYWN0IGNhbiBiZSB1c2VkIHRvIGxhdW5jaCBhIGN1c3RvbSBwb29sIG9uIFB1enpsZSBTd2FwIChQdXp6bGVTd2FwLm9yZykuCQAETAAAAAICAAAAQ2h0dHBzOi8vaXBmcy5pby9pcGZzL1FtTlR6emR2Qng2NThoaUNWdkhOR1M0RnNSazhaaEFnWXdlekg2UTlRRUt5N0sFAAAAA25pbAkABEwAAAACCQAETAAAAAICAAAADFB1enpsZSBXaGVlbAkABEwAAAACAgAAAFpQdXp6bGUgV2hlZWwgYXJ0ZWZhY3QgY2FuIGJlIHVzZWQgdG8gbGF1bmNoIGEgY3VzdG9tIHBvb2wgb24gUHV6emxlIFN3YXAgKFB1enpsZVN3YXAub3JnKS4JAARMAAAAAgIAAABDaHR0cHM6Ly9pcGZzLmlvL2lwZnMvUW1Udk41c0FDMmthNHF0TGpTZDJ2V1E0TnFZSkQ4UW84Y0ppQ2hkOFFqWU5DNQUAAAADbmlsCQAETAAAAAIJAARMAAAAAgIAAAAOUHV6emxlIEtoYWxpZmEJAARMAAAAAgIAAABcUHV6emxlIEtoYWxpZmEgYXJ0ZWZhY3QgY2FuIGJlIHVzZWQgdG8gbGF1bmNoIGEgY3VzdG9tIHBvb2wgb24gUHV6emxlIFN3YXAgKFB1enpsZVN3YXAub3JnKS4JAARMAAAAAgIAAABDaHR0cHM6Ly9pcGZzLmlvL2lwZnMvUW1ja0RNc2NudVlwOHNocjNOeHFiZURKODJWNmMxVXZXUDFlY1BBZk1rU3YyRAUAAAADbmlsBQAAAANuaWwAAAAAEnRvdGFsQ291bnRfRGF0YUtleQIAAAAOdG90YWxfc29sZF9uZnQBAAAAD2dldFJhbmRvbU51bWJlcgAAAAQAAAAIdmFyaWFudHMAAAAEdHhJZAAAABRoYXRjaGluZ0ZpbmlzaEhlaWdodAAAAAZvZmZzZXQEAAAAD3JhbmRvbVNlZWRCbG9jawkBAAAABXZhbHVlAAAAAQkAA+0AAAABCQAAZQAAAAIFAAAAFGhhdGNoaW5nRmluaXNoSGVpZ2h0AAAAAAAAAAABBAAAAApyYW5kb21IYXNoCQAB9wAAAAEJAADLAAAAAgUAAAAEdHhJZAkBAAAABXZhbHVlAAAAAQgFAAAAD3JhbmRvbVNlZWRCbG9jawAAAAN2cmYJAABqAAAAAgkABLIAAAACBQAAAApyYW5kb21IYXNoCQAAaAAAAAIFAAAABm9mZnNldAAAAAAAAAAACAUAAAAIdmFyaWFudHMBAAAADmdldEludGVnZXJEYXRhAAAAAQAAAANrZXkEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAXQFAAAAByRtYXRjaDAFAAAAAXQAAAAAAAAAAAABAAAACmlzVmFsaWRORlQAAAABAAAABWFzc2V0BAAAAA1pc3N1ZXJBZGRyZXNzCQAEHQAAAAIJAQAAAAdBZGRyZXNzAAAAAQUAAAASbmZ0Q3JlYXRpb25BZGRyZXNzCQABLAAAAAIJAAEsAAAAAgIAAAAEbmZ0XwkAAlgAAAABCAUAAAAFYXNzZXQAAAACaWQCAAAAB19pc3N1ZXIDAwMJAAAAAAAAAggFAAAABWFzc2V0AAAABmlzc3VlcgkBAAAAB0FkZHJlc3MAAAABBQAAABJuZnRDcmVhdGlvbkFkZHJlc3MJAAAAAAAAAgUAAAANaXNzdWVyQWRkcmVzcwkABCUAAAABBQAAAAR0aGlzBwkAAAAAAAACCAUAAAAFYXNzZXQAAAAIZGVjaW1hbHMAAAAAAAAAAAAHCQAAAAAAAAIIBQAAAAVhc3NldAAAAAhxdWFudGl0eQAAAAAAAAAAAQcBAAAADWlzRWFnbGVIb2xkZXIAAAABAAAAB2FkZHJlc3MEAAAAByRtYXRjaDAJAAQaAAAAAgkBAAAAB0FkZHJlc3MAAAABBQAAABJlYWdsZUhvbGRlckFkZHJlc3MJAAEsAAAAAgUAAAAHYWRkcmVzcwIAAAAHX3N0YWtlZAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAF0BQAAAAckbWF0Y2gwCQAAZgAAAAIFAAAAAXQAAAAAAAAAAAAHAQAAAA5nZXRQdXp6bGVQcmljZQAAAAAEAAAAC3VzZG5CYWxhbmNlCQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACCQEAAAAHQWRkcmVzcwAAAAEFAAAAEXB1enpsZVBvb2xBZGRyZXNzCQABLAAAAAIJAAEsAAAAAgIAAAAHZ2xvYmFsXwkAAlgAAAABBQAAAAt1c2RuQXNzZXRJZAIAAAAIX2JhbGFuY2UEAAAADXB1enpsZUJhbGFuY2UJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIJAQAAAAdBZGRyZXNzAAAAAQUAAAARcHV6emxlUG9vbEFkZHJlc3MJAAEsAAAAAgkAASwAAAACAgAAAAdnbG9iYWxfCQACWAAAAAEFAAAADXB1enpsZUFzc2V0SWQCAAAACF9iYWxhbmNlBAAAAApwdXp6bGVQYXJ0CQAAawAAAAMFAAAADXB1enpsZUJhbGFuY2UAAAAAAAAAAAEAAAAAAAAAAAgJAABrAAAAAwUAAAALdXNkbkJhbGFuY2UAAAAAAAAPQkAJAABrAAAAAwUAAAAKcHV6emxlUGFydAAAAAAAAAAAAQAAAAAAAAAAZAEAAAAUZ2V0QXJ0ZWZhY3RVc2RuUHJpY2UAAAAACQAAZAAAAAIAAAAAABfXhAAJAABoAAAAAgkBAAAADmdldEludGVnZXJEYXRhAAAAAQUAAAASdG90YWxDb3VudF9EYXRhS2V5AAAAAAAAD0JAAQAAAAxkZWx0YVVzZG5TdW0AAAADAAAADHB1enpsZUFtb3VudAAAAA9wdXp6bGVQcmljZVVzZG4AAAANaXNFYWdsZUhvbGRlcgQAAAAHdXNkblN1bQkAAGsAAAADBQAAAA9wdXp6bGVQcmljZVVzZG4FAAAADHB1enpsZUFtb3VudAAAAAAABfXhAAQAAAARYXJ0ZWZhY3RVc2RuUHJpY2UDBQAAAA1pc0VhZ2xlSG9sZGVyBAAAAAVwcmljZQkBAAAAFGdldEFydGVmYWN0VXNkblByaWNlAAAAAAkAAGUAAAACBQAAAAVwcmljZQkAAGsAAAADBQAAAAVwcmljZQAAAAAAAAAAFAAAAAAAAAAAZAkBAAAAFGdldEFydGVmYWN0VXNkblByaWNlAAAAAAkAAGUAAAACBQAAAAd1c2RuU3VtBQAAABFhcnRlZmFjdFVzZG5QcmljZQAAAAIAAAABaQEAAAAQZ2VuZXJhdGVBcnRlZmFjdAAAAAADAwMJAAAAAAAAAgkAAZAAAAABCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAQkAAAAAAAACCAkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAAAAAdhc3NldElkBQAAAA1wdXp6bGVBc3NldElkBwkAAGYAAAACCAkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAAAAAZhbW91bnQAAAAAAAAAAAAHBAAAAA9wdXp6bGVQcmljZVVzZG4JAQAAAA5nZXRQdXp6bGVQcmljZQAAAAAEAAAAEHBheW1lbnRVc2RuRGVsdGEJAQAAAAxkZWx0YVVzZG5TdW0AAAADCAkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAAAAAZhbW91bnQFAAAAD3B1enpsZVByaWNlVXNkbgkBAAAADWlzRWFnbGVIb2xkZXIAAAABCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgMJAABnAAAAAgUAAAAQcGF5bWVudFVzZG5EZWx0YQAAAAAAAAAAAAQAAAAJcmFuZEluZGV4CQEAAAAPZ2V0UmFuZG9tTnVtYmVyAAAABAAAAAAAAAAABQgFAAAAAWkAAAANdHJhbnNhY3Rpb25JZAUAAAAGaGVpZ2h0AAAAAAAAAAAAAwMJAABnAAAAAgUAAAAJcmFuZEluZGV4AAAAAAAAAAAACQAAZgAAAAIAAAAAAAAAAAUFAAAACXJhbmRJbmRleAcEAAAACGFydGVmYWN0CQABkQAAAAIFAAAACWFydGVmYWN0cwUAAAAJcmFuZEluZGV4BAAAAA1jcmVhdGVkTkZUU3RyBAAAAAckbWF0Y2gwCQAD/AAAAAQJAQAAAAdBZGRyZXNzAAAAAQUAAAASbmZ0Q3JlYXRpb25BZGRyZXNzAgAAAAljcmVhdGVORlQJAARMAAAAAgkAAZEAAAACBQAAAAhhcnRlZmFjdAAAAAAAAAAAAAkABEwAAAACCQABkQAAAAIFAAAACGFydGVmYWN0AAAAAAAAAAABCQAETAAAAAIJAAGRAAAAAgUAAAAIYXJ0ZWZhY3QAAAAAAAAAAAIJAARMAAAAAgIAAAAUUHV6emxlIFBvb2wgQXJ0ZWZhY3QFAAAAA25pbAUAAAADbmlsAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAAXgFAAAAByRtYXRjaDAFAAAAAXgJAAACAAAAAQIAAAArc29tZXRoaW5nIHdlbnQgd3JvbmcgZHVyaW5nIGNyZWF0aW9uIG9mIE5GVAMJAAAAAAAAAgUAAAANY3JlYXRlZE5GVFN0cgUAAAANY3JlYXRlZE5GVFN0cgQAAAAUZXh0cmFUcmFuc2FjdGlvbkxpc3QDCQAAZgAAAAIFAAAAEHBheW1lbnRVc2RuRGVsdGEAAAAAAAAAAAAEAAAAEnJldHVyblB1enpsZUFtb3VudAkAAGsAAAADBQAAABBwYXltZW50VXNkbkRlbHRhAAAAAAAF9eEABQAAAA9wdXp6bGVQcmljZVVzZG4JAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAAAWkAAAAGY2FsbGVyBQAAABJyZXR1cm5QdXp6bGVBbW91bnQFAAAADXB1enpsZUFzc2V0SWQJAARMAAAAAgkBAAAABEJ1cm4AAAACBQAAAA1wdXp6bGVBc3NldElkCQAAZQAAAAIICQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAAAAAABmFtb3VudAUAAAAScmV0dXJuUHV6emxlQW1vdW50BQAAAANuaWwJAARMAAAAAgkBAAAABEJ1cm4AAAACBQAAAA1wdXp6bGVBc3NldElkCAkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAAAAAZhbW91bnQFAAAAA25pbAkABRQAAAACCQAETgAAAAIJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAAAWkAAAAGY2FsbGVyAAAAAAAAAAABCQACWQAAAAEFAAAADWNyZWF0ZWRORlRTdHIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAEnRvdGFsQ291bnRfRGF0YUtleQkAAGQAAAACCQEAAAAOZ2V0SW50ZWdlckRhdGEAAAABBQAAABJ0b3RhbENvdW50X0RhdGFLZXkAAAAAAAAAAAEFAAAAA25pbAUAAAAUZXh0cmFUcmFuc2FjdGlvbkxpc3QFAAAADWNyZWF0ZWRORlRTdHIJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQAAAgAAAAECAAAAFEluYWxpZCByYW5kb20gaW5kZXguCQAAAgAAAAECAAAAGk5vdCBlbm91Z2ggcGF5bWVudCBhbW91bnQuCQAAAgAAAAECAAAANUludmFsaWQgcGF5bWVudC4gWW91IGNhbiB1c2Ugb25seSBQdXp6bGUgZm9yIHBheW1lbnQuAAAAAWkBAAAADXNwZW5kQXJ0ZWZhY3QAAAABAAAACnBvb2xEb21haW4DAwkAAAAAAAACCQABkAAAAAEIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAABCQAAAAAAAAIICQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAAAAAABmFtb3VudAAAAAAAAAAAAQcDAwkAAGcAAAACCQABMQAAAAEFAAAACnBvb2xEb21haW4AAAAAAAAAAAIJAABnAAAAAgAAAAAAAAAADQkAATEAAAABBQAAAApwb29sRG9tYWluBwQAAAAIbmZ0QXNzZXQJAQAAAAV2YWx1ZQAAAAEJAAPsAAAAAQkBAAAABXZhbHVlAAAAAQgJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAAAAAHYXNzZXRJZAMJAQAAAAppc1ZhbGlkTkZUAAAAAQUAAAAIbmZ0QXNzZXQEAAAADHNvbGRDb3VudEtleQkAASwAAAACCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgIAAAALX3NvbGRfY291bnQEAAAADmFkZHJlc3NTb2xkS2V5CQABLAAAAAIJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyAgAAAA5fYWRkcmVzc19zcGVuZAQAAAADaW52CQAD/AAAAAQJAQAAAAdBZGRyZXNzAAAAAQUAAAASbmZ0Q3JlYXRpb25BZGRyZXNzAgAAAAdidXJuTkZUBQAAAANuaWwIBQAAAAFpAAAACHBheW1lbnRzAwkAAAAAAAACBQAAAANpbnYFAAAAA2ludgkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAHZG9tYWluXwUAAAAKcG9vbERvbWFpbgIAAAAMX3B1cmNoYXNlZEJ5CQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAHZG9tYWluXwUAAAAKcG9vbERvbWFpbgIAAAAKX2NyZWF0ZWRCeQkAAlgAAAABCAUAAAAIbmZ0QXNzZXQAAAACaWQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgUAAAAOYWRkcmVzc1NvbGRLZXkJAAJYAAAAAQgFAAAACG5mdEFzc2V0AAAAAmlkCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAAxzb2xkQ291bnRLZXkJAABkAAAAAgkBAAAADmdldEludGVnZXJEYXRhAAAAAQUAAAAMc29sZENvdW50S2V5AAAAAAAAAAABBQAAAANuaWwJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQAAAgAAAAECAAAADEludmFsaWQgTkZULgkAAAIAAAABAgAAAE5Qb29sIGRvbWFpbiBuYW1lIHNwZWNpZmllZCBpbmNvcnJlY3RseSwgbGVuZ3RoIG11c3QgYmUgZnJvbSAyIHRvIDEzIGNoYXJhY3RlcnMJAAACAAAAAQIAAAAwSW52YWxpZCBwYXltZW50LiBZb3Ugc2hvdWxkIHVzZSBORlQgZm9yIHBheW1lbnQuAAAAAQAAAAJ0eAEAAAAGdmVyaWZ5AAAAAAkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAAIBQAAAAJ0eAAAAA9zZW5kZXJQdWJsaWNLZXmxQVbR", "height": 3151499, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 837XCJbphWi3uqF63deMbJSykzdmNboCPtWutaRYzvKE Next: CND3boBbHoMN4yXeCUs8MS41AwnqKtVNAxTHZvyh4hFw Diff:
OldNewDifferences
120120 func spendArtefact (poolDomain) = if (if ((size(i.payments) == 1))
121121 then (i.payments[0].amount == 1)
122122 else false)
123- then if (if ((size(poolDomain) > 0))
123+ then if (if ((size(poolDomain) >= 2))
124124 then (13 >= size(poolDomain))
125125 else false)
126126 then {
136136 }
137137 else throw("Invalid NFT.")
138138 }
139- else throw("Pool domain name specified incorrectly, length must be more than 2 and not more than 13 characters")
139+ else throw("Pool domain name specified incorrectly, length must be from 2 to 13 characters")
140140 else throw("Invalid payment. You should use NFT for payment.")
141141
142142
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let puzzleAssetId = base58'HEB8Qaw9xrWpWs8tHsiATYGBWDBtP2S7kcPALrMu43AS'
55
66 let usdnAssetId = base58'DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p'
77
88 let puzzlePoolAddress = base58'3PFDgzu1UtswAkCMxqqQjbTeHaX4cMab8Kh'
99
1010 let nftCreationAddress = base58'3PFQjjDMiZKQZdu5JqTHD7HwgSXyp9Rw9By'
1111
1212 let eagleHolderAddress = base58'3PKUxbZaSYfsR7wu2HaAgiirHYwAMupDrYW'
1313
1414 let artefacts = [["Puzzle Surf", "Puzzle Surf artefact can be used to launch a custom pool on Puzzle Swap (PuzzleSwap.org).", "https://ipfs.io/ipfs/QmUawQhPVhPitBSRtgd6ZKurseYJ3QWYUhYmV23PS2qL4Y"], ["Puzzle Desert", "Puzzle Desert artefact can be used to launch a custom pool on Puzzle Swap (PuzzleSwap.org).", "https://ipfs.io/ipfs/Qma7Beh9pPkRhgK6WNMQKLHahQDKeKRp5myjv2mx1zv1zm"], ["Puzzle Airplane", "Puzzle Airplane artefact can be used to launch a custom pool on Puzzle Swap (PuzzleSwap.org).", "https://ipfs.io/ipfs/QmNTzzdvBx658hiCVvHNGS4FsRk8ZhAgYwezH6Q9QEKy7K"], ["Puzzle Wheel", "Puzzle Wheel artefact can be used to launch a custom pool on Puzzle Swap (PuzzleSwap.org).", "https://ipfs.io/ipfs/QmTvN5sAC2ka4qtLjSd2vWQ4NqYJD8Qo8cJiChd8QjYNC5"], ["Puzzle Khalifa", "Puzzle Khalifa artefact can be used to launch a custom pool on Puzzle Swap (PuzzleSwap.org).", "https://ipfs.io/ipfs/QmckDMscnuYp8shr3NxqbeDJ82V6c1UvWP1ecPAfMkSv2D"]]
1515
1616 let totalCount_DataKey = "total_sold_nft"
1717
1818 func getRandomNumber (variants,txId,hatchingFinishHeight,offset) = {
1919 let randomSeedBlock = value(blockInfoByHeight((hatchingFinishHeight - 1)))
2020 let randomHash = sha256((txId + value(randomSeedBlock.vrf)))
2121 (toInt(randomHash, (offset * 8)) % variants)
2222 }
2323
2424
2525 func getIntegerData (key) = match getInteger(this, key) {
2626 case t: Int =>
2727 t
2828 case _ =>
2929 0
3030 }
3131
3232
3333 func isValidNFT (asset) = {
3434 let issuerAddress = getString(Address(nftCreationAddress), (("nft_" + toBase58String(asset.id)) + "_issuer"))
3535 if (if (if ((asset.issuer == Address(nftCreationAddress)))
3636 then (issuerAddress == toString(this))
3737 else false)
3838 then (asset.decimals == 0)
3939 else false)
4040 then (asset.quantity == 1)
4141 else false
4242 }
4343
4444
4545 func isEagleHolder (address) = match getInteger(Address(eagleHolderAddress), (address + "_staked")) {
4646 case t: Int =>
4747 (t > 0)
4848 case _ =>
4949 false
5050 }
5151
5252
5353 func getPuzzlePrice () = {
5454 let usdnBalance = getIntegerValue(Address(puzzlePoolAddress), (("global_" + toBase58String(usdnAssetId)) + "_balance"))
5555 let puzzleBalance = getIntegerValue(Address(puzzlePoolAddress), (("global_" + toBase58String(puzzleAssetId)) + "_balance"))
5656 let puzzlePart = fraction(puzzleBalance, 1, 8)
5757 fraction(usdnBalance, 1000000, fraction(puzzlePart, 1, 100))
5858 }
5959
6060
6161 func getArtefactUsdnPrice () = (400000000 + (getIntegerData(totalCount_DataKey) * 1000000))
6262
6363
6464 func deltaUsdnSum (puzzleAmount,puzzlePriceUsdn,isEagleHolder) = {
6565 let usdnSum = fraction(puzzlePriceUsdn, puzzleAmount, 100000000)
6666 let artefactUsdnPrice = if (isEagleHolder)
6767 then {
6868 let price = getArtefactUsdnPrice()
6969 (price - fraction(price, 20, 100))
7070 }
7171 else getArtefactUsdnPrice()
7272 (usdnSum - artefactUsdnPrice)
7373 }
7474
7575
7676 @Callable(i)
7777 func generateArtefact () = if (if (if ((size(i.payments) == 1))
7878 then (i.payments[0].assetId == puzzleAssetId)
7979 else false)
8080 then (i.payments[0].amount > 0)
8181 else false)
8282 then {
8383 let puzzlePriceUsdn = getPuzzlePrice()
8484 let paymentUsdnDelta = deltaUsdnSum(i.payments[0].amount, puzzlePriceUsdn, isEagleHolder(toString(i.caller)))
8585 if ((paymentUsdnDelta >= 0))
8686 then {
8787 let randIndex = getRandomNumber(5, i.transactionId, height, 0)
8888 if (if ((randIndex >= 0))
8989 then (5 > randIndex)
9090 else false)
9191 then {
9292 let artefact = artefacts[randIndex]
9393 let createdNFTStr = match invoke(Address(nftCreationAddress), "createNFT", [artefact[0], artefact[1], artefact[2], "Puzzle Pool Artefact"], nil) {
9494 case x: String =>
9595 x
9696 case _ =>
9797 throw("something went wrong during creation of NFT")
9898 }
9999 if ((createdNFTStr == createdNFTStr))
100100 then {
101101 let extraTransactionList = if ((paymentUsdnDelta > 0))
102102 then {
103103 let returnPuzzleAmount = fraction(paymentUsdnDelta, 100000000, puzzlePriceUsdn)
104104 [ScriptTransfer(i.caller, returnPuzzleAmount, puzzleAssetId), Burn(puzzleAssetId, (i.payments[0].amount - returnPuzzleAmount))]
105105 }
106106 else [Burn(puzzleAssetId, i.payments[0].amount)]
107107 $Tuple2(([ScriptTransfer(i.caller, 1, fromBase58String(createdNFTStr)), IntegerEntry(totalCount_DataKey, (getIntegerData(totalCount_DataKey) + 1))] ++ extraTransactionList), createdNFTStr)
108108 }
109109 else throw("Strict value is not equal to itself.")
110110 }
111111 else throw("Inalid random index.")
112112 }
113113 else throw("Not enough payment amount.")
114114 }
115115 else throw("Invalid payment. You can use only Puzzle for payment.")
116116
117117
118118
119119 @Callable(i)
120120 func spendArtefact (poolDomain) = if (if ((size(i.payments) == 1))
121121 then (i.payments[0].amount == 1)
122122 else false)
123- then if (if ((size(poolDomain) > 0))
123+ then if (if ((size(poolDomain) >= 2))
124124 then (13 >= size(poolDomain))
125125 else false)
126126 then {
127127 let nftAsset = value(assetInfo(value(i.payments[0].assetId)))
128128 if (isValidNFT(nftAsset))
129129 then {
130130 let soldCountKey = (toString(i.caller) + "_sold_count")
131131 let addressSoldKey = (toString(i.caller) + "_address_spend")
132132 let inv = invoke(Address(nftCreationAddress), "burnNFT", nil, i.payments)
133133 if ((inv == inv))
134134 then [StringEntry((("domain_" + poolDomain) + "_purchasedBy"), toString(i.caller)), StringEntry((("domain_" + poolDomain) + "_createdBy"), toBase58String(nftAsset.id)), StringEntry(addressSoldKey, toBase58String(nftAsset.id)), IntegerEntry(soldCountKey, (getIntegerData(soldCountKey) + 1))]
135135 else throw("Strict value is not equal to itself.")
136136 }
137137 else throw("Invalid NFT.")
138138 }
139- else throw("Pool domain name specified incorrectly, length must be more than 2 and not more than 13 characters")
139+ else throw("Pool domain name specified incorrectly, length must be from 2 to 13 characters")
140140 else throw("Invalid payment. You should use NFT for payment.")
141141
142142
143143 @Verifier(tx)
144144 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
145145

github/deemru/w8io/0e76f2f 
57.81 ms