tx · 72To7uGZhYUUYgj64Ga3SGqwH4oNGuTrPuU9yyPRtTNS

3PKZk5TdPCLP2GZviipLFfK46ExTnwkRCBd:  -0.00600000 Waves

2022.09.08 16:23 [3285708] smart account 3PKZk5TdPCLP2GZviipLFfK46ExTnwkRCBd > SELF 0.00000000 Waves

{ "type": 13, "id": "72To7uGZhYUUYgj64Ga3SGqwH4oNGuTrPuU9yyPRtTNS", "fee": 600000, "feeAssetId": null, "timestamp": 1662643217034, "version": 1, "sender": "3PKZk5TdPCLP2GZviipLFfK46ExTnwkRCBd", "senderPublicKey": "CoV1jk1qqzAeWBtHh14JiHCtHBsmn5oBWAdGsF4zTptz", "proofs": [ "27AiC8hQz3vEckuFUC1WmnZ3GYs2VqnEwDQhvKiahTXPXNKgUh1CRAkfYZ6EP6xLrgxEA67GrDYhgYXeDNE6d6v2" ], "script": "base64:BgIaCAISBAoCCAgSABIECgIICBIDCgEIEgMKAQgeARB3cml0ZUNvbnN0U3RyaW5nAgNrZXkFdmFsdWUDCQEBIQEJAQlpc0RlZmluZWQBCQCdCAIFBHRoaXMFA2tleQkBC1N0cmluZ0VudHJ5AgUDa2V5BQV2YWx1ZQkAAgEJAKwCAgIVYWxyZWFkeSBpbml0aWFsaXplZDogBQNrZXkBDXdyaXRlQ29uc3RJbnQCA2tleQV2YWx1ZQMJAQEhAQkBCWlzRGVmaW5lZAEJAJoIAgUEdGhpcwUDa2V5CQEMSW50ZWdlckVudHJ5AgUDa2V5BQV2YWx1ZQkAAgEJAKwCAgIVYWxyZWFkeSBpbml0aWFsaXplZDogBQNrZXkBCHdyaXRlSW50AgNrZXkFdmFsdWUDCQBmAgAABQV2YWx1ZQkAAgEJAKwCAgkArAICCQCsAgICF3dyaXRpbmcgbmVnYXRpdmUgdmFsdWUgCQCkAwEFBXZhbHVlAgkgZm9yIGtleSAFA2tleQkBDEludGVnZXJFbnRyeQIFA2tleQUFdmFsdWUBCGNoYW5nZUJ5AgNrZXkFdmFsdWUJAQh3cml0ZUludAIFA2tleQkAZAIJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUDa2V5AAAFBXZhbHVlAAtjb25maWdTdG9yZQIGY29uZmlnAA1jb25maWdBZGRyZXNzCQERQGV4dHJOYXRpdmUoMTA2MikBCQERQGV4dHJOYXRpdmUoMTA1MykCBQR0aGlzBQtjb25maWdTdG9yZQASbWF5YmVPcmFjbGVBZGRyZXNzBAckbWF0Y2gwCQCdCAIFDWNvbmZpZ0FkZHJlc3MCDm9yYWNsZV9hZGRyZXNzAwkAAQIFByRtYXRjaDACBlN0cmluZwQBcwUHJG1hdGNoMAkApggBBQFzBQR1bml0AAZIRUlHSFQFBmhlaWdodAEJb3BBbGxvd2VkAQJvcAQHJG1hdGNoMAkA/AcEBQ1jb25maWdBZGRyZXNzAglvcEFsbG93ZWQJAMwIAgIEdXNkbgkAzAgCBQJvcAUDbmlsBQNuaWwDCQABAgUHJG1hdGNoMAIHQm9vbGVhbgQBYgUHJG1hdGNoMAMFAWIGCQACAQILbm90IGFsbG93ZWQJAAIBAiFvcEFsbG93ZWQ6IHVuZXhwZWN0ZWQgcmVzdWx0IHR5cGUBCG1haW5Pbmx5AQFpAwkBCGNvbnRhaW5zAgkBEUBleHRyTmF0aXZlKDEwNTMpAgUNY29uZmlnQWRkcmVzcwIEbWFpbgkApQgBCAUBaQZjYWxsZXIGCQACAQIQb25seSBtYWluIGNhbiBkbwEHdGhyb3dJZgIJY29uZGl0aW9uBWVycm9yAwUJY29uZGl0aW9uCQACAQUFZXJyb3IGAAlUSU1FRlJBTUUAoAsABHVzZG4JARFAZXh0ck5hdGl2ZSgxMDUzKQIFBHRoaXMCBHVzZG4BF2FkZHJlc3NUb3RhbFN0b3JlTGVnYWN5AQdhZGRyZXNzCQCsAgIFB2FkZHJlc3MCBV91c2RuARFhZGRyZXNzVG90YWxTdG9yZQEHYWRkcmVzcwkArAICBQdhZGRyZXNzAgVfVVNETgERdmVzdGluZ1N0YXJ0U3RvcmUBB2FkZHJlc3MJAKwCAgUHYWRkcmVzcwIOX3Zlc3Rpbmdfc3RhcnQBE3Zlc3RpbmdDbGFpbWVkU3RvcmUBB2FkZHJlc3MJAKwCAgUHYWRkcmVzcwIIX2NsYWltZWQBGXdpdGhkcmF3bldpdGhpbkVwb2NoU3RvcmUDCmVwb2NoU3RhcnQHYWRkcmVzcwdhc3NldElkCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgUHYWRkcmVzcwIBXwUHYXNzZXRJZAIBXwkApAMBBQplcG9jaFN0YXJ0Ahdfd2l0aGRyYXduX3dpdGhpbl9lcG9jaAARY3VycmVudEVwb2NoU3RhcnQJAGgCCQBpAgUGSEVJR0hUBQlUSU1FRlJBTUUFCVRJTUVGUkFNRQAMbWluQ2xhaW1Vc2RuCQELdmFsdWVPckVsc2UCCQCaCAIFDWNvbmZpZ0FkZHJlc3MCFW1pbmltYXhWZXN0aW5nVXNkbkFsbAkAaAIAZADAhD0ADm1heFRvdGFsUGVyRGF5CQELdmFsdWVPckVsc2UCCQCaCAIFDWNvbmZpZ0FkZHJlc3MCFm1heERhaWx5VmVzdGluZ1VzZG5BbGwJAGgCCQBoAgBkAOgHAMCEPQAOdG90YWxVU0ROU3RvcmUCCnRvdGFsX3VzZG4BE3dpdGhkcmF3blRvZGF5U3RvcmUBB2FkZHJlc3MJARl3aXRoZHJhd25XaXRoaW5FcG9jaFN0b3JlAwURY3VycmVudEVwb2NoU3RhcnQFB2FkZHJlc3MFBHVzZG4BDndpdGhkcmF3blRvZGF5AQdhZGRyZXNzCQELdmFsdWVPckVsc2UCCQCfCAEJARN3aXRoZHJhd25Ub2RheVN0b3JlAQUHYWRkcmVzcwAAABh3aXRoZHJhd25Ub2RheVRvdGFsU3RvcmUJARl3aXRoZHJhd25XaXRoaW5FcG9jaFN0b3JlAwURY3VycmVudEVwb2NoU3RhcnQCBXRvdGFsBQR1c2RuABN3aXRoZHJhd25Ub2RheVRvdGFsCQELdmFsdWVPckVsc2UCCQCfCAEFGHdpdGhkcmF3blRvZGF5VG90YWxTdG9yZQAAABN0b3RhbEF2YWlsYWJsZVRvZGF5CQBlAgUObWF4VG90YWxQZXJEYXkFE3dpdGhkcmF3blRvZGF5VG90YWwBEnVzZXJWZXN0aW5nQmFsYW5jZQEHYWRkcmVzcwQMdG90YWxWZXN0aW5nCQELdmFsdWVPckVsc2UCCQCfCAEJARFhZGRyZXNzVG90YWxTdG9yZQEFB2FkZHJlc3MJAQt2YWx1ZU9yRWxzZQIJAJ8IAQkBF2FkZHJlc3NUb3RhbFN0b3JlTGVnYWN5AQUHYWRkcmVzcwAABA5hbHJlYWR5Q2xhaW1lZAkBC3ZhbHVlT3JFbHNlAgkAnwgBCQETdmVzdGluZ0NsYWltZWRTdG9yZQEFB2FkZHJlc3MAAAQMY2xhaW1lZFRvZGF5CQEOd2l0aGRyYXduVG9kYXkBBQdhZGRyZXNzBAckbWF0Y2gwCQCaCAIFBHRoaXMJARF2ZXN0aW5nU3RhcnRTdG9yZQEFB2FkZHJlc3MDCQABAgUHJG1hdGNoMAIDSW50BAx2ZXN0aW5nU3RhcnQFByRtYXRjaDAED3RvdGFsTm9uQ2xhaW1lZAkAZQIFDHRvdGFsVmVzdGluZwUOYWxyZWFkeUNsYWltZWQECmRhaWx5TGltaXQJAJYDAQkAzAgCBQxtaW5DbGFpbVVzZG4JAMwIAgkAaQIFDHRvdGFsVmVzdGluZwD0AwUDbmlsBA5hdmFpbGFibGVUb2RheQkAlwMBCQDMCAIFD3RvdGFsTm9uQ2xhaW1lZAkAzAgCBRN0b3RhbEF2YWlsYWJsZVRvZGF5CQDMCAIJAGUCBQpkYWlseUxpbWl0BQxjbGFpbWVkVG9kYXkFA25pbAkAlwoFBQx0b3RhbFZlc3RpbmcFDmFscmVhZHlDbGFpbWVkBQx2ZXN0aW5nU3RhcnQFDGNsYWltZWRUb2RheQUOYXZhaWxhYmxlVG9kYXkJAJkKBwUMdG90YWxWZXN0aW5nAAAA////////////AQD///////////8BAP///////////wEA////////////AQD///////////8BAQphZHZpc2VVc2VyAQdhZGRyZXNzBAskdDAzNTE1MzYxNgkBEnVzZXJWZXN0aW5nQmFsYW5jZQEFB2FkZHJlc3MEDHRvdGFsVmVzdGluZwgFCyR0MDM1MTUzNjE2Al8xBA5hbHJlYWR5Q2xhaW1lZAgFCyR0MDM1MTUzNjE2Al8yBAVzdGFydAgFCyR0MDM1MTUzNjE2Al8zBAxjbGFpbWVkVG9kYXkIBQskdDAzNTE1MzYxNgJfNAQOYXZhaWxhYmxlVG9kYXkIBQskdDAzNTE1MzYxNgJfNQkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgIRbWFya2V0c19hZGRyZXNzOiAFB2FkZHJlc3MCGCwgbWFya2V0c190b3RhbFZlc3Rpbmc6IAkApAMBBQx0b3RhbFZlc3RpbmcCGiwgbWFya2V0c19hbHJlYWR5Q2xhaW1lZDogCQCkAwEFDmFscmVhZHlDbGFpbWVkAhcsIG1hcmtldHNfc3RhcnRIZWlnaHQ6IAkApAMBBQVzdGFydAIWLCBtYXJrZXRzX2RhaWx5TGltaXQ6IAkApAMBCQCWAwEJAMwIAgUMbWluQ2xhaW1Vc2RuCQDMCAIJAGkCBQx0b3RhbFZlc3RpbmcA9AMFA25pbAIYLCBtYXJrZXRzX2NsYWltZWRUb2RheTogCQCkAwEFDGNsYWltZWRUb2RheQIaLCBtYXJrZXRzX2F2YWlsYWJsZVRvZGF5OiAJAKQDAQUOYXZhaWxhYmxlVG9kYXkCIiwgbWFya2V0c19nbG9iYWxseUF2YWlsYWJsZVRvZGF5OiAJAKQDAQUTdG90YWxBdmFpbGFibGVUb2RheQEWd2l0aGRyYXdWZXN0ZWRJbnRlcm5hbAIHYWRkcmVzcwJ0bwQGY2hlY2tzCQEJb3BBbGxvd2VkAQIbbGlxdWlkYW9fYWxsX3dpdGhkcmF3VmVzdGVkAwkAAAIFBmNoZWNrcwUGY2hlY2tzBAskdDA0MjU5NDM2MAkBEnVzZXJWZXN0aW5nQmFsYW5jZQEFB2FkZHJlc3MEDHRvdGFsVmVzdGluZwgFCyR0MDQyNTk0MzYwAl8xBA5hbHJlYWR5Q2xhaW1lZAgFCyR0MDQyNTk0MzYwAl8yBAVzdGFydAgFCyR0MDQyNTk0MzYwAl8zBAxjbGFpbWVkVG9kYXkIBQskdDA0MjU5NDM2MAJfNAQOYXZhaWxhYmxlVG9kYXkIBQskdDA0MjU5NDM2MAJfNQMJAGYCAAAFBXN0YXJ0CQACAQISbm8gdmVzdGluZyBlbmFibGVkAwkAZwIAAAUOYXZhaWxhYmxlVG9kYXkJAAIBAhFub3RoaW5nIGF2YWlsYWJsZQkAlAoCCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJARFAZXh0ck5hdGl2ZSgxMDYyKQEFAnRvBQ5hdmFpbGFibGVUb2RheQkA2QQBBQR1c2RuCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQETdmVzdGluZ0NsYWltZWRTdG9yZQEFB2FkZHJlc3MJAGQCBQ5hbHJlYWR5Q2xhaW1lZAUOYXZhaWxhYmxlVG9kYXkJAMwIAgkBCGNoYW5nZUJ5AgkBE3dpdGhkcmF3blRvZGF5U3RvcmUBBQdhZGRyZXNzBQ5hdmFpbGFibGVUb2RheQkAzAgCCQEIY2hhbmdlQnkCBRh3aXRoZHJhd25Ub2RheVRvdGFsU3RvcmUFDmF2YWlsYWJsZVRvZGF5BQNuaWwFDmF2YWlsYWJsZVRvZGF5CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuBQFpAQRpbml0AgRjb25mA25JZAMJAQIhPQIIBQFpBmNhbGxlcgUEdGhpcwkAAgECEm9ubHkgc2VsZiBjYW4gaW5pdAkAzAgCCQEQd3JpdGVDb25zdFN0cmluZwIFC2NvbmZpZ1N0b3JlBQRjb25mCQDMCAIJARB3cml0ZUNvbnN0U3RyaW5nAgIEdXNkbgUDbklkBQNuaWwBaQEOd2l0aGRyYXdWZXN0ZWQABAdhZGRyZXNzCQClCAEIBQFpBmNhbGxlcgkBFndpdGhkcmF3VmVzdGVkSW50ZXJuYWwCBQdhZGRyZXNzBQdhZGRyZXNzAWkBE3dpdGhkcmF3VmVzdGVkRm9yVG8CA2FjYwJ0bwQGY2hlY2tzCQEIbWFpbk9ubHkBBQFpAwkAAAIFBmNoZWNrcwUGY2hlY2tzCQEWd2l0aGRyYXdWZXN0ZWRJbnRlcm5hbAIFA2FjYwUCdG8JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEKYWNjb3VudEZvcgEHYWRkcmVzcwQIYXR0YWNoZWQJAJEDAggFAWkIcGF5bWVudHMAAAQGY2hlY2tzAwMJAQhtYWluT25seQEFAWkJAQlvcEFsbG93ZWQBAhFsaXF1aWRhb19hbGxfbW92ZQcJAQd0aHJvd0lmAgkBAiE9AgkA2AQBCQEFdmFsdWUBCAUIYXR0YWNoZWQHYXNzZXRJZAUEdXNkbgIVdXNkbiBtdXN0IGJlIGF0dGFjaGVkBwMJAAACBQZjaGVja3MFBmNoZWNrcwQLJHQwNTU0NDU2NDUJARJ1c2VyVmVzdGluZ0JhbGFuY2UBBQdhZGRyZXNzBAx0b3RhbFZlc3RpbmcIBQskdDA1NTQ0NTY0NQJfMQQOYWxyZWFkeUNsYWltZWQIBQskdDA1NTQ0NTY0NQJfMgQFc3RhcnQIBQskdDA1NTQ0NTY0NQJfMwQMY2xhaW1lZFRvZGF5CAULJHQwNTU0NDU2NDUCXzQEDmF2YWlsYWJsZVRvZGF5CAULJHQwNTU0NDU2NDUCXzUJAMwIAgkBCHdyaXRlSW50AgkBEXZlc3RpbmdTdGFydFN0b3JlAQUHYWRkcmVzcwUGSEVJR0hUCQDMCAIJAQh3cml0ZUludAIJARFhZGRyZXNzVG90YWxTdG9yZQEFB2FkZHJlc3MJAGQCBQx0b3RhbFZlc3RpbmcIBQhhdHRhY2hlZAZhbW91bnQJAMwIAgkBCGNoYW5nZUJ5AgUOdG90YWxVU0ROU3RvcmUIBQhhdHRhY2hlZAZhbW91bnQFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQdhZHZpc2VVAQNhY2MJAJQKAgUDbmlsCQEKYWR2aXNlVXNlcgEFA2FjYwBcgpzS", "chainId": 87, "height": 3285708, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 3Li4XaEqNBhxEsuosTpxrTvtzUmdnsRdpoQ67PusCHAx Next: GiPfYuyYnvCqUwrZ51y86GW4XHqCxyapzdDSATtVckFx Diff:
OldNewDifferences
172172 then throwIf((toBase58String(value(attached.assetId)) != usdn), "usdn must be attached")
173173 else false
174174 if ((checks == checks))
175- then [writeInt(vestingStartStore(address), HEIGHT), changeBy(addressTotalStore(address), attached.amount), changeBy(totalUSDNStore, attached.amount)]
175+ then {
176+ let $t055445645 = userVestingBalance(address)
177+ let totalVesting = $t055445645._1
178+ let alreadyClaimed = $t055445645._2
179+ let start = $t055445645._3
180+ let claimedToday = $t055445645._4
181+ let availableToday = $t055445645._5
182+[writeInt(vestingStartStore(address), HEIGHT), writeInt(addressTotalStore(address), (totalVesting + attached.amount)), changeBy(totalUSDNStore, attached.amount)]
183+ }
176184 else throw("Strict value is not equal to itself.")
177185 }
178186
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 func writeConstString (key,value) = if (!(isDefined(getString(this, key))))
55 then StringEntry(key, value)
66 else throw(("already initialized: " + key))
77
88
99 func writeConstInt (key,value) = if (!(isDefined(getInteger(this, key))))
1010 then IntegerEntry(key, value)
1111 else throw(("already initialized: " + key))
1212
1313
1414 func writeInt (key,value) = if ((0 > value))
1515 then throw(((("writing negative value " + toString(value)) + " for key ") + key))
1616 else IntegerEntry(key, value)
1717
1818
1919 func changeBy (key,value) = writeInt(key, (valueOrElse(getInteger(this, key), 0) + value))
2020
2121
2222 let configStore = "config"
2323
2424 let configAddress = addressFromStringValue(getStringValue(this, configStore))
2525
2626 let maybeOracleAddress = match getString(configAddress, "oracle_address") {
2727 case s: String =>
2828 addressFromString(s)
2929 case _ =>
3030 unit
3131 }
3232
3333 let HEIGHT = height
3434
3535 func opAllowed (op) = match invoke(configAddress, "opAllowed", ["usdn", op], nil) {
3636 case b: Boolean =>
3737 if (b)
3838 then true
3939 else throw("not allowed")
4040 case _ =>
4141 throw("opAllowed: unexpected result type")
4242 }
4343
4444
4545 func mainOnly (i) = if (contains(getStringValue(configAddress, "main"), toString(i.caller)))
4646 then true
4747 else throw("only main can do")
4848
4949
5050 func throwIf (condition,error) = if (condition)
5151 then throw(error)
5252 else true
5353
5454
5555 let TIMEFRAME = 1440
5656
5757 let usdn = getStringValue(this, "usdn")
5858
5959 func addressTotalStoreLegacy (address) = (address + "_usdn")
6060
6161
6262 func addressTotalStore (address) = (address + "_USDN")
6363
6464
6565 func vestingStartStore (address) = (address + "_vesting_start")
6666
6767
6868 func vestingClaimedStore (address) = (address + "_claimed")
6969
7070
7171 func withdrawnWithinEpochStore (epochStart,address,assetId) = (((((address + "_") + assetId) + "_") + toString(epochStart)) + "_withdrawn_within_epoch")
7272
7373
7474 let currentEpochStart = ((HEIGHT / TIMEFRAME) * TIMEFRAME)
7575
7676 let minClaimUsdn = valueOrElse(getInteger(configAddress, "minimaxVestingUsdnAll"), (100 * 1000000))
7777
7878 let maxTotalPerDay = valueOrElse(getInteger(configAddress, "maxDailyVestingUsdnAll"), ((100 * 1000) * 1000000))
7979
8080 let totalUSDNStore = "total_usdn"
8181
8282 func withdrawnTodayStore (address) = withdrawnWithinEpochStore(currentEpochStart, address, usdn)
8383
8484
8585 func withdrawnToday (address) = valueOrElse(getInteger(withdrawnTodayStore(address)), 0)
8686
8787
8888 let withdrawnTodayTotalStore = withdrawnWithinEpochStore(currentEpochStart, "total", usdn)
8989
9090 let withdrawnTodayTotal = valueOrElse(getInteger(withdrawnTodayTotalStore), 0)
9191
9292 let totalAvailableToday = (maxTotalPerDay - withdrawnTodayTotal)
9393
9494 func userVestingBalance (address) = {
9595 let totalVesting = valueOrElse(getInteger(addressTotalStore(address)), valueOrElse(getInteger(addressTotalStoreLegacy(address)), 0))
9696 let alreadyClaimed = valueOrElse(getInteger(vestingClaimedStore(address)), 0)
9797 let claimedToday = withdrawnToday(address)
9898 match getInteger(this, vestingStartStore(address)) {
9999 case vestingStart: Int =>
100100 let totalNonClaimed = (totalVesting - alreadyClaimed)
101101 let dailyLimit = max([minClaimUsdn, (totalVesting / 500)])
102102 let availableToday = min([totalNonClaimed, totalAvailableToday, (dailyLimit - claimedToday)])
103103 $Tuple5(totalVesting, alreadyClaimed, vestingStart, claimedToday, availableToday)
104104 case _ =>
105105 $Tuple7(totalVesting, 0, -1, -1, -1, -1, -1)
106106 }
107107 }
108108
109109
110110 func adviseUser (address) = {
111111 let $t035153616 = userVestingBalance(address)
112112 let totalVesting = $t035153616._1
113113 let alreadyClaimed = $t035153616._2
114114 let start = $t035153616._3
115115 let claimedToday = $t035153616._4
116116 let availableToday = $t035153616._5
117117 ((((((((((((((("markets_address: " + address) + ", markets_totalVesting: ") + toString(totalVesting)) + ", markets_alreadyClaimed: ") + toString(alreadyClaimed)) + ", markets_startHeight: ") + toString(start)) + ", markets_dailyLimit: ") + toString(max([minClaimUsdn, (totalVesting / 500)]))) + ", markets_claimedToday: ") + toString(claimedToday)) + ", markets_availableToday: ") + toString(availableToday)) + ", markets_globallyAvailableToday: ") + toString(totalAvailableToday))
118118 }
119119
120120
121121 func withdrawVestedInternal (address,to) = {
122122 let checks = opAllowed("liquidao_all_withdrawVested")
123123 if ((checks == checks))
124124 then {
125125 let $t042594360 = userVestingBalance(address)
126126 let totalVesting = $t042594360._1
127127 let alreadyClaimed = $t042594360._2
128128 let start = $t042594360._3
129129 let claimedToday = $t042594360._4
130130 let availableToday = $t042594360._5
131131 if ((0 > start))
132132 then throw("no vesting enabled")
133133 else if ((0 >= availableToday))
134134 then throw("nothing available")
135135 else $Tuple2([ScriptTransfer(addressFromStringValue(to), availableToday, fromBase58String(usdn)), IntegerEntry(vestingClaimedStore(address), (alreadyClaimed + availableToday)), changeBy(withdrawnTodayStore(address), availableToday), changeBy(withdrawnTodayTotalStore, availableToday)], availableToday)
136136 }
137137 else throw("Strict value is not equal to itself.")
138138 }
139139
140140
141141 @Callable(i)
142142 func init (conf,nId) = if ((i.caller != this))
143143 then throw("only self can init")
144144 else [writeConstString(configStore, conf), writeConstString("usdn", nId)]
145145
146146
147147
148148 @Callable(i)
149149 func withdrawVested () = {
150150 let address = toString(i.caller)
151151 withdrawVestedInternal(address, address)
152152 }
153153
154154
155155
156156 @Callable(i)
157157 func withdrawVestedForTo (acc,to) = {
158158 let checks = mainOnly(i)
159159 if ((checks == checks))
160160 then withdrawVestedInternal(acc, to)
161161 else throw("Strict value is not equal to itself.")
162162 }
163163
164164
165165
166166 @Callable(i)
167167 func accountFor (address) = {
168168 let attached = i.payments[0]
169169 let checks = if (if (mainOnly(i))
170170 then opAllowed("liquidao_all_move")
171171 else false)
172172 then throwIf((toBase58String(value(attached.assetId)) != usdn), "usdn must be attached")
173173 else false
174174 if ((checks == checks))
175- then [writeInt(vestingStartStore(address), HEIGHT), changeBy(addressTotalStore(address), attached.amount), changeBy(totalUSDNStore, attached.amount)]
175+ then {
176+ let $t055445645 = userVestingBalance(address)
177+ let totalVesting = $t055445645._1
178+ let alreadyClaimed = $t055445645._2
179+ let start = $t055445645._3
180+ let claimedToday = $t055445645._4
181+ let availableToday = $t055445645._5
182+[writeInt(vestingStartStore(address), HEIGHT), writeInt(addressTotalStore(address), (totalVesting + attached.amount)), changeBy(totalUSDNStore, attached.amount)]
183+ }
176184 else throw("Strict value is not equal to itself.")
177185 }
178186
179187
180188
181189 @Callable(i)
182190 func adviseU (acc) = $Tuple2(nil, adviseUser(acc))
183191
184192

github/deemru/w8io/3ef1775 
29.16 ms