tx · GKUB4z2ctU5hWWnHDoAPSbjLmamAnMPHvLQfRoLb7kVG

3N9GKCsktAL7oPFmaKsgPBoDfu3ijk23Vmm:  -0.01400000 Waves

2020.03.20 23:23 [918134] smart account 3N9GKCsktAL7oPFmaKsgPBoDfu3ijk23Vmm > SELF 0.00000000 Waves

{ "type": 13, "id": "GKUB4z2ctU5hWWnHDoAPSbjLmamAnMPHvLQfRoLb7kVG", "fee": 1400000, "feeAssetId": null, "timestamp": 1584735819762, "version": 1, "sender": "3N9GKCsktAL7oPFmaKsgPBoDfu3ijk23Vmm", "senderPublicKey": "BjzUYgMDny7cYArZdjtnVo62UoVZKiCEeCoKYFnevrWU", "proofs": [ "UaevpDgiZ26ehF6z5Q4ibojPxUYQ5xL8ba2ZuuxRwdMtepbNjvyhENUyunwoeSLvcdcxvpzQb2ogViT2F96DTPr" ], "script": "base64:AAIDAAAAAAAAABYIARIDCgEBEgcKBQgICAEBEgQKAggBAAAAGAAAAAAHYUJpdENPMgEAAAAgx/h6AJ03UJ8qMmy7JIhz3VjOE4OL3ofCGi0oG2fBKJYAAAAACHN0YXJ0UXR5AAAAAAAAAknwAAAAAAhub21QcmljZQAAAAAABfXhAAAAAAAETk9ORQIAAAAEbm9uZQAAAAALT3duZXJQdWJLZXkBAAAAIJ+YQBeV0x/8GNlJbr9kR/uTmvTPi2KwfwbDWc0arYRJAAAAAAZpc3N1ZXIJAQAAAAdBZGRyZXNzAAAAAQEAAAAaAVTUPeuO2Y1p2TpK+OH14WsDuVCV2jcMFFQBAAAADmdldE51bWJlckJ5S2V5AAAAAQAAAANrZXkEAAAAA251bQQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzBQAAAANrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAUAAAADbnVtAQAAAAtnZXRTdHJCeUtleQAAAAEAAAADa2V5BAAAAANzdHIEAAAAByRtYXRjaDAJAAQdAAAAAgUAAAAEdGhpcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEFAAAABE5PTkUFAAAAA3N0cgEAAAAKZ2V0S2V5SXRlbQAAAAIAAAAIc3VwcGxpZXIAAAAFdGl0bGUJAAEsAAAAAgIAAAAPQml0LUNPMl90b2tlbjogCQACWAAAAAEJAAH3AAAAAQkAAZsAAAABCQABLAAAAAIFAAAACHN1cHBsaWVyBQAAAAV0aXRsZQEAAAASZ2V0S2V5SXRlbVN1cHBsaWVyAAAAAQAAAARpdGVtCQABLAAAAAIFAAAABGl0ZW0CAAAAGl90b19BbWF6b25pYW5fQ29uc2VydmF0aW9uAQAAABRnZXRWYWx1ZUl0ZW1TdXBwbGllcgAAAAEAAAAEaXRlbQkBAAAAC2dldFN0ckJ5S2V5AAAAAQkBAAAAEmdldEtleUl0ZW1TdXBwbGllcgAAAAEFAAAABGl0ZW0BAAAAGGdldEtleUJhbGFuY2VRdHlTdXBwbGllcgAAAAEAAAAEaXRlbQIAAAAVT2ZmZXJlZF9RdHksIGJhbGFuY2U6AQAAABpnZXRWYWx1ZUJhbGFuY2VRdHlTdXBwbGllcgAAAAEAAAAEaXRlbQkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAGGdldEtleUJhbGFuY2VRdHlTdXBwbGllcgAAAAEFAAAABGl0ZW0BAAAAFWdldEtleUJhbGFuY2VTdXBwbGllcgAAAAEAAAAIc3VwcGxpZXICAAAAFlNlbGxlcl9CYWxhbmNlLF93YXZlczoBAAAAF2dldFZhbHVlQmFsYW5jZVN1cHBsaWVyAAAAAQAAAAhzdXBwbGllcgkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAFWdldEtleUJhbGFuY2VTdXBwbGllcgAAAAEFAAAACHN1cHBsaWVyAQAAABVnZXRLZXlVc2VySXRlbUNvdW50ZXIAAAACAAAABHVzZXIAAAAEaXRlbQIAAAAKT3JkZXJf4oSWOgEAAAAXZ2V0VmFsdWVVc2VySXRlbUNvdW50ZXIAAAACAAAABHVzZXIAAAAEaXRlbQkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAFWdldEtleVVzZXJJdGVtQ291bnRlcgAAAAIFAAAABHVzZXIFAAAABGl0ZW0BAAAADmdldEtleUl0ZW1Vc2VyAAAAAQAAAARpdGVtAgAAAAlVc2VyTmFtZToBAAAAEGdldFZhbHVlSXRlbVVzZXIAAAABAAAABGl0ZW0JAQAAAAtnZXRTdHJCeUtleQAAAAEJAQAAAA5nZXRLZXlJdGVtVXNlcgAAAAEFAAAABGl0ZW0BAAAAEmdldEtleUl0ZW1Vc2VyRGF0YQAAAAEAAAAEaXRlbQIAAAAMVXNlckNvdW50cnk6AQAAABZnZXRLZXlJdGVtRGlzY291bnRVc2VyAAAAAQAAAARpdGVtAgAAABBVc2VyRGlzY291bnQsXyU6AQAAABhnZXRWYWx1ZUl0ZW1EaXNjb3VudFVzZXIAAAABAAAABGl0ZW0JAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAABZnZXRLZXlJdGVtRGlzY291bnRVc2VyAAAAAQUAAAAEaXRlbQEAAAAWZ2V0S2V5SXRlbVVzZXJPcmRlclF0eQAAAAEAAAAEaXRlbQIAAAAST3JkZXJfcXR5LF90b2tl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AAALdXNlckFkZHJlc3MFAAAABGl0ZW0JAABkAAAAAgkBAAAAF2dldFZhbHVlVXNlckl0ZW1Db3VudGVyAAAAAgUAAAALdXNlckFkZHJlc3MFAAAABGl0ZW0AAAAAAAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAABhnZXRLZXlCYWxhbmNlUXR5U3VwcGxpZXIAAAABBQAAAARpdGVtCQAAZQAAAAIFAAAACXByZUljb1F0eQUAAAAIb3JkZXJRdHkJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAAA5nZXRLZXlJdGVtVXNlcgAAAAEFAAAABGl0ZW0FAAAACHVzZXJOYW1lCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAASZ2V0S2V5SXRlbVVzZXJEYXRhAAAAAQUAAAAEaXRlbQUAAAAIdXNlckRhdGEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAABZnZXRLZXlJdGVtRGlzY291bnRVc2VyAAAAAQUAAAAEaXRlbQUAAAAMdXNlckRpc2NvdW50CQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAWZ2V0S2V5SXRlbVVzZXJPcmRlclF0eQAAAAEFAAAABGl0ZW0FAAAACG9yZGVyUXR5CQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAICAAAAGlVzZXJQcmljZV8xX3Rva2VuLF93YXZlczpfBQAAAAt1c2VyQWRkcmVzcwUAAAAPYnV5ZXJUb2tlblByaWNlCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAICAAAAF1BheW1lbnRfYW1vdW50LF93YXZlczpfBQAAAAt1c2VyQWRkcmVzcwUAAAALdG90YWxBbW91bnQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgIAAAAOT3JkZXJfU3RhdHVzOl8FAAAAC3VzZXJBZGRyZXNzAgAAAAljb25maXJtZWQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAABVnZXRLZXlCYWxhbmNlU3VwcGxpZXIAAAABBQAAAAhzdXBwbGllcgkAAGQAAAACBQAAAA9iYWxhbmNlU3VwcGxpZXIIBQAAAANwbXQAAAAGYW1vdW50BQAAAANuaWwJAQAAAAtUcmFuc2ZlclNldAAAAAEJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAHEBleHRyVXNlcihhZGRyZXNzRnJvbVN0cmluZykAAAABBQAAAAt1c2VyQWRkcmVzcwUAAAAIb3JkZXJRdHkFAAAAB2FCaXRDTzIFAAAAA25pbAAAAAFpAQAAAAh3aXRoZHJhdwAAAAIAAAAEaXRlbQAAAAZhbW91bnQEAAAAC3VzZXJBZGRyZXNzCQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMEAAAACHN1cHBsaWVyBAAAAAckbWF0Y2gwCQAEHQAAAAIFAAAABHRoaXMJAQAAABJnZXRLZXlJdGVtU3VwcGxpZXIAAAABBQAAAARpdGVtAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEFAAAABE5PTkUEAAAACXByZUljb1F0eQQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzCQEAAAAYZ2V0S2V5QmFsYW5jZVF0eVN1cHBsaWVyAAAAAQUAAAAEaXRlbQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhBQAAAAhzdGFydFF0eQQAAAAJbmV3QW1vdW50CQAAZQAAAAIFAAAACXByZUljb1F0eQUAAAAGYW1vdW50AwkAAGYAAAACAAAAAAAAAAAABQAAAAZhbW91bnQJAAACAAAAAQIAAAAeQ2FuJ3Qgd2l0aGRyYXcgbmVnYXRpdmUgYW1vdW50AwkAAGYAAAACAAAAAAAAAAAABQAAAAluZXdBbW91bnQJAAACAAAAAQIAAAAfTm90IGVub3VnaHQgL3N1ZmljaWVudGUgYmFsYW5jZQkBAAAADFNjcmlwdFJlc3VsdAAAAAIJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAABGl0ZW0FAAAACW5ld0Ftb3VudAUAAAADbmlsCQEAAAALVHJhbnNmZXJTZXQAAAABCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMIBQAAAAFpAAAABmNhbGxlcgUAAAAGYW1vdW50BQAAAAdhQml0Q08yBQAAAANuaWwAAAABAAAAAnR4AQAAAAZ2ZXJpZnkAAAAABAAAAAckbWF0Y2gwBQAAAAJ0eAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAUU2V0U2NyaXB0VHJhbnNhY3Rpb24EAAAAAXQFAAAAByRtYXRjaDAJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAAABQAAAAtPd25lclB1YktleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAPRGF0YVRyYW5zYWN0aW9uBAAAAAFkBQAAAAckbWF0Y2gwBgMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAATVHJhbnNmZXJUcmFuc2FjdGlvbgQAAAACdHgFAAAAByRtYXRjaDAEAAAACXJlY2lwaWVudAkAAlgAAAABCAkABCQAAAABCAUAAAACdHgAAAAJcmVjaXBpZW50AAAABWJ5dGVzAwkAAAAAAAACCAUAAAACdHgAAAAGc2VuZGVyBQAAAAZpc3N1ZXIGCQAAAgAAAAECAAAAIFlvdSBjYW4ndCB0cmFuc2ZlcnJlZCB0aGlzIHRva2VuB2pJkJY=", "chainId": 84, "height": 918134, "spentComplexity": 0 } View: original | compacted Prev: z1ee8qEkJGEi92t1LHqzy2qSXDfhkTgS12HtkKZrcqC Next: BbqMRkVoNxEV9oUmRXZ9Ckq3bJeDafhEF46b81ngcdiu Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let aBitCO2 = base58'ETbtNp6MBuSM9EfjmLDwctrYEBBiq8CZ7ti7zbwTktry'
55
66 let startQty = 150000
77
88 let nomPrice = 100000000
99
1010 let NONE = "none"
1111
1212 let OwnerPubKey = base58'BjzUYgMDny7cYArZdjtnVo62UoVZKiCEeCoKYFnevrWU'
1313
1414 let issuer = Address(base58'3N9GKCsktAL7oPFmaKsgPBoDfu3ijk23Vmm')
1515
1616 func getNumberByKey (key) = {
1717 let num = match getInteger(this, key) {
1818 case a: Int =>
1919 a
2020 case _ =>
2121 0
2222 }
2323 num
2424 }
2525
2626
2727 func getStrByKey (key) = {
2828 let str = match getString(this, key) {
2929 case a: String =>
3030 a
3131 case _ =>
3232 NONE
3333 }
3434 str
3535 }
3636
3737
3838 func getKeyItem (supplier,title) = ("Bit-CO2_token: " + toBase58String(sha256(toBytes((supplier + title)))))
3939
4040
4141 func getKeyItemSupplier (item) = (item + "_to_Amazonian_Conservation")
4242
4343
4444 func getValueItemSupplier (item) = getStrByKey(getKeyItemSupplier(item))
4545
4646
4747 func getKeyBalanceQtySupplier (item) = "Offered_Qty, balance:"
4848
4949
5050 func getValueBalanceQtySupplier (item) = getNumberByKey(getKeyBalanceQtySupplier(item))
5151
5252
5353 func getKeyBalanceSupplier (supplier) = "Seller_Balance,_waves:"
5454
5555
5656 func getValueBalanceSupplier (supplier) = getNumberByKey(getKeyBalanceSupplier(supplier))
5757
5858
5959 func getKeyUserItemCounter (user,item) = "Order_№:"
6060
6161
6262 func getValueUserItemCounter (user,item) = getNumberByKey(getKeyUserItemCounter(user, item))
6363
6464
6565 func getKeyItemUser (item) = "UserName:"
6666
6767
6868 func getValueItemUser (item) = getStrByKey(getKeyItemUser(item))
6969
7070
7171 func getKeyItemUserData (item) = "UserCountry:"
7272
7373
7474 func getKeyItemDiscountUser (item) = "UserDiscount,_%:"
7575
7676
7777 func getValueItemDiscountUser (item) = getNumberByKey(getKeyItemDiscountUser(item))
7878
7979
8080 func getKeyItemUserOrderQty (item) = "Order_qty,_tokens:"
8181
8282
8383 func getValueItemUserOrderQty (item) = getNumberByKey(getKeyItemUserOrderQty(item))
8484
8585
8686 @Callable(i)
8787 func deposit (amount) = {
8888 let pmt = extract(i.payment)
8989 if ((pmt.assetId != aBitCO2))
9090 then throw("Use cBitCO2 tokens only for the wallet deposit")
9191 else {
9292 let supplier = toBase58String(i.caller.bytes)
9393 let currentAmount = match getInteger(this, supplier) {
9494 case a: Int =>
9595 a
9696 case _ =>
9797 startQty
9898 }
9999 let newAmount = (currentAmount + pmt.amount)
100100 WriteSet([DataEntry(supplier, newAmount)])
101101 }
102102 }
103103
104104
105105
106106 @Callable(i)
107107 func purchase (item,userName,userData,userDiscount,orderQty) = {
108108 let pmt = extract(i.payment)
109109 if (isDefined(pmt.assetId))
110110 then throw("you can adquire cBitCO2 only by Waves tokens")
111111 else {
112112 let supplier = match getString(this, getKeyItemSupplier(item)) {
113113 case a: String =>
114114 a
115115 case _ =>
116116 NONE
117117 }
118118 let preIcoQty = match getInteger(this, getKeyBalanceQtySupplier(item)) {
119119 case a: Int =>
120120 a
121121 case _ =>
122122 startQty
123123 }
124124 let balanceSupplier = match getInteger(this, getKeyBalanceSupplier(supplier)) {
125125 case a: Int =>
126126 a
127127 case _ =>
128128 0
129129 }
130130 let userAddress = toBase58String(i.caller.bytes)
131131 let buyerTokenPrice = ((nomPrice * (100 - userDiscount)) / 100)
132132 let totalAmount = (orderQty * buyerTokenPrice)
133133 if ((totalAmount > pmt.amount))
134134 then throw("Payment Amount cannot be less than item Purchase Order")
135135 else if ((pmt.amount > totalAmount))
136136 then throw("Payment Amount can't be higher than item Purchase Order")
137137 else ScriptResult(WriteSet([DataEntry(getKeyUserItemCounter(userAddress, item), (getValueUserItemCounter(userAddress, item) + 1)), DataEntry(getKeyBalanceQtySupplier(item), (preIcoQty - orderQty)), DataEntry(getKeyItemUser(item), userName), DataEntry(getKeyItemUserData(item), userData), DataEntry(getKeyItemDiscountUser(item), userDiscount), DataEntry(getKeyItemUserOrderQty(item), orderQty), DataEntry(("UserPrice_1_token,_waves:_" + userAddress), buyerTokenPrice), DataEntry(("Payment_amount,_waves:_" + userAddress), totalAmount), DataEntry(("Order_Status:_" + userAddress), "confirmed"), DataEntry(getKeyBalanceSupplier(supplier), (balanceSupplier + pmt.amount))]), TransferSet([ScriptTransfer(addressFromStringValue(userAddress), orderQty, aBitCO2)]))
138138 }
139139 }
140140
141141
142142
143143 @Callable(i)
144144 func withdraw (item,amount) = {
145145 let userAddress = toBase58String(i.caller.bytes)
146146 let supplier = match getString(this, getKeyItemSupplier(item)) {
147147 case a: String =>
148148 a
149149 case _ =>
150150 NONE
151151 }
152152 let preIcoQty = match getInteger(this, getKeyBalanceQtySupplier(item)) {
153153 case a: Int =>
154154 a
155155 case _ =>
156156 startQty
157157 }
158158 let newAmount = (preIcoQty - amount)
159159 if ((0 > amount))
160160 then throw("Can't withdraw negative amount")
161161 else if ((0 > newAmount))
162162 then throw("Not enought /suficiente balance")
163163 else ScriptResult(WriteSet([DataEntry(item, newAmount)]), TransferSet([ScriptTransfer(i.caller, amount, aBitCO2)]))
164164 }
165165
166166
167167 @Verifier(tx)
168168 func verify () = match tx {
169169 case t: SetScriptTransaction =>
170170 sigVerify(tx.bodyBytes, tx.proofs[0], OwnerPubKey)
171171 case d: DataTransaction =>
172172 true
173173 case tx: TransferTransaction =>
174174 let recipient = toBase58String(addressFromRecipient(tx.recipient).bytes)
175175 if ((tx.sender == issuer))
176176 then true
177177 else throw("You can't transferred this token")
178178 case _ =>
179179 false
180180 }
181181

github/deemru/w8io/c3f4982 
47.38 ms