tx · AWE2Puoc6oeGKB8TjoakwSxfg7P3nEUdgrgzjf9xvHYk

3N8RGScPyKYySaXd5Z3VcpnttH2uBeMpSy4:  -0.01400000 Waves

2020.03.10 13:06 [902893] smart account 3N8RGScPyKYySaXd5Z3VcpnttH2uBeMpSy4 > SELF 0.00000000 Waves

{ "type": 13, "id": "AWE2Puoc6oeGKB8TjoakwSxfg7P3nEUdgrgzjf9xvHYk", "fee": 1400000, "feeAssetId": null, "timestamp": 1583834525896, "version": 1, "sender": "3N8RGScPyKYySaXd5Z3VcpnttH2uBeMpSy4", "senderPublicKey": "4AHsCbS9QYVdKNvxrPWwsMwwy3KqXaCMXeAscExJZk9L", "proofs": [ "3vAehheJFr5db7nFiA7HVHyaHycRrgSeR4JodUsqRqJBdGgdC7M5YPAkFdrCcC7L9xzmzSWCD6sRVvnYRyHJsFn" ], "script": "base64:AAIDAAAAAAAAABAIARIFCgMIAQgSBQoDCAgIAAAAJQAAAAAHYUJpdENPMgEAAAAgx/h6AJ03UJ8qMmy7JIhz3VjOE4OL3ofCGi0oG2fBKJYAAAAACHN0YXJ0UXR5AAAAAAAABRQAAAAAAAhub21QcmljZQAAAAAABfXhAAAAAAAWZGlzY291bnRQcmVJY29TdXBwbGllcgAAAAAAAAAADAAAAAAOT3duZXJFY29QdWJLZXkBAAAAIC70W6NACRoO8DcwW0R46ze+bNGLr0tg3cAkNP8WNkAfAAAAAAN3dnMAAAAAAAX14QAAAAAABE5PTkUCAAAABG5vbmUAAAAABmlzc3VlcgkBAAAAB0FkZHJlc3MAAAABAQAAABoBVMr3Oz7nL9FV4g+t+EWzLN77jdANRWt9bwEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABAAAAA2tleQQAAAADbnVtBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABQAAAANudW0BAAAAC2dldFN0ckJ5S2V5AAAAAQAAAANrZXkEAAAAA3N0cgQAAAAHJG1hdGNoMAkABB0AAAACBQAAAAR0aGlzBQAAAANrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQUAAAAETk9ORQUAAAADc3RyAQAAAApnZXRLZXlJdGVtAAAAAgAAAAhzdXBwbGllcgAAAAV0aXRsZQkAASwAAAACAgAAAAhCaXRDTzI6XwkAAlgAAAABCQAB9wAAAAEJAAGbAAAAAQkAASwAAAACBQAAAAhzdXBwbGllcgUAAAAFdGl0bGUBAAAAEmdldEtleUl0ZW1TdXBwbGllcgAAAAEAAAAEaXRlbQkAASwAAAACBQAAAARpdGVtAgAAAAVfQW1hegEAAAAUZ2V0VmFsdWVJdGVtU3VwcGxpZXIAAAABAAAABGl0ZW0JAQAAAAtnZXRTdHJCeUtleQAAAAEJAQAAABJnZXRLZXlJdGVtU3VwcGxpZXIAAAABBQAAAARpdGVtAQAAAA1nZXRLZXlJdGVtUXR5AAAAAQAAAARpdGVtCQABLAAAAAIFAAAABGl0ZW0CAAAAC190b2suYW1vdW50AQAAAA9nZXRWYWx1ZUl0ZW1RdHkAAAABAAAABGl0ZW0JAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAAA1nZXRLZXlJdGVtUXR5AAAAAQUAAAAEaXRlbQEAAAAYZ2V0S2V5QmFsYW5jZVF0eVN1cHBsaWVyAAAAAQAAAARpdGVtCQABLAAAAAIFAAAABGl0ZW0CAAAAB190b2tlbnMBAAAAGmdldFZhbHVlQmFsYW5jZVF0eVN1cHBsaWVyAAAAAQAAAARpdGVtCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAAYZ2V0S2V5QmFsYW5jZVF0eVN1cHBsaWVyAAAAAQUAAAAEaXRlbQEAAAAOZ2V0S2V5SXRlbURhdGEAAAABAAAABGl0ZW0JAAEsAAAAAgUAAAAEaXRlbQIAAAAMX2Rlc2NyaXB0aW9uAQAAABVnZXRLZXlVc2VySXRlbUNvdW50ZXIAAAACAAAABHVzZXIAAAAEaXRlbQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgUAAAAEaXRlbQIAAAABXwUAAAAEdXNlcgIAAAAEX2NudAEAAAAXZ2V0VmFsdWVVc2VySXRlbUNvdW50ZXIAAAACAAAABHVzZXIAAAAEaXRlbQkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAFWdldEtleVVzZXJJdGVtQ291bnRlcgAAAAIFAAAABHVzZXIFAAAABGl0ZW0BAAAAEmdldEtleUl0ZW1Vc2VyRGF0YQAAAAEAAAAEaXRlbQkAASwAAAACBQAAAARpdGVtAgAAAAlfdXNlcmRhdGEBAAAAEWdldEtleUJhbGFuY2VVc2VyAAAAAQAAAARpdGVtCQABLAAAAAIFAAAABGl0ZW0CAAAADF9zYWxkd3ZzdXNlcgEAAAATZ2V0VmFsdWVCYWxhbmNlVXNlcgAAAAEAAAAEaXRlbQkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAEWdldEtleUJhbGFuY2VVc2VyAAAAAQUAAAAEaXRlbQEAAAARZ2V0S2V5UGF5bWVudFVzZXIAAAABAAAABGl0ZW0JAAEsAAAAAgUAAAAEaXRlbQIAAAAJX3VzZXIucG10AQAAABNnZXRWYWx1ZVBheW1lbnRVc2VyAAAAAQAAAARpdGVtCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAARZ2V0S2V5UGF5bWVudFVzZXIAAAABBQAAAARpdGVtAQAAABRnZXRLZXlCYWxhbmNlUXR5VXNlcgAAAAEAAAAEaXRlbQkAASwAAAACBQAAAARpdGVtAgAAAAhfc2FsZHF0eQEAAAAWZ2V0VmFsdWVCYWxhbmNlUXR5VXNlcgAAAAEAAAAEaXRlbQkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAFGdldEtleUJhbGFuY2VRdHlVc2VyAAAAAQUAAAAEaXRlbQEAAAAWZ2V0S2V5SXRlbVVzZXJPcmRlclF0eQAAAAEAAAAEaXRlbQkAASwAAAACBQAAAARpdGVtAgAAAARfcXR5AQAAABhnZXRWYWx1ZUl0ZW1Vc2VyT3JkZXJRdHkAAAABAAAABGl0ZW0JAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAABZnZXRLZXlJdGVtVXNlck9yZGVyUXR5AAAAAQUAAAAEaXRlbQEAAAAVZ2V0S2V5QmFsYW5jZVN1cHBsaWVyAAAAAQAAAAhzdXBwbGllcgkAASwAAAACBQAAAAhzdXBwbGllcgIAAAAPX3NlbGxlcl9iYWxhbmNlAQAAABdnZXRWYWx1ZUJhbGFuY2VTdXBwbGllcgAAAAEAAAAHYWNjb3VudAkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAFWdldEtleUJhbGFuY2VTdXBwbGllcgAAAAEFAAAAB2FjY291bnQBAAAADmdldEtleUl0ZW1Vc2VyAAAAAQAAAARpdGVtCQABLAAAAAIJAAEsAAAAAgIAAAAGbmFtZTpfBQAAAARpdGVtAgAAAAFfAQAAABBnZXRWYWx1ZUl0ZW1Vc2VyAAAAAQAAAARpdGVtCQEAAAALZ2V0U3RyQnlLZXkAAAABCQEAAAAOZ2V0S2V5SXRlbVVzZXIAAAABBQAAAARpdGVtAQAAABpnZXRLZXlJdGVtRGlzY291bnRTdXBwbGllcgAAAAEAAAAEaXRlbQkAASwAAAACCQABLAAAAAICAAAABmRpc2M6XwUAAAAEaXRlbQIAAAABXwEAAAAcZ2V0VmFsdWVJdGVtRGlzY291bnRTdXBwbGllcgAAAAEAAAAEaXRlbQkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAGmdldEtleUl0ZW1EaXNjb3VudFN1cHBsaWVyAAAAAQUAAAAEaXRlbQEAAAAXZ2V0S2V5SXRlbVByaWNlU3VwcGxpZXIAAAABAAAABGl0ZW0JAAEsAAAAAgkAASwAAAACAgAAAAVOb206XwUAAAAEaXRlbQIAAAABXwEAAAAZZ2V0VmFsdWVJdGVtUHJpY2VTdXBwbGllcgAAAAEAAAAEaXRlbQkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAF2dldEtleUl0ZW1QcmljZVN1cHBsaWVyAAAAAQUAAAAEaXRlbQAAAAIAAAABaQEAAAAQQWRkU3VwcGxpZXJUb2tlbgAAAAMAAAAFdGl0bGUAAAAJcHJlSWNvUXR5AAAADHN1cHBsaWVyRGF0YQQAAAAIc3VwcGxpZXIJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwQAAAAEaXRlbQkBAAAACmdldEtleUl0ZW0AAAACBQAAAAhzdXBwbGllcgUAAAAFdGl0bGUDCQAAZwAAAAIAAAAAAAAAAAAFAAAACXByZUljb1F0eQkAAAIAAAABAgAAAB9Tb3JyeSwgaW5zdWZmaWNpZW50IHRva2VuIG9mZmVyCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAASZ2V0S2V5SXRlbVN1cHBsaWVyAAAAAQUAAAAEaXRlbQUAAAAIc3VwcGxpZXIJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgIAAAAOU2FsZG9fdG9rZW5zOl8JAQAAABhnZXRLZXlCYWxhbmNlUXR5U3VwcGxpZXIAAAABBQAAAARpdGVtBQAAAAlwcmVJY29RdHkJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgIAAAAZUHJlY2lvX05vbWluYWxfMV9CaXRDTzI6XwkBAAAAF2dldEtleUl0ZW1QcmljZVN1cHBsaWVyAAAAAQUAAAAEaXRlbQUAAAAIbm9tUHJpY2UJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAABpnZXRLZXlJdGVtRGlzY291bnRTdXBwbGllcgAAAAEFAAAABGl0ZW0FAAAAFmRpc2NvdW50UHJlSWNvU3VwcGxpZXIJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAAA5nZXRLZXlJdGVtRGF0YQAAAAEFAAAABGl0ZW0FAAAADHN1cHBsaWVyRGF0YQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAFWdldEtleUJhbGFuY2VTdXBwbGllcgAAAAEFAAAACHN1cHBsaWVyAAAAAAAAAAAABQAAAANuaWwAAAABaQEAAAANUHVyY2hhc2VUb2tlbgAAAAMAAAAEaXRlbQAAAAtwcm9qZWN0TmFtZQAAAAh1c2VyRGF0YQQAAAADcG10CQEAAAAHZXh0cmFjdAAAAAEIBQAAAAFpAAAAB3BheW1lbnQDCQEAAAAJaXNEZWZpbmVkAAAAAQgFAAAAA3BtdAAAAAdhc3NldElkCQAAAgAAAAECAAAALHlvdSBjYW4gYWRxdWlyZSBjQml0Q08yIG9ubHkgYnkgV2F2ZXMgdG9rZW5zBAAAAAdhY2NvdW50CQEAAAAUZ2V0VmFsdWVJdGVtU3VwcGxpZXIAAAABBQAAAARpdGVtBAAAAAlwcmVJY29RdHkEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkBAAAAGGdldEtleUJhbGFuY2VRdHlTdXBwbGllcgAAAAEFAAAABGl0ZW0DCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQUAAAAIc3RhcnRRdHkEAAAAC3VzZXJBZGRyZXNzCQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMEAAAAD2J1eWVyVG9rZW5QcmljZQkAAGkAAAACCQAAaAAAAAIFAAAACG5vbVByaWNlCQAAZQAAAAIAAAAAAAAAAGQFAAAAFmRpc2NvdW50UHJlSWNvU3VwcGxpZXIAAAAAAAAAAGQEAAAAC29yZGVyQW1vdW50CQAAaQAAAAIIBQAAAANwbXQAAAAGYW1vdW50BQAAAA9idXllclRva2VuUHJpY2UEAAAABm5ld1F0eQkAAGUAAAACBQAAAAlwcmVJY29RdHkFAAAAC29yZGVyQW1vdW50BAAAAAt0b3RhbEFtb3VudAkAAGgAAAACBQAAAAtvcmRlckFtb3VudAUAAAAPYnV5ZXJUb2tlblByaWNlAwkAAGYAAAACBQAAAAt0b3RhbEFtb3VudAgFAAAAA3BtdAAAAAZhbW91bnQJAAACAAAAAQIAAAA2UGF5bWVudCBBbW91bnQgY2Fubm90IGJlIGxlc3MgdGhhbiBpdGVtIFB1cmNoYXNlIE9yZGVyAwkAAGYAAAACCAUAAAADcG10AAAABmFtb3VudAUAAAALdG90YWxBbW91bnQJAAACAAAAAQIAAAA3UGF5bWVudCBBbW91bnQgY2FuJ3QgYmUgaGlnaGVyIHRoYW4gaXRlbSBQdXJjaGFzZSBPcmRlcgkBAAAADFNjcmlwdFJlc3VsdAAAAAIJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAABVnZXRLZXlVc2VySXRlbUNvdW50ZXIAAAACBQAAAAt1c2VyQWRkcmVzcwUAAAAEaXRlbQkAAGQAAAACCQEAAAAXZ2V0VmFsdWVVc2VySXRlbUNvdW50ZXIAAAACBQAAAAt1c2VyQWRkcmVzcwUAAAAEaXRlbQAAAAAAAAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAEmdldEtleUl0ZW1TdXBwbGllcgAAAAEFAAAABGl0ZW0FAAAAC3Byb2plY3ROYW1lCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAASZ2V0S2V5SXRlbVVzZXJEYXRhAAAAAQUAAAAEaXRlbQUAAAAIdXNlckRhdGEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAICAAAAHkNhbnRpZGFkX2RlX3Rva2Vuc19hX2NvbXByYXI6XwUAAAALb3JkZXJBbW91bnQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgIAAAARU3VtYV9hX2ludmVydGlyOl8JAQAAABFnZXRLZXlCYWxhbmNlVXNlcgAAAAEFAAAABGl0ZW0IBQAAAANwbXQAAAAGYW1vdW50CQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAICAAAAEFJlcXVlc3RfU3RhdHVzOl8FAAAAC3VzZXJBZGRyZXNzAgAAAARzb2xkCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAICAAAADlVzZXJfQmFsYW5jZTpfCQEAAAAUZ2V0S2V5QmFsYW5jZVF0eVVzZXIAAAABBQAAAARpdGVtCQAAZAAAAAIJAQAAABZnZXRWYWx1ZUJhbGFuY2VRdHlVc2VyAAAAAQUAAAAEaXRlbQUAAAALb3JkZXJBbW91bnQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgIAAAAOU2FsZG9fdG9rZW5zOl8JAQAAABhnZXRLZXlCYWxhbmNlUXR5U3VwcGxpZXIAAAABBQAAAARpdGVtBQAAAAZuZXdRdHkJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgIAAAAOU2FsZG9fU2VsbGVyOl8JAQAAABVnZXRLZXlCYWxhbmNlU3VwcGxpZXIAAAABBQAAAAdhY2NvdW50CQAAZAAAAAIJAQAAABdnZXRWYWx1ZUJhbGFuY2VTdXBwbGllcgAAAAEFAAAAB2FjY291bnQIBQAAAANwbXQAAAAGYW1vdW50BQAAAANuaWwJAQAAAAtUcmFuc2ZlclNldAAAAAEJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAHEBleHRyVXNlcihhZGRyZXNzRnJvbVN0cmluZykAAAABBQAAAAt1c2VyQWRkcmVzcwUAAAALb3JkZXJBbW91bnQFAAAAB2FCaXRDTzIFAAAAA25pbAAAAAEAAAACdHgBAAAABnZlcmlmeQAAAAAEAAAAByRtYXRjaDAFAAAAAnR4AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAABRTZXRTY3JpcHRUcmFuc2FjdGlvbgQAAAABdAUAAAAHJG1hdGNoMAkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAAFAAAADk93bmVyRWNvUHViS2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAA9EYXRhVHJhbnNhY3Rpb24EAAAAAWQFAAAAByRtYXRjaDAGAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAABNUcmFuc2ZlclRyYW5zYWN0aW9uBAAAAAJ0eAUAAAAHJG1hdGNoMAYDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAE0V4Y2hhbmdlVHJhbnNhY3Rpb24EAAAAAnR4BQAAAAckbWF0Y2gwBAAAAAl3aXRoV2F2ZXMDCQEAAAABIQAAAAEJAQAAAAlpc0RlZmluZWQAAAABCAgIBQAAAAJ0eAAAAAlzZWxsT3JkZXIAAAAJYXNzZXRQYWlyAAAACnByaWNlQXNzZXQGCQEAAAABIQAAAAEJAQAAAAlpc0RlZmluZWQAAAABCAgIBQAAAAJ0eAAAAAlzZWxsT3JkZXIAAAAJYXNzZXRQYWlyAAAAC2Ftb3VudEFzc2V0BQAAAAl3aXRoV2F2ZXMDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAF0ludm9rZVNjcmlwdFRyYW5zYWN0aW9uBAAAAAFjBQAAAAckbWF0Y2gwBgc9V75h", "chainId": 84, "height": 902893, "spentComplexity": 0 } View: original | compacted Prev: 2XQSuNGWvp7kKVcnTwe3PPyEKqqK6ayu1NgW9CBHYTYa Next: 52XBai7eLEAek4cwq7M4q79WGNcm2tDGsaVujEJj9M64 Diff:
OldNewDifferences
9696 func getValueItemUserOrderQty (item) = getNumberByKey(getKeyItemUserOrderQty(item))
9797
9898
99-func getKeyBalanceSupplier (account) = (account + "_balance")
99+func getKeyBalanceSupplier (supplier) = (supplier + "_seller_balance")
100100
101101
102102 func getValueBalanceSupplier (account) = getNumberByKey(getKeyBalanceSupplier(account))
126126 let item = getKeyItem(supplier, title)
127127 if ((0 >= preIcoQty))
128128 then throw("Sorry, insufficient token offer")
129- else WriteSet([DataEntry(getKeyItemSupplier(item), supplier), DataEntry(("Saldo_tokens:_" + getKeyBalanceQtySupplier(item)), preIcoQty), DataEntry(("Precio_Nominal_de_1 token_cBitCO2:_" + getKeyItemPriceSupplier(item)), nomPrice), DataEntry(getKeyItemDiscountSupplier(item), discountPreIcoSupplier), DataEntry(getKeyItemData(item), supplierData), DataEntry(getKeyBalanceQtySupplier(item), preIcoQty)])
129+ else WriteSet([DataEntry(getKeyItemSupplier(item), supplier), DataEntry(("Saldo_tokens:_" + getKeyBalanceQtySupplier(item)), preIcoQty), DataEntry(("Precio_Nominal_1_BitCO2:_" + getKeyItemPriceSupplier(item)), nomPrice), DataEntry(getKeyItemDiscountSupplier(item), discountPreIcoSupplier), DataEntry(getKeyItemData(item), supplierData), DataEntry(getKeyBalanceSupplier(supplier), 0)])
130130 }
131131
132132
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let aBitCO2 = 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
99-func getKeyBalanceSupplier (account) = (account + "_balance")
99+func getKeyBalanceSupplier (supplier) = (supplier + "_seller_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,preIcoQty,supplierData) = {
125125 let supplier = toBase58String(i.caller.bytes)
126126 let item = getKeyItem(supplier, title)
127127 if ((0 >= preIcoQty))
128128 then throw("Sorry, insufficient token offer")
129- else WriteSet([DataEntry(getKeyItemSupplier(item), supplier), DataEntry(("Saldo_tokens:_" + getKeyBalanceQtySupplier(item)), preIcoQty), DataEntry(("Precio_Nominal_de_1 token_cBitCO2:_" + getKeyItemPriceSupplier(item)), nomPrice), DataEntry(getKeyItemDiscountSupplier(item), discountPreIcoSupplier), DataEntry(getKeyItemData(item), supplierData), DataEntry(getKeyBalanceQtySupplier(item), preIcoQty)])
129+ else WriteSet([DataEntry(getKeyItemSupplier(item), supplier), DataEntry(("Saldo_tokens:_" + getKeyBalanceQtySupplier(item)), preIcoQty), DataEntry(("Precio_Nominal_1_BitCO2:_" + getKeyItemPriceSupplier(item)), nomPrice), DataEntry(getKeyItemDiscountSupplier(item), discountPreIcoSupplier), DataEntry(getKeyItemData(item), supplierData), DataEntry(getKeyBalanceSupplier(supplier), 0)])
130130 }
131131
132132
133133
134134 @Callable(i)
135135 func PurchaseToken (item,projectName,userData) = {
136136 let pmt = extract(i.payment)
137137 if (isDefined(pmt.assetId))
138138 then throw("you can adquire cBitCO2 only by Waves tokens")
139139 else {
140140 let account = getValueItemSupplier(item)
141141 let preIcoQty = match getInteger(this, getKeyBalanceQtySupplier(item)) {
142142 case a: Int =>
143143 a
144144 case _ =>
145145 startQty
146146 }
147147 let userAddress = toBase58String(i.caller.bytes)
148148 let buyerTokenPrice = ((nomPrice * (100 - discountPreIcoSupplier)) / 100)
149149 let orderAmount = (pmt.amount / buyerTokenPrice)
150150 let newQty = (preIcoQty - orderAmount)
151151 let totalAmount = (orderAmount * buyerTokenPrice)
152152 if ((totalAmount > pmt.amount))
153153 then throw("Payment Amount cannot be less than item Purchase Order")
154154 else if ((pmt.amount > totalAmount))
155155 then throw("Payment Amount can't be higher than item Purchase Order")
156156 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(("Suma_a_invertir:_" + getKeyBalanceUser(item)), pmt.amount), DataEntry(("Request_Status:_" + userAddress), "sold"), DataEntry(("User_Balance:_" + getKeyBalanceQtyUser(item)), (getValueBalanceQtyUser(item) + orderAmount)), DataEntry(("Saldo_tokens:_" + getKeyBalanceQtySupplier(item)), newQty), DataEntry(("Saldo_Seller:_" + getKeyBalanceSupplier(account)), (getValueBalanceSupplier(account) + pmt.amount))]), TransferSet([ScriptTransfer(addressFromStringValue(userAddress), orderAmount, aBitCO2)]))
157157 }
158158 }
159159
160160
161161 @Verifier(tx)
162162 func verify () = match tx {
163163 case t: SetScriptTransaction =>
164164 sigVerify(tx.bodyBytes, tx.proofs[0], OwnerEcoPubKey)
165165 case d: DataTransaction =>
166166 true
167167 case tx: TransferTransaction =>
168168 true
169169 case tx: ExchangeTransaction =>
170170 let withWaves = if (!(isDefined(tx.sellOrder.assetPair.priceAsset)))
171171 then true
172172 else !(isDefined(tx.sellOrder.assetPair.amountAsset))
173173 withWaves
174174 case c: InvokeScriptTransaction =>
175175 true
176176 case _ =>
177177 false
178178 }
179179

github/deemru/w8io/169f3d6 
44.40 ms