tx · 5rWF8nn87njr19w2C8RQx62hPHAvCdELSTT2J34yPz9T
3N1XAEyg1TQGa5FCEerrRhLGi5KyVq26Xm8: -0.00200000 Waves
2023.01.16 15:58 [2407534] smart account 3N1XAEyg1TQGa5FCEerrRhLGi5KyVq26Xm8 > SELF 0.00000000 Waves
{
"type": 13,
"id": "5rWF8nn87njr19w2C8RQx62hPHAvCdELSTT2J34yPz9T",
"fee": 200000,
"feeAssetId": null,
"timestamp": 1673873940555,
"version": 2,
"chainId": 84,
"sender": "3N1XAEyg1TQGa5FCEerrRhLGi5KyVq26Xm8",
"senderPublicKey": "ATuPi6fn8277fNiCoRgPTav9QG15CJoW95GEGcDmfYt8",
"proofs": [
"4bvzsAAd9vepfFbX8m7u8VSr9i8XkJidwqLQqkX6m6tqqaBqryAPuDmagdDKmudYRkDs2AEDz2p1sD4vfPKgKEFG"
],
"script": "base64:BgIMCAISABIAEgQKAgEBDQAFd2NkSWQCLDVXRTZIQlZzbUFiYXBUbVRLcG15V21VUjY3ZmMxNnliRnJOanh6bURCdFBhAAt3Y2REZWNpbWFscwACARN0b3RhbFNoYXJlQnlVc2VyS0VZAQVvd25lcgkAuQkCCQDMCAICBnNoYXJlcwkAzAgCBQVvd25lcgUDbmlsAgFfARR0b3RhbFNoYXJlQnlVc2VyUkVBRAEFb3duZXIJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkBE3RvdGFsU2hhcmVCeVVzZXJLRVkBBQVvd25lcgAAABJ0b3RhbElzc3VlZFdDRF9LRVkCEHRvdGFsX2lzc3VlZF9XQ0QBE3RvdGFsSXNzdWVkV0NEX1JFQUQACQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFEnRvdGFsSXNzdWVkV0NEX0tFWQAAAA50b3RhbFNoYXJlc0tFWQIMdG90YWxfc2hhcmVzAQ90b3RhbFNoYXJlc1JFQUQACQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFDnRvdGFsU2hhcmVzS0VZAAAACnBhcmFtQV9LRVkCAUEBC3BhcmFtQV9SRUFEAAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzAgFBAGQBDGNvbXB1dGVUTURJUgIKaXNzdWVkX3djZAFBBAhsb2dUTURJUgkAZQIAgMq17gEJAGgCCQBtBgUKaXNzdWVkX3djZAULd2NkRGVjaW1hbHMACgAAAAYFBkhBTEZVUAUBQQkAawMAAQkAbAYACgAABQhsb2dUTURJUgAIAAgFBkhBTEZVUACAwtcvAQtjb21wdXRlVE1ESQIKaXNzdWVkX3djZAFBAwkAZgIFCmlzc3VlZF93Y2QAgK3iBAkAaAIFCmlzc3VlZF93Y2QJAQxjb21wdXRlVE1ESVICBQppc3N1ZWRfd2NkBQFBAICt4gQBB2dldFRNREkACQELY29tcHV0ZVRNREkCCQETdG90YWxJc3N1ZWRXQ0RfUkVBRAAJAQtwYXJhbUFfUkVBRAADAWkBDWRlcG9zaXRfc2hhcmUABANwbXQDCQAAAgkAkAMBCAUBaQhwYXltZW50cwABCQCRAwIIBQFpCHBheW1lbnRzAAAJAAIBAhxBdHRhY2hlZCBwYXltZW50IGlzIHJlcXVpcmVkAwkBCWlzRGVmaW5lZAEIBQNwbXQHYXNzZXRJZAkAAgECFk9ubHkgV0FWRVMgaXMgYWxsb3dlZC4EB2FjY291bnQJAKUIAQgFAWkGY2FsbGVyBBB0b3RhbFNoYXJlQnlVc2VyCQEUdG90YWxTaGFyZUJ5VXNlclJFQUQBBQdhY2NvdW50BAt0b3RhbFNoYXJlcwkBD3RvdGFsU2hhcmVzUkVBRAAJAMwIAgkBDEludGVnZXJFbnRyeQIJARN0b3RhbFNoYXJlQnlVc2VyS0VZAQUHYWNjb3VudAkAZAIFEHRvdGFsU2hhcmVCeVVzZXIIBQNwbXQGYW1vdW50CQDMCAIJAQxJbnRlZ2VyRW50cnkCBQ50b3RhbFNoYXJlc0tFWQkAZAIFC3RvdGFsU2hhcmVzCAUDcG10BmFtb3VudAUDbmlsAWkBCGdldF90bWRpAAkAAgEJAKwCAgIIcmVzdWx0OiAJAKQDAQkBB2dldFRNREkAAWkBFGdldF90bWRpX2Zyb21fcGFyYW1zAgppc3N1ZWRfd2NkAUEJAAIBCQCsAgICCHJlc3VsdDogCQCkAwEJAQtjb21wdXRlVE1ESQIFCmlzc3VlZF93Y2QFAUEAlO4Reg==",
"height": 2407534,
"applicationStatus": "succeeded",
"spentComplexity": 0
}
View: original | compacted
Prev: 9dUTsnp7UvCNFL2nsPgBCKiMJXFCtqUtvmm7y1oZboen
Next: 3tuUFgW6Wt4H3Fd1sRc16LtkpQqYfwXeeen2hqmo3St7
Diff:
Old | New | | Differences |
---|
26 | 26 | | func paramA_READ () = valueOrElse(getInteger(this, "A"), 100) |
---|
27 | 27 | | |
---|
28 | 28 | | |
---|
29 | | - | func computeLogTMDIR (issued_wcd,A) = (500000000 - (log(issued_wcd, wcdDecimals, 10, 0, 6, HALFUP) * A)) |
---|
| 29 | + | func computeTMDIR (issued_wcd,A) = { |
---|
| 30 | + | let logTMDIR = (500000000 - (log(issued_wcd, wcdDecimals, 10, 0, 6, HALFUP) * A)) |
---|
| 31 | + | fraction(1, pow(10, 0, logTMDIR, 8, 8, HALFUP), 100000000) |
---|
| 32 | + | } |
---|
30 | 33 | | |
---|
31 | 34 | | |
---|
32 | 35 | | func computeTMDI (issued_wcd,A) = if ((issued_wcd > 10000000)) |
---|
33 | | - | then fraction(issued_wcd, pow(10, 0, computeLogTMDIR(issued_wcd, A), 8, 8, HALFUP), 100000000) |
---|
| 36 | + | then (issued_wcd * computeTMDIR(issued_wcd, A)) |
---|
34 | 37 | | else 10000000 |
---|
35 | 38 | | |
---|
36 | 39 | | |
---|
|
58 | 61 | | func get_tmdi () = throw(("result: " + toString(getTMDI()))) |
---|
59 | 62 | | |
---|
60 | 63 | | |
---|
| 64 | + | |
---|
| 65 | + | @Callable(i) |
---|
| 66 | + | func get_tmdi_from_params (issued_wcd,A) = throw(("result: " + toString(computeTMDI(issued_wcd, A)))) |
---|
| 67 | + | |
---|
| 68 | + | |
---|
Full:
Old | New | | Differences |
---|
1 | 1 | | {-# STDLIB_VERSION 6 #-} |
---|
2 | 2 | | {-# SCRIPT_TYPE ACCOUNT #-} |
---|
3 | 3 | | {-# CONTENT_TYPE DAPP #-} |
---|
4 | 4 | | let wcdId = "5WE6HBVsmAbapTmTKpmyWmUR67fc16ybFrNjxzmDBtPa" |
---|
5 | 5 | | |
---|
6 | 6 | | let wcdDecimals = 2 |
---|
7 | 7 | | |
---|
8 | 8 | | func totalShareByUserKEY (owner) = makeString(["shares", owner], "_") |
---|
9 | 9 | | |
---|
10 | 10 | | |
---|
11 | 11 | | func totalShareByUserREAD (owner) = valueOrElse(getInteger(this, totalShareByUserKEY(owner)), 0) |
---|
12 | 12 | | |
---|
13 | 13 | | |
---|
14 | 14 | | let totalIssuedWCD_KEY = "total_issued_WCD" |
---|
15 | 15 | | |
---|
16 | 16 | | func totalIssuedWCD_READ () = valueOrElse(getInteger(this, totalIssuedWCD_KEY), 0) |
---|
17 | 17 | | |
---|
18 | 18 | | |
---|
19 | 19 | | let totalSharesKEY = "total_shares" |
---|
20 | 20 | | |
---|
21 | 21 | | func totalSharesREAD () = valueOrElse(getInteger(this, totalSharesKEY), 0) |
---|
22 | 22 | | |
---|
23 | 23 | | |
---|
24 | 24 | | let paramA_KEY = "A" |
---|
25 | 25 | | |
---|
26 | 26 | | func paramA_READ () = valueOrElse(getInteger(this, "A"), 100) |
---|
27 | 27 | | |
---|
28 | 28 | | |
---|
29 | | - | func computeLogTMDIR (issued_wcd,A) = (500000000 - (log(issued_wcd, wcdDecimals, 10, 0, 6, HALFUP) * A)) |
---|
| 29 | + | func computeTMDIR (issued_wcd,A) = { |
---|
| 30 | + | let logTMDIR = (500000000 - (log(issued_wcd, wcdDecimals, 10, 0, 6, HALFUP) * A)) |
---|
| 31 | + | fraction(1, pow(10, 0, logTMDIR, 8, 8, HALFUP), 100000000) |
---|
| 32 | + | } |
---|
30 | 33 | | |
---|
31 | 34 | | |
---|
32 | 35 | | func computeTMDI (issued_wcd,A) = if ((issued_wcd > 10000000)) |
---|
33 | | - | then fraction(issued_wcd, pow(10, 0, computeLogTMDIR(issued_wcd, A), 8, 8, HALFUP), 100000000) |
---|
| 36 | + | then (issued_wcd * computeTMDIR(issued_wcd, A)) |
---|
34 | 37 | | else 10000000 |
---|
35 | 38 | | |
---|
36 | 39 | | |
---|
37 | 40 | | func getTMDI () = computeTMDI(totalIssuedWCD_READ(), paramA_READ()) |
---|
38 | 41 | | |
---|
39 | 42 | | |
---|
40 | 43 | | @Callable(i) |
---|
41 | 44 | | func deposit_share () = { |
---|
42 | 45 | | let pmt = if ((size(i.payments) == 1)) |
---|
43 | 46 | | then i.payments[0] |
---|
44 | 47 | | else throw("Attached payment is required") |
---|
45 | 48 | | if (isDefined(pmt.assetId)) |
---|
46 | 49 | | then throw("Only WAVES is allowed.") |
---|
47 | 50 | | else { |
---|
48 | 51 | | let account = toString(i.caller) |
---|
49 | 52 | | let totalShareByUser = totalShareByUserREAD(account) |
---|
50 | 53 | | let totalShares = totalSharesREAD() |
---|
51 | 54 | | [IntegerEntry(totalShareByUserKEY(account), (totalShareByUser + pmt.amount)), IntegerEntry(totalSharesKEY, (totalShares + pmt.amount))] |
---|
52 | 55 | | } |
---|
53 | 56 | | } |
---|
54 | 57 | | |
---|
55 | 58 | | |
---|
56 | 59 | | |
---|
57 | 60 | | @Callable(i) |
---|
58 | 61 | | func get_tmdi () = throw(("result: " + toString(getTMDI()))) |
---|
59 | 62 | | |
---|
60 | 63 | | |
---|
| 64 | + | |
---|
| 65 | + | @Callable(i) |
---|
| 66 | + | func get_tmdi_from_params (issued_wcd,A) = throw(("result: " + toString(computeTMDI(issued_wcd, A)))) |
---|
| 67 | + | |
---|
| 68 | + | |
---|