tx · G8Wy8UHc2jGCs4qc64neJTGTBLX67dUiSrVZXGv44Njt
3PDXrrDmpgM24cNrwSZbFuaKsX1HZAH4q8U: -0.00200000 Waves
2023.04.24 22:42 [3614650] smart account 3PDXrrDmpgM24cNrwSZbFuaKsX1HZAH4q8U > SELF 0.00000000 Waves
{
"type": 13,
"id": "G8Wy8UHc2jGCs4qc64neJTGTBLX67dUiSrVZXGv44Njt",
"fee": 200000,
"feeAssetId": null,
"timestamp": 1682365379002,
"version": 1,
"sender": "3PDXrrDmpgM24cNrwSZbFuaKsX1HZAH4q8U",
"senderPublicKey": "9sRrmnCcE2XFoyQEW8qtmrzKcEcohoS1LB4wu6dKkejZ",
"proofs": [
"wpcdhzYRtUBNBWqBeb5Ahi9yTAiv1bLXDvD35eWirLHZbYJZZLsxJx33aAvUVdksJV19NnSAhmFvz3uXRBxTMTH"
],
"script": "base64:BgIMCAISAwoBCBIDCgEIAwAGY2FsbGVyCQEHQWRkcmVzcwEBGgFX8kyNpgQzcQuvv6RJxwgvOUrGQgmaEDC0AAhyZWNlaXZlcgkBB0FkZHJlc3MBARoBV88FaXOVh1gjAmchvI+JX5J6ZuikHjJ+GAEMZ2V0SW50T3JaZXJvAQNrZXkJAQt2YWx1ZU9yRWxzZQIJAJ8IAQUDa2V5AAACAWkBBGluaXQBBm1hcmtldAMJAQIhPQIIBQFpBmNhbGxlcgUGY2FsbGVyCQACAQIKb25seSBhZG1pbgkAzAgCCQELU3RyaW5nRW50cnkCAgZtYXJrZXQFBm1hcmtldAUDbmlsAWkBAWwBAWEDCQECIT0CCAUBaQZjYWxsZXIFBmNhbGxlcgkAAgECCm9ubHkgYWRtaW4EBm1hcmtldAkBEUBleHRyTmF0aXZlKDEwNTMpAgUEdGhpcwIGbWFya2V0BA1tYXJrZXRBZGRyZXNzCQERQGV4dHJOYXRpdmUoMTA2MikBBQZtYXJrZXQEAWQJALUJAgUBYQIBXwQDcmVzCQD8BwQFDW1hcmtldEFkZHJlc3MCCWxpcXVpZGF0ZQkAzAgCCQCRAwIFAWQAAAkAzAgCCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUBZAABBQNuaWwFA25pbAMJAAACBQNyZXMFA3JlcwQOY29vcmRpbmF0b3JTdHIJARFAZXh0ck5hdGl2ZSgxMDUzKQIFDW1hcmtldEFkZHJlc3MCFGtfY29vcmRpbmF0b3JBZGRyZXNzBBJjb29yZGluYXRvckFkZHJlc3MJARFAZXh0ck5hdGl2ZSgxMDYyKQEFDmNvb3JkaW5hdG9yU3RyBA1xdW90ZUFzc2V0U3RyCQERQGV4dHJOYXRpdmUoMTA1MykCBRJjb29yZGluYXRvckFkZHJlc3MCDWtfcXVvdGVfYXNzZXQECnF1b3RlQXNzZXQJANkEAQUNcXVvdGVBc3NldFN0cgQHYmFsYW5jZQkA8AcCBQR0aGlzBQpxdW90ZUFzc2V0CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFCHJlY2VpdmVyBQdiYWxhbmNlBQpxdW90ZUFzc2V0CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgICB3Byb2ZpdF8JAKQDAQgFCWxhc3RCbG9jawl0aW1lc3RhbXAFB2JhbGFuY2UJAMwIAgkBDEludGVnZXJFbnRyeQICC3RvdGFsUHJvZml0CQBkAgkBDGdldEludE9yWmVybwECC3RvdGFsUHJvZml0BQdiYWxhbmNlBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4AQZhRtg==",
"chainId": 87,
"height": 3614650,
"applicationStatus": "succeeded",
"spentComplexity": 0
}
View: original | compacted
Prev: E5WPPRTjL9fndJhUU1iMNcPxzPxjo6u4zGUdnen8aF68
Next: 6GB2u7jdXUG5HR4zfJJVDtnQKPwn4iWmmt6nM1c2L6Df
Diff:
Old | New | | Differences |
---|
1 | 1 | | {-# STDLIB_VERSION 6 #-} |
---|
2 | 2 | | {-# SCRIPT_TYPE ACCOUNT #-} |
---|
3 | 3 | | {-# CONTENT_TYPE DAPP #-} |
---|
4 | | - | let admin = Address(base58'3PBYExCMcqwN9R8aD7Wpf3yZ4WVLqFm8zRU') |
---|
| 4 | + | let caller = Address(base58'3PQ23xgnf98t4qDtF5bscxdCDwgYoL7SPeK') |
---|
5 | 5 | | |
---|
6 | | - | let xtnId = base58'DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p' |
---|
| 6 | + | let receiver = Address(base58'3PLoX5yufZz9jRahL1CVVRAXq8VpUmXBKLK') |
---|
| 7 | + | |
---|
| 8 | + | func getIntOrZero (key) = valueOrElse(getInteger(key), 0) |
---|
| 9 | + | |
---|
7 | 10 | | |
---|
8 | 11 | | @Callable(i) |
---|
9 | | - | func init (market) = if ((i.caller != admin)) |
---|
10 | | - | then throw("lol") |
---|
| 12 | + | func init (market) = if ((i.caller != caller)) |
---|
| 13 | + | then throw("only admin") |
---|
11 | 14 | | else [StringEntry("market", market)] |
---|
12 | 15 | | |
---|
13 | 16 | | |
---|
14 | 17 | | |
---|
15 | 18 | | @Callable(i) |
---|
16 | | - | func l (a) = if ((i.caller != admin)) |
---|
17 | | - | then throw("lol") |
---|
| 19 | + | func l (a) = if ((i.caller != caller)) |
---|
| 20 | + | then throw("only admin") |
---|
18 | 21 | | else { |
---|
19 | 22 | | let market = getStringValue(this, "market") |
---|
20 | 23 | | let marketAddress = addressFromStringValue(market) |
---|
|
22 | 25 | | let res = invoke(marketAddress, "liquidate", [d[0], parseIntValue(d[1])], nil) |
---|
23 | 26 | | if ((res == res)) |
---|
24 | 27 | | then { |
---|
25 | | - | let b = assetBalance(this, xtnId) |
---|
26 | | - | [ScriptTransfer(admin, b, xtnId)] |
---|
| 28 | + | let coordinatorStr = getStringValue(marketAddress, "k_coordinatorAddress") |
---|
| 29 | + | let coordinatorAddress = addressFromStringValue(coordinatorStr) |
---|
| 30 | + | let quoteAssetStr = getStringValue(coordinatorAddress, "k_quote_asset") |
---|
| 31 | + | let quoteAsset = fromBase58String(quoteAssetStr) |
---|
| 32 | + | let balance = assetBalance(this, quoteAsset) |
---|
| 33 | + | [ScriptTransfer(receiver, balance, quoteAsset), IntegerEntry(("profit_" + toString(lastBlock.timestamp)), balance), IntegerEntry("totalProfit", (getIntOrZero("totalProfit") + balance))] |
---|
27 | 34 | | } |
---|
28 | 35 | | else throw("Strict value is not equal to itself.") |
---|
29 | 36 | | } |
---|
Full:
Old | New | | Differences |
---|
1 | 1 | | {-# STDLIB_VERSION 6 #-} |
---|
2 | 2 | | {-# SCRIPT_TYPE ACCOUNT #-} |
---|
3 | 3 | | {-# CONTENT_TYPE DAPP #-} |
---|
4 | | - | let admin = Address(base58'3PBYExCMcqwN9R8aD7Wpf3yZ4WVLqFm8zRU') |
---|
| 4 | + | let caller = Address(base58'3PQ23xgnf98t4qDtF5bscxdCDwgYoL7SPeK') |
---|
5 | 5 | | |
---|
6 | | - | let xtnId = base58'DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p' |
---|
| 6 | + | let receiver = Address(base58'3PLoX5yufZz9jRahL1CVVRAXq8VpUmXBKLK') |
---|
| 7 | + | |
---|
| 8 | + | func getIntOrZero (key) = valueOrElse(getInteger(key), 0) |
---|
| 9 | + | |
---|
7 | 10 | | |
---|
8 | 11 | | @Callable(i) |
---|
9 | | - | func init (market) = if ((i.caller != admin)) |
---|
10 | | - | then throw("lol") |
---|
| 12 | + | func init (market) = if ((i.caller != caller)) |
---|
| 13 | + | then throw("only admin") |
---|
11 | 14 | | else [StringEntry("market", market)] |
---|
12 | 15 | | |
---|
13 | 16 | | |
---|
14 | 17 | | |
---|
15 | 18 | | @Callable(i) |
---|
16 | | - | func l (a) = if ((i.caller != admin)) |
---|
17 | | - | then throw("lol") |
---|
| 19 | + | func l (a) = if ((i.caller != caller)) |
---|
| 20 | + | then throw("only admin") |
---|
18 | 21 | | else { |
---|
19 | 22 | | let market = getStringValue(this, "market") |
---|
20 | 23 | | let marketAddress = addressFromStringValue(market) |
---|
21 | 24 | | let d = split(a, "_") |
---|
22 | 25 | | let res = invoke(marketAddress, "liquidate", [d[0], parseIntValue(d[1])], nil) |
---|
23 | 26 | | if ((res == res)) |
---|
24 | 27 | | then { |
---|
25 | | - | let b = assetBalance(this, xtnId) |
---|
26 | | - | [ScriptTransfer(admin, b, xtnId)] |
---|
| 28 | + | let coordinatorStr = getStringValue(marketAddress, "k_coordinatorAddress") |
---|
| 29 | + | let coordinatorAddress = addressFromStringValue(coordinatorStr) |
---|
| 30 | + | let quoteAssetStr = getStringValue(coordinatorAddress, "k_quote_asset") |
---|
| 31 | + | let quoteAsset = fromBase58String(quoteAssetStr) |
---|
| 32 | + | let balance = assetBalance(this, quoteAsset) |
---|
| 33 | + | [ScriptTransfer(receiver, balance, quoteAsset), IntegerEntry(("profit_" + toString(lastBlock.timestamp)), balance), IntegerEntry("totalProfit", (getIntOrZero("totalProfit") + balance))] |
---|
27 | 34 | | } |
---|
28 | 35 | | else throw("Strict value is not equal to itself.") |
---|
29 | 36 | | } |
---|
30 | 37 | | |
---|
31 | 38 | | |
---|