tx · CfcEy6isfBMzDQQwLy66tfUvPcBT4RRQmGhAFXSTY8Er 3P8eGnubS5xVZ2aCsSqeV5WQcvTcwkASuTb: -0.01000000 Waves 2023.09.24 13:51 [3835174] smart account 3P8eGnubS5xVZ2aCsSqeV5WQcvTcwkASuTb > SELF 0.00000000 Waves
{ "type": 13, "id": "CfcEy6isfBMzDQQwLy66tfUvPcBT4RRQmGhAFXSTY8Er", "fee": 1000000, "feeAssetId": null, "timestamp": 1695552808320, "version": 2, "chainId": 87, "sender": "3P8eGnubS5xVZ2aCsSqeV5WQcvTcwkASuTb", "senderPublicKey": "2vNDhWEMz6ZAdmN9um3AQLcKLxANS83ZbH2mWpNGxpC1", "proofs": [ "yS4NkrBTCLECnPfAQpzbTp2jwgKpjTaaYvSe3U4BS4nZSHaMc4wuzEY4mR9CGWmHXuWdkRF2G1f2NrTyviFxohg" ], "script": "base64:BgIKCAISBAoCAQESAAsABlRva2VuWAEgktH0SuIRASv0fureIY49xfvJ8n3Oh7LtUhnwOk4kWPUAGnRvdGFsUmVnaXN0ZXJlZEFjY291bnRzS2V5Ahl0b3RhbF9yZWdpc3RlcmVkX2FjY291bnRzABl0b3RhbEFjdGl2YXRlZEFjY291bnRzS2V5Ahh0b3RhbF9hY3RpdmF0ZXNfYWNjb3VudHMBDWdldEFkZHJlc3NLZXkBAmlkCQCsAgICC2FkZHJlc3Nfb2ZfCQCkAwEFAmlkAQ5nZXRSZWZlcnJlcktleQECaWQJAKwCAgIMcmVmZXJyZXJfb2ZfCQCkAwEFAmlkARNnZXRSZWZlcnJhbENvdW50S2V5AQJpZAkArAICAhJyZWZlcnJhbF9jb3VudF9vZl8JAKQDAQUCaWQBDGdldFJhdGluZ0tleQECaWQJAKwCAgIKcmF0aW5nX29mXwkApAMBBQJpZAEQZ2V0QWN0aXZhdGlvbktleQECaWQJAKwCAgIKaXNfYWN0aXZlXwkApAMBBQJpZAEIZ2V0SWRLZXkBB2FkZHJlc3MJAKwCAgIGaWRfb2ZfBQdhZGRyZXNzARZnZXRBY3RpdmF0ZWRBY2NvdW50S2V5AgdhZGRyZXNzAmlkCQCsAgIJAKwCAgkArAICAhJhY3RpdmF0ZWRfYWNjb3VudF8FB2FkZHJlc3MCAV8JAKQDAQUCaWQBDWdldFdhbGxldEluZm8BCmFkZHJlc3NTdHIEB2FkZHJlc3MJAQV2YWx1ZQEJAKYIAQUKYWRkcmVzc1N0cgQLd2F2ZXNBbW91bnQICQDvBwEFB2FkZHJlc3MHcmVndWxhcgQMdG9rZW54QW1vdW50CQDwBwIFB2FkZHJlc3MFBlRva2VuWAQEanNvbgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICAgF7AgEiAgV3YXZlcwIBIgIBOgkApAMBBQt3YXZlc0Ftb3VudAIBLAIBIgIGdG9rZW54AgEiAgE6CQCkAwEFDHRva2VueEFtb3VudAIAAgF9BQRqc29uAgFpAQhyZWdpc3RlcgICaWQIcmVmZXJyZXIEB2FkZHJlc3MJAKUIAQgFAWkGY2FsbGVyAwkBCWlzRGVmaW5lZAEJAJ0IAgUEdGhpcwkBDWdldEFkZHJlc3NLZXkBBQJpZAkAAgECEUlkIGFscmVhZHkgZXhpc3RzAwkBCWlzRGVmaW5lZAEJAJoIAgUEdGhpcwkBCGdldElkS2V5AQUHYWRkcmVzcwkAAgECFkFkZHJlc3MgYWxyZWFkeSBleGlzdHMEFHRvdGFsUmVnaXN0ZXJlZENvdW50CQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFGnRvdGFsUmVnaXN0ZXJlZEFjY291bnRzS2V5AAAJAMwIAgkBDEludGVnZXJFbnRyeQIJAQhnZXRJZEtleQEFB2FkZHJlc3MFAmlkCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQ1nZXRBZGRyZXNzS2V5AQUCaWQFB2FkZHJlc3MJAMwIAgkBDEludGVnZXJFbnRyeQIJAQ5nZXRSZWZlcnJlcktleQEFAmlkBQhyZWZlcnJlcgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBDGdldFJhdGluZ0tleQEFAmlkAAAJAMwIAgkBDEJvb2xlYW5FbnRyeQIJARBnZXRBY3RpdmF0aW9uS2V5AQUCaWQHCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQETZ2V0UmVmZXJyYWxDb3VudEtleQEFAmlkAAAJAMwIAgkBDEludGVnZXJFbnRyeQIFGnRvdGFsUmVnaXN0ZXJlZEFjY291bnRzS2V5CQBkAgUUdG90YWxSZWdpc3RlcmVkQ291bnQAAQUDbmlsAWkBCGFjdGl2YXRlAAQHYWRkcmVzcwkApQgBCAUBaQZjYWxsZXIEAmlkCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJoIAgUEdGhpcwkBCGdldElkS2V5AQUHYWRkcmVzcwIMSWQgbm90IGZvdW5kBAhyZWZlcnJlcgkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCaCAIFBHRoaXMJAQ5nZXRSZWZlcnJlcktleQEFAmlkAhJSZWZlcnJlciBub3QgZm91bmQDAwMJAAACCQCQAwEIBQFpCHBheW1lbnRzAAEJAAACCAkAkQMCCAUBaQhwYXltZW50cwAAB2Fzc2V0SWQFBlRva2VuWAcJAAACCAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudACAlOvcAwcEE3RvdGFsQWN0aXZhdGVkQ291bnQJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUZdG90YWxBY3RpdmF0ZWRBY2NvdW50c0tleQAABA1yZWZlcnJhbENvdW50CQBkAgkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQETZ2V0UmVmZXJyYWxDb3VudEtleQEFCHJlZmVycmVyAAAAAQkAzAgCCQEMSW50ZWdlckVudHJ5AgUZdG90YWxBY3RpdmF0ZWRBY2NvdW50c0tleQkAZAIFE3RvdGFsQWN0aXZhdGVkQ291bnQAAQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBFmdldEFjdGl2YXRlZEFjY291bnRLZXkCBQdhZGRyZXNzBQJpZAkAZAIFE3RvdGFsQWN0aXZhdGVkQ291bnQAAQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBE2dldFJlZmVycmFsQ291bnRLZXkBBQhyZWZlcnJlcgUNcmVmZXJyYWxDb3VudAUDbmlsCQACAQILQmFkIHBheW1lbnQAdd4iJg==", "height": 3835174, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 6gSujgt9EUHHPtn9NNzEv9U6icVGFJpxSeFU4DaSKhF6 Next: 3LPfqrLqo2YwPoiUV545i3rSQPQWCemweFEBENr5vgNy Diff:
Old | New | Differences | |
---|---|---|---|
33 | 33 | let wavesAmount = wavesBalance(address).regular | |
34 | 34 | let tokenxAmount = assetBalance(address, TokenX) | |
35 | 35 | let json = ((((((((((((("{" + "\"") + "waves") + "\"") + ":") + toString(wavesAmount)) + ",") + "\"") + "tokenx") + "\"") + ":") + toString(tokenxAmount)) + "") + "}") | |
36 | - | | |
36 | + | json | |
37 | 37 | } | |
38 | 38 | ||
39 | 39 |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 6 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let TokenX = base58'At8D6NFFpheCbvKVnjVoeLL84Eo8NZn6ovManxfLaFWL' | |
5 | 5 | ||
6 | 6 | let totalRegisteredAccountsKey = "total_registered_accounts" | |
7 | 7 | ||
8 | 8 | let totalActivatedAccountsKey = "total_activates_accounts" | |
9 | 9 | ||
10 | 10 | func getAddressKey (id) = ("address_of_" + toString(id)) | |
11 | 11 | ||
12 | 12 | ||
13 | 13 | func getReferrerKey (id) = ("referrer_of_" + toString(id)) | |
14 | 14 | ||
15 | 15 | ||
16 | 16 | func getReferralCountKey (id) = ("referral_count_of_" + toString(id)) | |
17 | 17 | ||
18 | 18 | ||
19 | 19 | func getRatingKey (id) = ("rating_of_" + toString(id)) | |
20 | 20 | ||
21 | 21 | ||
22 | 22 | func getActivationKey (id) = ("is_active_" + toString(id)) | |
23 | 23 | ||
24 | 24 | ||
25 | 25 | func getIdKey (address) = ("id_of_" + address) | |
26 | 26 | ||
27 | 27 | ||
28 | 28 | func getActivatedAccountKey (address,id) = ((("activated_account_" + address) + "_") + toString(id)) | |
29 | 29 | ||
30 | 30 | ||
31 | 31 | func getWalletInfo (addressStr) = { | |
32 | 32 | let address = value(addressFromString(addressStr)) | |
33 | 33 | let wavesAmount = wavesBalance(address).regular | |
34 | 34 | let tokenxAmount = assetBalance(address, TokenX) | |
35 | 35 | let json = ((((((((((((("{" + "\"") + "waves") + "\"") + ":") + toString(wavesAmount)) + ",") + "\"") + "tokenx") + "\"") + ":") + toString(tokenxAmount)) + "") + "}") | |
36 | - | | |
36 | + | json | |
37 | 37 | } | |
38 | 38 | ||
39 | 39 | ||
40 | 40 | @Callable(i) | |
41 | 41 | func register (id,referrer) = { | |
42 | 42 | let address = toString(i.caller) | |
43 | 43 | if (isDefined(getString(this, getAddressKey(id)))) | |
44 | 44 | then throw("Id already exists") | |
45 | 45 | else if (isDefined(getInteger(this, getIdKey(address)))) | |
46 | 46 | then throw("Address already exists") | |
47 | 47 | else { | |
48 | 48 | let totalRegisteredCount = valueOrElse(getInteger(this, totalRegisteredAccountsKey), 0) | |
49 | 49 | [IntegerEntry(getIdKey(address), id), StringEntry(getAddressKey(id), address), IntegerEntry(getReferrerKey(id), referrer), IntegerEntry(getRatingKey(id), 0), BooleanEntry(getActivationKey(id), false), IntegerEntry(getReferralCountKey(id), 0), IntegerEntry(totalRegisteredAccountsKey, (totalRegisteredCount + 1))] | |
50 | 50 | } | |
51 | 51 | } | |
52 | 52 | ||
53 | 53 | ||
54 | 54 | ||
55 | 55 | @Callable(i) | |
56 | 56 | func activate () = { | |
57 | 57 | let address = toString(i.caller) | |
58 | 58 | let id = valueOrErrorMessage(getInteger(this, getIdKey(address)), "Id not found") | |
59 | 59 | let referrer = valueOrErrorMessage(getInteger(this, getReferrerKey(id)), "Referrer not found") | |
60 | 60 | if (if (if ((size(i.payments) == 1)) | |
61 | 61 | then (i.payments[0].assetId == TokenX) | |
62 | 62 | else false) | |
63 | 63 | then (i.payments[0].amount == 1000000000) | |
64 | 64 | else false) | |
65 | 65 | then { | |
66 | 66 | let totalActivatedCount = valueOrElse(getInteger(this, totalActivatedAccountsKey), 0) | |
67 | 67 | let referralCount = (valueOrElse(getInteger(this, getReferralCountKey(referrer)), 0) + 1) | |
68 | 68 | [IntegerEntry(totalActivatedAccountsKey, (totalActivatedCount + 1)), IntegerEntry(getActivatedAccountKey(address, id), (totalActivatedCount + 1)), IntegerEntry(getReferralCountKey(referrer), referralCount)] | |
69 | 69 | } | |
70 | 70 | else throw("Bad payment") | |
71 | 71 | } | |
72 | 72 | ||
73 | 73 |
github/deemru/w8io/6500d08 33.10 ms ◑