tx · A6n8FZhX6R7VnnYBs9wawuQSpSs232CSumHTbMuZomyx

3N8RGScPyKYySaXd5Z3VcpnttH2uBeMpSy4:  -0.01400000 Waves

2020.03.10 11:30 [902796] smart account 3N8RGScPyKYySaXd5Z3VcpnttH2uBeMpSy4 > SELF 0.00000000 Waves

{ "type": 13, "id": "A6n8FZhX6R7VnnYBs9wawuQSpSs232CSumHTbMuZomyx", "fee": 1400000, "feeAssetId": null, "timestamp": 1583829047254, "version": 1, "sender": "3N8RGScPyKYySaXd5Z3VcpnttH2uBeMpSy4", "senderPublicKey": "4AHsCbS9QYVdKNvxrPWwsMwwy3KqXaCMXeAscExJZk9L", "proofs": [ "5xXSMvtjV1sKPKsjQnbTyhSb8e8fznarn6XAtoHUsuDRZJmM4cf7TsHxQ3nbi4nWu2QMsXQbJJ6JxnQH5KwWh1he" ], "script": "base64:AAIDAAAAAAAAAA8IARIECgIICBIFCgMICAgAAAAlAAAAAAdjQml0Q08yAQAAACDH+HoAnTdQnyoybLskiHPdWM4Tg4veh8IaLSgbZ8EolgAAAAAIc3RhcnRRdHkAAAAAAAAFFAAAAAAACG5vbVByaWNlAAAAAAAF9eEAAAAAABZkaXNjb3VudFByZUljb1N1cHBsaWVyAAAAAAAAAAAMAAAAAA5Pd25lckVjb1B1YktleQEAAAAgLvRbo0AJGg7wNzBbRHjrN75s0YuvS2DdwCQ0/xY2QB8AAAAAA3d2cwAAAAAABfXhAAAAAAAETk9ORQIAAAAEbm9uZQAAAAAGaXNzdWVyCQEAAAAHQWRkcmVzcwAAAAEBAAAAGgFUyvc7Pucv0VXiD634RbMs3vuN0A1Fa31vAQAAAA5nZXROdW1iZXJCeUtleQAAAAEAAAADa2V5BAAAAANudW0EAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAFAAAAA251bQEAAAALZ2V0U3RyQnlLZXkAAAABAAAAA2tleQQAAAADc3RyBAAAAAckbWF0Y2gwCQAEHQAAAAIFAAAABHRoaXMFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhBQAAAAROT05FBQAAAANzdHIBAAAACmdldEtleUl0ZW0AAAACAAAACHN1cHBsaWVyAAAABXRpdGxlCQABLAAAAAICAAAACEJpdENPMjpfCQACWAAAAAEJAAH3AAAAAQkAAZsAAAABCQABLAAAAAIFAAAACHN1cHBsaWVyBQAAAAV0aXRsZQEAAAASZ2V0S2V5SXRlbVN1cHBsaWVyAAAAAQAAAARpdGVtCQABLAAAAAIFAAAABGl0ZW0CAAAABV9BbWF6AQAAABRnZXRWYWx1ZUl0ZW1TdXBwbGllcgAAAAEAAAAEaXRlbQkBAAAAC2dldFN0ckJ5S2V5AAAAAQkBAAAAEmdldEtleUl0ZW1TdXBwbGllcgAAAAEFAAAABGl0ZW0BAAAADWdldEtleUl0ZW1RdHkAAAABAAAABGl0ZW0JAAEsAAAAAgUAAAAEaXRlbQIAAAALX3Rvay5hbW91bnQBAAAAD2dldFZhbHVlSXRlbVF0eQAAAAEAAAAEaXRlbQkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAADWdldEtleUl0ZW1RdHkAAAABBQAAAARpdGVtAQAAABhnZXRLZXlCYWxhbmNlUXR5U3VwcGxpZXIAAAABAAAABGl0ZW0JAAEsAAAAAgUAAAAEaXRlbQIAAAAHX3Rva2VucwEAAAAaZ2V0VmFsdWVCYWxhbmNlUXR5U3VwcGxpZXIAAAABAAAABGl0ZW0JAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAABhnZXRLZXlCYWxhbmNlUXR5U3VwcGxpZXIAAAABBQAAAARpdGVtAQAAAA5nZXRLZXlJdGVtRGF0YQAAAAEAAAAEaXRlbQkAASwAAAACBQAAAARpdGVtAgAAAAxfZGVzY3JpcHRpb24BAAAAFWdldEtleVVzZXJJdGVtQ291bnRlcgAAAAIAAAAEdXNlcgAAAARpdGVtCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAARpdGVtAgAAAAFfBQAAAAR1c2VyAgAAAARfY250AQAAABdnZXRWYWx1ZVVzZXJJdGVtQ291bnRlcgAAAAIAAAAEdXNlcgAAAARpdGVtCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAAVZ2V0S2V5VXNlckl0ZW1Db3VudGVyAAAAAgUAAAAEdXNlcgUAAAAEaXRlbQEAAAASZ2V0S2V5SXRlbVVzZXJEYXRhAAAAAQAAAARpdGVtCQABLAAAAAIFAAAABGl0ZW0CAAAACV91c2VyZGF0YQEAAAARZ2V0S2V5QmFsYW5jZVVzZXIAAAABAAAABGl0ZW0JAAEsAAAAAgUAAAAEaXRlbQIAAAAMX3NhbGR3dnN1c2VyAQAAABNnZXRWYWx1ZUJhbGFuY2VVc2VyAAAAAQAAAARpdGVtCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAARZ2V0S2V5QmFsYW5jZVVzZXIAAAABBQAAAARpdGVtAQAAABFnZXRLZXlQYXltZW50VXNlcgAAAAEAAAAEaXRlbQkAASwAAAACBQAAAARpdGVtAgAAAAlfdXNlci5wbXQBAAAAE2dldFZhbHVlUGF5bWVudFVzZXIAAAABAAAABGl0ZW0JAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAABFnZXRLZXlQYXltZW50VXNlcgAAAAEFAAAABGl0ZW0BAAAAFGdldEtleUJhbGFuY2VRdHlVc2VyAAAAAQAAAARpdGVtCQABLAAAAAIFAAAABGl0ZW0CAAAACF9zYWxkcXR5AQAAABZnZXRWYWx1ZUJhbGFuY2VRdHlVc2VyAAAAAQAAAARpdGVtCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAAUZ2V0S2V5QmFsYW5jZVF0eVVzZXIAAAABBQAAAARpdGVtAQAAABZnZXRLZXlJdGVtVXNlck9yZGVyUXR5AAAAAQAAAARpdGVtCQABLAAAAAIFAAAABGl0ZW0CAAAABF9xdHkBAAAAGGdldFZhbHVlSXRlbVVzZXJPcmRlclF0eQAAAAEAAAAEaXRlbQkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAFmdldEtleUl0ZW1Vc2VyT3JkZXJRdHkAAAABBQAAAARpdGVtAQAAABVnZXRLZXlCYWxhbmNlU3VwcGxpZXIAAAABAAAAB2FjY291bnQJAAEsAAAAAgUAAAAHYWNjb3VudAIAAAAIX2JhbGFuY2UBAAAAF2dldFZhbHVlQmFsYW5jZVN1cHBsaWVyAAAAAQAAAAdhY2NvdW50CQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAAVZ2V0S2V5QmFsYW5jZVN1cHBsaWVyAAAAAQUAAAAHYWNjb3VudAEAAAAOZ2V0S2V5SXRlbVVzZXIAAAABAAAABGl0ZW0JAAEsAAAAAgkAASwAAAACAgAAAAZuYW1lOl8FAAAABGl0ZW0CAAAAAV8BAAAAEGdldFZhbHVlSXRlbVVzZXIAAAABAAAABGl0ZW0JAQAAAAtnZXRTdHJCeUtleQAAAAEJAQAAAA5nZXRLZXlJdGVtVXNlcgAAAAEFAAAABGl0ZW0BAAAAGmdldEtleUl0ZW1EaXNjb3VudFN1cHBsaWVyAAAAAQAAAARpdGVtCQABLAAAAAIJAAEsAAAAAgIAAAAGZGlzYzpfBQAAAARpdGVtAgAAAAFfAQAAABxnZXRWYWx1ZUl0ZW1EaXNjb3VudFN1cHBsaWVyAAAAAQAAAARpdGVtCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAAaZ2V0S2V5SXRlbURpc2NvdW50U3VwcGxpZXIAAAABBQAAAARpdGVtAQAAABdnZXRLZXlJdGVtUHJpY2VTdXBwbGllcgAAAAEAAAAEaXRlbQkAASwAAAACCQABLAAAAAICAAAABU5vbTpfBQAAAARpdGVtAgAAAAFfAQAAABlnZXRWYWx1ZUl0ZW1QcmljZVN1cHBsaWVyAAAAAQAAAARpdGVtCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAAXZ2V0S2V5SXRlbVByaWNlU3VwcGxpZXIAAAABBQAAAARpdGVtAAAAAgAAAAFpAQAAABBBZGRTdXBwbGllclRva2VuAAAAAgAAAAV0aXRsZQAAAAxzdXBwbGllckRhdGEEAAAACHN1cHBsaWVyCQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMEAAAABGl0ZW0JAQAAAApnZXRLZXlJdGVtAAAAAgUAAAAIc3VwcGxpZXIFAAAABXRpdGxlBAAAAAlwcmVJY29RdHkEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwUAAAAIc3VwcGxpZXIDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQUAAAAIc3RhcnRRdHkDCQAAZwAAAAIAAAAAAAAAAAAFAAAACXByZUljb1F0eQkAAAIAAAABAgAAAB9Tb3JyeSwgaW5zdWZmaWNpZW50IHRva2VuIG9mZmVyCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAASZ2V0S2V5SXRlbVN1cHBsaWVyAAAAAQUAAAAEaXRlbQUAAAAIc3VwcGxpZXIJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAABhnZXRLZXlCYWxhbmNlUXR5U3VwcGxpZXIAAAABBQAAAARpdGVtBQAAAAlwcmVJY29RdHkJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgIAAAAjUHJlY2lvX05vbWluYWxfZGVfMSB0b2tlbl9jQml0Q08yOl8JAQAAABdnZXRLZXlJdGVtUHJpY2VTdXBwbGllcgAAAAEFAAAABGl0ZW0FAAAACG5vbVByaWNlCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAaZ2V0S2V5SXRlbURpc2NvdW50U3VwcGxpZXIAAAABBQAAAARpdGVtBQAAABZkaXNjb3VudFByZUljb1N1cHBsaWVyCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAOZ2V0S2V5SXRlbURhdGEAAAABBQAAAARpdGVtBQAAAAxzdXBwbGllckRhdGEFAAAAA25pbAAAAAFpAQAAAA1QdXJjaGFzZVRva2VuAAAAAwAAAARpdGVtAAAAC3Byb2plY3ROYW1lAAAACHVzZXJEYXRhBAAAAANwbXQJAQAAAAdleHRyYWN0AAAAAQgFAAAAAWkAAAAHcGF5bWVudAMJAQAAAAlpc0RlZmluZWQAAAABCAUAAAADcG10AAAAB2Fzc2V0SWQJAAACAAAAAQIAAAAseW91IGNhbiBhZHF1aXJlIGNCaXRDTzIgb25seSBieSBXYXZlcyB0b2tlbnMEAAAAB2FjY291bnQJAQAAABRnZXRWYWx1ZUl0ZW1TdXBwbGllcgAAAAEFAAAABGl0ZW0EAAAACmN1cnJlbnRRdHkEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwUAAAAHYWNjb3VudAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhBQAAAAhzdGFydFF0eQQAAAALdXNlckFkZHJlc3MJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwQAAAAPYnV5ZXJUb2tlblByaWNlCQAAaQAAAAIJAABoAAAAAgUAAAAIbm9tUHJpY2UJAABlAAAAAgAAAAAAAAAAZAUAAAAWZGlzY291bnRQcmVJY29TdXBwbGllcgAAAAAAAAAAZAQAAAALb3JkZXJBbW91bnQJAABpAAAAAggFAAAAA3BtdAAAAAZhbW91bnQFAAAAD2J1eWVyVG9rZW5QcmljZQQAAAAGbmV3UXR5CQAAZQAAAAIFAAAACmN1cnJlbnRRdHkFAAAAC29yZGVyQW1vdW50BAAAAAt0b3RhbEFtb3VudAkAAGgAAAACBQAAAAtvcmRlckFtb3VudAUAAAAPYnV5ZXJUb2tlblByaWNlAwkAAGYAAAACBQAAAAt0b3RhbEFtb3VudAgFAAAAA3BtdAAAAAZhbW91bnQJAAACAAAAAQIAAAA2UGF5bWVudCBBbW91bnQgY2Fubm90IGJlIGxlc3MgdGhhbiBpdGVtIFB1cmNoYXNlIE9yZGVyAwkAAGYAAAACCAUAAAADcG10AAAABmFtb3VudAUAAAALdG90YWxBbW91bnQJAAACAAAAAQIAAAA3UGF5bWVudCBBbW91bnQgY2FuJ3QgYmUgaGlnaGVyIHRoYW4gaXRlbSBQdXJjaGFzZSBPcmRlcgkBAAAADFNjcmlwdFJlc3VsdAAAAAIJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAABVnZXRLZXlVc2VySXRlbUNvdW50ZXIAAAACBQAAAAt1c2VyQWRkcmVzcwUAAAAEaXRlbQkAAGQAAAACCQEAAAAXZ2V0VmFsdWVVc2VySXRlbUNvdW50ZXIAAAACBQAAAAt1c2VyQWRkcmVzcwUAAAAEaXRlbQAAAAAAAAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAEmdldEtleUl0ZW1TdXBwbGllcgAAAAEFAAAABGl0ZW0FAAAAC3Byb2plY3ROYW1lCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAASZ2V0S2V5SXRlbVVzZXJEYXRhAAAAAQUAAAAEaXRlbQUAAAAIdXNlckRhdGEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAICAAAAHkNhbnRpZGFkX2RlX3Rva2Vuc19hX2NvbXByYXI6XwUAAAALb3JkZXJBbW91bnQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgIAAAAZSW52ZXN0bWVudF9BbW91bnQsX3dhdmVzXwkBAAAAEWdldEtleVBheW1lbnRVc2VyAAAAAQUAAAAEaXRlbQUAAAALdG90YWxBbW91bnQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgIAAAAbUGFnb19lbl9fd2F2ZXNfZGVsX0ludmVyc29yCQEAAAARZ2V0S2V5QmFsYW5jZVVzZXIAAAABBQAAAARpdGVtCAUAAAADcG10AAAABmFtb3VudAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACCQABLAAAAAICAAAAEFJlcXVlc3RfU3RhdHVzOl8FAAAAC3VzZXJBZGRyZXNzAgAAAAFfAgAAAARzb2xkCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAOVXNlcl9CYWxhbmNlOl8JAQAAABRnZXRLZXlCYWxhbmNlUXR5VXNlcgAAAAEFAAAABGl0ZW0CAAAAAV8FAAAAC29yZGVyQW1vdW50CQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAICAAAAGVNhbGRvX3Rva2Vuc19kZWxfUHJveWVjdG8JAQAAABhnZXRLZXlCYWxhbmNlUXR5U3VwcGxpZXIAAAABBQAAAARpdGVtBQAAAAZuZXdRdHkJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgIAAAAYU2FsZG9fd2F2ZXNfZGVsX3ZlbmRlZG9yCQEAAAAVZ2V0S2V5QmFsYW5jZVN1cHBsaWVyAAAAAQUAAAAHYWNjb3VudAkAAGQAAAACCQEAAAAXZ2V0VmFsdWVCYWxhbmNlU3VwcGxpZXIAAAABBQAAAAdhY2NvdW50CAUAAAADcG10AAAABmFtb3VudAUAAAADbmlsCQEAAAALVHJhbnNmZXJTZXQAAAABBQAAAANuaWwAAAABAAAAAnR4AQAAAAZ2ZXJpZnkAAAAABAAAAAckbWF0Y2gwBQAAAAJ0eAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAUU2V0U2NyaXB0VHJhbnNhY3Rpb24EAAAAAXQFAAAAByRtYXRjaDAJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAAABQAAAA5Pd25lckVjb1B1YktleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAPRGF0YVRyYW5zYWN0aW9uBAAAAAFkBQAAAAckbWF0Y2gwBgMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAATVHJhbnNmZXJUcmFuc2FjdGlvbgQAAAACdHgFAAAAByRtYXRjaDAGAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAABNFeGNoYW5nZVRyYW5zYWN0aW9uBAAAAAJ0eAUAAAAHJG1hdGNoMAQAAAAJd2l0aFdhdmVzAwkBAAAAASEAAAABCQEAAAAJaXNEZWZpbmVkAAAAAQgICAUAAAACdHgAAAAJc2VsbE9yZGVyAAAACWFzc2V0UGFpcgAAAApwcmljZUFzc2V0BgkBAAAAASEAAAABCQEAAAAJaXNEZWZpbmVkAAAAAQgICAUAAAACdHgAAAAJc2VsbE9yZGVyAAAACWFzc2V0UGFpcgAAAAthbW91bnRBc3NldAUAAAAJd2l0aFdhdmVzAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAABdJbnZva2VTY3JpcHRUcmFuc2FjdGlvbgQAAAABYwUAAAAHJG1hdGNoMAYHVCL7jg==", "chainId": 84, "height": 902796, "spentComplexity": 0 } View: original | compacted Prev: CvbEKPABuvZ6ARxhi2SkzVXjkgkhT2nJmVsdauMkjoKS Next: 8NoNFDidy3yoA3LNMVCpQ4fgb2C1GfJ3AwAiGP5JVAEz Diff:
OldNewDifferences
144144 then throw("you can adquire cBitCO2 only by Waves tokens")
145145 else {
146146 let account = getValueItemSupplier(item)
147- let currentQty = getValueBalanceQtySupplier(item)
147+ let currentQty = match getInteger(this, account) {
148+ case a: Int =>
149+ a
150+ case _ =>
151+ startQty
152+ }
148153 let userAddress = toBase58String(i.caller.bytes)
149154 let buyerTokenPrice = ((nomPrice * (100 - discountPreIcoSupplier)) / 100)
150155 let orderAmount = (pmt.amount / buyerTokenPrice)
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let cBitCO2 = base58'ETbtNp6MBuSM9EfjmLDwctrYEBBiq8CZ7ti7zbwTktry'
55
66 let startQty = 332800
77
88 let nomPrice = 100000000
99
1010 let discountPreIcoSupplier = 12
1111
1212 let OwnerEcoPubKey = base58'4AHsCbS9QYVdKNvxrPWwsMwwy3KqXaCMXeAscExJZk9L'
1313
1414 let wvs = 100000000
1515
1616 let NONE = "none"
1717
1818 let issuer = Address(base58'3N8RGScPyKYySaXd5Z3VcpnttH2uBeMpSy4')
1919
2020 func getNumberByKey (key) = {
2121 let num = match getInteger(this, key) {
2222 case a: Int =>
2323 a
2424 case _ =>
2525 0
2626 }
2727 num
2828 }
2929
3030
3131 func getStrByKey (key) = {
3232 let str = match getString(this, key) {
3333 case a: String =>
3434 a
3535 case _ =>
3636 NONE
3737 }
3838 str
3939 }
4040
4141
4242 func getKeyItem (supplier,title) = ("BitCO2:_" + toBase58String(sha256(toBytes((supplier + title)))))
4343
4444
4545 func getKeyItemSupplier (item) = (item + "_Amaz")
4646
4747
4848 func getValueItemSupplier (item) = getStrByKey(getKeyItemSupplier(item))
4949
5050
5151 func getKeyItemQty (item) = (item + "_tok.amount")
5252
5353
5454 func getValueItemQty (item) = getNumberByKey(getKeyItemQty(item))
5555
5656
5757 func getKeyBalanceQtySupplier (item) = (item + "_tokens")
5858
5959
6060 func getValueBalanceQtySupplier (item) = getNumberByKey(getKeyBalanceQtySupplier(item))
6161
6262
6363 func getKeyItemData (item) = (item + "_description")
6464
6565
6666 func getKeyUserItemCounter (user,item) = (((item + "_") + user) + "_cnt")
6767
6868
6969 func getValueUserItemCounter (user,item) = getNumberByKey(getKeyUserItemCounter(user, item))
7070
7171
7272 func getKeyItemUserData (item) = (item + "_userdata")
7373
7474
7575 func getKeyBalanceUser (item) = (item + "_saldwvsuser")
7676
7777
7878 func getValueBalanceUser (item) = getNumberByKey(getKeyBalanceUser(item))
7979
8080
8181 func getKeyPaymentUser (item) = (item + "_user.pmt")
8282
8383
8484 func getValuePaymentUser (item) = getNumberByKey(getKeyPaymentUser(item))
8585
8686
8787 func getKeyBalanceQtyUser (item) = (item + "_saldqty")
8888
8989
9090 func getValueBalanceQtyUser (item) = getNumberByKey(getKeyBalanceQtyUser(item))
9191
9292
9393 func getKeyItemUserOrderQty (item) = (item + "_qty")
9494
9595
9696 func getValueItemUserOrderQty (item) = getNumberByKey(getKeyItemUserOrderQty(item))
9797
9898
9999 func getKeyBalanceSupplier (account) = (account + "_balance")
100100
101101
102102 func getValueBalanceSupplier (account) = getNumberByKey(getKeyBalanceSupplier(account))
103103
104104
105105 func getKeyItemUser (item) = (("name:_" + item) + "_")
106106
107107
108108 func getValueItemUser (item) = getStrByKey(getKeyItemUser(item))
109109
110110
111111 func getKeyItemDiscountSupplier (item) = (("disc:_" + item) + "_")
112112
113113
114114 func getValueItemDiscountSupplier (item) = getNumberByKey(getKeyItemDiscountSupplier(item))
115115
116116
117117 func getKeyItemPriceSupplier (item) = (("Nom:_" + item) + "_")
118118
119119
120120 func getValueItemPriceSupplier (item) = getNumberByKey(getKeyItemPriceSupplier(item))
121121
122122
123123 @Callable(i)
124124 func AddSupplierToken (title,supplierData) = {
125125 let supplier = toBase58String(i.caller.bytes)
126126 let item = getKeyItem(supplier, title)
127127 let preIcoQty = match getInteger(this, supplier) {
128128 case a: Int =>
129129 a
130130 case _ =>
131131 startQty
132132 }
133133 if ((0 >= preIcoQty))
134134 then throw("Sorry, insufficient token offer")
135135 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)])
136136 }
137137
138138
139139
140140 @Callable(i)
141141 func PurchaseToken (item,projectName,userData) = {
142142 let pmt = extract(i.payment)
143143 if (isDefined(pmt.assetId))
144144 then throw("you can adquire cBitCO2 only by Waves tokens")
145145 else {
146146 let account = getValueItemSupplier(item)
147- let currentQty = getValueBalanceQtySupplier(item)
147+ let currentQty = match getInteger(this, account) {
148+ case a: Int =>
149+ a
150+ case _ =>
151+ startQty
152+ }
148153 let userAddress = toBase58String(i.caller.bytes)
149154 let buyerTokenPrice = ((nomPrice * (100 - discountPreIcoSupplier)) / 100)
150155 let orderAmount = (pmt.amount / buyerTokenPrice)
151156 let newQty = (currentQty - orderAmount)
152157 let totalAmount = (orderAmount * buyerTokenPrice)
153158 if ((totalAmount > pmt.amount))
154159 then throw("Payment Amount cannot be less than item Purchase Order")
155160 else if ((pmt.amount > totalAmount))
156161 then throw("Payment Amount can't be higher than item Purchase Order")
157162 else ScriptResult(WriteSet([DataEntry(getKeyUserItemCounter(userAddress, item), (getValueUserItemCounter(userAddress, item) + 1)), DataEntry(getKeyItemSupplier(item), projectName), 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)), newQty), DataEntry(("Saldo_waves_del_vendedor" + getKeyBalanceSupplier(account)), (getValueBalanceSupplier(account) + pmt.amount))]), TransferSet(nil))
158163 }
159164 }
160165
161166
162167 @Verifier(tx)
163168 func verify () = match tx {
164169 case t: SetScriptTransaction =>
165170 sigVerify(tx.bodyBytes, tx.proofs[0], OwnerEcoPubKey)
166171 case d: DataTransaction =>
167172 true
168173 case tx: TransferTransaction =>
169174 true
170175 case tx: ExchangeTransaction =>
171176 let withWaves = if (!(isDefined(tx.sellOrder.assetPair.priceAsset)))
172177 then true
173178 else !(isDefined(tx.sellOrder.assetPair.amountAsset))
174179 withWaves
175180 case c: InvokeScriptTransaction =>
176181 true
177182 case _ =>
178183 false
179184 }
180185

github/deemru/w8io/026f985 
103.84 ms