tx · GPTiidx2B6mLzzuvioxeWUVa8MWjGKhvuHiiUD5Hfn5s

3N8iygiXd1v34PPaMSQb34SSrBwGxT2DpGK:  -0.01400000 Waves

2022.08.14 20:44 [2184453] smart account 3N8iygiXd1v34PPaMSQb34SSrBwGxT2DpGK > SELF 0.00000000 Waves

{ "type": 13, "id": "GPTiidx2B6mLzzuvioxeWUVa8MWjGKhvuHiiUD5Hfn5s", "fee": 1400000, "feeAssetId": null, "timestamp": 1660499048392, "version": 2, "chainId": 84, "sender": "3N8iygiXd1v34PPaMSQb34SSrBwGxT2DpGK", "senderPublicKey": "FshLkkgzcLs6iQJ1Z8Nnfhm494tC8xZQczf9iXpZep3Y", "proofs": [ "2ksWkyDHSFfjjFE24qMtATk761a75rejLq3Yipk9eq9eRaP7Sdiof9pPJ3hcRzRLeH1sP7zPLMSdpdHLGhFiB4dH" ], "script": "base64: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AAAqU0FUUyBNaW50aW5nIGlzIGFib3V0IHRvIHJlYWNoIHRoZSBDYXAgb2YgCQABpAAAAAEFAAAADlNBVFNDdXJyZW50Q2FwAgAAADAvMTBeNiBTQVRTLiBQbGVhc2UgUmVkdWNlIHlvdXIgTWludGluZyBPcmRlciBieSAJAAGkAAAAAQUAAAAOUGVuZGluZ01pbnRpbmcCAAAACCBvciBwdXQgCQABpAAAAAEJAABlAAAAAgUAAAAOU0FUU0N1cnJlbnRDYXAFAAAAElByZXZpb3VzSXNzdWVkU0FUUwIAAAAFLzEwXjYJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAElRvdGFsX0lzc3VlZF9TQVRTOgUAAAAPVG90YWxJc3N1ZWRTQVRTCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAABVCYWxhbmNlX01pbnRpbmdfU0FUUzoFAAAADlBlbmRpbmdNaW50aW5nCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAABpUb3RhbF9TQVRTX1Jlc2VydmVfSW5fQlRDOgUAAAAQU0FUU1Jlc2VydmVWYWx1ZQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAZU0FUU19CYWNrdXBfVmFsdWVfSW5fQlRDOgUAAAAPU0FUU0JhY2t1cFByaWNlCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAABNUb3RhbF9GZWVfQ29sbGVjdGVkBQAAAAtGZWVzQ2hhcmdlZAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAJVG90YWx0eG5zBQAAAAl0b3RhbHR4bnMJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgIAAAAHbWVzc2FnZQIAAAAmPGgxPlNBVFMgSXNzdWVkIFN1Y2Nlc3NmdWxseSE8L2gxPjxicj4JAARMAAAAAgkBAAAAB1JlaXNzdWUAAAADBQAAAAtTQVRTQXNzZXRJRAUAAAANTmV3U0FUU1RvVXNlcgYJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAAAWkAAAAGY2FsbGVyCQAAZQAAAAIFAAAADU5ld1NBVFNUb1VzZXIFAAAAC0ZlZXNDaGFyZ2VkBQAAAAtTQVRTQXNzZXRJRAkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADBQAAABNJc3N1ZWZzVE5GZWVBZGRyZXNzBQAAAAtGZWVzQ2hhcmdlZAUAAAALU0FUU0Fzc2V0SUQFAAAAA25pbAAAAAFpAQAAAAlMaXF1aWRhdGUAAAAABAAAAApjdXJyZW50S2V5CQACWAAAAAEIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQQAAAADcG10CQEAAAAFdmFsdWUAAAABCQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAABAAAABJQcmV2aW91c0lzc3VlZFNBVFMJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAABHRoaXMCAAAAElRvdGFsX0lzc3VlZF9TQVRTOgQAAAASUHJldmlvdXNCdXJuZWRTQVRTCQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAR0aGlzAgAAABJUb3RhbF9CdXJuZWRfU0FUUzoEAAAADlNBVFNDdXJyZW50Q2FwCQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAR0aGlzAgAAAA5TQVRTQ3VycmVudENhcAQAAAAPVG90YWxJc3N1ZWRTQVRTCQAAZQAAAAIFAAAAElByZXZpb3VzSXNzdWVkU0FUUwgFAAAAA3BtdAAAAAZhbW91bnQEAAAAD1RvdGFsQnVybmVkU0FUUwkAAGQAAAACBQAAABJQcmV2aW91c0J1cm5lZFNBVFMIBQAAAANwbXQAAAAGYW1vdW50BAAAAA5QZW5kaW5nTWludGluZwkAAGUAAAACBQAAAA5TQVRTQ3VycmVudENhcAUAAAAPVG90YWxJc3N1ZWRTQVRTBAAAABhQcmV2aW91c1NBVFNSZXNlcnZlVmFsdWUJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAABHRoaXMCAAAAGlRvdGFsX1NBVFNfUmVzZXJ2ZV9Jbl9CVEM6BAAAABdQcmV2aW91c1NBVFNCYWNrdXBQcmljZQkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwIAAAAZU0FUU19CYWNrdXBfVmFsdWVfSW5fQlRDOgQAAAASY2FsY3VsYXRlYnVybnZhbHVlCQAAawAAAAMFAAAAF1ByZXZpb3VzU0FUU0JhY2t1cFByaWNlCAUAAAADcG10AAAABmFtb3VudAAAAAAAAAGGoAQAAAAQU0FUU1Jlc2VydmVWYWx1ZQkAAGUAAAACBQAAABhQcmV2aW91c1NBVFNSZXNlcnZlVmFsdWUFAAAAEmNhbGN1bGF0ZWJ1cm52YWx1ZQQAAAAPU0FUU0JhY2t1cFByaWNlCQAAawAAAAMAAAAAAAABhqAFAAAAEFNBVFNSZXNlcnZlVmFsdWUFAAAAD1RvdGFsSXNzdWVkU0FUUwMJAQAAAAIhPQAAAAIIBQAAAANwbXQAAAAHYXNzZXRJZAUAAAALU0FUU0Fzc2V0SUQJAAACAAAAAQkAASwAAAACCQABLAAAAAICAAAAFEtpbmRseSBEZXBvc2l0IE9ubHkgCQACWAAAAAEFAAAAC1NBVFNBc3NldElEAgAAAAggW1NBVFNdLgMJAABmAAAAAgAAAAAAAAATiAgFAAAAA3BtdAAAAAZhbW91bnQJAAACAAAAAQIAAAAtQXR0YWNoIEFtb3VudCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiA1MDAwIFNBVFMuCQAETAAAAAIJAQAAAARCdXJuAAAAAgUAAAALU0FUU0Fzc2V0SUQIBQAAAANwbXQAAAAGYW1vdW50CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAAAlUb3RhbHR4bnMFAAAACXRvdGFsdHhucwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAASVG90YWxfSXNzdWVkX1NBVFM6BQAAAA9Ub3RhbElzc3VlZFNBVFMJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAElRvdGFsX0J1cm5lZF9TQVRTOgUAAAAPVG90YWxCdXJuZWRTQVRTCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAABVCYWxhbmNlX01pbnRpbmdfU0FUUzoFAAAADlBlbmRpbmdNaW50aW5nCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAABpUb3RhbF9TQVRTX1Jlc2VydmVfSW5fQlRDOgUAAAAQU0FUU1Jlc2VydmVWYWx1ZQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAZU0FUU19CYWNrdXBfVmFsdWVfSW5fQlRDOgUAAAAPU0FUU0JhY2t1cFByaWNlCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAICAAAAB21lc3NhZ2UCAAAAKjxoMT5TQVRTIExpcXVpZGF0ZWQgU3VjY2Vzc2Z1bGx5ITwvaDE+PGJyPgkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCAUAAAABaQAAAAZjYWxsZXIFAAAAEmNhbGN1bGF0ZWJ1cm52YWx1ZQUAAAAKQlRDQXNzZXRJRAUAAAADbmlsAAAAAQAAAAJ0eAEAAAAGdmVyaWZ5AAAAAAQAAAAHJG1hdGNoMAUAAAACdHgJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAAACAUAAAACdHgAAAAPc2VuZGVyUHVibGljS2V548MTzQ==", "height": 2184453, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 5F7DEWoiZC3CnxMKVGnp924nNBZjS2cybw76JqFi654n Next: EfgMatcnFzGMj47jtPVjXpEEfpb4a7HktmKR3u83MPkc Full:
OldNewDifferences
1-{-# STDLIB_VERSION 3 #-}
1+{-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let maxAuctionDuration = 525960
4+let BTCAssetID = base58'6B7j2Q8B8JA6CScbS1cJx9ms4PvGrJoWQrW5bEpgp1dm'
5+
6+let SATSAssetID = base58'GNZmVQpT5p4s61B9pKJYqAUpmzz7KynnEu37wLyT9nZp'
7+
8+let IssuefsTNFeeAddress = addressFromPublicKey(base58'6Z73KxcX3sugpiStpSRXxKxTmWqCaLVwFeM6kwyiKVDR')
9+
10+let txns = match getInteger(this, "Totaltxns") {
11+ case a: Int =>
12+ a
13+ case _ =>
14+ 0
15+}
16+
17+let totaltxns = (txns + 1)
518
619 @Callable(i)
7-func startAuction (duration,startPrice,priceAssetId) = {
8- let pmt = extract(i.payment)
9- let auctionId = toBase58String(i.transactionId)
10- let endHeight = (lastBlock.height + duration)
11- let organiserid = toBase58String(i.caller.bytes)
12- let Auctionduration = DataEntry(auctionId, endHeight)
13- let organiser = DataEntry((auctionId + "_organizer"), organiserid)
14- let lotassetid = DataEntry((auctionId + "_lot_assetId"), if (isDefined(pmt.assetId))
15- then toBase58String(value(pmt.assetId))
16- else "WAVES")
17- let lotamount = DataEntry((auctionId + "_lot_amount"), pmt.amount)
18- let startprice = DataEntry((auctionId + "_startPrice"), startPrice)
19- let priceassetid = DataEntry((auctionId + "_priceAssetId"), priceAssetId)
20- if ((duration > maxAuctionDuration))
21- then throw(("Duration is too long. Must be less than " + toString(maxAuctionDuration)))
22- else WriteSet([Auctionduration, organiser, lotassetid, lotamount, startprice, priceassetid])
20+func IssueSATS () = {
21+ let pmt = value(i.payments[0])
22+ let currentKey = toBase58String(i.caller.bytes)
23+ let PricePerSATS = getIntegerValue(this, "SATS/BTC")
24+ let SATSCurrentCap = getIntegerValue(this, "SATSCurrentCap")
25+ let NewSATSToUser = fraction(100000, pmt.amount, PricePerSATS)
26+ let PreviousIssuedSATS = getIntegerValue(this, "Total_Issued_SATS:")
27+ let TotalIssuedSATS = (PreviousIssuedSATS + NewSATSToUser)
28+ let PendingMinting = (SATSCurrentCap - TotalIssuedSATS)
29+ let PreviousSATSReserveValue = getIntegerValue(this, "Total_SATS_Reserve_In_BTC:")
30+ let fee = match getInteger(this, "Total_Fee_Collected") {
31+ case a: Int =>
32+ a
33+ case _ =>
34+ 0
35+ }
36+ let FeesCharged = 1
37+ let SATSReserveValue = (PreviousSATSReserveValue + pmt.amount)
38+ let PreviousSATSBackupPrice = getIntegerValue(this, "SATS_Backup_Value_In_BTC:")
39+ let SATSBackupPrice = fraction(100000, SATSReserveValue, TotalIssuedSATS)
40+ if ((pmt.assetId != BTCAssetID))
41+ then throw((("Incorrect asset attached, please attach [BTC] - " + toBase58String(BTCAssetID)) + " only."))
42+ else if ((5000 > pmt.amount))
43+ then throw("Please Attach minimum 5000 Satoshi's To Issue SATS Asset.")
44+ else if ((TotalIssuedSATS > SATSCurrentCap))
45+ then throw((((((("SATS Minting is about to reach the Cap of " + toString(SATSCurrentCap)) + "/10^6 SATS. Please Reduce your Minting Order by ") + toString(PendingMinting)) + " or put ") + toString((SATSCurrentCap - PreviousIssuedSATS))) + "/10^6"))
46+ else [IntegerEntry("Total_Issued_SATS:", TotalIssuedSATS), IntegerEntry("Balance_Minting_SATS:", PendingMinting), IntegerEntry("Total_SATS_Reserve_In_BTC:", SATSReserveValue), IntegerEntry("SATS_Backup_Value_In_BTC:", SATSBackupPrice), IntegerEntry("Total_Fee_Collected", FeesCharged), IntegerEntry("Totaltxns", totaltxns), StringEntry("message", "<h1>SATS Issued Successfully!</h1><br>"), Reissue(SATSAssetID, NewSATSToUser, true), ScriptTransfer(i.caller, (NewSATSToUser - FeesCharged), SATSAssetID), ScriptTransfer(IssuefsTNFeeAddress, FeesCharged, SATSAssetID)]
2347 }
2448
2549
2650
2751 @Callable(i)
28-func bid (auctionId) = {
29- let pmt = extract(i.payment)
30- let pmtAssetIdStr = if (isDefined(pmt.assetId))
31- then toBase58String(value(pmt.assetId))
32- else "WAVES"
33- let callerAddressStr = toBase58String(i.caller.bytes)
34- let endHeight = getIntegerValue(this, auctionId)
35- let startPrice = getIntegerValue(this, (auctionId + "_startPrice"))
36- let priceAssetId = getStringValue(this, (auctionId + "_priceAssetId"))
37- let winAmount = getInteger(this, (auctionId + "_winAmount"))
38- let winner = getString(this, (auctionId + "_winner"))
39- let bidFromTheSameUser = if (isDefined(winner))
40- then (value(winner) == callerAddressStr)
41- else false
42- let totalBidAmount = (pmt.amount + (if (bidFromTheSameUser)
43- then value(winAmount)
44- else 0))
45- if ((lastBlock.height >= endHeight))
46- then throw("Auction already finished.")
47- else if ((priceAssetId != pmtAssetIdStr))
48- then throw((("Bid must be in asset '" + priceAssetId) + "'"))
49- else if (if (if (isDefined(winAmount))
50- then (value(winAmount) >= totalBidAmount)
51- else false)
52- then true
53- else if (!(isDefined(winAmount)))
54- then (startPrice >= totalBidAmount)
55- else false)
56- then throw(("Bid must be more then " + toString(if (isDefined(winAmount))
57- then value(winAmount)
58- else startPrice)))
59- else if (if (bidFromTheSameUser)
60- then true
61- else !(isDefined(winner)))
62- then WriteSet([DataEntry((auctionId + "_winner"), callerAddressStr), DataEntry((auctionId + "_winAmount"), totalBidAmount)])
63- else {
64- let previousBidderAddr = addressFromStringValue(value(winner))
65- let priceAsset = if (if ((priceAssetId == "WAVES"))
66- then true
67- else (priceAssetId == ""))
68- then unit
69- else fromBase58String(priceAssetId)
70- ScriptResult(WriteSet([DataEntry((auctionId + "_winner"), callerAddressStr), DataEntry((auctionId + "_winAmount"), totalBidAmount)]), TransferSet([ScriptTransfer(previousBidderAddr, value(winAmount), priceAsset)]))
71- }
72- }
73-
74-
75-
76-@Callable(i)
77-func withdraw (auctionId) = {
78- let pmt = extract(i.payment)
79- let pmtAssetIdStr = if (isDefined(pmt.assetId))
80- then toBase58String(value(pmt.assetId))
81- else "WAVES"
82- let callerAddressStr = toBase58String(i.caller.bytes)
83- let endHeight = getIntegerValue(this, auctionId)
84- let organizer = getStringValue(this, (auctionId + "_organizer"))
85- let winner = getString(this, (auctionId + "_winner"))
86- let lotAssetId = getStringValue(this, (auctionId + "_lot_assetId"))
87- let lotAmount = getIntegerValue(this, (auctionId + "_lot_amount"))
88- let priceAssetId = getStringValue(this, (auctionId + "_priceAssetId"))
89- let winAmount = getIntegerValue(this, (auctionId + "_winAmount"))
90- let lotAsset = if ((lotAssetId == "WAVES"))
91- then unit
92- else fromBase58String(lotAssetId)
93- let priceAsset = if (if ((priceAssetId == "WAVES"))
94- then true
95- else (priceAssetId == ""))
96- then unit
97- else fromBase58String(priceAssetId)
98- let winnerAddr = addressFromStringValue(value(winner))
99- let organizerAddr = addressFromStringValue(value(organizer))
100- let betAmount = getInteger(this, ((auctionId + "_bidder_") + callerAddressStr))
101- if ((endHeight > lastBlock.height))
102- then throw("Auction is not finished yet")
103- else if (!(isDefined(winner)))
104- then if (isDefined(getString(this, (auctionId + "_lot_passed"))))
105- then throw("Organizer has already got his lot back")
106- else ScriptResult(WriteSet([DataEntry((auctionId + "_lot_passed"), organizer)]), TransferSet([ScriptTransfer(organizerAddr, lotAmount, lotAsset)]))
107- else if (isDefined(getString(this, (auctionId + "_lot_passed"))))
108- then throw("Lot is already passed to the winner, and organizer got his reward")
109- else ScriptResult(WriteSet([DataEntry((auctionId + "_lot_passed"), toBase58String(winnerAddr.bytes))]), TransferSet([ScriptTransfer(winnerAddr, lotAmount, lotAsset), ScriptTransfer(organizerAddr, ((winAmount * 95) / 100), priceAsset), ScriptTransfer(addressFromPublicKey(base58'59q1hHBmeQgfSRst9Dn52VTBbtCu4SQ7AujhGDjHCqn6'), ((winAmount * 5) / 100), priceAsset)]))
110- }
111-
112-
113-
114-@Callable(i)
115-func Expedite (auctionId) = {
116- let pmt = extract(i.payment)
117- let callerAddressStr = toBase58String(i.caller.bytes)
118- let endHeight = getIntegerValue(this, auctionId)
119- let organizer = getStringValue(this, (auctionId + "_organizer"))
120- let Auctionduration = DataEntry(auctionId, (lastBlock.height + 1))
121- let diff = (endHeight - lastBlock.height)
122- let organizerAddr = addressFromStringValue(value(organizer))
123- if ((organizer != callerAddressStr))
124- then throw("You are not Orgnaniser to Sign this transaction.")
125- else if ((diff > 15))
126- then WriteSet([Auctionduration])
127- else throw("Auction is already finished.")
128- }
129-
130-
131-
132-@Callable(i)
133-func DAppOwnerExpedite (auctionId) = {
134- let pmt = extract(i.payment)
135- let callerAddressStr = toBase58String(i.caller.bytes)
136- let endHeight = getIntegerValue(this, auctionId)
137- let diff = (endHeight - lastBlock.height)
138- let DAppowner = getStringValue(this, "dappowner")
139- let Auctionduration = DataEntry(auctionId, (lastBlock.height + 1))
140- if ((DAppowner != callerAddressStr))
141- then throw("You are not Dapp Owner to Sign this transaction.")
142- else if ((diff > 15))
143- then WriteSet([Auctionduration])
144- else throw("Auction is already finished.")
52+func Liquidate () = {
53+ let currentKey = toBase58String(i.callerPublicKey)
54+ let pmt = value(i.payments[0])
55+ let PreviousIssuedSATS = getIntegerValue(this, "Total_Issued_SATS:")
56+ let PreviousBurnedSATS = getIntegerValue(this, "Total_Burned_SATS:")
57+ let SATSCurrentCap = getIntegerValue(this, "SATSCurrentCap")
58+ let TotalIssuedSATS = (PreviousIssuedSATS - pmt.amount)
59+ let TotalBurnedSATS = (PreviousBurnedSATS + pmt.amount)
60+ let PendingMinting = (SATSCurrentCap - TotalIssuedSATS)
61+ let PreviousSATSReserveValue = getIntegerValue(this, "Total_SATS_Reserve_In_BTC:")
62+ let PreviousSATSBackupPrice = getIntegerValue(this, "SATS_Backup_Value_In_BTC:")
63+ let calculateburnvalue = fraction(PreviousSATSBackupPrice, pmt.amount, 100000)
64+ let SATSReserveValue = (PreviousSATSReserveValue - calculateburnvalue)
65+ let SATSBackupPrice = fraction(100000, SATSReserveValue, TotalIssuedSATS)
66+ if ((pmt.assetId != SATSAssetID))
67+ then throw((("Kindly Deposit Only " + toBase58String(SATSAssetID)) + " [SATS]."))
68+ else if ((5000 > pmt.amount))
69+ then throw("Attach Amount must be greater than 5000 SATS.")
70+ else [Burn(SATSAssetID, pmt.amount), IntegerEntry("Totaltxns", totaltxns), IntegerEntry("Total_Issued_SATS:", TotalIssuedSATS), IntegerEntry("Total_Burned_SATS:", TotalBurnedSATS), IntegerEntry("Balance_Minting_SATS:", PendingMinting), IntegerEntry("Total_SATS_Reserve_In_BTC:", SATSReserveValue), IntegerEntry("SATS_Backup_Value_In_BTC:", SATSBackupPrice), StringEntry("message", "<h1>SATS Liquidated Successfully!</h1><br>"), ScriptTransfer(i.caller, calculateburnvalue, BTCAssetID)]
14571 }
14672
14773
14874 @Verifier(tx)
149-func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
75+func verify () = match tx {
76+ case _ =>
77+ sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
78+}
15079

github/deemru/w8io/c3f4982 
33.99 ms