tx · EP9fRbubznXpmQfsaPVmapqSw5HR9HXq45x7fTswrMVf

3Mt7wmkWeioUsmfaBu6PsNq9j9SUs7f9qrs:  -0.01000000 Waves

2023.10.11 18:53 [2794155] smart account 3Mt7wmkWeioUsmfaBu6PsNq9j9SUs7f9qrs > SELF 0.00000000 Waves

{ "type": 13, "id": "EP9fRbubznXpmQfsaPVmapqSw5HR9HXq45x7fTswrMVf", "fee": 1000000, "feeAssetId": null, "timestamp": 1697039630145, "version": 2, "chainId": 84, "sender": "3Mt7wmkWeioUsmfaBu6PsNq9j9SUs7f9qrs", "senderPublicKey": "BLEvt3fBtK9gbCuj3VA7nHviqe3TPkRrF9KL6ZaHGgr4", "proofs": [ "27yuTcRQA1xA6GZLRcwp1zCi3qZgYMzq7fNmHQ2V42eVaSvSDFU2S4YN3YXrop9TukeqhNAqRE4snj7DxNjkx5y7" ], "script": "base64:BgISCAISBQoDCAEBEgASABIDCgEIQAALcmV2aXNpb25OdW0CAAAGRVVMRVI4ANaJz4EBAAVNVUxUNgDAhD0ABk1VTFRYNgkAtgIBAMCEPQAFTVVMVDgAgMLXLwAGTVVMVFg4CQC2AgEAgMLXLwAGTVVMVDEyAICglKWNHQAGTVVMVDE4CQC2AgEAgICQu7rWrfANAANTRVACAl9fAAdXQVZFU0lECQDZBAECBVdBVkVTAQ9nZXRTdHJpbmdPckZhaWwCB2FkZHJlc3MDa2V5CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUHYWRkcmVzcwUDa2V5CQC5CQIJAMwIAgIKbWFuZGF0b3J5IAkAzAgCCQClCAEFB2FkZHJlc3MJAMwIAgIBLgkAzAgCBQNrZXkJAMwIAgIPIGlzIG5vdCBkZWZpbmVkBQNuaWwCAAEMZ2V0SW50T3JGYWlsAgdhZGRyZXNzA2tleQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCaCAIFB2FkZHJlc3MFA2tleQkAuQkCCQDMCAICCm1hbmRhdG9yeSAJAMwIAgkApQgBBQdhZGRyZXNzCQDMCAICAS4JAMwIAgUDa2V5CQDMCAICDyBpcyBub3QgZGVmaW5lZAUDbmlsAgABDWdldEJvb2xPckZhaWwCB2FkZHJlc3MDa2V5CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJsIAgUHYWRkcmVzcwUDa2V5CQC5CQIJAMwIAgIKbWFuZGF0b3J5IAkAzAgCCQClCAEFB2FkZHJlc3MJAMwIAgIBLgkAzAgCBQNrZXkJAMwIAgIPIGlzIG5vdCBkZWZpbmVkBQNuaWwCAAEWY29udmVydE5ldXRyaW5vVG9XYXZlcwIGYW1vdW50BXByaWNlCQBrAwUGYW1vdW50BQVNVUxUOAUFcHJpY2UBFmNvbnZlcnRXYXZlc1RvTmV1dHJpbm8CBmFtb3VudAVwcmljZQkAawMFBmFtb3VudAUFcHJpY2UFBU1VTFQ4AQlhc0FueUxpc3QBA3ZhbAQHJG1hdGNoMAUDdmFsAwkAAQIFByRtYXRjaDACCUxpc3RbQW55XQQKdmFsQW55TGlzdAUHJG1hdGNoMAUKdmFsQW55TGlzdAkAAgECG2ZhaWwgdG8gY2FzdCBpbnRvIExpc3RbQW55XQEFYXNJbnQBA3ZhbAQHJG1hdGNoMAUDdmFsAwkAAQIFByRtYXRjaDACA0ludAQGdmFsSW50BQckbWF0Y2gwBQZ2YWxJbnQJAAIBAhVmYWlsIHRvIGNhc3QgaW50byBJbnQBCGFzU3RyaW5nAQN2YWwEByRtYXRjaDAFA3ZhbAMJAAECBQckbWF0Y2gwAgZTdHJpbmcEBnZhbFN0cgUHJG1hdGNoMAUGdmFsU3RyCQACAQIYZmFpbCB0byBjYXN0IGludG8gU3RyaW5nAQxhc1R1cGxlMkludHMBA3ZhbAQHJG1hdGNoMAUDdmFsAwkAAQIFByRtYXRjaDACCihJbnQsIEludCkEAXYFByRtYXRjaDAFAXYJAAIBAh1mYWlsIHRvIGNhc3QgaW50byBUdXBsZTIgaW50cwESYXNTd2FwUGFyYW1zU1RSVUNUAQN2YWwEByRtYXRjaDAFA3ZhbAMJAAECBQckbWF0Y2gwAiMoSW50LCBJbnQsIEludCwgSW50LCBJbnQsIEludCwgSW50KQQGc3RydWN0BQckbWF0Y2gwBQZzdHJ1Y3QJAAIBAiJmYWlsIHRvIGNhc3QgaW50byBTd2FwUGFyYW1zU1RSVUNUAQt0b1RpbWVzdGFtcAEFc3RhcnQDCQBmAgAABQVzdGFydAD///////////8BBAckbWF0Y2gwCQDtBwEFBXN0YXJ0AwkAAQIFByRtYXRjaDACCUJsb2NrSW5mbwQFYmxvY2sFByRtYXRjaDAIBQVibG9jawl0aW1lc3RhbXAA////////////AQEFdG9YMTgCB29yaWdWYWwNb3JpZ1NjYWxlTXVsdAkAvAIDCQC2AgEFB29yaWdWYWwFBk1VTFQxOAkAtgIBBQ1vcmlnU2NhbGVNdWx0AQdmcm9tWDE4AgN2YWwPcmVzdWx0U2NhbGVNdWx0CQCgAwEJALwCAwUDdmFsCQC2AgEFD3Jlc3VsdFNjYWxlTXVsdAUGTVVMVDE4ABlJZHhDb250cm9sQ2ZnTmV1dHJpbm9EYXBwAAEAGElkeENvbnRyb2xDZmdBdWN0aW9uRGFwcAACABRJZHhDb250cm9sQ2ZnUnBkRGFwcAADABVJZHhDb250cm9sQ2ZnTWF0aERhcHAABAAcSWR4Q29udHJvbENmZ0xpcXVpZGF0aW9uRGFwcAAFABVJZHhDb250cm9sQ2ZnUmVzdERhcHAABgAdSWR4Q29udHJvbENmZ05vZGVSZWdpc3RyeURhcHAABwAcSWR4Q29udHJvbENmZ05zYnRTdGFraW5nRGFwcAAIABlJZHhDb250cm9sQ2ZnTWVkaWF0b3JEYXBwAAkAHElkeENvbnRyb2xDZmdTdXJmU3Rha2luZ0RhcHAACgAgSWR4Q29udHJvbENmZ0duc2J0Q29udHJvbGxlckRhcHAACwERa2V5Q29udHJvbEFkZHJlc3MAAhwlcyVzX19jb25maWdfX2NvbnRyb2xBZGRyZXNzAQ1rZXlDb250cm9sQ2ZnAAIRJXNfX2NvbnRyb2xDb25maWcBFHJlYWRDb250cm9sQ2ZnT3JGYWlsAQdjb250cm9sCQC8CQIJAQ9nZXRTdHJpbmdPckZhaWwCBQdjb250cm9sCQENa2V5Q29udHJvbENmZwAFA1NFUAEYZ2V0Q29udHJhY3RBZGRyZXNzT3JGYWlsAgpjb250cm9sQ2ZnA2lkeAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEJAJEDAgUKY29udHJvbENmZwUDaWR4CQCsAgICLUNvbnRyb2wgY2ZnIGRvZXNuJ3QgY29udGFpbiBhZGRyZXNzIGF0IGluZGV4IAkApAMBBQNpZHgAD2NvbnRyb2xDb250cmFjdAkBEUBleHRyTmF0aXZlKDEwNjIpAQkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzCQERa2V5Q29udHJvbEFkZHJlc3MAAiMzTjROUzdkNEpvOWE2RjE0TGlGVUtLWVZkVWtrZjJlUDRaeAAKY29udHJvbENmZwkBFHJlYWRDb250cm9sQ2ZnT3JGYWlsAQUPY29udHJvbENvbnRyYWN0AAxtYXRoQ29udHJhY3QJARhnZXRDb250cmFjdEFkZHJlc3NPckZhaWwCBQpjb250cm9sQ2ZnBRVJZHhDb250cm9sQ2ZnTWF0aERhcHAAEG5ldXRyaW5vQ29udHJhY3QJARhnZXRDb250cmFjdEFkZHJlc3NPckZhaWwCBQpjb250cm9sQ2ZnBRlJZHhDb250cm9sQ2ZnTmV1dHJpbm9EYXBwAA9hdWN0aW9uQ29udHJhY3QJARhnZXRDb250cmFjdEFkZHJlc3NPckZhaWwCBQpjb250cm9sQ2ZnBRhJZHhDb250cm9sQ2ZnQXVjdGlvbkRhcHAAE2xpcXVpZGF0aW9uQ29udHJhY3QJARhnZXRDb250cmFjdEFkZHJlc3NPckZhaWwCBQpjb250cm9sQ2ZnBRxJZHhDb250cm9sQ2ZnTGlxdWlkYXRpb25EYXBwAAtycGRDb250cmFjdAkBGGdldENvbnRyYWN0QWRkcmVzc09yRmFpbAIFCmNvbnRyb2xDZmcFFElkeENvbnRyb2xDZmdScGREYXBwABNuc2J0U3Rha2luZ0NvbnRyYWN0CQEYZ2V0Q29udHJhY3RBZGRyZXNzT3JGYWlsAgUKY29udHJvbENmZwUcSWR4Q29udHJvbENmZ05zYnRTdGFraW5nRGFwcAATc3VyZlN0YWtpbmdDb250cmFjdAkBGGdldENvbnRyYWN0QWRkcmVzc09yRmFpbAIFCmNvbnRyb2xDZmcFHElkeENvbnRyb2xDZmdTdXJmU3Rha2luZ0RhcHAAC0lkeE5zYnRVc2VyAAAADElkeE5zYnRUb3RhbAABAAxJZHhOc2J0U3RhcnQAAgAQSWR4TnNidEduc2J0VXNlcgADABFJZHhOc2J0R25zYnRUb3RhbAAEAAtJZHhTdXJmVXNlcgAAAAxJZHhTdXJmVG90YWwAAQAQSWR4U3VyZkduc2J0VXNlcgACABFJZHhTdXJmR25zYnRUb3RhbAADAA1JZHhTdXJmVnBDdXJyAAQADElkeFN1cmZWcE5ldwAFABJJZHhTdXJmVG90YWxNYXR1cmUABgAQSWR4U3VyZlRvdGFsVGVlbgAHAA9JZHhTdXJmVG90YWxLaWQACAARSWR4U3VyZlVzZXJNYXR1cmUACQAPSWR4U3VyZlVzZXJUZWVuAAoADklkeFN1cmZVc2VyS2lkAAsEAWkBFGduc2J0SW5mb1NZU1JFQURPTkxZAxV1c2VyQWRkcmVzc1N0ck9yRW1wdHkIbnNidERpZmYIc3VyZkRpZmYECG5zYnREYXRhCQEJYXNBbnlMaXN0AQkA/AcEBRNuc2J0U3Rha2luZ0NvbnRyYWN0AhZuc2J0U3Rha2luZ1NZU1JFQURPTkxZCQDMCAIFFXVzZXJBZGRyZXNzU3RyT3JFbXB0eQkAzAgCBQhuc2J0RGlmZgUDbmlsBQNuaWwECG5zYnRVc2VyCQEFYXNJbnQBCQCRAwIFCG5zYnREYXRhBQtJZHhOc2J0VXNlcgQJbnNidFRvdGFsCQEFYXNJbnQBCQCRAwIFCG5zYnREYXRhBQxJZHhOc2J0VG90YWwEEWdOc2J0RnJvbU5zYnRVc2VyCQEFYXNJbnQBCQCRAwIFCG5zYnREYXRhBRBJZHhOc2J0R25zYnRVc2VyBBJnTnNidEZyb21Oc2J0VG90YWwJAQVhc0ludAEJAJEDAgUIbnNidERhdGEFEUlkeE5zYnRHbnNidFRvdGFsBBZnTnNidEZyb21Oc2J0VXNlckRlbHRhCQEFYXNJbnQBCQCRAwIFCG5zYnREYXRhAAUECHN1cmZEYXRhCQEJYXNBbnlMaXN0AQkA/AcEBRNzdXJmU3Rha2luZ0NvbnRyYWN0AhZzdXJmU3Rha2luZ1NZU1JFQURPTkxZCQDMCAIFFXVzZXJBZGRyZXNzU3RyT3JFbXB0eQkAzAgCBQhzdXJmRGlmZgUDbmlsBQNuaWwECHN1cmZVc2VyCQEFYXNJbnQBCQCRAwIFCHN1cmZEYXRhBQtJZHhTdXJmVXNlcgQJc3VyZlRvdGFsCQEFYXNJbnQBCQCRAwIFCHN1cmZEYXRhBQxJZHhTdXJmVG90YWwEEWdOc2J0RnJvbVN1cmZVc2VyCQEFYXNJbnQBCQCRAwIFCHN1cmZEYXRhBRBJZHhTdXJmR25zYnRVc2VyBBJnTnNidEZyb21TdXJmVG90YWwJAQVhc0ludAEJAJEDAgUIc3VyZkRhdGEFEUlkeFN1cmZHbnNidFRvdGFsBAlnTnNidFVzZXIJAGQCBRFnTnNidEZyb21Oc2J0VXNlcgURZ05zYnRGcm9tU3VyZlVzZXIECmdOc2J0VG90YWwJAGQCBRJnTnNidEZyb21Oc2J0VG90YWwFEmdOc2J0RnJvbVN1cmZUb3RhbAkAlAoCBQNuaWwJAMwIAgUJZ05zYnRVc2VyCQDMCAIFCmdOc2J0VG90YWwJAMwIAgkAzAgCBQhuc2J0VXNlcgkAzAgCBQluc2J0VG90YWwJAMwIAgURZ05zYnRGcm9tTnNidFVzZXIJAMwIAgUSZ05zYnRGcm9tTnNidFRvdGFsCQDMCAIFFmdOc2J0RnJvbU5zYnRVc2VyRGVsdGEFA25pbAkAzAgCCQDMCAIFCHN1cmZVc2VyCQDMCAIFCXN1cmZUb3RhbAkAzAgCBRFnTnNidEZyb21TdXJmVXNlcgkAzAgCBRJnTnNidEZyb21TdXJmVG90YWwFA25pbAkAzAgCCQEFYXNJbnQBCQCRAwIFCHN1cmZEYXRhBQ1JZHhTdXJmVnBDdXJyCQDMCAIJAQVhc0ludAEJAJEDAgUIc3VyZkRhdGEFDElkeFN1cmZWcE5ldwkAzAgCCQEFYXNJbnQBCQCRAwIFCHN1cmZEYXRhBRJJZHhTdXJmVG90YWxNYXR1cmUJAMwIAgkBBWFzSW50AQkAkQMCBQhzdXJmRGF0YQUQSWR4U3VyZlRvdGFsVGVlbgkAzAgCCQEFYXNJbnQBCQCRAwIFCHN1cmZEYXRhBQ9JZHhTdXJmVG90YWxLaWQJAMwIAgkBBWFzSW50AQkAkQMCBQhzdXJmRGF0YQURSWR4U3VyZlVzZXJNYXR1cmUJAMwIAgkBBWFzSW50AQkAkQMCBQhzdXJmRGF0YQUPSWR4U3VyZlVzZXJUZWVuCQDMCAIJAQVhc0ludAEJAJEDAgUIc3VyZkRhdGEFDklkeFN1cmZVc2VyS2lkBQNuaWwBaQEMY2xhaW1SZXdhcmRzAAQHbnNidEludgkBBWFzSW50AQkA/AcEBRNuc2J0U3Rha2luZ0NvbnRyYWN0AhpjbGFpbVJld2FyZHNCeU9yaWdpbkNhbGxlcgUDbmlsBQNuaWwEB3N1cmZJbnYJAQVhc0ludAEJAPwHBAUTc3VyZlN0YWtpbmdDb250cmFjdAIaY2xhaW1SZXdhcmRzQnlPcmlnaW5DYWxsZXIFA25pbAUDbmlsAwkAAAIJAGQCBQduc2J0SW52BQdzdXJmSW52AAAJAAIBAhBOb3RoaW5nIHRvIGNsYWltBQNuaWwBaQEPY2xhaW1BbGxSZXdhcmRzAAQHbnNidEludgkBBWFzSW50AQkA/AcEBRNuc2J0U3Rha2luZ0NvbnRyYWN0AhpjbGFpbVJld2FyZHNCeU9yaWdpbkNhbGxlcgUDbmlsBQNuaWwEB3N1cmZJbnYJAQVhc0ludAEJAPwHBAUTc3VyZlN0YWtpbmdDb250cmFjdAIaY2xhaW1SZXdhcmRzQnlPcmlnaW5DYWxsZXIFA25pbAUDbmlsBAZycGRJbnYJAQVhc0ludAEJAPwHBAULcnBkQ29udHJhY3QCGmNsYWltUmV3YXJkc0J5T3JpZ2luQ2FsbGVyBQNuaWwFA25pbAMJAAACCQBkAgkAZAIFB25zYnRJbnYFB3N1cmZJbnYFBnJwZEludgAACQACAQIQTm90aGluZyB0byBjbGFpbQUDbmlsAWkBF2duc2J0UmV3YXJkc1NZU1JFQURPTkxZARV1c2VyQWRkcmVzc1N0ck9yRW1wdHkEDW5zYnRSZXdhcmRTdHIJAQhhc1N0cmluZwEJAPwHBAUTbnNidFN0YWtpbmdDb250cmFjdAIYdW5jbGFpbWVkUmV3YXJkc1JFQURPTkxZCQDMCAIFFXVzZXJBZGRyZXNzU3RyT3JFbXB0eQUDbmlsBQNuaWwEDXN1cmZSZXdhcmRTdHIJAQhhc1N0cmluZwEJAPwHBAUTc3VyZlN0YWtpbmdDb250cmFjdAIYdW5jbGFpbWVkUmV3YXJkc1JFQURPTkxZCQDMCAIFFXVzZXJBZGRyZXNzU3RyT3JFbXB0eQUDbmlsBQNuaWwJAJQKAgUDbmlsCQDMCAIFDW5zYnRSZXdhcmRTdHIJAMwIAgUNc3VyZlJld2FyZFN0cgUDbmlsAEXTRVk=", "height": 2794155, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 5dPZ57rds2BHPXyMr1arzRCJbiYjdXuTx8Z8vz2RRKoQ Next: none Diff:
OldNewDifferences
185185 let nsbtTotal = asInt(nsbtData[IdxNsbtTotal])
186186 let gNsbtFromNsbtUser = asInt(nsbtData[IdxNsbtGnsbtUser])
187187 let gNsbtFromNsbtTotal = asInt(nsbtData[IdxNsbtGnsbtTotal])
188+ let gNsbtFromNsbtUserDelta = asInt(nsbtData[5])
188189 let surfData = asAnyList(invoke(surfStakingContract, "surfStakingSYSREADONLY", [userAddressStrOrEmpty, surfDiff], nil))
189190 let surfUser = asInt(surfData[IdxSurfUser])
190191 let surfTotal = asInt(surfData[IdxSurfTotal])
192193 let gNsbtFromSurfTotal = asInt(surfData[IdxSurfGnsbtTotal])
193194 let gNsbtUser = (gNsbtFromNsbtUser + gNsbtFromSurfUser)
194195 let gNsbtTotal = (gNsbtFromNsbtTotal + gNsbtFromSurfTotal)
195- $Tuple2(nil, [gNsbtUser, gNsbtTotal, [nsbtUser, nsbtTotal, gNsbtFromNsbtUser, gNsbtFromNsbtTotal], [surfUser, surfTotal, gNsbtFromSurfUser, gNsbtFromSurfTotal], asInt(surfData[IdxSurfVpCurr]), asInt(surfData[IdxSurfVpNew]), asInt(surfData[IdxSurfTotalMature]), asInt(surfData[IdxSurfTotalTeen]), asInt(surfData[IdxSurfTotalKid]), asInt(surfData[IdxSurfUserMature]), asInt(surfData[IdxSurfUserTeen]), asInt(surfData[IdxSurfUserKid])])
196+ $Tuple2(nil, [gNsbtUser, gNsbtTotal, [nsbtUser, nsbtTotal, gNsbtFromNsbtUser, gNsbtFromNsbtTotal, gNsbtFromNsbtUserDelta], [surfUser, surfTotal, gNsbtFromSurfUser, gNsbtFromSurfTotal], asInt(surfData[IdxSurfVpCurr]), asInt(surfData[IdxSurfVpNew]), asInt(surfData[IdxSurfTotalMature]), asInt(surfData[IdxSurfTotalTeen]), asInt(surfData[IdxSurfTotalKid]), asInt(surfData[IdxSurfUserMature]), asInt(surfData[IdxSurfUserTeen]), asInt(surfData[IdxSurfUserKid])])
196197 }
197198
198199
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let revisionNum = ""
55
66 let EULER8 = 271828182
77
88 let MULT6 = 1000000
99
1010 let MULTX6 = toBigInt(1000000)
1111
1212 let MULT8 = 100000000
1313
1414 let MULTX8 = toBigInt(100000000)
1515
1616 let MULT12 = 1000000000000
1717
1818 let MULT18 = toBigInt(1000000000000000000)
1919
2020 let SEP = "__"
2121
2222 let WAVESID = fromBase58String("WAVES")
2323
2424 func getStringOrFail (address,key) = valueOrErrorMessage(getString(address, key), makeString(["mandatory ", toString(address), ".", key, " is not defined"], ""))
2525
2626
2727 func getIntOrFail (address,key) = valueOrErrorMessage(getInteger(address, key), makeString(["mandatory ", toString(address), ".", key, " is not defined"], ""))
2828
2929
3030 func getBoolOrFail (address,key) = valueOrErrorMessage(getBoolean(address, key), makeString(["mandatory ", toString(address), ".", key, " is not defined"], ""))
3131
3232
3333 func convertNeutrinoToWaves (amount,price) = fraction(amount, MULT8, price)
3434
3535
3636 func convertWavesToNeutrino (amount,price) = fraction(amount, price, MULT8)
3737
3838
3939 func asAnyList (val) = match val {
4040 case valAnyList: List[Any] =>
4141 valAnyList
4242 case _ =>
4343 throw("fail to cast into List[Any]")
4444 }
4545
4646
4747 func asInt (val) = match val {
4848 case valInt: Int =>
4949 valInt
5050 case _ =>
5151 throw("fail to cast into Int")
5252 }
5353
5454
5555 func asString (val) = match val {
5656 case valStr: String =>
5757 valStr
5858 case _ =>
5959 throw("fail to cast into String")
6060 }
6161
6262
6363 func asTuple2Ints (val) = match val {
6464 case v: (Int, Int) =>
6565 v
6666 case _ =>
6767 throw("fail to cast into Tuple2 ints")
6868 }
6969
7070
7171 func asSwapParamsSTRUCT (val) = match val {
7272 case struct: (Int, Int, Int, Int, Int, Int, Int) =>
7373 struct
7474 case _ =>
7575 throw("fail to cast into SwapParamsSTRUCT")
7676 }
7777
7878
7979 func toTimestamp (start) = if ((0 > start))
8080 then -1
8181 else match blockInfoByHeight(start) {
8282 case block: BlockInfo =>
8383 block.timestamp
8484 case _ =>
8585 -1
8686 }
8787
8888
8989 func toX18 (origVal,origScaleMult) = fraction(toBigInt(origVal), MULT18, toBigInt(origScaleMult))
9090
9191
9292 func fromX18 (val,resultScaleMult) = toInt(fraction(val, toBigInt(resultScaleMult), MULT18))
9393
9494
9595 let IdxControlCfgNeutrinoDapp = 1
9696
9797 let IdxControlCfgAuctionDapp = 2
9898
9999 let IdxControlCfgRpdDapp = 3
100100
101101 let IdxControlCfgMathDapp = 4
102102
103103 let IdxControlCfgLiquidationDapp = 5
104104
105105 let IdxControlCfgRestDapp = 6
106106
107107 let IdxControlCfgNodeRegistryDapp = 7
108108
109109 let IdxControlCfgNsbtStakingDapp = 8
110110
111111 let IdxControlCfgMediatorDapp = 9
112112
113113 let IdxControlCfgSurfStakingDapp = 10
114114
115115 let IdxControlCfgGnsbtControllerDapp = 11
116116
117117 func keyControlAddress () = "%s%s__config__controlAddress"
118118
119119
120120 func keyControlCfg () = "%s__controlConfig"
121121
122122
123123 func readControlCfgOrFail (control) = split_4C(getStringOrFail(control, keyControlCfg()), SEP)
124124
125125
126126 func getContractAddressOrFail (controlCfg,idx) = valueOrErrorMessage(addressFromString(controlCfg[idx]), ("Control cfg doesn't contain address at index " + toString(idx)))
127127
128128
129129 let controlContract = addressFromStringValue(valueOrElse(getString(this, keyControlAddress()), "3N4NS7d4Jo9a6F14LiFUKKYVdUkkf2eP4Zx"))
130130
131131 let controlCfg = readControlCfgOrFail(controlContract)
132132
133133 let mathContract = getContractAddressOrFail(controlCfg, IdxControlCfgMathDapp)
134134
135135 let neutrinoContract = getContractAddressOrFail(controlCfg, IdxControlCfgNeutrinoDapp)
136136
137137 let auctionContract = getContractAddressOrFail(controlCfg, IdxControlCfgAuctionDapp)
138138
139139 let liquidationContract = getContractAddressOrFail(controlCfg, IdxControlCfgLiquidationDapp)
140140
141141 let rpdContract = getContractAddressOrFail(controlCfg, IdxControlCfgRpdDapp)
142142
143143 let nsbtStakingContract = getContractAddressOrFail(controlCfg, IdxControlCfgNsbtStakingDapp)
144144
145145 let surfStakingContract = getContractAddressOrFail(controlCfg, IdxControlCfgSurfStakingDapp)
146146
147147 let IdxNsbtUser = 0
148148
149149 let IdxNsbtTotal = 1
150150
151151 let IdxNsbtStart = 2
152152
153153 let IdxNsbtGnsbtUser = 3
154154
155155 let IdxNsbtGnsbtTotal = 4
156156
157157 let IdxSurfUser = 0
158158
159159 let IdxSurfTotal = 1
160160
161161 let IdxSurfGnsbtUser = 2
162162
163163 let IdxSurfGnsbtTotal = 3
164164
165165 let IdxSurfVpCurr = 4
166166
167167 let IdxSurfVpNew = 5
168168
169169 let IdxSurfTotalMature = 6
170170
171171 let IdxSurfTotalTeen = 7
172172
173173 let IdxSurfTotalKid = 8
174174
175175 let IdxSurfUserMature = 9
176176
177177 let IdxSurfUserTeen = 10
178178
179179 let IdxSurfUserKid = 11
180180
181181 @Callable(i)
182182 func gnsbtInfoSYSREADONLY (userAddressStrOrEmpty,nsbtDiff,surfDiff) = {
183183 let nsbtData = asAnyList(invoke(nsbtStakingContract, "nsbtStakingSYSREADONLY", [userAddressStrOrEmpty, nsbtDiff], nil))
184184 let nsbtUser = asInt(nsbtData[IdxNsbtUser])
185185 let nsbtTotal = asInt(nsbtData[IdxNsbtTotal])
186186 let gNsbtFromNsbtUser = asInt(nsbtData[IdxNsbtGnsbtUser])
187187 let gNsbtFromNsbtTotal = asInt(nsbtData[IdxNsbtGnsbtTotal])
188+ let gNsbtFromNsbtUserDelta = asInt(nsbtData[5])
188189 let surfData = asAnyList(invoke(surfStakingContract, "surfStakingSYSREADONLY", [userAddressStrOrEmpty, surfDiff], nil))
189190 let surfUser = asInt(surfData[IdxSurfUser])
190191 let surfTotal = asInt(surfData[IdxSurfTotal])
191192 let gNsbtFromSurfUser = asInt(surfData[IdxSurfGnsbtUser])
192193 let gNsbtFromSurfTotal = asInt(surfData[IdxSurfGnsbtTotal])
193194 let gNsbtUser = (gNsbtFromNsbtUser + gNsbtFromSurfUser)
194195 let gNsbtTotal = (gNsbtFromNsbtTotal + gNsbtFromSurfTotal)
195- $Tuple2(nil, [gNsbtUser, gNsbtTotal, [nsbtUser, nsbtTotal, gNsbtFromNsbtUser, gNsbtFromNsbtTotal], [surfUser, surfTotal, gNsbtFromSurfUser, gNsbtFromSurfTotal], asInt(surfData[IdxSurfVpCurr]), asInt(surfData[IdxSurfVpNew]), asInt(surfData[IdxSurfTotalMature]), asInt(surfData[IdxSurfTotalTeen]), asInt(surfData[IdxSurfTotalKid]), asInt(surfData[IdxSurfUserMature]), asInt(surfData[IdxSurfUserTeen]), asInt(surfData[IdxSurfUserKid])])
196+ $Tuple2(nil, [gNsbtUser, gNsbtTotal, [nsbtUser, nsbtTotal, gNsbtFromNsbtUser, gNsbtFromNsbtTotal, gNsbtFromNsbtUserDelta], [surfUser, surfTotal, gNsbtFromSurfUser, gNsbtFromSurfTotal], asInt(surfData[IdxSurfVpCurr]), asInt(surfData[IdxSurfVpNew]), asInt(surfData[IdxSurfTotalMature]), asInt(surfData[IdxSurfTotalTeen]), asInt(surfData[IdxSurfTotalKid]), asInt(surfData[IdxSurfUserMature]), asInt(surfData[IdxSurfUserTeen]), asInt(surfData[IdxSurfUserKid])])
196197 }
197198
198199
199200
200201 @Callable(i)
201202 func claimRewards () = {
202203 let nsbtInv = asInt(invoke(nsbtStakingContract, "claimRewardsByOriginCaller", nil, nil))
203204 let surfInv = asInt(invoke(surfStakingContract, "claimRewardsByOriginCaller", nil, nil))
204205 if (((nsbtInv + surfInv) == 0))
205206 then throw("Nothing to claim")
206207 else nil
207208 }
208209
209210
210211
211212 @Callable(i)
212213 func claimAllRewards () = {
213214 let nsbtInv = asInt(invoke(nsbtStakingContract, "claimRewardsByOriginCaller", nil, nil))
214215 let surfInv = asInt(invoke(surfStakingContract, "claimRewardsByOriginCaller", nil, nil))
215216 let rpdInv = asInt(invoke(rpdContract, "claimRewardsByOriginCaller", nil, nil))
216217 if ((((nsbtInv + surfInv) + rpdInv) == 0))
217218 then throw("Nothing to claim")
218219 else nil
219220 }
220221
221222
222223
223224 @Callable(i)
224225 func gnsbtRewardsSYSREADONLY (userAddressStrOrEmpty) = {
225226 let nsbtRewardStr = asString(invoke(nsbtStakingContract, "unclaimedRewardsREADONLY", [userAddressStrOrEmpty], nil))
226227 let surfRewardStr = asString(invoke(surfStakingContract, "unclaimedRewardsREADONLY", [userAddressStrOrEmpty], nil))
227228 $Tuple2(nil, [nsbtRewardStr, surfRewardStr])
228229 }
229230
230231

github/deemru/w8io/3ef1775 
202.21 ms