tx · 9VmKkK1rJsjizvHBQC9vnbuNnScAThqsexvSWSS4c1nT 3MwoWxBwFKxjUKK53Rxbnwrs8m2MsVMPPa7: -0.01000000 Waves 2023.11.28 14:27 [2863188] smart account 3MwoWxBwFKxjUKK53Rxbnwrs8m2MsVMPPa7 > SELF 0.00000000 Waves
{ "type": 13, "id": "9VmKkK1rJsjizvHBQC9vnbuNnScAThqsexvSWSS4c1nT", "fee": 1000000, "feeAssetId": null, "timestamp": 1701170920040, "version": 2, "chainId": 84, "sender": "3MwoWxBwFKxjUKK53Rxbnwrs8m2MsVMPPa7", "senderPublicKey": "6oay51Q6zPcFP9bSwUC4Potx2KGyD4AUjpL5uLR4QeRN", "proofs": [ "5sLXwXA9LYfsyZr794KJVcrjACoFmeNgXP3TXqbhxHmY88cMEZNY3q3ucr8K48sruye1BKTWB6WRytsEhWaj1LJ9" ], "script": "base64:AAIFAAAAAAAAABkIAhIFCgMBCAgSDgoMCAEBAQgIAQEBCAEBAAAABAAAAAARdXNlcl9iYWxhbmNlX2RhcHAJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAECAAAAIzNOMXMydzROSGdiclh4TlpYSDlSdGFWVDlwdEhSSmNnU3AyAAAAABREYXBwX0FkZHJlc3NfcHViX2tleQEAAAAgyO2Y2obuVTVYYMc8lugqW2L1IjDFH+TsgVEJaOfOGnMAAAAAEXdoaXRlbGlzdF9hZGRyZXNzCQEAAAAUYWRkcmVzc0Zyb21QdWJsaWNLZXkAAAABBQAAABREYXBwX0FkZHJlc3NfcHViX2tleQAAAAAUbWF4aW11bV92b3VjaGVyX3NpemUAAAAAAAX14QAAAAACAAAAAWkBAAAADklzc3VlX1ZvdWNoZXJzAAAAAwAAAA5Wb3VjaGVyX0Ftb3VudAAAAAdVc2VyX0lEAAAADFVzZXJfQWRkcmVzcwQAAAAZcmVhZF9Ub3RhbFZvdWNoZXJzQmFsYW5jZQkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEGgAAAAIFAAAABHRoaXMCAAAAGkF2YWlsYWJsZV9Wb3VjaGVyc19CYWxhbmNlAgAAAF9BdmFpbGFibGVfVm91Y2hlcnNfQmFsYW5jZSBFbnRyeSBpcyBub3QgRm91bmQuIEluaXRpYXRlIEZpbGxfVm91Y2hlcnNfTGlxdWlkaXR5IEZ1bmN0aW9uIGZpcnN0LgQAAAAbdXBkYXRlX1RvdGFsVm91Y2hlcnNCYWxhbmNlCQAAZQAAAAIFAAAAGXJlYWRfVG90YWxWb3VjaGVyc0JhbGFuY2UFAAAADlZvdWNoZXJfQW1vdW50BAAAABRWb3VjaGVyc0lzc3VlZFRvVXNlcgQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzCQABLAAAAAICAAAAGVRvdGFsX1ZvdWNoZXJzX0lzc3VlZF9Ub18FAAAADFVzZXJfQWRkcmVzcwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAABlUb3RhbFZvdWNoZXJzSXNzdWVkVG9Vc2VyCQAAZAAAAAIFAAAAFFZvdWNoZXJzSXNzdWVkVG9Vc2VyAAAAAAAAAAABBAAAABpWb3VjaGVyc0Ftb3VudElzc3VlZFRvVXNlcgQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzCQABLAAAAAICAAAAIFRvdGFsX1ZvdWNoZXJzX0Ftb3VudF9Jc3N1ZWRfVG9fBQAAAAxVc2VyX0FkZHJlc3MDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAfVG90YWxWb3VjaGVyc0Ftb3VudElzc3VlZFRvVXNlcgkAAGQAAAACBQAAABpWb3VjaGVyc0Ftb3VudElzc3VlZFRvVXNlcgUAAAAOVm91Y2hlcl9BbW91bnQEAAAAHVByZXZpb3VzVm91Y2hlcnNCYWxhbmNlb2ZVc2VyBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgUAAAAMVXNlcl9BZGRyZXNzAgAAABBfVm91Y2hlcl9CYWxhbmNlAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAAGlRvdGFsVm91Y2hlcnNCYWxhbmNlb2ZVc2VyCQAAZAAAAAIFAAAAHVByZXZpb3VzVm91Y2hlcnNCYWxhbmNlb2ZVc2VyBQAAAA5Wb3VjaGVyX0Ftb3VudAMJAQAAAAIhPQAAAAIIBQAAAAFpAAAABmNhbGxlcgUAAAARd2hpdGVsaXN0X2FkZHJlc3MJAAACAAAAAQkAASwAAAACCQABLAAAAAICAAAAJVRoaXMgQWRkcmVzcyBpcyBub3QgQXV0aG9yaXplZC4gT25seSAJAAQlAAAAAQUAAAARd2hpdGVsaXN0X2FkZHJlc3MCAAAAIiBpcyBBdXRob3JpemVkIEFkZHJlc3MgdG8gU2lnbiBpdC4DCQAAZwAAAAIAAAAAAAAAAAAFAAAADlZvdWNoZXJfQW1vdW50CQAAAgAAAAECAAAAUVZvdWNoZXIgQmFsYW5jZSBjYW4ndCBiZSAwIG9yIGdvIGluIG5lZ2F0aXZlIFN0YXRlLiAgSW5jcmVhc2UgdGhlIFZvdWNoZXIgQW1vdW50LgMJAABnAAAAAgAAAAAAAAAAAAUAAAAbdXBkYXRlX1RvdGFsVm91Y2hlcnNCYWxhbmNlCQAAAgAAAAEJAAEsAAAAAgkAASwAAAACAgAAADZVcGRhdGVkIFZvdWNoZXIgQmFsYW5jZSBjYW4ndCBnbyBpbiBuZWdhdGl2ZSBTdGF0ZSBvZiAJAAGkAAAAAQUAAAAbdXBkYXRlX1RvdGFsVm91Y2hlcnNCYWxhbmNlAgAAACggLzEwXjggV0FWRVMuIFJlZHVjZSB0aGUgVm91Y2hlciBBbW91bnQuAwkAAGYAAAACBQAAAA5Wb3VjaGVyX0Ftb3VudAUAAAAUbWF4aW11bV92b3VjaGVyX3NpemUJAAACAAAAAQkAASwAAAACCQABLAAAAAICAAAAPElucHV0IFZvdWNoZXIgQmFsYW5jZSBjYW4ndCBleGNlZWQgdGhlIHNldCBtYXhpbXVtIGxpbWl0IG9mIAkAAaQAAAABBQAAABRtYXhpbXVtX3ZvdWNoZXJfc2l6ZQIAAAAMLzEwXjggV2F2ZXMuCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAICAAAAGVRvdGFsX1ZvdWNoZXJzX0lzc3VlZF9Ub18FAAAADFVzZXJfQWRkcmVzcwUAAAAZVG90YWxWb3VjaGVyc0lzc3VlZFRvVXNlcgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACAgAAACBUb3RhbF9Wb3VjaGVyc19BbW91bnRfSXNzdWVkX1RvXwUAAAAMVXNlcl9BZGRyZXNzBQAAAB9Ub3RhbFZvdWNoZXJzQW1vdW50SXNzdWVkVG9Vc2VyCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIFAAAADFVzZXJfQWRkcmVzcwIAAAAQX1ZvdWNoZXJfQmFsYW5jZQUAAAAaVG90YWxWb3VjaGVyc0JhbGFuY2VvZlVzZXIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAGkF2YWlsYWJsZV9Wb3VjaGVyc19CYWxhbmNlBQAAABt1cGRhdGVfVG90YWxWb3VjaGVyc0JhbGFuY2UFAAAAA25pbAAAAAFpAQAAABpwbGFjZW9wdGlvbkNhbGxXaXRoVm91Y2hlcgAAAAwAAAAMRnVuY3Rpb25OYW1lAAAADlZvdWNoZXJfQW1vdW50AAAABkFtb3VudAAAAA9PcHRpb25Db3VudGVySUQAAAAHVXNlcl9JRAAAAAxVc2VyX0FkZHJlc3MAAAAFUHJpY2UAAAALQ2FsbF9MaW1pdHMAAAAKUHV0X0xpbWl0cwAAAA1PcmFjbGVfU3RhdHVzAAAAFVN0YXJ0X09yZGVyX1RpbWVzdGFtcAAAABNFbmRfT3JkZXJfVGltZXN0YW1wBAAAAAF5CQAD/AAAAAQFAAAAEXVzZXJfYmFsYW5jZV9kYXBwBQAAAAxGdW5jdGlvbk5hbWUJAARMAAAAAgUAAAAGQW1vdW50CQAETAAAAAIFAAAAD09wdGlvbkNvdW50ZXJJRAkABEwAAAACBQAAAAdVc2VyX0lECQAETAAAAAIFAAAADFVzZXJfQWRkcmVzcwkABEwAAAACBQAAAAVQcmljZQkABEwAAAACBQAAAAtDYWxsX0xpbWl0cwkABEwAAAACBQAAAApQdXRfTGltaXRzCQAETAAAAAIFAAAADU9yYWNsZV9TdGF0dXMJAARMAAAAAgUAAAAVU3RhcnRfT3JkZXJfVGltZXN0YW1wCQAETAAAAAIFAAAAE0VuZF9PcmRlcl9UaW1lc3RhbXAFAAAAA25pbAUAAAADbmlsAwkAAAAAAAACBQAAAAF5BQAAAAF5AwkBAAAAAiE9AAAAAggFAAAAAWkAAAAGY2FsbGVyBQAAABF3aGl0ZWxpc3RfYWRkcmVzcwkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgIAAAAlVGhpcyBBZGRyZXNzIGlzIG5vdCBBdXRob3JpemVkLiBPbmx5IAkABCUAAAABBQAAABF3aGl0ZWxpc3RfYWRkcmVzcwIAAAAiIGlzIEF1dGhvcml6ZWQgQWRkcmVzcyB0byBTaWduIGl0LgkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACAgAAAApEMkRfU3RhdHVzAgAAAAZQYXNzZWQFAAAAA25pbAkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4AAAAAd8zq7A==", "height": 2863188, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 8DQzUaumGPsVCQucVjYFUvjRy36H1mAd4SUthDCfvKRe Next: 5AMGjU5cusckgeRz3EPKhSuMwvGyCgnQsCCMqxhKuZZA Diff:
Old | New | Differences | |
---|---|---|---|
49 | 49 | ||
50 | 50 | @Callable(i) | |
51 | 51 | func placeoptionCallWithVoucher (FunctionName,Voucher_Amount,Amount,OptionCounterID,User_ID,User_Address,Price,Call_Limits,Put_Limits,Oracle_Status,Start_Order_Timestamp,End_Order_Timestamp) = { | |
52 | - | let x = invoke(this, "Issue_Vouchers", [Voucher_Amount, User_ID, User_Address], nil) | |
53 | - | if ((x == x)) | |
54 | - | then { | |
55 | - | let y = invoke(user_balance_dapp, FunctionName, [Amount, OptionCounterID, User_ID, User_Address, Price, Call_Limits, Put_Limits, Oracle_Status, Start_Order_Timestamp, End_Order_Timestamp], nil) | |
56 | - | if ((y == y)) | |
57 | - | then if ((i.caller != whitelist_address)) | |
58 | - | then throw((("This Address is not Authorized. Only " + toString(whitelist_address)) + " is Authorized Address to Sign it.")) | |
59 | - | else [StringEntry("D2D_Status", "Passed")] | |
60 | - | else throw("Strict value is not equal to itself.") | |
61 | - | } | |
52 | + | let y = invoke(user_balance_dapp, FunctionName, [Amount, OptionCounterID, User_ID, User_Address, Price, Call_Limits, Put_Limits, Oracle_Status, Start_Order_Timestamp, End_Order_Timestamp], nil) | |
53 | + | if ((y == y)) | |
54 | + | then if ((i.caller != whitelist_address)) | |
55 | + | then throw((("This Address is not Authorized. Only " + toString(whitelist_address)) + " is Authorized Address to Sign it.")) | |
56 | + | else [StringEntry("D2D_Status", "Passed")] | |
62 | 57 | else throw("Strict value is not equal to itself.") | |
63 | 58 | } | |
64 | 59 |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 5 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let user_balance_dapp = addressFromStringValue("3N1s2w4NHgbrXxNZXH9RtaVT9ptHRJcgSp2") | |
5 | 5 | ||
6 | 6 | let Dapp_Address_pub_key = base58'EXLfxKmqhQPiProBaoPatTentUSZX5Dd8A8bYDcmfNwt' | |
7 | 7 | ||
8 | 8 | let whitelist_address = addressFromPublicKey(Dapp_Address_pub_key) | |
9 | 9 | ||
10 | 10 | let maximum_voucher_size = 100000000 | |
11 | 11 | ||
12 | 12 | @Callable(i) | |
13 | 13 | func Issue_Vouchers (Voucher_Amount,User_ID,User_Address) = { | |
14 | 14 | let read_TotalVouchersBalance = valueOrErrorMessage(getInteger(this, "Available_Vouchers_Balance"), "Available_Vouchers_Balance Entry is not Found. Initiate Fill_Vouchers_Liquidity Function first.") | |
15 | 15 | let update_TotalVouchersBalance = (read_TotalVouchersBalance - Voucher_Amount) | |
16 | 16 | let VouchersIssuedToUser = match getInteger(this, ("Total_Vouchers_Issued_To_" + User_Address)) { | |
17 | 17 | case a: Int => | |
18 | 18 | a | |
19 | 19 | case _ => | |
20 | 20 | 0 | |
21 | 21 | } | |
22 | 22 | let TotalVouchersIssuedToUser = (VouchersIssuedToUser + 1) | |
23 | 23 | let VouchersAmountIssuedToUser = match getInteger(this, ("Total_Vouchers_Amount_Issued_To_" + User_Address)) { | |
24 | 24 | case a: Int => | |
25 | 25 | a | |
26 | 26 | case _ => | |
27 | 27 | 0 | |
28 | 28 | } | |
29 | 29 | let TotalVouchersAmountIssuedToUser = (VouchersAmountIssuedToUser + Voucher_Amount) | |
30 | 30 | let PreviousVouchersBalanceofUser = match getInteger(this, (User_Address + "_Voucher_Balance")) { | |
31 | 31 | case a: Int => | |
32 | 32 | a | |
33 | 33 | case _ => | |
34 | 34 | 0 | |
35 | 35 | } | |
36 | 36 | let TotalVouchersBalanceofUser = (PreviousVouchersBalanceofUser + Voucher_Amount) | |
37 | 37 | if ((i.caller != whitelist_address)) | |
38 | 38 | then throw((("This Address is not Authorized. Only " + toString(whitelist_address)) + " is Authorized Address to Sign it.")) | |
39 | 39 | else if ((0 >= Voucher_Amount)) | |
40 | 40 | then throw("Voucher Balance can't be 0 or go in negative State. Increase the Voucher Amount.") | |
41 | 41 | else if ((0 >= update_TotalVouchersBalance)) | |
42 | 42 | then throw((("Updated Voucher Balance can't go in negative State of " + toString(update_TotalVouchersBalance)) + " /10^8 WAVES. Reduce the Voucher Amount.")) | |
43 | 43 | else if ((Voucher_Amount > maximum_voucher_size)) | |
44 | 44 | then throw((("Input Voucher Balance can't exceed the set maximum limit of " + toString(maximum_voucher_size)) + "/10^8 Waves.")) | |
45 | 45 | else [IntegerEntry(("Total_Vouchers_Issued_To_" + User_Address), TotalVouchersIssuedToUser), IntegerEntry(("Total_Vouchers_Amount_Issued_To_" + User_Address), TotalVouchersAmountIssuedToUser), IntegerEntry((User_Address + "_Voucher_Balance"), TotalVouchersBalanceofUser), IntegerEntry("Available_Vouchers_Balance", update_TotalVouchersBalance)] | |
46 | 46 | } | |
47 | 47 | ||
48 | 48 | ||
49 | 49 | ||
50 | 50 | @Callable(i) | |
51 | 51 | func placeoptionCallWithVoucher (FunctionName,Voucher_Amount,Amount,OptionCounterID,User_ID,User_Address,Price,Call_Limits,Put_Limits,Oracle_Status,Start_Order_Timestamp,End_Order_Timestamp) = { | |
52 | - | let x = invoke(this, "Issue_Vouchers", [Voucher_Amount, User_ID, User_Address], nil) | |
53 | - | if ((x == x)) | |
54 | - | then { | |
55 | - | let y = invoke(user_balance_dapp, FunctionName, [Amount, OptionCounterID, User_ID, User_Address, Price, Call_Limits, Put_Limits, Oracle_Status, Start_Order_Timestamp, End_Order_Timestamp], nil) | |
56 | - | if ((y == y)) | |
57 | - | then if ((i.caller != whitelist_address)) | |
58 | - | then throw((("This Address is not Authorized. Only " + toString(whitelist_address)) + " is Authorized Address to Sign it.")) | |
59 | - | else [StringEntry("D2D_Status", "Passed")] | |
60 | - | else throw("Strict value is not equal to itself.") | |
61 | - | } | |
52 | + | let y = invoke(user_balance_dapp, FunctionName, [Amount, OptionCounterID, User_ID, User_Address, Price, Call_Limits, Put_Limits, Oracle_Status, Start_Order_Timestamp, End_Order_Timestamp], nil) | |
53 | + | if ((y == y)) | |
54 | + | then if ((i.caller != whitelist_address)) | |
55 | + | then throw((("This Address is not Authorized. Only " + toString(whitelist_address)) + " is Authorized Address to Sign it.")) | |
56 | + | else [StringEntry("D2D_Status", "Passed")] | |
62 | 57 | else throw("Strict value is not equal to itself.") | |
63 | 58 | } | |
64 | 59 | ||
65 | 60 |
github/deemru/w8io/873ac7e 23.89 ms ◑