tx · 7AiGwpzVvd2ipodrrpBR5SWpXtK7tQpVcaaT4R4tFKPa 3MzFYxmuFCZMtDM4xzqBHW6m3ZvNoX4Xe8T: -0.01400000 Waves 2021.06.07 10:12 [1559627] smart account 3MzFYxmuFCZMtDM4xzqBHW6m3ZvNoX4Xe8T > SELF 0.00000000 Waves
{ "type": 13, "id": "7AiGwpzVvd2ipodrrpBR5SWpXtK7tQpVcaaT4R4tFKPa", "fee": 1400000, "feeAssetId": null, "timestamp": 1623049969362, "version": 2, "chainId": 84, "sender": "3MzFYxmuFCZMtDM4xzqBHW6m3ZvNoX4Xe8T", "senderPublicKey": "6BmCmWEkmyL4KtpmLBbW1T5EDSyu6WhDBx9wy8xedgxJ", "proofs": [ "FDQuczcEkpgoVVoT3UWfGWaTZyfGKGLb4jddfbDQTvn6ihVhucDNSD3rgC1ZHwEc9SH8CSRCtUTXLf4seCbstNE" ], "script": "base64:AAIEAAAAAAAAAAYIAhIAEgAAAAAAAAAAAgAAAAFpAQAAAAlpc3N1ZWdvbGQAAAAABAAAAANwbXQJAQAAAAV2YWx1ZQAAAAEJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAEAAAACmN1cnJlbnRLZXkJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwQAAAALR29sZEFzc2V0SUQBAAAAIDhOuDKCPjY5LEKrNcJWSPLR+DRIrzbrjIXMuB7syGHCBAAAAAtVU0RUQXNzZXRJRAEAAAAg7W6ezmGUnP3O5hqSHS3e4uYtkMJNmB8HvATDD5acfHEEAAAAEFByaWNlUGVyR3JhbUdvbGQJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAABHRoaXMCAAAAB0dBVS9VU0QEAAAADU5ld0dvbGRUb1VzZXIJAABrAAAAAwAAAAAAAA9CQAgFAAAAA3BtdAAAAAZhbW91bnQFAAAAEFByaWNlUGVyR3JhbUdvbGQEAAAAElByZXZpb3VzSXNzdWVkR29sZAkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwIAAAASVG90YWxfSXNzdWVkX0dvbGQ6BAAAAA9Ub3RhbElzc3VlZEdvbGQJAABkAAAAAgUAAAASUHJldmlvdXNJc3N1ZWRHb2xkBQAAAA1OZXdHb2xkVG9Vc2VyBAAAABhQcmV2aW91c0dvbGRSZXNlcnZlVmFsdWUJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAABHRoaXMCAAAAG1RvdGFsX0dvbGRfUmVzZXJ2ZV9Jbl9VU0RUOgQAAAAQR29sZFJlc2VydmVWYWx1ZQkAAGQAAAACBQAAABhQcmV2aW91c0dvbGRSZXNlcnZlVmFsdWUIBQAAAANwbXQAAAAGYW1vdW50BAAAABdQcmV2aW91c0dvbGRCYWNrdXBQcmljZQkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwIAAAAaR29sZF9CYWNrdXBfVmFsdWVfSW5fVVNEVDoEAAAAD0dvbGRCYWNrdXBQcmljZQkAAGsAAAADAAAAAAAAD0JABQAAABBHb2xkUmVzZXJ2ZVZhbHVlBQAAAA9Ub3RhbElzc3VlZEdvbGQDCQEAAAACIT0AAAACCAUAAAADcG10AAAAB2Fzc2V0SWQFAAAAC1VTRFRBc3NldElECQAAAgAAAAECAAAAYkluY29ycmVjdCBhc3NldCBhdHRhY2hlZCwgcGxlYXNlIGF0dGFjaCBVU0RUIEFzc2V0SUQgR3lxVFlEZWEzRFdCYUF5UXM1UzV1SDIyMjN1Y0VMWUZhekpwWkxDZk16blUuAwkAAGYAAAACAAAAAAAAD0JACAUAAAADcG10AAAABmFtb3VudAkAAAIAAAABAgAAADFQbGVhc2UgQXR0YWNoIG1pbmltdW0gMSBVU0RUIFRvIElzc3VlIEdvbGQgQXNzZXQuCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAABJUb3RhbF9Jc3N1ZWRfR29sZDoFAAAAD1RvdGFsSXNzdWVkR29sZAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAUR29sZF9SZXNlcnZlX0Ftb3VudDoFAAAAD1RvdGFsSXNzdWVkR29sZAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAbVG90YWxfR29sZF9SZXNlcnZlX0luX1VTRFQ6BQAAABBHb2xkUmVzZXJ2ZVZhbHVlCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAABpHb2xkX0JhY2t1cF9WYWx1ZV9Jbl9VU0RUOgUAAAAPR29sZEJhY2t1cFByaWNlCQAETAAAAAIJAQAAAAdSZWlzc3VlAAAAAwUAAAALR29sZEFzc2V0SUQFAAAADU5ld0dvbGRUb1VzZXIGCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMIBQAAAAFpAAAABmNhbGxlcgUAAAANTmV3R29sZFRvVXNlcgUAAAALR29sZEFzc2V0SUQFAAAAA25pbAAAAAFpAQAAAA1MaXF1aWRhdGVnb2xkAAAAAAQAAAADcG10CQEAAAAFdmFsdWUAAAABCQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAABAAAAApjdXJyZW50S2V5CQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMEAAAAC0dvbGRBc3NldElEAQAAACA4Trgygj42OSxCqzXCVkjy0fg0SK8264yFzLge7MhhwgQAAAALVVNEVEFzc2V0SUQBAAAAIO1uns5hlJz9zuYakh0t3uLmLZDCTZgfB7wEww+WnHxxBAAAABBQcmljZVBlckdyYW1Hb2xkCQAD8AAAAAIFAAAABHRoaXMFAAAAC0dvbGRBc3NldElEBAAAAA1OZXdHb2xkVG9Vc2VyCQAAawAAAAMAAAAAAAAPQkAIBQAAAANwbXQAAAAGYW1vdW50BQAAABBQcmljZVBlckdyYW1Hb2xkBAAAABJQcmV2aW91c0lzc3VlZEdvbGQJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAABHRoaXMCAAAAElRvdGFsX0lzc3VlZF9Hb2xkOgQAAAAPVG90YWxJc3N1ZWRHb2xkCQAAZAAAAAIFAAAAElByZXZpb3VzSXNzdWVkR29sZAUAAAANTmV3R29sZFRvVXNlcgMJAQAAAAIhPQAAAAIIBQAAAANwbXQAAAAHYXNzZXRJZAUAAAALVVNEVEFzc2V0SUQJAAACAAAAAQIAAABiSW5jb3JyZWN0IGFzc2V0IGF0dGFjaGVkLCBwbGVhc2UgYXR0YWNoIFVTRFQgQXNzZXRJRCBHeXFUWURlYTNEV0JhQXlRczVTNXVIMjIyM3VjRUxZRmF6SnBaTENmTXpuVS4DCQAAZgAAAAIAAAAAAAAPQkAIBQAAAANwbXQAAAAGYW1vdW50CQAAAgAAAAECAAAAMVBsZWFzZSBBdHRhY2ggbWluaW11bSAxIFVTRFQgVG8gSXNzdWUgR29sZCBBc3NldC4JAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAElRvdGFsX0lzc3VlZF9Hb2xkOgUAAAAPVG90YWxJc3N1ZWRHb2xkCQAETAAAAAIJAQAAAAdSZWlzc3VlAAAAAwUAAAALR29sZEFzc2V0SUQFAAAADU5ld0dvbGRUb1VzZXIGCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMIBQAAAAFpAAAABmNhbGxlcgUAAAANTmV3R29sZFRvVXNlcgUAAAALR29sZEFzc2V0SUQFAAAAA25pbAAAAAEAAAACdHgBAAAABnZlcmlmeQAAAAAJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAAACAUAAAACdHgAAAAPc2VuZGVyUHVibGljS2V5IMy16w==", "height": 1559627, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 7G45gxUQ3eJWUBj4wrfTHXie6Lsr89yw9PB8DfeqcjGe Next: 3dnbJpTteJoBnPMdjQZVvSmiqG16crmawEqtFBDirrGr Diff:
Old | New | Differences | |
---|---|---|---|
10 | 10 | let GoldAssetID = base58'4noTADz7TX4HmjkCMpJAzkfuR6BKxDsSCzp3XJNZAcgy' | |
11 | 11 | let USDTAssetID = base58'GyqTYDea3DWBaAyQs5S5uH2223ucELYFazJpZLCfMznU' | |
12 | 12 | let PricePerGramGold = getIntegerValue(this, "GAU/USD") | |
13 | + | let NewGoldToUser = fraction(1000000, pmt.amount, PricePerGramGold) | |
14 | + | let PreviousIssuedGold = getIntegerValue(this, "Total_Issued_Gold:") | |
15 | + | let TotalIssuedGold = (PreviousIssuedGold + NewGoldToUser) | |
16 | + | let PreviousGoldReserveValue = getIntegerValue(this, "Total_Gold_Reserve_In_USDT:") | |
17 | + | let GoldReserveValue = (PreviousGoldReserveValue + pmt.amount) | |
18 | + | let PreviousGoldBackupPrice = getIntegerValue(this, "Gold_Backup_Value_In_USDT:") | |
19 | + | let GoldBackupPrice = fraction(1000000, GoldReserveValue, TotalIssuedGold) | |
20 | + | if ((pmt.assetId != USDTAssetID)) | |
21 | + | then throw("Incorrect asset attached, please attach USDT AssetID GyqTYDea3DWBaAyQs5S5uH2223ucELYFazJpZLCfMznU.") | |
22 | + | else if ((1000000 > pmt.amount)) | |
23 | + | then throw("Please Attach minimum 1 USDT To Issue Gold Asset.") | |
24 | + | else [IntegerEntry("Total_Issued_Gold:", TotalIssuedGold), IntegerEntry("Gold_Reserve_Amount:", TotalIssuedGold), IntegerEntry("Total_Gold_Reserve_In_USDT:", GoldReserveValue), IntegerEntry("Gold_Backup_Value_In_USDT:", GoldBackupPrice), Reissue(GoldAssetID, NewGoldToUser, true), ScriptTransfer(i.caller, NewGoldToUser, GoldAssetID)] | |
25 | + | } | |
26 | + | ||
27 | + | ||
28 | + | ||
29 | + | @Callable(i) | |
30 | + | func Liquidategold () = { | |
31 | + | let pmt = value(i.payments[0]) | |
32 | + | let currentKey = toBase58String(i.caller.bytes) | |
33 | + | let GoldAssetID = base58'4noTADz7TX4HmjkCMpJAzkfuR6BKxDsSCzp3XJNZAcgy' | |
34 | + | let USDTAssetID = base58'GyqTYDea3DWBaAyQs5S5uH2223ucELYFazJpZLCfMznU' | |
35 | + | let PricePerGramGold = assetBalance(this, GoldAssetID) | |
13 | 36 | let NewGoldToUser = fraction(1000000, pmt.amount, PricePerGramGold) | |
14 | 37 | let PreviousIssuedGold = getIntegerValue(this, "Total_Issued_Gold:") | |
15 | 38 | let TotalIssuedGold = (PreviousIssuedGold + NewGoldToUser) |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 4 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | ||
5 | 5 | ||
6 | 6 | @Callable(i) | |
7 | 7 | func issuegold () = { | |
8 | 8 | let pmt = value(i.payments[0]) | |
9 | 9 | let currentKey = toBase58String(i.caller.bytes) | |
10 | 10 | let GoldAssetID = base58'4noTADz7TX4HmjkCMpJAzkfuR6BKxDsSCzp3XJNZAcgy' | |
11 | 11 | let USDTAssetID = base58'GyqTYDea3DWBaAyQs5S5uH2223ucELYFazJpZLCfMznU' | |
12 | 12 | let PricePerGramGold = getIntegerValue(this, "GAU/USD") | |
13 | + | let NewGoldToUser = fraction(1000000, pmt.amount, PricePerGramGold) | |
14 | + | let PreviousIssuedGold = getIntegerValue(this, "Total_Issued_Gold:") | |
15 | + | let TotalIssuedGold = (PreviousIssuedGold + NewGoldToUser) | |
16 | + | let PreviousGoldReserveValue = getIntegerValue(this, "Total_Gold_Reserve_In_USDT:") | |
17 | + | let GoldReserveValue = (PreviousGoldReserveValue + pmt.amount) | |
18 | + | let PreviousGoldBackupPrice = getIntegerValue(this, "Gold_Backup_Value_In_USDT:") | |
19 | + | let GoldBackupPrice = fraction(1000000, GoldReserveValue, TotalIssuedGold) | |
20 | + | if ((pmt.assetId != USDTAssetID)) | |
21 | + | then throw("Incorrect asset attached, please attach USDT AssetID GyqTYDea3DWBaAyQs5S5uH2223ucELYFazJpZLCfMznU.") | |
22 | + | else if ((1000000 > pmt.amount)) | |
23 | + | then throw("Please Attach minimum 1 USDT To Issue Gold Asset.") | |
24 | + | else [IntegerEntry("Total_Issued_Gold:", TotalIssuedGold), IntegerEntry("Gold_Reserve_Amount:", TotalIssuedGold), IntegerEntry("Total_Gold_Reserve_In_USDT:", GoldReserveValue), IntegerEntry("Gold_Backup_Value_In_USDT:", GoldBackupPrice), Reissue(GoldAssetID, NewGoldToUser, true), ScriptTransfer(i.caller, NewGoldToUser, GoldAssetID)] | |
25 | + | } | |
26 | + | ||
27 | + | ||
28 | + | ||
29 | + | @Callable(i) | |
30 | + | func Liquidategold () = { | |
31 | + | let pmt = value(i.payments[0]) | |
32 | + | let currentKey = toBase58String(i.caller.bytes) | |
33 | + | let GoldAssetID = base58'4noTADz7TX4HmjkCMpJAzkfuR6BKxDsSCzp3XJNZAcgy' | |
34 | + | let USDTAssetID = base58'GyqTYDea3DWBaAyQs5S5uH2223ucELYFazJpZLCfMznU' | |
35 | + | let PricePerGramGold = assetBalance(this, GoldAssetID) | |
13 | 36 | let NewGoldToUser = fraction(1000000, pmt.amount, PricePerGramGold) | |
14 | 37 | let PreviousIssuedGold = getIntegerValue(this, "Total_Issued_Gold:") | |
15 | 38 | let TotalIssuedGold = (PreviousIssuedGold + NewGoldToUser) | |
16 | 39 | if ((pmt.assetId != USDTAssetID)) | |
17 | 40 | then throw("Incorrect asset attached, please attach USDT AssetID GyqTYDea3DWBaAyQs5S5uH2223ucELYFazJpZLCfMznU.") | |
18 | 41 | else if ((1000000 > pmt.amount)) | |
19 | 42 | then throw("Please Attach minimum 1 USDT To Issue Gold Asset.") | |
20 | 43 | else [IntegerEntry("Total_Issued_Gold:", TotalIssuedGold), Reissue(GoldAssetID, NewGoldToUser, true), ScriptTransfer(i.caller, NewGoldToUser, GoldAssetID)] | |
21 | 44 | } | |
22 | 45 | ||
23 | 46 | ||
24 | 47 | @Verifier(tx) | |
25 | 48 | func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey) | |
26 | 49 |
github/deemru/w8io/169f3d6 112.15 ms ◑![]()