tx · CLwUypmgs1t7qB6TEtGf7HrkDsNmbYhrM37ArPdc6JmU

3NA2sejUzEcL7Gg8WfhrcqxP22fHk2SS9pK:  -0.00700000 Waves

2022.08.25 08:21 [2199573] smart account 3NA2sejUzEcL7Gg8WfhrcqxP22fHk2SS9pK > SELF 0.00000000 Waves

{ "type": 13, "id": "CLwUypmgs1t7qB6TEtGf7HrkDsNmbYhrM37ArPdc6JmU", "fee": 700000, "feeAssetId": null, "timestamp": 1661404911879, "version": 2, "chainId": 84, "sender": "3NA2sejUzEcL7Gg8WfhrcqxP22fHk2SS9pK", "senderPublicKey": "HMzDczZUThMMhE2Grm1ZmpN3QNZ9N7CUCYnsqh4utSDJ", "proofs": [ "42WgneNsAPQRiC1BnC1M2CNGipEfCY8BCUbeTM84EWyjisMcscPzDJCd4DYvZnLbR8kt5EKz8GevGCg4erjEuPut" ], "script": "base64:BgIYCAISABIAEgMKAQESAwoBARIAEgASABIABgAEdXNkbgEg11KRGPRfT6VehNuJvBkobHB7OMalzc+gLp7N2ofv42AABHVzZGMBIPQcuTcYg4l4Uh6IaJaLWyiuNgmUbeQfgPZEel3eCXgMAAxhZG1pbl93YWxsZXQCIzNOM0RDbmdqaWRpdmtKYlRKd0ZURXZiWVJUZmZDV1ZCTENMAA5hbGZhcmtfdGVzdG5ldAAFAAp2aXJlc19kYXBwARoBVHjn3floRCovnhXY1SHCQGibEg7rsYrFrAENdHJ5R2V0SW50ZWdlcgEDa2V5BAckbWF0Y2gwCQCaCAIFBHRoaXMFA2tleQMJAAECBQckbWF0Y2gwAgNJbnQEAWIFByRtYXRjaDAFAWIAAAgBaQEPYnV5X3VzZG5fdGlja2V0AAMJAQIhPQIICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAUEdXNkbgkAAgECH1BsZWFzZSBkZXBvc2l0IFVTRC1OIHRva2VuIG9ubHkEC3VzZXJfY3JlZGl0CQENdHJ5R2V0SW50ZWdlcgEJAKwCAgkArAICAgV1c2RuXwkApQgBCAUBaQxvcmlnaW5DYWxsZXICB19jcmVkaXQEDmRlcG9zaXRfYW1vdW50CAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAQPbmV3X3VzZXJfY3JlZGl0CQBkAgULdXNlcl9jcmVkaXQFDmRlcG9zaXRfYW1vdW50BAphbGxfY3JlZGl0CQENdHJ5R2V0SW50ZWdlcgECD3VzZG5fYWxsX2NyZWRpdAQObmV3X2FsbF9jcmVkaXQJAGQCBQphbGxfY3JlZGl0BQ5kZXBvc2l0X2Ftb3VudAQRdHJhbnNhY3Rpb25fYmxvY2sEByRtYXRjaDAJAOkHAQgFAWkNdHJhbnNhY3Rpb25JZAMJAAECBQckbWF0Y2gwAgNJbnQEAWEFByRtYXRjaDAFAWEJAAIBAhJFcnJvciBibG9jayBudW1iZXIEA3JlcwkA/AcECQEHQWRkcmVzcwEFCnZpcmVzX2RhcHACCnVzZE5fc3Rha2UFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUEdXNkbgUOZGVwb3NpdF9hbW91bnQFA25pbAMJAAACBQNyZXMFA3JlcwkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICCQCsAgICBXVzZG5fCQClCAEIBQFpDG9yaWdpbkNhbGxlcgIHX2NyZWRpdAUPbmV3X3VzZXJfY3JlZGl0CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIJAKwCAgIFdXNkbl8JAKUIAQgFAWkMb3JpZ2luQ2FsbGVyAgZfYmxvY2sFEXRyYW5zYWN0aW9uX2Jsb2NrCQDMCAIJAQxJbnRlZ2VyRW50cnkCAg91c2RuX2FsbF9jcmVkaXQFDm5ld19hbGxfY3JlZGl0CQDMCAIJAQxJbnRlZ2VyRW50cnkCAg51c2RuX2FsbF9ibG9jawURdHJhbnNhY3Rpb25fYmxvY2sFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQ9idXlfdXNkY190aWNrZXQAAwkBAiE9AggJAJEDAggFAWkIcGF5bWVudHMAAAdhc3NldElkBQR1c2RjCQACAQIfUGxlYXNlIGRlcG9zaXQgVVNELU4gdG9rZW4gb25seQQLdXNlcl9jcmVkaXQJAQ10cnlHZXRJbnRlZ2VyAQkArAICCQCsAgICBXVzZGNfCQClCAEIBQFpDG9yaWdpbkNhbGxlcgIHX2NyZWRpdAQOZGVwb3NpdF9hbW91bnQICQCRAwIIBQFpCHBheW1lbnRzAAAGYW1vdW50BA9uZXdfdXNlcl9jcmVkaXQJAGQCBQt1c2VyX2NyZWRpdAUOZGVwb3NpdF9hbW91bnQECmFsbF9jcmVkaXQJAQ10cnlHZXRJbnRlZ2VyAQIPdXNkY19hbGxfY3JlZGl0BA5uZXdfYWxsX2NyZWRpdAkAZAIFCmFsbF9jcmVkaXQFDmRlcG9zaXRfYW1vdW50BBF0cmFuc2FjdGlvbl9ibG9jawQHJG1hdGNoMAkA6QcBCAUBaQ10cmFuc2FjdGlvbklkAwkAAQIFByRtYXRjaDACA0ludAQBYQUHJG1hdGNoMAUBYQkAAgECEkVycm9yIGJsb2NrIG51bWJlcgQDcmVzCQD8BwQJAQdBZGRyZXNzAQUKdmlyZXNfZGFwcAIKdXNkQ19zdGFrZQUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQR1c2RjBQ5kZXBvc2l0X2Ftb3VudAUDbmlsAwkAAAIFA3JlcwUDcmVzBAl2aXJlc19yZXMEByRtYXRjaDAFA3JlcwMJAAECBQckbWF0Y2gwAglMaXN0W0FueV0EAXIFByRtYXRjaDAFAXIJAAIBAhdJbmNvcnJlY3QgaW52b2tlIHJlc3VsdAMJAAACBQl2aXJlc19yZXMFCXZpcmVzX3JlcwkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICCQCsAgICBXVzZGNfCQClCAEIBQFpDG9yaWdpbkNhbGxlcgIHX2NyZWRpdAUPbmV3X3VzZXJfY3JlZGl0CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIJAKwCAgIFdXNkY18JAKUIAQgFAWkMb3JpZ2luQ2FsbGVyAgZfYmxvY2sFEXRyYW5zYWN0aW9uX2Jsb2NrCQDMCAIJAQxJbnRlZ2VyRW50cnkCAg91c2RjX2FsbF9jcmVkaXQFDm5ld19hbGxfY3JlZGl0CQDMCAIJAQxJbnRlZ2VyRW50cnkCAg51c2RjX2FsbF9ibG9jawURdHJhbnNhY3Rpb25fYmxvY2sFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpARBzZWxsX3VzZG5fdGlja2V0AQZhbW91bnQEC3VzZXJfY3JlZGl0CQENdHJ5R2V0SW50ZWdlcgEJAKwCAgkArAICAgV1c2RuXwkApQgBCAUBaQxvcmlnaW5DYWxsZXICB19jcmVkaXQDCQBmAgUGYW1vdW50BQt1c2VyX2NyZWRpdAkAAgEJAKwCAgI+c29ycnkgeW91IGNhbid0IHdpdGhkcmF3IHRoaXMgYW1vdW50LCBiZWNhdXNlIHU9eW91IGhhdmUgb25seSAJAKQDAQULdXNlcl9jcmVkaXQED25ld191c2VyX2NyZWRpdAkAZQIFC3VzZXJfY3JlZGl0BQZhbW91bnQECmFsbF9jcmVkaXQJAQ10cnlHZXRJbnRlZ2VyAQIPdXNkbl9hbGxfY3JlZGl0BA5uZXdfYWxsX2NyZWRpdAkAZQIFCmFsbF9jcmVkaXQFBmFtb3VudAQRdHJhbnNhY3Rpb25fYmxvY2sEByRtYXRjaDAJAOkHAQgFAWkNdHJhbnNhY3Rpb25JZAMJAAECBQckbWF0Y2gwAgNJbnQEAWEFByRtYXRjaDAFAWEJAAIBAhJFcnJvciBibG9jayBudW1iZXIEA3JlcwkA/AcECQEHQWRkcmVzcwEFCnZpcmVzX2RhcHACEHVzZE5fY2FuY2VsU3Rha2UJAMwIAgUGYW1vdW50BQNuaWwFA25pbAMJAAACBQNyZXMFA3JlcwQJdmlyZXNfcmVzBAckbWF0Y2gwBQNyZXMDCQABAgUHJG1hdGNoMAIJTGlzdFtBbnldBAFyBQckbWF0Y2gwBQFyCQACAQIXSW5jb3JyZWN0IGludm9rZSByZXN1bHQDCQAAAgUJdmlyZXNfcmVzBQl2aXJlc19yZXMJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgkArAICAgV1c2RuXwkApQgBCAUBaQxvcmlnaW5DYWxsZXICB19jcmVkaXQFD25ld191c2VyX2NyZWRpdAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICCQCsAgICBXVzZG5fCQClCAEIBQFpDG9yaWdpbkNhbGxlcgIGX2Jsb2NrBRF0cmFuc2FjdGlvbl9ibG9jawkAzAgCCQEMSW50ZWdlckVudHJ5AgIPdXNkbl9hbGxfY3JlZGl0BQ5uZXdfYWxsX2NyZWRpdAkAzAgCCQEMSW50ZWdlckVudHJ5AgIOdXNkbl9hbGxfYmxvY2sFEXRyYW5zYWN0aW9uX2Jsb2NrBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEQc2VsbF91c2RjX3RpY2tldAEGYW1vdW50BAt1c2VyX2NyZWRpdAkBDXRyeUdldEludGVnZXIBCQCsAgIJAKwCAgIFdXNkY18JAKUIAQgFAWkMb3JpZ2luQ2FsbGVyAgdfY3JlZGl0AwkAZgIFBmFtb3VudAULdXNlcl9jcmVkaXQJAAIBCQCsAgICPnNvcnJ5IHlvdSBjYW4ndCB3aXRoZHJhdyB0aGlzIGFtb3VudCwgYmVjYXVzZSB1PXlvdSBoYXZlIG9ubHkgCQCkAwEFC3VzZXJfY3JlZGl0BA9uZXdfdXNlcl9jcmVkaXQJAGUCBQt1c2VyX2NyZWRpdAUGYW1vdW50BAphbGxfY3JlZGl0CQENdHJ5R2V0SW50ZWdlcgECD3VzZGNfYWxsX2NyZWRpdAQObmV3X2FsbF9jcmVkaXQJAGUCBQphbGxfY3JlZGl0BQZhbW91bnQEEXRyYW5zYWN0aW9uX2Jsb2NrBAckbWF0Y2gwCQDpBwEIBQFpDXRyYW5zYWN0aW9uSWQDCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhCQACAQISRXJyb3IgYmxvY2sgbnVtYmVyBANyZXMJAPwHBAkBB0FkZHJlc3MBBQp2aXJlc19kYXBwAhB1c2RDX2NhbmNlbFN0YWtlCQDMCAIFBmFtb3VudAUDbmlsBQNuaWwDCQAAAgUDcmVzBQNyZXMECXZpcmVzX3JlcwQHJG1hdGNoMAUDcmVzAwkAAQIFByRtYXRjaDACCUxpc3RbQW55XQQBcgUHJG1hdGNoMAUBcgkAAgECF0luY29ycmVjdCBpbnZva2UgcmVzdWx0AwkAAAIFCXZpcmVzX3JlcwUJdmlyZXNfcmVzCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIJAKwCAgIFdXNkY18JAKUIAQgFAWkMb3JpZ2luQ2FsbGVyAgdfY3JlZGl0BQ9uZXdfdXNlcl9jcmVkaXQJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgkArAICAgV1c2RjXwkApQgBCAUBaQxvcmlnaW5DYWxsZXICBl9ibG9jawURdHJhbnNhY3Rpb25fYmxvY2sJAMwIAgkBDEludGVnZXJFbnRyeQICD3VzZGNfYWxsX2NyZWRpdAUObmV3X2FsbF9jcmVkaXQJAMwIAgkBDEludGVnZXJFbnRyeQICDnVzZGNfYWxsX2Jsb2NrBRF0cmFuc2FjdGlvbl9ibG9jawUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBF3VzZG5fY2FsY19wcm9maXRfYW1vdW50AAMJAQIhPQIJAKUIAQgFAWkMb3JpZ2luQ2FsbGVyBQxhZG1pbl93YWxsZXQJAAIBAjBTb3JyeSEgeW91IGFyZSBub3QgYWxsb3dlZCB0byB1c2UgdGhpcyBmdW5hY3Rpb24EFnVzZG5fcHJvZml0X2xhc3RfYmxvY2sJAQ10cnlHZXRJbnRlZ2VyAQIWdXNkbl9wcm9maXRfbGFzdF9ibG9jawQXdXNkbl9wcm9maXRfbGFzdF9hbW91bnQJAQ10cnlHZXRJbnRlZ2VyAQIXdXNkbl9wcm9maXRfbGFzdF9hbW91bnQEEXRyYW5zYWN0aW9uX2Jsb2NrBAckbWF0Y2gwCQDpBwEIBQFpDXRyYW5zYWN0aW9uSWQDCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhCQACAQISRXJyb3IgYmxvY2sgbnVtYmVyBAZhbGZhcmsJAGUCBRF0cmFuc2FjdGlvbl9ibG9jawUWdXNkbl9wcm9maXRfbGFzdF9ibG9jawMJAGYCBQ5hbGZhcmtfdGVzdG5ldAUGYWxmYXJrCQACAQkArAICCQCsAgICF1BsZWFzZSB0cnkgYWdhaW4gYWZ0ZXIgCQCkAwEJAGUCBQ5hbGZhcmtfdGVzdG5ldAUGYWxmYXJrAgYgYmxvY2sEDHVzZG5fYmFsYW5jZQkA8AcCBQR0aGlzBQR1c2RuCQDMCAIJAQxJbnRlZ2VyRW50cnkCAhZ1c2RuX3Byb2ZpdF9sYXN0X2Jsb2NrBRF0cmFuc2FjdGlvbl9ibG9jawkAzAgCCQEMSW50ZWdlckVudHJ5AgIXdXNkbl9wcm9maXRfbGFzdF9hbW91bnQFDHVzZG5fYmFsYW5jZQUDbmlsAWkBF3VzZG5fc2VuZF9wcm9maXRfYW1vdW50AAQXdXNkbl9wcm9maXRfbGFzdF9hbW91bnQJAQ10cnlHZXRJbnRlZ2VyAQIXdXNkbl9wcm9maXRfbGFzdF9hbW91bnQDCQBnAgAABRd1c2RuX3Byb2ZpdF9sYXN0X2Ftb3VudAkAAgEJAKwCAgIceW91IGRvbnQgaGF2ZSBwcm9maXQgYW1vdW50IAkApAMBBRd1c2RuX3Byb2ZpdF9sYXN0X2Ftb3VudAQIdHJhbnNmZXIJAQ5TY3JpcHRUcmFuc2ZlcgMJARFAZXh0ck5hdGl2ZSgxMDYyKQEFDGFkbWluX3dhbGxldAUXdXNkbl9wcm9maXRfbGFzdF9hbW91bnQFBHVzZG4JAMwIAgUIdHJhbnNmZXIFA25pbAFpARd1c2RjX2NhbGNfcHJvZml0X2Ftb3VudAADCQECIT0CCQClCAEIBQFpDG9yaWdpbkNhbGxlcgUMYWRtaW5fd2FsbGV0CQACAQIwU29ycnkhIHlvdSBhcmUgbm90IGFsbG93ZWQgdG8gdXNlIHRoaXMgZnVuYWN0aW9uBBZ1c2RjX3Byb2ZpdF9sYXN0X2Jsb2NrCQENdHJ5R2V0SW50ZWdlcgECFnVzZGNfcHJvZml0X2xhc3RfYmxvY2sEF3VzZGNfcHJvZml0X2xhc3RfYW1vdW50CQENdHJ5R2V0SW50ZWdlcgECF3VzZGNfcHJvZml0X2xhc3RfYW1vdW50BBF0cmFuc2FjdGlvbl9ibG9jawQHJG1hdGNoMAkA6QcBCAUBaQ10cmFuc2FjdGlvbklkAwkAAQIFByRtYXRjaDACA0ludAQBYQUHJG1hdGNoMAUBYQkAAgECEkVycm9yIGJsb2NrIG51bWJlcgQGYWxmYXJrCQBlAgURdHJhbnNhY3Rpb25fYmxvY2sFFnVzZGNfcHJvZml0X2xhc3RfYmxvY2sDCQBmAgUOYWxmYXJrX3Rlc3RuZXQFBmFsZmFyawkAAgEJAKwCAgkArAICAhdQbGVhc2UgdHJ5IGFnYWluIGFmdGVyIAkApAMBCQBlAgUOYWxmYXJrX3Rlc3RuZXQFBmFsZmFyawIGIGJsb2NrBAx1c2RjX2JhbGFuY2UJAPAHAgUEdGhpcwUEdXNkYwkAzAgCCQEMSW50ZWdlckVudHJ5AgIWdXNkY19wcm9maXRfbGFzdF9ibG9jawURdHJhbnNhY3Rpb25fYmxvY2sJAMwIAgkBDEludGVnZXJFbnRyeQICF3VzZGNfcHJvZml0X2xhc3RfYW1vdW50BQx1c2RjX2JhbGFuY2UFA25pbAFpARd1c2RjX3NlbmRfcHJvZml0X2Ftb3VudAAEF3VzZGNfcHJvZml0X2xhc3RfYW1vdW50CQENdHJ5R2V0SW50ZWdlcgECF3VzZGNfcHJvZml0X2xhc3RfYW1vdW50AwkAZwIAAAUXdXNkY19wcm9maXRfbGFzdF9hbW91bnQJAAIBCQCsAgICHHlvdSBkb250IGhhdmUgcHJvZml0IGFtb3VudCAJAKQDAQUXdXNkY19wcm9maXRfbGFzdF9hbW91bnQECHRyYW5zZmVyCQEOU2NyaXB0VHJhbnNmZXIDCQERQGV4dHJOYXRpdmUoMTA2MikBBQxhZG1pbl93YWxsZXQFF3VzZGNfcHJvZml0X2xhc3RfYW1vdW50BQR1c2RjCQDMCAIFCHRyYW5zZmVyBQNuaWwBAnR4AQZ2ZXJpZnkACQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAACAUCdHgPc2VuZGVyUHVibGljS2V5GM16fg==", "height": 2199573, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: FagAsUqFfw2FygWTrt5nQr88Rx9UmQkqf1uC4UQhJUtA Next: GzsGmeLhBaZFsc53yUGCMrTTSHoVjJYByk3e7Uo8THAo Diff:
OldNewDifferences
3636 }
3737 let res = invoke(Address(vires_dapp), "usdN_stake", nil, [AttachedPayment(usdn, deposit_amount)])
3838 if ((res == res))
39- then {
40- let vires_res = match res {
41- case r: List[Any] =>
42- r
43- case _ =>
44- throw("Incorrect invoke result")
45- }
46- if ((vires_res == vires_res))
47- then [IntegerEntry((("usdn_" + toString(i.originCaller)) + "_credit"), new_user_credit), IntegerEntry((("usdn_" + toString(i.originCaller)) + "_block"), transaction_block), IntegerEntry("usdn_all_credit", new_all_credit), IntegerEntry("usdn_all_block", transaction_block)]
48- else throw("Strict value is not equal to itself.")
49- }
39+ then [IntegerEntry((("usdn_" + toString(i.originCaller)) + "_credit"), new_user_credit), IntegerEntry((("usdn_" + toString(i.originCaller)) + "_block"), transaction_block), IntegerEntry("usdn_all_credit", new_all_credit), IntegerEntry("usdn_all_block", transaction_block)]
5040 else throw("Strict value is not equal to itself.")
5141 }
5242
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let usdn = base58'FVXgJ86erBw5GAMeAw1CnYXwQn48BFAEAhRyHPUjbMQB'
55
66 let usdc = base58'HRut8ESAGXxwvsKJky1V96qRtqyXQd4Apq4GY7TE5yGP'
77
88 let admin_wallet = "3N3DCngjidivkJbTJwFTEvbYRTffCWVBLCL"
99
1010 let alfark_testnet = 5
1111
1212 let vires_dapp = base58'3MzwNdM8LQZEPXq3d4uXvxeZGpBwVQXs9RD'
1313
1414 func tryGetInteger (key) = match getInteger(this, key) {
1515 case b: Int =>
1616 b
1717 case _ =>
1818 0
1919 }
2020
2121
2222 @Callable(i)
2323 func buy_usdn_ticket () = if ((i.payments[0].assetId != usdn))
2424 then throw("Please deposit USD-N token only")
2525 else {
2626 let user_credit = tryGetInteger((("usdn_" + toString(i.originCaller)) + "_credit"))
2727 let deposit_amount = i.payments[0].amount
2828 let new_user_credit = (user_credit + deposit_amount)
2929 let all_credit = tryGetInteger("usdn_all_credit")
3030 let new_all_credit = (all_credit + deposit_amount)
3131 let transaction_block = match transactionHeightById(i.transactionId) {
3232 case a: Int =>
3333 a
3434 case _ =>
3535 throw("Error block number")
3636 }
3737 let res = invoke(Address(vires_dapp), "usdN_stake", nil, [AttachedPayment(usdn, deposit_amount)])
3838 if ((res == res))
39- then {
40- let vires_res = match res {
41- case r: List[Any] =>
42- r
43- case _ =>
44- throw("Incorrect invoke result")
45- }
46- if ((vires_res == vires_res))
47- then [IntegerEntry((("usdn_" + toString(i.originCaller)) + "_credit"), new_user_credit), IntegerEntry((("usdn_" + toString(i.originCaller)) + "_block"), transaction_block), IntegerEntry("usdn_all_credit", new_all_credit), IntegerEntry("usdn_all_block", transaction_block)]
48- else throw("Strict value is not equal to itself.")
49- }
39+ then [IntegerEntry((("usdn_" + toString(i.originCaller)) + "_credit"), new_user_credit), IntegerEntry((("usdn_" + toString(i.originCaller)) + "_block"), transaction_block), IntegerEntry("usdn_all_credit", new_all_credit), IntegerEntry("usdn_all_block", transaction_block)]
5040 else throw("Strict value is not equal to itself.")
5141 }
5242
5343
5444
5545 @Callable(i)
5646 func buy_usdc_ticket () = if ((i.payments[0].assetId != usdc))
5747 then throw("Please deposit USD-N token only")
5848 else {
5949 let user_credit = tryGetInteger((("usdc_" + toString(i.originCaller)) + "_credit"))
6050 let deposit_amount = i.payments[0].amount
6151 let new_user_credit = (user_credit + deposit_amount)
6252 let all_credit = tryGetInteger("usdc_all_credit")
6353 let new_all_credit = (all_credit + deposit_amount)
6454 let transaction_block = match transactionHeightById(i.transactionId) {
6555 case a: Int =>
6656 a
6757 case _ =>
6858 throw("Error block number")
6959 }
7060 let res = invoke(Address(vires_dapp), "usdC_stake", nil, [AttachedPayment(usdc, deposit_amount)])
7161 if ((res == res))
7262 then {
7363 let vires_res = match res {
7464 case r: List[Any] =>
7565 r
7666 case _ =>
7767 throw("Incorrect invoke result")
7868 }
7969 if ((vires_res == vires_res))
8070 then [IntegerEntry((("usdc_" + toString(i.originCaller)) + "_credit"), new_user_credit), IntegerEntry((("usdc_" + toString(i.originCaller)) + "_block"), transaction_block), IntegerEntry("usdc_all_credit", new_all_credit), IntegerEntry("usdc_all_block", transaction_block)]
8171 else throw("Strict value is not equal to itself.")
8272 }
8373 else throw("Strict value is not equal to itself.")
8474 }
8575
8676
8777
8878 @Callable(i)
8979 func sell_usdn_ticket (amount) = {
9080 let user_credit = tryGetInteger((("usdn_" + toString(i.originCaller)) + "_credit"))
9181 if ((amount > user_credit))
9282 then throw(("sorry you can't withdraw this amount, because u=you have only " + toString(user_credit)))
9383 else {
9484 let new_user_credit = (user_credit - amount)
9585 let all_credit = tryGetInteger("usdn_all_credit")
9686 let new_all_credit = (all_credit - amount)
9787 let transaction_block = match transactionHeightById(i.transactionId) {
9888 case a: Int =>
9989 a
10090 case _ =>
10191 throw("Error block number")
10292 }
10393 let res = invoke(Address(vires_dapp), "usdN_cancelStake", [amount], nil)
10494 if ((res == res))
10595 then {
10696 let vires_res = match res {
10797 case r: List[Any] =>
10898 r
10999 case _ =>
110100 throw("Incorrect invoke result")
111101 }
112102 if ((vires_res == vires_res))
113103 then [IntegerEntry((("usdn_" + toString(i.originCaller)) + "_credit"), new_user_credit), IntegerEntry((("usdn_" + toString(i.originCaller)) + "_block"), transaction_block), IntegerEntry("usdn_all_credit", new_all_credit), IntegerEntry("usdn_all_block", transaction_block)]
114104 else throw("Strict value is not equal to itself.")
115105 }
116106 else throw("Strict value is not equal to itself.")
117107 }
118108 }
119109
120110
121111
122112 @Callable(i)
123113 func sell_usdc_ticket (amount) = {
124114 let user_credit = tryGetInteger((("usdc_" + toString(i.originCaller)) + "_credit"))
125115 if ((amount > user_credit))
126116 then throw(("sorry you can't withdraw this amount, because u=you have only " + toString(user_credit)))
127117 else {
128118 let new_user_credit = (user_credit - amount)
129119 let all_credit = tryGetInteger("usdc_all_credit")
130120 let new_all_credit = (all_credit - amount)
131121 let transaction_block = match transactionHeightById(i.transactionId) {
132122 case a: Int =>
133123 a
134124 case _ =>
135125 throw("Error block number")
136126 }
137127 let res = invoke(Address(vires_dapp), "usdC_cancelStake", [amount], nil)
138128 if ((res == res))
139129 then {
140130 let vires_res = match res {
141131 case r: List[Any] =>
142132 r
143133 case _ =>
144134 throw("Incorrect invoke result")
145135 }
146136 if ((vires_res == vires_res))
147137 then [IntegerEntry((("usdc_" + toString(i.originCaller)) + "_credit"), new_user_credit), IntegerEntry((("usdc_" + toString(i.originCaller)) + "_block"), transaction_block), IntegerEntry("usdc_all_credit", new_all_credit), IntegerEntry("usdc_all_block", transaction_block)]
148138 else throw("Strict value is not equal to itself.")
149139 }
150140 else throw("Strict value is not equal to itself.")
151141 }
152142 }
153143
154144
155145
156146 @Callable(i)
157147 func usdn_calc_profit_amount () = if ((toString(i.originCaller) != admin_wallet))
158148 then throw("Sorry! you are not allowed to use this funaction")
159149 else {
160150 let usdn_profit_last_block = tryGetInteger("usdn_profit_last_block")
161151 let usdn_profit_last_amount = tryGetInteger("usdn_profit_last_amount")
162152 let transaction_block = match transactionHeightById(i.transactionId) {
163153 case a: Int =>
164154 a
165155 case _ =>
166156 throw("Error block number")
167157 }
168158 let alfark = (transaction_block - usdn_profit_last_block)
169159 if ((alfark_testnet > alfark))
170160 then throw((("Please try again after " + toString((alfark_testnet - alfark))) + " block"))
171161 else {
172162 let usdn_balance = assetBalance(this, usdn)
173163 [IntegerEntry("usdn_profit_last_block", transaction_block), IntegerEntry("usdn_profit_last_amount", usdn_balance)]
174164 }
175165 }
176166
177167
178168
179169 @Callable(i)
180170 func usdn_send_profit_amount () = {
181171 let usdn_profit_last_amount = tryGetInteger("usdn_profit_last_amount")
182172 if ((0 >= usdn_profit_last_amount))
183173 then throw(("you dont have profit amount " + toString(usdn_profit_last_amount)))
184174 else {
185175 let transfer = ScriptTransfer(addressFromStringValue(admin_wallet), usdn_profit_last_amount, usdn)
186176 [transfer]
187177 }
188178 }
189179
190180
191181
192182 @Callable(i)
193183 func usdc_calc_profit_amount () = if ((toString(i.originCaller) != admin_wallet))
194184 then throw("Sorry! you are not allowed to use this funaction")
195185 else {
196186 let usdc_profit_last_block = tryGetInteger("usdc_profit_last_block")
197187 let usdc_profit_last_amount = tryGetInteger("usdc_profit_last_amount")
198188 let transaction_block = match transactionHeightById(i.transactionId) {
199189 case a: Int =>
200190 a
201191 case _ =>
202192 throw("Error block number")
203193 }
204194 let alfark = (transaction_block - usdc_profit_last_block)
205195 if ((alfark_testnet > alfark))
206196 then throw((("Please try again after " + toString((alfark_testnet - alfark))) + " block"))
207197 else {
208198 let usdc_balance = assetBalance(this, usdc)
209199 [IntegerEntry("usdc_profit_last_block", transaction_block), IntegerEntry("usdc_profit_last_amount", usdc_balance)]
210200 }
211201 }
212202
213203
214204
215205 @Callable(i)
216206 func usdc_send_profit_amount () = {
217207 let usdc_profit_last_amount = tryGetInteger("usdc_profit_last_amount")
218208 if ((0 >= usdc_profit_last_amount))
219209 then throw(("you dont have profit amount " + toString(usdc_profit_last_amount)))
220210 else {
221211 let transfer = ScriptTransfer(addressFromStringValue(admin_wallet), usdc_profit_last_amount, usdc)
222212 [transfer]
223213 }
224214 }
225215
226216
227217 @Verifier(tx)
228218 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
229219

github/deemru/w8io/026f985 
30.03 ms