tx · E2e14YobAPgMzZePjAn4QHXK7t2zSc4fibVSTjQPCT1Y

3N8Cko4wa6ewdnPRXybzTMDpnhuYREfkps7:  -0.00200000 Waves

2023.09.21 20:55 [2765466] smart account 3N8Cko4wa6ewdnPRXybzTMDpnhuYREfkps7 > SELF 0.00000000 Waves

{ "type": 13, "id": "E2e14YobAPgMzZePjAn4QHXK7t2zSc4fibVSTjQPCT1Y", "fee": 200000, "feeAssetId": null, "timestamp": 1695318932093, "version": 2, "chainId": 84, "sender": "3N8Cko4wa6ewdnPRXybzTMDpnhuYREfkps7", "senderPublicKey": "4oVxBvsmoAhMaT1WhgSLcKFKX1NzwYxDaR89cAdGRGky", "proofs": [ "uM1pSjg8w5qDCQZ2oqz3FXufWYdUVi8r2VTMxYXxu6Wd4MSxgB4KyWw7qpNg3YLHYU1zNwXRknDA6GWRQAeZ8pz" ], "script": "base64:BgIOCAISABIECgIIARIAEgAGAAVjaGFpbgkAyQECCQDKAQIIBQR0aGlzBWJ5dGVzAAEAAQALdXNkdEFzc2V0SWQEByRtYXRjaDAFBWNoYWluAwkAAAIBAVcFByRtYXRjaDABIITaerIIAz9O0bvKju6Lk7zJgt0LXfoHlqjUI/moD/+5AwkAAAIBAVQFByRtYXRjaDABIFWx2J9yh4Lv5eNbjawFq2XemkOhLxa7BfMat4el8cUYCQACAQINVW5rbm93biBjaGFpbgEKZml4ZWRQb2ludAIDdmFsCGRlY2ltYWxzBAZ0ZW5Qb3cJAGwGAAoAAAUIZGVjaW1hbHMAAAAABQRET1dOBAdsb3dQYXJ0CQCkAwEJAGoCBQN2YWwFBnRlblBvdwQGemVyb2VzCQCwAgIJAKQDAQUGdGVuUG93CQBkAgABCQCxAgEFB2xvd1BhcnQJAKwCAgkArAICCQCsAgIJAKQDAQkAaQIFA3ZhbAUGdGVuUG93AgEuBQZ6ZXJvZXMFB2xvd1BhcnQAD3piaWxsQXNzZXRJZEtleQINemJpbGxfYXNzZXRJZAAMemJpbGxBc3NldElkCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJwIAgUEdGhpcwUPemJpbGxBc3NldElkS2V5AhNOb3QgaW5pdGlhbGl6ZWQgeWV0ABR6YmlsbElzc3VlZEFtb3VudEtleQISemJpbGxfaXNzdWVkQW1vdW50BAFpAQ1jb25zdHJ1Y3RvclYxAAMJAQIhPQIIBQFpBmNhbGxlcgUEdGhpcwkAAgECEVBlcm1pc3Npb24gZGVuaWVkAwkBCWlzRGVmaW5lZAEJAKEIAQUPemJpbGxBc3NldElkS2V5CQACAQITQWxyZWFkeSBpbml0aWFsaXplZAQMaXNzdWVkQW1vdW50AAAEBWlzc3VlCQDDCAcCBVpCSUxMAhtVU0RUIEJpbGwgb2YgRXhjaGFuZ2UgdG9rZW4FDGlzc3VlZEFtb3VudAAGBgUEdW5pdAAABAdhc3NldElkCQC4CAEFBWlzc3VlCQDMCAIFBWlzc3VlCQDMCAIJAQxJbnRlZ2VyRW50cnkCBRR6YmlsbElzc3VlZEFtb3VudEtleQUMaXNzdWVkQW1vdW50CQDMCAIJAQtCaW5hcnlFbnRyeQIFD3piaWxsQXNzZXRJZEtleQUHYXNzZXRJZAUDbmlsAWkBCHRha2VVc2R0AghkZXN0QWRkcgZhbW91bnQDCQECIT0CCAUBaQZjYWxsZXIFBHRoaXMJAAIBAhFwZXJtaXNzaW9uIGRlbmllZAMJAQIhPQIJAJADAQgFAWkIcGF5bWVudHMAAAkAAgECE05vIHBheW1lbnRzIGFsbG93ZWQEDGlzc3VlZEFtb3VudAkBEUBleHRyTmF0aXZlKDEwNTUpAQUUemJpbGxJc3N1ZWRBbW91bnRLZXkJAMwIAgkBB1JlaXNzdWUDBQx6YmlsbEFzc2V0SWQFBmFtb3VudAYJAMwIAgkBDEludGVnZXJFbnRyeQIFFHpiaWxsSXNzdWVkQW1vdW50S2V5CQBkAgUMaXNzdWVkQW1vdW50BQZhbW91bnQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBEUBleHRyTmF0aXZlKDEwNjIpAQUIZGVzdEFkZHIFBmFtb3VudAULdXNkdEFzc2V0SWQFA25pbAFpAQpyZXR1cm5Vc2R0AAMJAQIhPQIJAJADAQgFAWkIcGF5bWVudHMAAQkAAgECImV4YWN0bHkgMSBwYXltZW50IG11c3QgYmUgYXR0YWNoZWQEA3BtdAkAkQMCCAUBaQhwYXltZW50cwAABANhbXQIBQNwbXQGYW1vdW50AwMJAQEhAQkBCWlzRGVmaW5lZAEIBQNwbXQHYXNzZXRJZAYJAQIhPQIJAQV2YWx1ZQEIBQNwbXQHYXNzZXRJZAULdXNkdEFzc2V0SWQJAAIBAhNVU0RUIHBheW1lbnRzIG9ubHkhBAxpc3N1ZWRBbW91bnQJARFAZXh0ck5hdGl2ZSgxMDU1KQEFFHpiaWxsSXNzdWVkQW1vdW50S2V5AwkAZgIFA2FtdAUMaXNzdWVkQW1vdW50CQACAQkArAICCQCsAgIJAKwCAgkArAICAhhDYW4ndCByZXR1cm4gbW9yZSBVU0RUICgJAQpmaXhlZFBvaW50AgUDYW10AAYCFiksIHRoYW4gaXNzdWVkIFpCSUxMICgJAQpmaXhlZFBvaW50AgUMaXNzdWVkQW1vdW50AAYCASkJAMwIAgkBBEJ1cm4CBQx6YmlsbEFzc2V0SWQFA2FtdAkAzAgCCQEMSW50ZWdlckVudHJ5AgUUemJpbGxJc3N1ZWRBbW91bnRLZXkJAGUCBQxpc3N1ZWRBbW91bnQFA2FtdAUDbmlsAWkBEGdldEZ1bmRzUkVBRE9OTFkAAwkBAiE9AgkAkAMBCAUBaQhwYXltZW50cwAACQACAQITTm8gcGF5bWVudHMgYWxsb3dlZAQHZnVuZFN1bQkAZAIJAPAHAgUEdGhpcwULdXNkdEFzc2V0SWQJAPAHAgUEdGhpcwUMemJpbGxBc3NldElkCQCUCgIFA25pbAUHZnVuZFN1bQDFbzqs", "height": 2765466, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 9Mjqvv6ZevHtMMZgYVU3ihjyTR2SoKz9wKjcdQuMeTU4 Next: HVUfaymB7YJtS7qkCw7jrjs3bWhGgAJWSoFBZccjsHvY Diff:
OldNewDifferences
5858 else {
5959 let pmt = i.payments[0]
6060 let amt = pmt.amount
61- let pmtAssetId = valueOrErrorMessage(pmt.assetId, "USDT payments only!")
62- if ((pmtAssetId != usdtAssetId))
61+ if (if (!(isDefined(pmt.assetId)))
62+ then true
63+ else (value(pmt.assetId) != usdtAssetId))
6364 then throw("USDT payments only!")
6465 else {
6566 let issuedAmount = getIntegerValue(zbillIssuedAmountKey)
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let chain = take(drop(this.bytes, 1), 1)
55
66 let usdtAssetId = match chain {
77 case _ =>
88 if ((base58'2W' == $match0))
99 then base58'9wc3LXNA4TEBsXyKtoLE9mrbDD7WMHXvXrCjZvabLAsi'
1010 else if ((base58'2T' == $match0))
1111 then base58'6mWwf9mZBjVgkC54idpyaZLQfAosD914wT8fGf2iiY63'
1212 else throw("Unknown chain")
1313 }
1414
1515 func fixedPoint (val,decimals) = {
1616 let tenPow = pow(10, 0, decimals, 0, 0, DOWN)
1717 let lowPart = toString((val % tenPow))
1818 let zeroes = drop(toString(tenPow), (1 + size(lowPart)))
1919 (((toString((val / tenPow)) + ".") + zeroes) + lowPart)
2020 }
2121
2222
2323 let zbillAssetIdKey = "zbill_assetId"
2424
2525 let zbillAssetId = valueOrErrorMessage(getBinary(this, zbillAssetIdKey), "Not initialized yet")
2626
2727 let zbillIssuedAmountKey = "zbill_issuedAmount"
2828
2929 @Callable(i)
3030 func constructorV1 () = if ((i.caller != this))
3131 then throw("Permission denied")
3232 else if (isDefined(getBinary(zbillAssetIdKey)))
3333 then throw("Already initialized")
3434 else {
3535 let issuedAmount = 0
3636 let issue = Issue("ZBILL", "USDT Bill of Exchange token", issuedAmount, 6, true, unit, 0)
3737 let assetId = calculateAssetId(issue)
3838 [issue, IntegerEntry(zbillIssuedAmountKey, issuedAmount), BinaryEntry(zbillAssetIdKey, assetId)]
3939 }
4040
4141
4242
4343 @Callable(i)
4444 func takeUsdt (destAddr,amount) = if ((i.caller != this))
4545 then throw("permission denied")
4646 else if ((size(i.payments) != 0))
4747 then throw("No payments allowed")
4848 else {
4949 let issuedAmount = getIntegerValue(zbillIssuedAmountKey)
5050 [Reissue(zbillAssetId, amount, true), IntegerEntry(zbillIssuedAmountKey, (issuedAmount + amount)), ScriptTransfer(addressFromStringValue(destAddr), amount, usdtAssetId)]
5151 }
5252
5353
5454
5555 @Callable(i)
5656 func returnUsdt () = if ((size(i.payments) != 1))
5757 then throw("exactly 1 payment must be attached")
5858 else {
5959 let pmt = i.payments[0]
6060 let amt = pmt.amount
61- let pmtAssetId = valueOrErrorMessage(pmt.assetId, "USDT payments only!")
62- if ((pmtAssetId != usdtAssetId))
61+ if (if (!(isDefined(pmt.assetId)))
62+ then true
63+ else (value(pmt.assetId) != usdtAssetId))
6364 then throw("USDT payments only!")
6465 else {
6566 let issuedAmount = getIntegerValue(zbillIssuedAmountKey)
6667 if ((amt > issuedAmount))
6768 then throw((((("Can't return more USDT (" + fixedPoint(amt, 6)) + "), than issued ZBILL (") + fixedPoint(issuedAmount, 6)) + ")"))
6869 else [Burn(zbillAssetId, amt), IntegerEntry(zbillIssuedAmountKey, (issuedAmount - amt))]
6970 }
7071 }
7172
7273
7374
7475 @Callable(i)
7576 func getFundsREADONLY () = if ((size(i.payments) != 0))
7677 then throw("No payments allowed")
7778 else {
7879 let fundSum = (assetBalance(this, usdtAssetId) + assetBalance(this, zbillAssetId))
7980 $Tuple2(nil, fundSum)
8081 }
8182
8283

github/deemru/w8io/873ac7e 
39.86 ms