tx · 5xWC65ZWgi5ugdT17117qZvP6UTvYLXv2XQRZFcqbxW8

3N8RGScPyKYySaXd5Z3VcpnttH2uBeMpSy4:  -0.05000000 Waves

2020.03.09 21:52 [901973] smart account 3N8RGScPyKYySaXd5Z3VcpnttH2uBeMpSy4 > SELF 0.00000000 Waves

{ "type": 13, "id": "5xWC65ZWgi5ugdT17117qZvP6UTvYLXv2XQRZFcqbxW8", "fee": 5000000, "feeAssetId": null, "timestamp": 1583779692337, "version": 1, "sender": "3N8RGScPyKYySaXd5Z3VcpnttH2uBeMpSy4", "senderPublicKey": "4AHsCbS9QYVdKNvxrPWwsMwwy3KqXaCMXeAscExJZk9L", "proofs": [ "2AgLVZMUg48SWn49RoS8ZNw9ueL4EChKM5jSPW9hUWMNevMVdpLXGKtDsP7VsiBASjEcLbC5PsALwYuBnw8KsAqF" ], "script": "base64:AAIDAAAAAAAAAA8IARIECgIICBIFCgMICAgAAAAlAAAAAAdjQml0Q08yAQAAACDH+HoAnTdQnyoybLskiHPdWM4Tg4veh8IaLSgbZ8EolgAAAAAIc3RhcnRRdHkAAAAAAAAFFAAAAAAACG5vbVByaWNlAAAAAAAF9eEAAAAAABZkaXNjb3VudFByZUljb1N1cHBsaWVyAAAAAAAAAAAMAAAAAA5Pd25lckVjb1B1YktleQEAAAAgLvRbo0AJGg7wNzBbRHjrN75s0YuvS2DdwCQ0/xY2QB8AAAAAA3d2cwAAAAAABfXhAAAAAAAETk9ORQIAAAAEbm9uZQAAAAAGaXNzdWVyCQEAAAAHQWRkcmVzcwAAAAEBAAAAGgFUyvc7Pucv0VXiD634RbMs3vuN0A1Fa31vAQAAAA5nZXROdW1iZXJCeUtleQAAAAEAAAADa2V5BAAAAANudW0EAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAFAAAAA251bQEAAAALZ2V0U3RyQnlLZXkAAAABAAAAA2tleQQAAAADc3RyBAAAAAckbWF0Y2gwCQAEHQAAAAIFAAAABHRoaXMFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhBQAAAAROT05FBQAAAANzdHIBAAAACmdldEtleUl0ZW0AAAACAAAACHN1cHBsaWVyAAAABXRpdGxlCQABLAAAAAICAAAAEHRva2Vuc19CaXQtQ08yOl8JAAJYAAAAAQkAAfcAAAABCQABmwAAAAEJAAEsAAAAAgUAAAAIc3VwcGxpZXIFAAAABXRpdGxlAQAAABJnZXRLZXlJdGVtU3VwcGxpZXIAAAABAAAABGl0ZW0JAAEsAAAAAgUAAAAEaXRlbQIAAAAaX3RvX0FtYXpvbmlhbl9Db25zZXJ2YXRpb24BAAAAFGdldFZhbHVlSXRlbVN1cHBsaWVyAAAAAQAAAARpdGVtCQEAAAALZ2V0U3RyQnlLZXkAAAABCQEAAAASZ2V0S2V5SXRlbVN1cHBsaWVyAAAAAQUAAAAEaXRlbQEAAAANZ2V0S2V5SXRlbVF0eQAAAAEAAAAEaXRlbQkAASwAAAACBQAAAARpdGVtAgAAAB1fUHJlLUlDT19pbml0aWFsX3Rva2VuX2Ftb3VudAEAAAAPZ2V0VmFsdWVJdGVtUXR5AAAAAQAAAARpdGVtCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAANZ2V0S2V5SXRlbVF0eQAAAAEFAAAABGl0ZW0BAAAAGGdldEtleUJhbGFuY2VRdHlTdXBwbGllcgAAAAEAAAAEaXRlbQkAASwAAAACBQAAAARpdGVtAgAAAAgsX3Rva2VucwEAAAAaZ2V0VmFsdWVCYWxhbmNlUXR5U3VwcGxpZXIAAAABAAAABGl0ZW0JAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAABhnZXRLZXlCYWxhbmNlUXR5U3VwcGxpZXIAAAABBQAAAARpdGVtAQAAAA5nZXRLZXlJdGVtRGF0YQAAAAEAAAAEaXRlbQkAASwAAAACBQAAAARpdGVtAgAAAAxfZGVzY3JpcHRpb24BAAAAFWdldEtleVVzZXJJdGVtQ291bnRlcgAAAAIAAAAEdXNlcgAAAARpdGVtCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAARpdGVtAgAAAAFfBQAAAAR1c2VyAgAAAARfY250AQAAABdnZXRWYWx1ZVVzZXJJdGVtQ291bnRlcgAAAAIAAAAEdXNlcgAAAARpdGVtCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAAVZ2V0S2V5VXNlckl0ZW1Db3VudGVyAAAAAgUAAAAEdXNlcgUAAAAEaXRlbQEAAAASZ2V0S2V5SXRlbVVzZXJEYXRhAAAAAQAAAARpdGVtCQABLAAAAAIFAAAABGl0ZW0CAAAACl91c2VyX2RhdGEBAAAAEWdldEtleUJhbGFuY2VVc2VyAAAAAQAAAARpdGVtCQABLAAAAAIFAAAABGl0ZW0CAAAAEV9zYWxkb193YXZlc191c2VyAQAAABNnZXRWYWx1ZUJhbGFuY2VVc2VyAAAAAQAAAARpdGVtCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAARZ2V0S2V5QmFsYW5jZVVzZXIAAAABBQAAAARpdGVtAQAAABFnZXRLZXlQYXltZW50VXNlcgAAAAEAAAAEaXRlbQkAASwAAAACBQAAAARpdGVtAgAAAA1fdXNlcl9wYXltZW50AQAAABNnZXRWYWx1ZVBheW1lbnRVc2VyAAAAAQAAAARpdGVtCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAARZ2V0S2V5UGF5bWVudFVzZXIAAAABBQAAAARpdGVtAQAAABRnZXRLZXlCYWxhbmNlUXR5VXNlcgAAAAEAAAAEaXRlbQkAASwAAAACBQAAAARpdGVtAgAAABtfc2FsZG9fcXVhbnRpdHlfdG9rZW5zX3VzZXIBAAAAFmdldFZhbHVlQmFsYW5jZVF0eVVzZXIAAAABAAAABGl0ZW0JAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAABRnZXRLZXlCYWxhbmNlUXR5VXNlcgAAAAEFAAAABGl0ZW0BAAAAFmdldEtleUl0ZW1Vc2VyT3JkZXJRdHkAAAABAAAABGl0ZW0JAAEsAAAAAgUAAAAEaXRlbQIAAAAdX3RvX3B1cmNoYXNlXy9fcXVhbnRpdHlfb3JkZXIBAAAAGGdldFZhbHVlSXRlbVVzZXJPcmRlclF0eQAAAAEAAAAEaXRlbQkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAFmdldEtleUl0ZW1Vc2VyT3JkZXJRdHkAAAABBQAAAARpdGVtAQAAABVnZXRLZXlCYWxhbmNlU3VwcGxpZXIAAAABAAAAB2FjY291bnQJAAEsAAAAAgUAAAAHYWNjb3VudAIAAAAPX3NlbGxlcl9iYWxhbmNlAQAAABdnZXRWYWx1ZUJhbGFuY2VTdXBwbGllcgAAAAEAAAAHYWNjb3VudAkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAFWdldEtleUJhbGFuY2VTdXBwbGllcgAAAAEFAAAAB2FjY291bnQBAAAADmdldEtleUl0ZW1Vc2VyAAAAAQAAAARpdGVtCQABLAAAAAIJAAEsAAAAAgIAAAAIbm9tYnJlOl8FAAAABGl0ZW0CAAAADl9CaXRDTzJfdG9rZW5zAQAAABBnZXRWYWx1ZUl0ZW1Vc2VyAAAAAQAAAARpdGVtCQEAAAALZ2V0U3RyQnlLZXkAAAABCQEAAAAOZ2V0S2V5SXRlbVVzZXIAAAABBQAAAARpdGVtAQAAABpnZXRLZXlJdGVtRGlzY291bnRTdXBwbGllcgAAAAEAAAAEaXRlbQkAASwAAAACCQABLAAAAAICAAAAHGRlc2N1ZW50b19vZnJlY2lkb19QcmUtSUNPOl8FAAAABGl0ZW0CAAAAAl8lAQAAABxnZXRWYWx1ZUl0ZW1EaXNjb3VudFN1cHBsaWVyAAAAAQAAAARpdGVtCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAAaZ2V0S2V5SXRlbURpc2NvdW50U3VwcGxpZXIAAAABBQAAAARpdGVtAQAAABdnZXRLZXlJdGVtUHJpY2VTdXBwbGllcgAAAAEAAAAEaXRlbQkAASwAAAACCQABLAAAAAICAAAAI1ByZWNpb19Ob21pbmFsX2RlXzFfdG9rZW5fUHJlLUlDTzpfBQAAAARpdGVtAgAAAAZfd2F2ZXMBAAAAGWdldFZhbHVlSXRlbVByaWNlU3VwcGxpZXIAAAABAAAABGl0ZW0JAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAABdnZXRLZXlJdGVtUHJpY2VTdXBwbGllcgAAAAEFAAAABGl0ZW0AAAACAAAAAWkBAAAAEEFkZFN1cHBsaWVyVG9rZW4AAAACAAAABXRpdGxlAAAADHN1cHBsaWVyRGF0YQQAAAAIc3VwcGxpZXIJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwQAAAAEaXRlbQkBAAAACmdldEtleUl0ZW0AAAACBQAAAAhzdXBwbGllcgUAAAAFdGl0bGUEAAAACXByZUljb1F0eQQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzBQAAAAhzdXBwbGllcgMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhBQAAAAhzdGFydFF0eQMJAABnAAAAAgAAAAAAAAAAAAUAAAAJcHJlSWNvUXR5CQAAAgAAAAECAAAAH1NvcnJ5LCBpbnN1ZmZpY2llbnQgdG9rZW4gb2ZmZXIJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAABJnZXRLZXlJdGVtU3VwcGxpZXIAAAABBQAAAARpdGVtBQAAAAhzdXBwbGllcgkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAGGdldEtleUJhbGFuY2VRdHlTdXBwbGllcgAAAAEFAAAABGl0ZW0FAAAACXByZUljb1F0eQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACAgAAACNQcmVjaW9fTm9taW5hbF9kZV8xIHRva2VuX2NCaXRDTzI6XwkBAAAAF2dldEtleUl0ZW1QcmljZVN1cHBsaWVyAAAAAQUAAAAEaXRlbQUAAAAIbm9tUHJpY2UJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAABpnZXRLZXlJdGVtRGlzY291bnRTdXBwbGllcgAAAAEFAAAABGl0ZW0FAAAAFmRpc2NvdW50UHJlSWNvU3VwcGxpZXIJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAAA5nZXRLZXlJdGVtRGF0YQAAAAEFAAAABGl0ZW0FAAAADHN1cHBsaWVyRGF0YQUAAAADbmlsAAAAAWkBAAAADVB1cmNoYXNlVG9rZW4AAAADAAAABGl0ZW0AAAALcHJvamVjdE5hbWUAAAAIdXNlckRhdGEEAAAAA3BtdAkBAAAAB2V4dHJhY3QAAAABCAUAAAABaQAAAAdwYXltZW50AwkBAAAACWlzRGVmaW5lZAAAAAEIBQAAAANwbXQAAAAHYXNzZXRJZAkAAAIAAAABAgAAACx5b3UgY2FuIGFkcXVpcmUgY0JpdENPMiBvbmx5IGJ5IFdhdmVzIHRva2VucwQAAAAHYWNjb3VudAkBAAAAFGdldFZhbHVlSXRlbVN1cHBsaWVyAAAAAQUAAAAEaXRlbQQAAAAJcHJlSWNvUXR5CQEAAAAaZ2V0VmFsdWVCYWxhbmNlUXR5U3VwcGxpZXIAAAABBQAAAARpdGVtBAAAAAt1c2VyQWRkcmVzcwkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzBAAAAA9idXllclRva2VuUHJpY2UJAABpAAAAAgkAAGgAAAACBQAAAAhub21QcmljZQkAAGUAAAACAAAAAAAAAABkBQAAABZkaXNjb3VudFByZUljb1N1cHBsaWVyAAAAAAAAAABkBAAAAAtvcmRlckFtb3VudAkAAGkAAAACCAUAAAADcG10AAAABmFtb3VudAUAAAAPYnV5ZXJUb2tlblByaWNlBAAAAApjdXJyZW50UXR5CQAAZQAAAAIFAAAACXByZUljb1F0eQUAAAALb3JkZXJBbW91bnQEAAAAC3RvdGFsQW1vdW50CQAAaAAAAAIFAAAAC29yZGVyQW1vdW50BQAAAA9idXllclRva2VuUHJpY2UDCQAAZgAAAAIFAAAAC3RvdGFsQW1vdW50CAUAAAADcG10AAAABmFtb3VudAkAAAIAAAABAgAAADZQYXltZW50IEFtb3VudCBjYW5ub3QgYmUgbGVzcyB0aGFuIGl0ZW0gUHVyY2hhc2UgT3JkZXIDCQAAZgAAAAIIBQAAAANwbXQAAAAGYW1vdW50BQAAAAt0b3RhbEFtb3VudAkAAAIAAAABAgAAADdQYXltZW50IEFtb3VudCBjYW4ndCBiZSBoaWdoZXIgdGhhbiBpdGVtIFB1cmNoYXNlIE9yZGVyCQEAAAAMU2NyaXB0UmVzdWx0AAAAAgkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAFWdldEtleVVzZXJJdGVtQ291bnRlcgAAAAIFAAAAC3VzZXJBZGRyZXNzBQAAAARpdGVtCQAAZAAAAAIJAQAAABdnZXRWYWx1ZVVzZXJJdGVtQ291bnRlcgAAAAIFAAAAC3VzZXJBZGRyZXNzBQAAAARpdGVtAAAAAAAAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAASZ2V0S2V5SXRlbVN1cHBsaWVyAAAAAQUAAAAEaXRlbQUAAAALcHJvamVjdE5hbWUJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgIAAAAbUHJlY2lvX05vbWluYWxfZGVfMV90b2tlbjpfBQAAAAdhY2NvdW50BQAAAAhub21QcmljZQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACCQABLAAAAAICAAAAFkRpc2NvdW50LF90b19QcmUtSUNPOl8FAAAAC3VzZXJBZGRyZXNzAgAAAAJfJQUAAAAWZGlzY291bnRQcmVJY29TdXBwbGllcgkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACAgAAACpQcmVjaW9fZGVfMV90b2tlbl90b19QcmUtSUNPX3BoYXN0LF93YXZlc18FAAAAC3VzZXJBZGRyZXNzBQAAAA9idXllclRva2VuUHJpY2UJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAABJnZXRLZXlJdGVtVXNlckRhdGEAAAABBQAAAARpdGVtBQAAAAh1c2VyRGF0YQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgIAAAAeQ2FudGlkYWRfZGVfdG9rZW5zX2FfY29tcHJhcjpfBQAAAAtvcmRlckFtb3VudAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACAgAAABlJbnZlc3RtZW50X0Ftb3VudCxfd2F2ZXNfCQEAAAARZ2V0S2V5UGF5bWVudFVzZXIAAAABBQAAAARpdGVtBQAAAAt0b3RhbEFtb3VudAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACAgAAABtQYWdvX2VuX193YXZlc19kZWxfSW52ZXJzb3IJAQAAABFnZXRLZXlCYWxhbmNlVXNlcgAAAAEFAAAABGl0ZW0IBQAAAANwbXQAAAAGYW1vdW50CQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAQUmVxdWVzdF9TdGF0dXM6XwUAAAALdXNlckFkZHJlc3MCAAAAAV8CAAAABHNvbGQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACAgAAAA5Vc2VyX0JhbGFuY2U6XwkBAAAAFGdldEtleUJhbGFuY2VRdHlVc2VyAAAAAQUAAAAEaXRlbQIAAAABXwUAAAALb3JkZXJBbW91bnQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgIAAAAZU2FsZG9fdG9rZW5zX2RlbF9Qcm95ZWN0bwkBAAAAGGdldEtleUJhbGFuY2VRdHlTdXBwbGllcgAAAAEFAAAABGl0ZW0JAABkAAAAAgkBAAAAGmdldFZhbHVlQmFsYW5jZVF0eVN1cHBsaWVyAAAAAQUAAAAEaXRlbQgFAAAAA3BtdAAAAAZhbW91bnQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgIAAAAYU2FsZG9fd2F2ZXNfZGVsX3ZlbmRlZG9yCQEAAAAVZ2V0S2V5QmFsYW5jZVN1cHBsaWVyAAAAAQUAAAAHYWNjb3VudAkAAGQAAAACCQEAAAAXZ2V0VmFsdWVCYWxhbmNlU3VwcGxpZXIAAAABBQAAAAdhY2NvdW50CAUAAAADcG10AAAABmFtb3VudAUAAAADbmlsCQEAAAALVHJhbnNmZXJTZXQAAAABBQAAAANuaWwAAAABAAAAAnR4AQAAAAZ2ZXJpZnkAAAAABAAAAAckbWF0Y2gwBQAAAAJ0eAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAUU2V0U2NyaXB0VHJhbnNhY3Rpb24EAAAAAXQFAAAAByRtYXRjaDAJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAAABQAAAA5Pd25lckVjb1B1YktleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAPRGF0YVRyYW5zYWN0aW9uBAAAAAFkBQAAAAckbWF0Y2gwBgMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAATVHJhbnNmZXJUcmFuc2FjdGlvbgQAAAACdHgFAAAAByRtYXRjaDAGAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAABNFeGNoYW5nZVRyYW5zYWN0aW9uBAAAAAJ0eAUAAAAHJG1hdGNoMAQAAAAJd2l0aFdhdmVzAwkBAAAAASEAAAABCQEAAAAJaXNEZWZpbmVkAAAAAQgICAUAAAACdHgAAAAJc2VsbE9yZGVyAAAACWFzc2V0UGFpcgAAAApwcmljZUFzc2V0BgkBAAAAASEAAAABCQEAAAAJaXNEZWZpbmVkAAAAAQgICAUAAAACdHgAAAAJc2VsbE9yZGVyAAAACWFzc2V0UGFpcgAAAAthbW91bnRBc3NldAUAAAAJd2l0aFdhdmVzAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAABdJbnZva2VTY3JpcHRUcmFuc2FjdGlvbgQAAAABYwUAAAAHJG1hdGNoMAYHpeqgvQ==", "chainId": 84, "height": 901973, "spentComplexity": 0 } View: original | compacted Prev: none Next: 6J9EsNmyoEKoL9xWBmeECVa7mbbtVg6Z9NdP2nQtfesV Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 3 #-}
2+{-# SCRIPT_TYPE ACCOUNT #-}
3+{-# CONTENT_TYPE DAPP #-}
4+let cBitCO2 = base58'ETbtNp6MBuSM9EfjmLDwctrYEBBiq8CZ7ti7zbwTktry'
5+
6+let startQty = 332800
7+
8+let nomPrice = 100000000
9+
10+let discountPreIcoSupplier = 12
11+
12+let OwnerEcoPubKey = base58'4AHsCbS9QYVdKNvxrPWwsMwwy3KqXaCMXeAscExJZk9L'
13+
14+let wvs = 100000000
15+
16+let NONE = "none"
17+
18+let issuer = Address(base58'3N8RGScPyKYySaXd5Z3VcpnttH2uBeMpSy4')
19+
20+func getNumberByKey (key) = {
21+ let num = match getInteger(this, key) {
22+ case a: Int =>
23+ a
24+ case _ =>
25+ 0
26+ }
27+ num
28+ }
29+
30+
31+func getStrByKey (key) = {
32+ let str = match getString(this, key) {
33+ case a: String =>
34+ a
35+ case _ =>
36+ NONE
37+ }
38+ str
39+ }
40+
41+
42+func getKeyItem (supplier,title) = ("tokens_Bit-CO2:_" + toBase58String(sha256(toBytes((supplier + title)))))
43+
44+
45+func getKeyItemSupplier (item) = (item + "_to_Amazonian_Conservation")
46+
47+
48+func getValueItemSupplier (item) = getStrByKey(getKeyItemSupplier(item))
49+
50+
51+func getKeyItemQty (item) = (item + "_Pre-ICO_initial_token_amount")
52+
53+
54+func getValueItemQty (item) = getNumberByKey(getKeyItemQty(item))
55+
56+
57+func getKeyBalanceQtySupplier (item) = (item + ",_tokens")
58+
59+
60+func getValueBalanceQtySupplier (item) = getNumberByKey(getKeyBalanceQtySupplier(item))
61+
62+
63+func getKeyItemData (item) = (item + "_description")
64+
65+
66+func getKeyUserItemCounter (user,item) = (((item + "_") + user) + "_cnt")
67+
68+
69+func getValueUserItemCounter (user,item) = getNumberByKey(getKeyUserItemCounter(user, item))
70+
71+
72+func getKeyItemUserData (item) = (item + "_user_data")
73+
74+
75+func getKeyBalanceUser (item) = (item + "_saldo_waves_user")
76+
77+
78+func getValueBalanceUser (item) = getNumberByKey(getKeyBalanceUser(item))
79+
80+
81+func getKeyPaymentUser (item) = (item + "_user_payment")
82+
83+
84+func getValuePaymentUser (item) = getNumberByKey(getKeyPaymentUser(item))
85+
86+
87+func getKeyBalanceQtyUser (item) = (item + "_saldo_quantity_tokens_user")
88+
89+
90+func getValueBalanceQtyUser (item) = getNumberByKey(getKeyBalanceQtyUser(item))
91+
92+
93+func getKeyItemUserOrderQty (item) = (item + "_to_purchase_/_quantity_order")
94+
95+
96+func getValueItemUserOrderQty (item) = getNumberByKey(getKeyItemUserOrderQty(item))
97+
98+
99+func getKeyBalanceSupplier (account) = (account + "_seller_balance")
100+
101+
102+func getValueBalanceSupplier (account) = getNumberByKey(getKeyBalanceSupplier(account))
103+
104+
105+func getKeyItemUser (item) = (("nombre:_" + item) + "_BitCO2_tokens")
106+
107+
108+func getValueItemUser (item) = getStrByKey(getKeyItemUser(item))
109+
110+
111+func getKeyItemDiscountSupplier (item) = (("descuento_ofrecido_Pre-ICO:_" + item) + "_%")
112+
113+
114+func getValueItemDiscountSupplier (item) = getNumberByKey(getKeyItemDiscountSupplier(item))
115+
116+
117+func getKeyItemPriceSupplier (item) = (("Precio_Nominal_de_1_token_Pre-ICO:_" + item) + "_waves")
118+
119+
120+func getValueItemPriceSupplier (item) = getNumberByKey(getKeyItemPriceSupplier(item))
121+
122+
123+@Callable(i)
124+func AddSupplierToken (title,supplierData) = {
125+ let supplier = toBase58String(i.caller.bytes)
126+ let item = getKeyItem(supplier, title)
127+ let preIcoQty = match getInteger(this, supplier) {
128+ case a: Int =>
129+ a
130+ case _ =>
131+ startQty
132+ }
133+ if ((0 >= preIcoQty))
134+ then throw("Sorry, insufficient token offer")
135+ else WriteSet([DataEntry(getKeyItemSupplier(item), supplier), DataEntry(getKeyBalanceQtySupplier(item), preIcoQty), DataEntry(("Precio_Nominal_de_1 token_cBitCO2:_" + getKeyItemPriceSupplier(item)), nomPrice), DataEntry(getKeyItemDiscountSupplier(item), discountPreIcoSupplier), DataEntry(getKeyItemData(item), supplierData)])
136+ }
137+
138+
139+
140+@Callable(i)
141+func PurchaseToken (item,projectName,userData) = {
142+ let pmt = extract(i.payment)
143+ if (isDefined(pmt.assetId))
144+ then throw("you can adquire cBitCO2 only by Waves tokens")
145+ else {
146+ let account = getValueItemSupplier(item)
147+ let preIcoQty = getValueBalanceQtySupplier(item)
148+ let userAddress = toBase58String(i.caller.bytes)
149+ let buyerTokenPrice = ((nomPrice * (100 - discountPreIcoSupplier)) / 100)
150+ let orderAmount = (pmt.amount / buyerTokenPrice)
151+ let currentQty = (preIcoQty - orderAmount)
152+ let totalAmount = (orderAmount * buyerTokenPrice)
153+ if ((totalAmount > pmt.amount))
154+ then throw("Payment Amount cannot be less than item Purchase Order")
155+ else if ((pmt.amount > totalAmount))
156+ then throw("Payment Amount can't be higher than item Purchase Order")
157+ else ScriptResult(WriteSet([DataEntry(getKeyUserItemCounter(userAddress, item), (getValueUserItemCounter(userAddress, item) + 1)), DataEntry(getKeyItemSupplier(item), projectName), DataEntry(("Precio_Nominal_de_1_token:_" + account), nomPrice), DataEntry((("Discount,_to_Pre-ICO:_" + userAddress) + "_%"), discountPreIcoSupplier), DataEntry(("Precio_de_1_token_to_Pre-ICO_phast,_waves_" + userAddress), buyerTokenPrice), DataEntry(getKeyItemUserData(item), userData), DataEntry("Cantidad_de_tokens_a_comprar:_", orderAmount), DataEntry(("Investment_Amount,_waves_" + getKeyPaymentUser(item)), totalAmount), DataEntry(("Pago_en__waves_del_Inversor" + getKeyBalanceUser(item)), pmt.amount), DataEntry((("Request_Status:_" + userAddress) + "_"), "sold"), DataEntry((("User_Balance:_" + getKeyBalanceQtyUser(item)) + "_"), orderAmount), DataEntry(("Saldo_tokens_del_Proyecto" + getKeyBalanceQtySupplier(item)), (getValueBalanceQtySupplier(item) + pmt.amount)), DataEntry(("Saldo_waves_del_vendedor" + getKeyBalanceSupplier(account)), (getValueBalanceSupplier(account) + pmt.amount))]), TransferSet(nil))
158+ }
159+ }
160+
161+
162+@Verifier(tx)
163+func verify () = match tx {
164+ case t: SetScriptTransaction =>
165+ sigVerify(tx.bodyBytes, tx.proofs[0], OwnerEcoPubKey)
166+ case d: DataTransaction =>
167+ true
168+ case tx: TransferTransaction =>
169+ true
170+ case tx: ExchangeTransaction =>
171+ let withWaves = if (!(isDefined(tx.sellOrder.assetPair.priceAsset)))
172+ then true
173+ else !(isDefined(tx.sellOrder.assetPair.amountAsset))
174+ withWaves
175+ case c: InvokeScriptTransaction =>
176+ true
177+ case _ =>
178+ false
179+}
180+

github/deemru/w8io/873ac7e 
35.94 ms