tx · 5PGzUE6Y7oKN12sRKG31H75tFrSb9CQFow6yvTwTwWE6 3PDFJ4kygRDazysXZcxCnSDTkJ18kMBrtS2: -0.00200000 Waves 2022.12.02 16:44 [3408285] smart account 3PDFJ4kygRDazysXZcxCnSDTkJ18kMBrtS2 > SELF 0.00000000 Waves
{ "type": 13, "id": "5PGzUE6Y7oKN12sRKG31H75tFrSb9CQFow6yvTwTwWE6", "fee": 200000, "feeAssetId": null, "timestamp": 1669988655601, "version": 1, "sender": "3PDFJ4kygRDazysXZcxCnSDTkJ18kMBrtS2", "senderPublicKey": "GXJ7vETcKKnL2JezUd1gtyo5EqoQZrNdNEbcSytuXqAC", "proofs": [ "2ECoLwFCJmPFKJvMPuCNRQrmtdAo89r2KL7Zp4dkhQTdwsyvmzJ13q3ddtQkeHU3U5eigFpUx7nk2VRBUHbnp9Lu" ], "script": "base64:BgIECAISAAwAAXcCK1lpTmJvZkZ6QzE3akVISENNd3JSY3B5OU1ycmphYk1NTFp4ZzhnNXhtZjcAAXQBIAgfyPcWMO1Rwikb7Kwaj/yQcRxZOC3rIYGwN0HwRdFKAAFwCQEHQWRkcmVzcwEBGgFXayUbH3G34NHWjt7hRaHt01QTlEnOpNGpAAFzCQEHQWRkcmVzcwEBGgFXfcl7kxR5/+dR8bFKx2/5ah2AlUfPWCN+AA1LRVlfTEFTVF9SQVRFAglMQVNUX1JBVEUAEEtFWV9DVVJSRU5UX1JBVEUCDENVUlJFTlRfUkFURQAPS0VZX0xBU1RfSEVJR0hUAgtMQVNUX0hFSUdIVAARS0VZX1RBUkdFVF9IRUlHSFQCDVRBUkdFVF9IRUlHSFQADlBFUkNFTlRfRkFDVE9SCQC2AgEAgKCUpY0dAAtaRVJPX0JJR0lOVAkAtgIBAAABCF9sb2FkSW50AgRrZXlfCGRlZmF1bHRfBAckbWF0Y2gwCQCaCAIFAXMFBGtleV8DCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhBQhkZWZhdWx0XwELX2xvYWRCaWdJbnQCBGtleV8IZGVmYXVsdF8EByRtYXRjaDAJAJwIAgUBcwUEa2V5XwMJAAECBQckbWF0Y2gwAgpCeXRlVmVjdG9yBAFhBQckbWF0Y2gwCQCeAwEFAWEFCGRlZmF1bHRfAQFpAQdkZWZhdWx0AAQBYgkAZQIICQDvBwEFBHRoaXMHcmVndWxhcgCgwh4DCQECIT0CCAUBaQZjYWxsZXIFBHRoaXMJAAIBAg1BY2Nlc3MgRGVuaWVkBAJjMQkA/AcEBQFwAgRzd2FwCQDMCAIFAXcJAMwIAgAABQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFBHVuaXQFAWIFA25pbAMJAAACBQJjMQUCYzEEAXIKAAFABQJjMQMJAAECBQFAAgNJbnQFAUAJAAIBCQCsAgIJAAMBBQFAAhggY291bGRuJ3QgYmUgY2FzdCB0byBJbnQECGxhc3RSYXRlCQELX2xvYWRCaWdJbnQCBQ1LRVlfTEFTVF9SQVRFBQ5QRVJDRU5UX0ZBQ1RPUgQLY3VycmVudFJhdGUJAQtfbG9hZEJpZ0ludAIFEEtFWV9DVVJSRU5UX1JBVEUFC1pFUk9fQklHSU5UBApsYXN0SGVpZ2h0CQEIX2xvYWRJbnQCBQ9LRVlfTEFTVF9IRUlHSFQAAAQMdGFyZ2V0SGVpZ2h0CQCXAwEJAMwIAgkBCF9sb2FkSW50AgURS0VZX1RBUkdFVF9IRUlHSFQAAAkAzAgCCAUJbGFzdEJsb2NrBmhlaWdodAUDbmlsBA9sYXN0UmF0ZVVwZGF0ZWQJALcCAgUIbGFzdFJhdGUJALkCAgULY3VycmVudFJhdGUJALYCAQkAZQIFDHRhcmdldEhlaWdodAUKbGFzdEhlaWdodAQKYmFzZUFtb3VudAkAoAMBCQC9AgQJALYCAQUBcgUPbGFzdFJhdGVVcGRhdGVkBQ5QRVJDRU5UX0ZBQ1RPUgUFRkxPT1IDCQBmAgUBYgUKYmFzZUFtb3VudAkAAgECAWYEAmMyCQD8BwQFAXMCCHdpdGhkcmF3BQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAXQFAXIFA25pbAMJAAACBQJjMgUCYzIFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgECdHgBBnZlcmlmeQAEByRtYXRjaDAFAnR4AwkAAQIFByRtYXRjaDACF0ludm9rZVNjcmlwdFRyYW5zYWN0aW9uBANpbnYFByRtYXRjaDADCQAAAgkApAgBCAUDaW52BGRBcHAFBHRoaXMGCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAACAUCdHgPc2VuZGVyUHVibGljS2V5CQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAACAUCdHgPc2VuZGVyUHVibGljS2V5lXYdxA==", "chainId": 87, "height": 3408285, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: FmrTqYnN4BbSud8KJ21Q4UP7bfCfUWnJpEPRixHt5LGb Next: AgWwDwxhEVzQdGd1fHcDwcyEYiiTyuNdFyaU2fehdUfq Diff:
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 6 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | + | let w = "YiNbofFzC17jEHHCMwrRcpy9MrrjabMMLZxg8g5xmf7" | |
5 | + | ||
4 | 6 | let t = base58'YiNbofFzC17jEHHCMwrRcpy9MrrjabMMLZxg8g5xmf7' | |
5 | 7 | ||
6 | 8 | let p = Address(base58'3PBhRUwPuyykFYXby6C9Kz59htAhE8KsWmE') | |
41 | 43 | if ((i.caller != this)) | |
42 | 44 | then throw("Access Denied") | |
43 | 45 | else { | |
44 | - | let c1 = invoke(p, "swap", [ | |
46 | + | let c1 = invoke(p, "swap", [w, 0], [AttachedPayment(unit, b)]) | |
45 | 47 | if ((c1 == c1)) | |
46 | 48 | then { | |
47 | 49 | let r = { |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 6 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | + | let w = "YiNbofFzC17jEHHCMwrRcpy9MrrjabMMLZxg8g5xmf7" | |
5 | + | ||
4 | 6 | let t = base58'YiNbofFzC17jEHHCMwrRcpy9MrrjabMMLZxg8g5xmf7' | |
5 | 7 | ||
6 | 8 | let p = Address(base58'3PBhRUwPuyykFYXby6C9Kz59htAhE8KsWmE') | |
7 | 9 | ||
8 | 10 | let s = Address(base58'3PDPzZVLhN1EuzGy4xAxjjTVkawKDLEaHiV') | |
9 | 11 | ||
10 | 12 | let KEY_LAST_RATE = "LAST_RATE" | |
11 | 13 | ||
12 | 14 | let KEY_CURRENT_RATE = "CURRENT_RATE" | |
13 | 15 | ||
14 | 16 | let KEY_LAST_HEIGHT = "LAST_HEIGHT" | |
15 | 17 | ||
16 | 18 | let KEY_TARGET_HEIGHT = "TARGET_HEIGHT" | |
17 | 19 | ||
18 | 20 | let PERCENT_FACTOR = toBigInt(1000000000000) | |
19 | 21 | ||
20 | 22 | let ZERO_BIGINT = toBigInt(0) | |
21 | 23 | ||
22 | 24 | func _loadInt (key_,default_) = match getInteger(s, key_) { | |
23 | 25 | case a: Int => | |
24 | 26 | a | |
25 | 27 | case _ => | |
26 | 28 | default_ | |
27 | 29 | } | |
28 | 30 | ||
29 | 31 | ||
30 | 32 | func _loadBigInt (key_,default_) = match getBinary(s, key_) { | |
31 | 33 | case a: ByteVector => | |
32 | 34 | toBigInt(a) | |
33 | 35 | case _ => | |
34 | 36 | default_ | |
35 | 37 | } | |
36 | 38 | ||
37 | 39 | ||
38 | 40 | @Callable(i) | |
39 | 41 | func default () = { | |
40 | 42 | let b = (wavesBalance(this).regular - 500000) | |
41 | 43 | if ((i.caller != this)) | |
42 | 44 | then throw("Access Denied") | |
43 | 45 | else { | |
44 | - | let c1 = invoke(p, "swap", [ | |
46 | + | let c1 = invoke(p, "swap", [w, 0], [AttachedPayment(unit, b)]) | |
45 | 47 | if ((c1 == c1)) | |
46 | 48 | then { | |
47 | 49 | let r = { | |
48 | 50 | let @ = c1 | |
49 | 51 | if ($isInstanceOf(@, "Int")) | |
50 | 52 | then @ | |
51 | 53 | else throw(($getType(@) + " couldn't be cast to Int")) | |
52 | 54 | } | |
53 | 55 | let lastRate = _loadBigInt(KEY_LAST_RATE, PERCENT_FACTOR) | |
54 | 56 | let currentRate = _loadBigInt(KEY_CURRENT_RATE, ZERO_BIGINT) | |
55 | 57 | let lastHeight = _loadInt(KEY_LAST_HEIGHT, 0) | |
56 | 58 | let targetHeight = min([_loadInt(KEY_TARGET_HEIGHT, 0), lastBlock.height]) | |
57 | 59 | let lastRateUpdated = (lastRate + (currentRate * toBigInt((targetHeight - lastHeight)))) | |
58 | 60 | let baseAmount = toInt(fraction(toBigInt(r), lastRateUpdated, PERCENT_FACTOR, FLOOR)) | |
59 | 61 | if ((b > baseAmount)) | |
60 | 62 | then throw("f") | |
61 | 63 | else { | |
62 | 64 | let c2 = invoke(s, "withdraw", nil, [AttachedPayment(t, r)]) | |
63 | 65 | if ((c2 == c2)) | |
64 | 66 | then nil | |
65 | 67 | else throw("Strict value is not equal to itself.") | |
66 | 68 | } | |
67 | 69 | } | |
68 | 70 | else throw("Strict value is not equal to itself.") | |
69 | 71 | } | |
70 | 72 | } | |
71 | 73 | ||
72 | 74 | ||
73 | 75 | @Verifier(tx) | |
74 | 76 | func verify () = match tx { | |
75 | 77 | case inv: InvokeScriptTransaction => | |
76 | 78 | if ((addressFromRecipient(inv.dApp) == this)) | |
77 | 79 | then true | |
78 | 80 | else sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey) | |
79 | 81 | case _ => | |
80 | 82 | sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey) | |
81 | 83 | } | |
82 | 84 |
github/deemru/w8io/3ef1775 48.79 ms ◑