tx · 2SfeWgmqbXX8b1FK7vVZJYqbZARzEbrcFTxPgSeAYjLz

3P2YBCpek2KbwaxHBSRRa4DWcJUkPu2mCCj:  -0.01000000 Waves

2023.04.14 17:12 [3599929] smart account 3P2YBCpek2KbwaxHBSRRa4DWcJUkPu2mCCj > SELF 0.00000000 Waves

{ "type": 13, "id": "2SfeWgmqbXX8b1FK7vVZJYqbZARzEbrcFTxPgSeAYjLz", "fee": 1000000, "feeAssetId": null, "timestamp": 1681481615442, "version": 2, "chainId": 87, "sender": "3P2YBCpek2KbwaxHBSRRa4DWcJUkPu2mCCj", "senderPublicKey": "3C2anUH59qjkVSB8AuFYGBNhSqcgvJhq1BBRodM74pEf", "proofs": [ "4B9raDGS4R7fappiyBF8uLtBNHSR9T3SwAtake2pUKFySD2d8nkyaoVsb5n4LYkDLfspAdz5cNokEJvBMs1SjwUs" ], "script": "base64:BgIECAISAA0BCGFzU3RyaW5nAQF2BAckbWF0Y2gwBQF2AwkAAQIFByRtYXRjaDACBlN0cmluZwQBcwUHJG1hdGNoMAUBcwkAAgECGGZhaWwgdG8gY2FzdCBpbnRvIFN0cmluZwEFYXNJbnQBAXYEByRtYXRjaDAFAXYDCQABAgUHJG1hdGNoMAIDSW50BAFpBQckbWF0Y2gwBQFpCQACAQIVZmFpbCB0byBjYXN0IGludG8gSW50AAh4dG5JZFN0cgIsREcyeEZrUGREd0tVb0JrekdBaFF0THBTR3pmWExpQ1lQRXplS0gyQWQyNHAABXh0bklkCQDZBAEFCHh0bklkU3RyAAd3eElkU3RyAixBdHF2NTlFWXpqRkd1aXRLVm5NUms2SDhGdWtqb1Yza3RQb3JiRXlzMjVvbgAEd3hJZAkA2QQBBQd3eElkU3RyARZmaW5hbGl6ZVd4VXNkT25jaGFpblYyAQ93YXZlc1VzZFByaWNlWDYEDmRvcmFBZGRyZXNzU3RyAiMzUEtrb2pLZGQ2QkJ6VGYxUlhiUVZmVURyYU5GWFhIS3pRRgQLZG9yYUFkZHJlc3MJARFAZXh0ck5hdGl2ZSgxMDYyKQEFDmRvcmFBZGRyZXNzU3RyBA14dG5Vc2RQcmljZVg2CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJoIAgULZG9yYUFkZHJlc3MCFiVzJXNfX3ByaWNlX19VU0ROLVVTRFQCJERPUkEgZG9lc24ndCBjb250YWluIFVTRE4vVVNEVCBwcmljZQQNd3hfV3hXYXZlc19scAIsQmlTekZlOG5TTDc4b1phZWJmb2luNXZCWjVQemU2ZDdrYWVpakxxcjV4WmUEEXd4X3Jlc3RBZGRyZXNzU3RyAiMzUDhNb1Buc2F1cm9mazFWeWhzZEFGa2VRNmlqcEpZWENwVwQLd3hfcmVzdERhcHAJARFAZXh0ck5hdGl2ZSgxMDYyKQEFEXd4X3Jlc3RBZGRyZXNzU3RyBAx3eFJlc3RSZXN1bHQJALUJAgkBCGFzU3RyaW5nAQkA/AcEBQt3eF9yZXN0RGFwcAIRcG9vbFN0YXRzUkVBRE9OTFkJAMwIAgUNd3hfV3hXYXZlc19scAUDbmlsBQNuaWwCAl9fBBF3eF9XeFdhdmVzX1dlaWdodADQhgMEEnd4X1d4V2F2ZXNfV0FWRVN4OAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFDHd4UmVzdFJlc3VsdAACBA93eF9XeFdhdmVzX1dYeDgJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQx3eFJlc3RSZXN1bHQAAQQXd3hfV3hXYXZlc19XeFVzZFByaWNlWDYJAGsDBRJ3eF9XeFdhdmVzX1dBVkVTeDgFD3dhdmVzVXNkUHJpY2VYNgUPd3hfV3hXYXZlc19XWHg4BBN3eF9XeFh0bl9BZGRyZXNzU3RyAiMzUENFTnBFS2U4YXR3RUxaN29DU21jZEVmY1J1S1RyVXg5OQQQd3hfV3hYdG5fQWRkcmVzcwkBEUBleHRyTmF0aXZlKDEwNjIpAQUTd3hfV3hYdG5fQWRkcmVzc1N0cgQPd3hfV3hYdG5fV2VpZ2h0ANCGAwQOd3hfV3hYdG5fWFROeDYJAPAHAgUQd3hfV3hYdG5fQWRkcmVzcwUFeHRuSWQEDXd4X1d4WHRuX1dYeDgJAPAHAgUQd3hfV3hYdG5fQWRkcmVzcwUEd3hJZAQVd3hfV3hYdG5fV3hVc2RQcmljZVg2CQBrAwkAaAIFDnd4X1d4WHRuX1hUTng2AGQFDXh0blVzZFByaWNlWDYFDXd4X1d4WHRuX1dYeDgEFXN3b3BfV3hYdG5fQWRkcmVzc1N0cgIjM1BLaTRHM1ZYMms0MlpTbU5Ocm12Z2RESDdKelJhVWhZN1IEDHN3b3BSZXN0RGFwcAkBEUBleHRyTmF0aXZlKDEwNjIpAQIjM1A1NmpOUXpFQ1hucldwbmJiU0pLdzdFb29vNmZrVWFNUHAEEXN3b3BfV3hYdG5fV2VpZ2h0AIgnBBdzd29wX1d4WHRuX1d4WHRuUHJpY2VYNgkBBWFzSW50AQkA/AcEBQxzd29wUmVzdERhcHACEWNhbGNHZXRBbW91bnRDUE1NCQDMCAIFFXN3b3BfV3hYdG5fQWRkcmVzc1N0cgkAzAgCAiMzUDg4cWsxS3pGMUJLakQ3ZkM3TGpOVkFLTTRlemZmNVdFNgkAzAgCBQd3eElkU3RyCQDMCAIAgMLXLwUDbmlsBQNuaWwEF3N3b3BfV3hYdG5fV3hVc2RQcmljZVg2CQBrAwUXc3dvcF9XeFh0bl9XeFh0blByaWNlWDYFDXh0blVzZFByaWNlWDYAwIQ9BAFXCQBkAgkAZAIFEXd4X1d4V2F2ZXNfV2VpZ2h0BQ93eF9XeFh0bl9XZWlnaHQFEXN3b3BfV3hYdG5fV2VpZ2h0BAx3eFVzZFByaWNlWDYJAGQCCQBkAgkAawMFF3d4X1d4V2F2ZXNfV3hVc2RQcmljZVg2BRF3eF9XeFdhdmVzX1dlaWdodAUBVwkAawMFFXd4X1d4WHRuX1d4VXNkUHJpY2VYNgUPd3hfV3hYdG5fV2VpZ2h0BQFXCQBrAwUXc3dvcF9XeFh0bl9XeFVzZFByaWNlWDYFEXN3b3BfV3hYdG5fV2VpZ2h0BQFXBAVkZWJ1ZwkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICAg54dG5Vc2RQcmljZVg2PQkApAMBBQ14dG5Vc2RQcmljZVg2Ahkgd3hfV3hXYXZlc19XeFVzZFByaWNlWDY9CQCkAwEFF3d4X1d4V2F2ZXNfV3hVc2RQcmljZVg2Ahcgd3hfV3hYdG5fV3hVc2RQcmljZVg2PQkApAMBBRV3eF9XeFh0bl9XeFVzZFByaWNlWDYCGSBzd29wX1d4WHRuX1d4VXNkUHJpY2VYNj0JAKQDAQUXc3dvcF9XeFh0bl9XeFVzZFByaWNlWDYJAJQKAgUMd3hVc2RQcmljZVg2BQVkZWJ1ZwEZZmluYWxpemVVc2RuVXNkdE9uY2hhaW5WMgAEEHdhdmVzVXNkdFByaWNlWDYAgNyIAQQOZXRoVXNkdFByaWNlWDYJARFAZXh0ck5hdGl2ZSgxMDUwKQIFBHRoaXMCFSVzJXNfX3ByaWNlX19FVEgtVVNEVAQGc3ltYm9sAglVU0ROLVVTRFQECXVzZHRJZFN0cgIsMzROOVljRUVUTFduOTNxWVE2NEVzUDF4ODl0U3J1SlU0NFJyRU1TWFhFUEoECnVzZG5BbW91bnQAgJTr3AMEEHd4VXNkdFh0blBvb2xTdHICIzNQOEtNeUFKQ1BXTmN5ZWRxcm15bXhhZVdvbnZta2hHYXV6BBR3eFVzZHRYdG5Qb29sQWRkcmVzcwkBEUBleHRyTmF0aXZlKDEwNjIpAQUQd3hVc2R0WHRuUG9vbFN0cgQKd3hVc2R0WHRuVwBDBAskdDAzMjUyMzQwMAoAAUAJAPwHBAUUd3hVc2R0WHRuUG9vbEFkZHJlc3MCHHB1dE9uZVRrblYyV2l0aEJvbnVzUkVBRE9OTFkJAMwIAgUKdXNkbkFtb3VudAkAzAgCBQh4dG5JZFN0cgUDbmlsBQNuaWwDCQABAgUBQAIPKEludCwgSW50LCBJbnQpBQFACQACAQkArAICCQADAQUBQAIkIGNvdWxkbid0IGJlIGNhc3QgdG8gKEludCwgSW50LCBJbnQpBAhscEFtb3VudAgFCyR0MDMyNTIzNDAwAl8xBApmZWVBbW91bnQxCAULJHQwMzI1MjM0MDACXzIEBWJvbnVzCAULJHQwMzI1MjM0MDACXzMECyR0MDM0MDMzNTMxCgABQAkA/AcEBRR3eFVzZHRYdG5Qb29sQWRkcmVzcwITZ2V0T25lVGtuVjJSRUFET05MWQkAzAgCBQl1c2R0SWRTdHIJAMwIAgUIbHBBbW91bnQFA25pbAUDbmlsAwkAAQIFAUACCihJbnQsIEludCkFAUAJAAIBCQCsAgIJAAMBBQFAAh8gY291bGRuJ3QgYmUgY2FzdCB0byAoSW50LCBJbnQpBAp1c2R0QW1vdW50CAULJHQwMzQwMzM1MzECXzEECmZlZUFtb3VudDIIBQskdDAzNDAzMzUzMQJfMgQOd3hVc2R0WHRuUHJpY2UJAGsDBQp1c2R0QW1vdW50AMCEPQUKdXNkbkFtb3VudAQLd3hXYXZlc1h0blcApgQEEXd4V2F2ZXNYdG5Qb29sU3RyAiMzUFBaV2dGTlJLSEx2TTUxcHdTOTM0QzhWWjdkMkY0WjU4ZwQVd3hXYXZlc1h0blBvb2xBZGRyZXNzCQERQGV4dHJOYXRpdmUoMTA2MikBBRF3eFdhdmVzWHRuUG9vbFN0cgQPd2F2ZXNXYXZlc1h0blg4CAkA7wcBBRV3eFdhdmVzWHRuUG9vbEFkZHJlc3MHcmVndWxhcgQNeHRuV2F2ZXNYdG5YNgkA8AcCBRV3eFdhdmVzWHRuUG9vbEFkZHJlc3MFBXh0bklkBA93YXZlc1h0blByaWNlWDYJAGsDBQ14dG5XYXZlc1h0blg2AIDC1y8FD3dhdmVzV2F2ZXNYdG5YOAQTd3hXYXZlc1VzZHRYdG5QcmljZQkAawMFEHdhdmVzVXNkdFByaWNlWDYAwIQ9BQ93YXZlc1h0blByaWNlWDYECXd4RXRoWHRuVwAFBAhldGhJZFN0cgIsNDc0alRlWXgycjJWYTM1Nzk0dENTY0FYV0pHOWhVMkhjZ3h6TW93YVpVbnUEBWV0aElkCQDZBAEFCGV0aElkU3RyBA93eEV0aFh0blBvb2xTdHICIzNQRU1xZXRzYUpEYllNdzFYR292bUUzN0ZCOFZVaEduWDlBBBN3eEV0aFh0blBvb2xBZGRyZXNzCQERQGV4dHJOYXRpdmUoMTA2MikBBQ93eEV0aFh0blBvb2xTdHIEC2V0aEV0aFh0blg4CQDwBwIFE3d4RXRoWHRuUG9vbEFkZHJlc3MFBWV0aElkBAt4dG5FdGhYdG5YNgkA8AcCBRN3eEV0aFh0blBvb2xBZGRyZXNzBQV4dG5JZAQNZXRoWHRuUHJpY2VYNgkAawMFC3h0bkV0aFh0blg2AIDC1y8FC2V0aEV0aFh0blg4BBF3eEV0aFVzZHRYdG5QcmljZQkAawMFDmV0aFVzZHRQcmljZVg2AMCEPQUNZXRoWHRuUHJpY2VYNgQPc3dvcGZpV2F2ZXNYdG5XAMIDBApzd29wZmlSZXN0CQERQGV4dHJOYXRpdmUoMTA2MikBAiMzUDU2ak5RekVDWG5yV3BuYmJTSkt3N0Vvb282ZmtVYU1QcAQVc3dvcGZpV2F2ZXNYdG5QcmljZVg2CgABQAkA/AcEBQpzd29wZmlSZXN0AhFjYWxjR2V0QW1vdW50Q1BNTQkAzAgCAiMzUEhhTmdvbUJrcnZFTDJRbnVKYXJRVkphNzF3anc5cWlxRwkAzAgCAiMzUFFIQ1RxZnpFOGUxSm84bTFRVmFDWEFUU0t5TW1rWWFzRgkAzAgCAgVXQVZFUwkAzAgCAIDC1y8FA25pbAUDbmlsAwkAAQIFAUACA0ludAUBQAkAAgEJAKwCAgkAAwEFAUACGCBjb3VsZG4ndCBiZSBjYXN0IHRvIEludAQXc3dvcGZpV2F2ZXNVc2R0WHRuUHJpY2UJAGsDBRB3YXZlc1VzZHRQcmljZVg2AMCEPQUVc3dvcGZpV2F2ZXNYdG5QcmljZVg2BAhuZXdQcmljZQkAZAIJAGsDBRN3eFdhdmVzVXNkdFh0blByaWNlBQt3eFdhdmVzWHRuVwDoBwkAawMFF3N3b3BmaVdhdmVzVXNkdFh0blByaWNlBQ9zd29wZmlXYXZlc1h0blcA6AcEBWRlYnVnCQCsAgIJAKwCAgkArAICAhR3eFdhdmVzVXNkdFh0blByaWNlPQkApAMBBRN3eFdhdmVzVXNkdFh0blByaWNlAhkgc3dvcGZpV2F2ZXNVc2R0WHRuUHJpY2U9CQCkAwEFF3N3b3BmaVdhdmVzVXNkdFh0blByaWNlCQCUCgIFCG5ld1ByaWNlBQVkZWJ1ZwEUZmluYWxpemVXeFVzZE9uY2hhaW4BD3dhdmVzVXNkUHJpY2VYNgQOZG9yYUFkZHJlc3NTdHICIzNQS2tvaktkZDZCQnpUZjFSWGJRVmZVRHJhTkZYWEhLelFGBAtkb3JhQWRkcmVzcwkBEUBleHRyTmF0aXZlKDEwNjIpAQUOZG9yYUFkZHJlc3NTdHIEDXh0blVzZFByaWNlWDYJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAmggCBQtkb3JhQWRkcmVzcwIWJXMlc19fcHJpY2VfX1VTRE4tVVNEVAIkRE9SQSBkb2Vzbid0IGNvbnRhaW4gVVNETi9VU0RUIHByaWNlBBV3eF9XeFdhdmVzX0FkZHJlc3NTdHICIzNQRnphSDJnaHB3QU5IRmdqZXZhODNOMXl4ekVyRUx4MmVoBBJ3eF9XeFdhdmVzX0FkZHJlc3MJARFAZXh0ck5hdGl2ZSgxMDYyKQEFFXd4X1d4V2F2ZXNfQWRkcmVzc1N0cgQRd3hfV3hXYXZlc19XZWlnaHQA0IYDBBJ3eF9XeFdhdmVzX1dBVkVTeDgICQDvBwEFEnd4X1d4V2F2ZXNfQWRkcmVzcwdyZWd1bGFyBA93eF9XeFdhdmVzX1dYeDgJAPAHAgUSd3hfV3hXYXZlc19BZGRyZXNzBQR3eElkBBd3eF9XeFdhdmVzX1d4VXNkUHJpY2VYNgkAawMFEnd4X1d4V2F2ZXNfV0FWRVN4OAUPd2F2ZXNVc2RQcmljZVg2BQ93eF9XeFdhdmVzX1dYeDgEE3d4X1d4WHRuX0FkZHJlc3NTdHICIzNQQ0VOcEVLZThhdHdFTFo3b0NTbWNkRWZjUnVLVHJVeDk5BBB3eF9XeFh0bl9BZGRyZXNzCQERQGV4dHJOYXRpdmUoMTA2MikBBRN3eF9XeFh0bl9BZGRyZXNzU3RyBA93eF9XeFh0bl9XZWlnaHQA0IYDBA53eF9XeFh0bl9YVE54NgkA8AcCBRB3eF9XeFh0bl9BZGRyZXNzBQV4dG5JZAQNd3hfV3hYdG5fV1h4OAkA8AcCBRB3eF9XeFh0bl9BZGRyZXNzBQR3eElkBBV3eF9XeFh0bl9XeFVzZFByaWNlWDYJAGsDCQBoAgUOd3hfV3hYdG5fWFROeDYAZAUNeHRuVXNkUHJpY2VYNgUNd3hfV3hYdG5fV1h4OAQVc3dvcF9XeFh0bl9BZGRyZXNzU3RyAiMzUEtpNEczVlgyazQyWlNtTk5ybXZnZERIN0p6UmFVaFk3UgQMc3dvcFJlc3REYXBwCQERQGV4dHJOYXRpdmUoMTA2MikBAiMzUDU2ak5RekVDWG5yV3BuYmJTSkt3N0Vvb282ZmtVYU1QcAQRc3dvcF9XeFh0bl9XZWlnaHQAiCcEF3N3b3BfV3hYdG5fV3hYdG5QcmljZVg2CgABQAkA/AcEBQxzd29wUmVzdERhcHACEWNhbGNHZXRBbW91bnRDUE1NCQDMCAIFFXN3b3BfV3hYdG5fQWRkcmVzc1N0cgkAzAgCAiMzUDg4cWsxS3pGMUJLakQ3ZkM3TGpOVkFLTTRlemZmNVdFNgkAzAgCBQd3eElkU3RyCQDMCAIAgMLXLwUDbmlsBQNuaWwDCQABAgUBQAIDSW50BQFACQACAQkArAICCQADAQUBQAIYIGNvdWxkbid0IGJlIGNhc3QgdG8gSW50BBdzd29wX1d4WHRuX1d4VXNkUHJpY2VYNgkAawMFF3N3b3BfV3hYdG5fV3hYdG5QcmljZVg2BQ14dG5Vc2RQcmljZVg2AMCEPQQBVwkAZAIJAGQCBRF3eF9XeFdhdmVzX1dlaWdodAUPd3hfV3hYdG5fV2VpZ2h0BRFzd29wX1d4WHRuX1dlaWdodAQMd3hVc2RQcmljZVg2CQBkAgkAZAIJAGsDBRd3eF9XeFdhdmVzX1d4VXNkUHJpY2VYNgURd3hfV3hXYXZlc19XZWlnaHQFAVcJAGsDBRV3eF9XeFh0bl9XeFVzZFByaWNlWDYFD3d4X1d4WHRuX1dlaWdodAUBVwkAawMFF3N3b3BfV3hYdG5fV3hVc2RQcmljZVg2BRFzd29wX1d4WHRuX1dlaWdodAUBVwQFZGVidWcJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgIOeHRuVXNkUHJpY2VYNj0JAKQDAQUNeHRuVXNkUHJpY2VYNgIZIHd4X1d4V2F2ZXNfV3hVc2RQcmljZVg2PQkApAMBBRd3eF9XeFdhdmVzX1d4VXNkUHJpY2VYNgIXIHd4X1d4WHRuX1d4VXNkUHJpY2VYNj0JAKQDAQUVd3hfV3hYdG5fV3hVc2RQcmljZVg2Ahkgc3dvcF9XeFh0bl9XeFVzZFByaWNlWDY9CQCkAwEFF3N3b3BfV3hYdG5fV3hVc2RQcmljZVg2CQCUCgIFDHd4VXNkUHJpY2VYNgUFZGVidWcBDGdldFN0ck9yRWxzZQMHYWRkcmVzcwNrZXkKZGVmYXVsdFZhbAkBC3ZhbHVlT3JFbHNlAgkAnQgCBQdhZGRyZXNzBQNrZXkFCmRlZmF1bHRWYWwBEGtleVd4U3dhcEFkZHJlc3MAAhglcyVzX19jZmdfX3d4U3dhcEFkZHJlc3MBEWtleVNhdmluZ3NBZGRyZXNzAAIZJXMlc19fY2ZnX19zYXZpbmdzQWRkcmVzcwAQbmV1dHJpbm9Db250cmFjdAkBEUBleHRyTmF0aXZlKDEwNjIpAQIjM1BDOUJmUndKV1dpdzlBUkVFMkIzZVd6Q2tzM0NZdGc0eW8BAWkBCHN3YXBUZXN0AAQFTVVMVDgAgMLXLwQKYnV5QmFja0FtdAkAaAIAAQUFTVVMVDgEDHd4QXNzZXRJZFN0cgIsQXRxdjU5RVl6akZHdWl0S1ZuTVJrNkg4RnVram9WM2t0UG9yYkV5czI1b24EDXd4U3dhcEFkZHJlc3MJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQxnZXRTdHJPckVsc2UDBQR0aGlzCQEQa2V5V3hTd2FwQWRkcmVzcwACIzNQNjh6Tml1ZnN1MXZpWnB1MWFZM2NkYWhSUktjdlY1TjkzBApzd2FwUmVzdWx0CQD8BwQFDXd4U3dhcEFkZHJlc3MCBHN3YXAJAMwIAgABCQDMCAIFDHd4QXNzZXRJZFN0cgkAzAgCCQClCAEFEG5ldXRyaW5vQ29udHJhY3QFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUEdW5pdAUKYnV5QmFja0FtdAUDbmlsAwkAAAIFCnN3YXBSZXN1bHQFCnN3YXBSZXN1bHQFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgAJG0UH", "height": 3599929, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: CZFoU9Vd6MaUbruhuqSdT2sLT4PNUy4JFC4bsTnvtwz5 Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 6 #-}
2+{-# SCRIPT_TYPE ACCOUNT #-}
3+{-# CONTENT_TYPE DAPP #-}
4+func asString (v) = match v {
5+ case s: String =>
6+ s
7+ case _ =>
8+ throw("fail to cast into String")
9+}
10+
11+
12+func asInt (v) = match v {
13+ case i: Int =>
14+ i
15+ case _ =>
16+ throw("fail to cast into Int")
17+}
18+
19+
20+let xtnIdStr = "DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p"
21+
22+let xtnId = fromBase58String(xtnIdStr)
23+
24+let wxIdStr = "Atqv59EYzjFGuitKVnMRk6H8FukjoV3ktPorbEys25on"
25+
26+let wxId = fromBase58String(wxIdStr)
27+
28+func finalizeWxUsdOnchainV2 (wavesUsdPriceX6) = {
29+ let doraAddressStr = "3PKkojKdd6BBzTf1RXbQVfUDraNFXXHKzQF"
30+ let doraAddress = addressFromStringValue(doraAddressStr)
31+ let xtnUsdPriceX6 = valueOrErrorMessage(getInteger(doraAddress, "%s%s__price__USDN-USDT"), "DORA doesn't contain USDN/USDT price")
32+ let wx_WxWaves_lp = "BiSzFe8nSL78oZaebfoin5vBZ5Pze6d7kaeijLqr5xZe"
33+ let wx_restAddressStr = "3P8MoPnsaurofk1VyhsdAFkeQ6ijpJYXCpW"
34+ let wx_restDapp = addressFromStringValue(wx_restAddressStr)
35+ let wxRestResult = split(asString(invoke(wx_restDapp, "poolStatsREADONLY", [wx_WxWaves_lp], nil)), "__")
36+ let wx_WxWaves_Weight = 50000
37+ let wx_WxWaves_WAVESx8 = parseIntValue(wxRestResult[2])
38+ let wx_WxWaves_WXx8 = parseIntValue(wxRestResult[1])
39+ let wx_WxWaves_WxUsdPriceX6 = fraction(wx_WxWaves_WAVESx8, wavesUsdPriceX6, wx_WxWaves_WXx8)
40+ let wx_WxXtn_AddressStr = "3PCENpEKe8atwELZ7oCSmcdEfcRuKTrUx99"
41+ let wx_WxXtn_Address = addressFromStringValue(wx_WxXtn_AddressStr)
42+ let wx_WxXtn_Weight = 50000
43+ let wx_WxXtn_XTNx6 = assetBalance(wx_WxXtn_Address, xtnId)
44+ let wx_WxXtn_WXx8 = assetBalance(wx_WxXtn_Address, wxId)
45+ let wx_WxXtn_WxUsdPriceX6 = fraction((wx_WxXtn_XTNx6 * 100), xtnUsdPriceX6, wx_WxXtn_WXx8)
46+ let swop_WxXtn_AddressStr = "3PKi4G3VX2k42ZSmNNrmvgdDH7JzRaUhY7R"
47+ let swopRestDapp = addressFromStringValue("3P56jNQzECXnrWpnbbSJKw7Eooo6fkUaMPp")
48+ let swop_WxXtn_Weight = 5000
49+ let swop_WxXtn_WxXtnPriceX6 = asInt(invoke(swopRestDapp, "calcGetAmountCPMM", [swop_WxXtn_AddressStr, "3P88qk1KzF1BKjD7fC7LjNVAKM4ezff5WE6", wxIdStr, 100000000], nil))
50+ let swop_WxXtn_WxUsdPriceX6 = fraction(swop_WxXtn_WxXtnPriceX6, xtnUsdPriceX6, 1000000)
51+ let W = ((wx_WxWaves_Weight + wx_WxXtn_Weight) + swop_WxXtn_Weight)
52+ let wxUsdPriceX6 = ((fraction(wx_WxWaves_WxUsdPriceX6, wx_WxWaves_Weight, W) + fraction(wx_WxXtn_WxUsdPriceX6, wx_WxXtn_Weight, W)) + fraction(swop_WxXtn_WxUsdPriceX6, swop_WxXtn_Weight, W))
53+ let debug = ((((((("xtnUsdPriceX6=" + toString(xtnUsdPriceX6)) + " wx_WxWaves_WxUsdPriceX6=") + toString(wx_WxWaves_WxUsdPriceX6)) + " wx_WxXtn_WxUsdPriceX6=") + toString(wx_WxXtn_WxUsdPriceX6)) + " swop_WxXtn_WxUsdPriceX6=") + toString(swop_WxXtn_WxUsdPriceX6))
54+ $Tuple2(wxUsdPriceX6, debug)
55+ }
56+
57+
58+func finalizeUsdnUsdtOnchainV2 () = {
59+ let wavesUsdtPriceX6 = 2240000
60+ let ethUsdtPriceX6 = getIntegerValue(this, "%s%s__price__ETH-USDT")
61+ let symbol = "USDN-USDT"
62+ let usdtIdStr = "34N9YcEETLWn93qYQ64EsP1x89tSruJU44RrEMSXXEPJ"
63+ let usdnAmount = 1000000000
64+ let wxUsdtXtnPoolStr = "3P8KMyAJCPWNcyedqrmymxaeWonvmkhGauz"
65+ let wxUsdtXtnPoolAddress = addressFromStringValue(wxUsdtXtnPoolStr)
66+ let wxUsdtXtnW = 67
67+ let $t032523400 = {
68+ let @ = invoke(wxUsdtXtnPoolAddress, "putOneTknV2WithBonusREADONLY", [usdnAmount, xtnIdStr], nil)
69+ if ($isInstanceOf(@, "(Int, Int, Int)"))
70+ then @
71+ else throw(($getType(@) + " couldn't be cast to (Int, Int, Int)"))
72+ }
73+ let lpAmount = $t032523400._1
74+ let feeAmount1 = $t032523400._2
75+ let bonus = $t032523400._3
76+ let $t034033531 = {
77+ let @ = invoke(wxUsdtXtnPoolAddress, "getOneTknV2READONLY", [usdtIdStr, lpAmount], nil)
78+ if ($isInstanceOf(@, "(Int, Int)"))
79+ then @
80+ else throw(($getType(@) + " couldn't be cast to (Int, Int)"))
81+ }
82+ let usdtAmount = $t034033531._1
83+ let feeAmount2 = $t034033531._2
84+ let wxUsdtXtnPrice = fraction(usdtAmount, 1000000, usdnAmount)
85+ let wxWavesXtnW = 550
86+ let wxWavesXtnPoolStr = "3PPZWgFNRKHLvM51pwS934C8VZ7d2F4Z58g"
87+ let wxWavesXtnPoolAddress = addressFromStringValue(wxWavesXtnPoolStr)
88+ let wavesWavesXtnX8 = wavesBalance(wxWavesXtnPoolAddress).regular
89+ let xtnWavesXtnX6 = assetBalance(wxWavesXtnPoolAddress, xtnId)
90+ let wavesXtnPriceX6 = fraction(xtnWavesXtnX6, 100000000, wavesWavesXtnX8)
91+ let wxWavesUsdtXtnPrice = fraction(wavesUsdtPriceX6, 1000000, wavesXtnPriceX6)
92+ let wxEthXtnW = 5
93+ let ethIdStr = "474jTeYx2r2Va35794tCScAXWJG9hU2HcgxzMowaZUnu"
94+ let ethId = fromBase58String(ethIdStr)
95+ let wxEthXtnPoolStr = "3PEMqetsaJDbYMw1XGovmE37FB8VUhGnX9A"
96+ let wxEthXtnPoolAddress = addressFromStringValue(wxEthXtnPoolStr)
97+ let ethEthXtnX8 = assetBalance(wxEthXtnPoolAddress, ethId)
98+ let xtnEthXtnX6 = assetBalance(wxEthXtnPoolAddress, xtnId)
99+ let ethXtnPriceX6 = fraction(xtnEthXtnX6, 100000000, ethEthXtnX8)
100+ let wxEthUsdtXtnPrice = fraction(ethUsdtPriceX6, 1000000, ethXtnPriceX6)
101+ let swopfiWavesXtnW = 450
102+ let swopfiRest = addressFromStringValue("3P56jNQzECXnrWpnbbSJKw7Eooo6fkUaMPp")
103+ let swopfiWavesXtnPriceX6 = {
104+ let @ = invoke(swopfiRest, "calcGetAmountCPMM", ["3PHaNgomBkrvEL2QnuJarQVJa71wjw9qiqG", "3PQHCTqfzE8e1Jo8m1QVaCXATSKyMmkYasF", "WAVES", 100000000], nil)
105+ if ($isInstanceOf(@, "Int"))
106+ then @
107+ else throw(($getType(@) + " couldn't be cast to Int"))
108+ }
109+ let swopfiWavesUsdtXtnPrice = fraction(wavesUsdtPriceX6, 1000000, swopfiWavesXtnPriceX6)
110+ let newPrice = (fraction(wxWavesUsdtXtnPrice, wxWavesXtnW, 1000) + fraction(swopfiWavesUsdtXtnPrice, swopfiWavesXtnW, 1000))
111+ let debug = ((("wxWavesUsdtXtnPrice=" + toString(wxWavesUsdtXtnPrice)) + " swopfiWavesUsdtXtnPrice=") + toString(swopfiWavesUsdtXtnPrice))
112+ $Tuple2(newPrice, debug)
113+ }
114+
115+
116+func finalizeWxUsdOnchain (wavesUsdPriceX6) = {
117+ let doraAddressStr = "3PKkojKdd6BBzTf1RXbQVfUDraNFXXHKzQF"
118+ let doraAddress = addressFromStringValue(doraAddressStr)
119+ let xtnUsdPriceX6 = valueOrErrorMessage(getInteger(doraAddress, "%s%s__price__USDN-USDT"), "DORA doesn't contain USDN/USDT price")
120+ let wx_WxWaves_AddressStr = "3PFzaH2ghpwANHFgjeva83N1yxzErELx2eh"
121+ let wx_WxWaves_Address = addressFromStringValue(wx_WxWaves_AddressStr)
122+ let wx_WxWaves_Weight = 50000
123+ let wx_WxWaves_WAVESx8 = wavesBalance(wx_WxWaves_Address).regular
124+ let wx_WxWaves_WXx8 = assetBalance(wx_WxWaves_Address, wxId)
125+ let wx_WxWaves_WxUsdPriceX6 = fraction(wx_WxWaves_WAVESx8, wavesUsdPriceX6, wx_WxWaves_WXx8)
126+ let wx_WxXtn_AddressStr = "3PCENpEKe8atwELZ7oCSmcdEfcRuKTrUx99"
127+ let wx_WxXtn_Address = addressFromStringValue(wx_WxXtn_AddressStr)
128+ let wx_WxXtn_Weight = 50000
129+ let wx_WxXtn_XTNx6 = assetBalance(wx_WxXtn_Address, xtnId)
130+ let wx_WxXtn_WXx8 = assetBalance(wx_WxXtn_Address, wxId)
131+ let wx_WxXtn_WxUsdPriceX6 = fraction((wx_WxXtn_XTNx6 * 100), xtnUsdPriceX6, wx_WxXtn_WXx8)
132+ let swop_WxXtn_AddressStr = "3PKi4G3VX2k42ZSmNNrmvgdDH7JzRaUhY7R"
133+ let swopRestDapp = addressFromStringValue("3P56jNQzECXnrWpnbbSJKw7Eooo6fkUaMPp")
134+ let swop_WxXtn_Weight = 5000
135+ let swop_WxXtn_WxXtnPriceX6 = {
136+ let @ = invoke(swopRestDapp, "calcGetAmountCPMM", [swop_WxXtn_AddressStr, "3P88qk1KzF1BKjD7fC7LjNVAKM4ezff5WE6", wxIdStr, 100000000], nil)
137+ if ($isInstanceOf(@, "Int"))
138+ then @
139+ else throw(($getType(@) + " couldn't be cast to Int"))
140+ }
141+ let swop_WxXtn_WxUsdPriceX6 = fraction(swop_WxXtn_WxXtnPriceX6, xtnUsdPriceX6, 1000000)
142+ let W = ((wx_WxWaves_Weight + wx_WxXtn_Weight) + swop_WxXtn_Weight)
143+ let wxUsdPriceX6 = ((fraction(wx_WxWaves_WxUsdPriceX6, wx_WxWaves_Weight, W) + fraction(wx_WxXtn_WxUsdPriceX6, wx_WxXtn_Weight, W)) + fraction(swop_WxXtn_WxUsdPriceX6, swop_WxXtn_Weight, W))
144+ let debug = ((((((("xtnUsdPriceX6=" + toString(xtnUsdPriceX6)) + " wx_WxWaves_WxUsdPriceX6=") + toString(wx_WxWaves_WxUsdPriceX6)) + " wx_WxXtn_WxUsdPriceX6=") + toString(wx_WxXtn_WxUsdPriceX6)) + " swop_WxXtn_WxUsdPriceX6=") + toString(swop_WxXtn_WxUsdPriceX6))
145+ $Tuple2(wxUsdPriceX6, debug)
146+ }
147+
148+
149+func getStrOrElse (address,key,defaultVal) = valueOrElse(getString(address, key), defaultVal)
150+
151+
152+func keyWxSwapAddress () = "%s%s__cfg__wxSwapAddress"
153+
154+
155+func keySavingsAddress () = "%s%s__cfg__savingsAddress"
156+
157+
158+let neutrinoContract = addressFromStringValue("3PC9BfRwJWWiw9AREE2B3eWzCks3CYtg4yo")
159+
160+@Callable(i)
161+func swapTest () = {
162+ let MULT8 = 100000000
163+ let buyBackAmt = (1 * MULT8)
164+ let wxAssetIdStr = "Atqv59EYzjFGuitKVnMRk6H8FukjoV3ktPorbEys25on"
165+ let wxSwapAddress = addressFromStringValue(getStrOrElse(this, keyWxSwapAddress(), "3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93"))
166+ let swapResult = invoke(wxSwapAddress, "swap", [1, wxAssetIdStr, toString(neutrinoContract)], [AttachedPayment(unit, buyBackAmt)])
167+ if ((swapResult == swapResult))
168+ then nil
169+ else throw("Strict value is not equal to itself.")
170+ }
171+
172+

github/deemru/w8io/6500d08 
25.94 ms