tx · 7rotTFSzFy2o2Q4PVnSTbhKtVoDxY2KNC5cnVLf9jKik

3P3VTtUiwJ91Ly7vwtRVKv5NkNNiPoWe7oP:  -0.00600000 Waves

2022.07.28 19:05 [3225389] smart account 3P3VTtUiwJ91Ly7vwtRVKv5NkNNiPoWe7oP > SELF 0.00000000 Waves

{ "type": 13, "id": "7rotTFSzFy2o2Q4PVnSTbhKtVoDxY2KNC5cnVLf9jKik", "fee": 600000, "feeAssetId": null, "timestamp": 1659024334157, "version": 1, "sender": "3P3VTtUiwJ91Ly7vwtRVKv5NkNNiPoWe7oP", "senderPublicKey": "5q25v77G7b2qAcdzH88H2Y7mxXnddbN9ZYKCn3Q8W6Pi", "proofs": [ "2Cp5jc9THErN1ypQThFEgbkpyaNoGeVVr4wbrg8CJNfnTEpQf9hfCwgzffKpJLVKLLjRomvvi57vrk81y13SECcs" ], "script": "base64:BgIVCAISBgoECAgICBIAEgASBQoDCAgBGAEQd3JpdGVDb25zdFN0cmluZwIDa2V5BXZhbHVlAwkBASEBCQEJaXNEZWZpbmVkAQkAnQgCBQR0aGlzBQNrZXkJAQtTdHJpbmdFbnRyeQIFA2tleQUFdmFsdWUJAAIBCQCsAgICFWFscmVhZHkgaW5pdGlhbGl6ZWQ6IAUDa2V5AQ13cml0ZUNvbnN0SW50AgNrZXkFdmFsdWUDCQEBIQEJAQlpc0RlZmluZWQBCQCaCAIFBHRoaXMFA2tleQkBDEludGVnZXJFbnRyeQIFA2tleQUFdmFsdWUJAAIBCQCsAgICFWFscmVhZHkgaW5pdGlhbGl6ZWQ6IAUDa2V5AQh3cml0ZUludAIDa2V5BXZhbHVlAwkAZgIAAAUFdmFsdWUJAAIBCQCsAgIJAKwCAgkArAICAhd3cml0aW5nIG5lZ2F0aXZlIHZhbHVlIAkApAMBBQV2YWx1ZQIJIGZvciBrZXkgBQNrZXkJAQxJbnRlZ2VyRW50cnkCBQNrZXkFBXZhbHVlAQhjaGFuZ2VCeQIDa2V5BXZhbHVlCQEId3JpdGVJbnQCBQNrZXkJAGQCCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFA2tleQAABQV2YWx1ZQALY29uZmlnU3RvcmUCBmNvbmZpZwANY29uZmlnQWRkcmVzcwkBEUBleHRyTmF0aXZlKDEwNjIpAQkBEUBleHRyTmF0aXZlKDEwNTMpAgUEdGhpcwULY29uZmlnU3RvcmUAEm1heWJlT3JhY2xlQWRkcmVzcwQHJG1hdGNoMAkAnQgCBQ1jb25maWdBZGRyZXNzAg5vcmFjbGVfYWRkcmVzcwMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAXMFByRtYXRjaDAJAKYIAQUBcwUEdW5pdAAGSEVJR0hUBQZoZWlnaHQBCW9wQWxsb3dlZAECb3AEByRtYXRjaDAJAPwHBAUNY29uZmlnQWRkcmVzcwIJb3BBbGxvd2VkCQDMCAICBHVzZG4JAMwIAgUCb3AFA25pbAUDbmlsAwkAAQIFByRtYXRjaDACB0Jvb2xlYW4EAWIFByRtYXRjaDADBQFiBgkAAgECC25vdCBhbGxvd2VkCQACAQIhb3BBbGxvd2VkOiB1bmV4cGVjdGVkIHJlc3VsdCB0eXBlAQhtYWluT25seQEBaQMJAQhjb250YWlucwIJARFAZXh0ck5hdGl2ZSgxMDUzKQIFDWNvbmZpZ0FkZHJlc3MCBG1haW4JAKUIAQgFAWkGY2FsbGVyBgkAAgECEG9ubHkgbWFpbiBjYW4gZG8BB3Rocm93SWYCCWNvbmRpdGlvbgVlcnJvcgMFCWNvbmRpdGlvbgkAAgEFBWVycm9yBgAEdXNkYwkBEUBleHRyTmF0aXZlKDEwNTMpAgUEdGhpcwIEdXNkYwAEdXNkdAkBEUBleHRyTmF0aXZlKDEwNTMpAgUEdGhpcwIEdXNkdAAEdXNkbgkBEUBleHRyTmF0aXZlKDEwNTMpAgUEdGhpcwIEdXNkbgERYWRkcmVzc0Fzc2V0U3RvcmUCB2FkZHJlc3MHYXNzZXRJZAkArAICCQCsAgIFB2FkZHJlc3MCAV8FB2Fzc2V0SWQBFWFkZHJlc3NBc3NldFVTRE5TdG9yZQIHYWRkcmVzcwdhc3NldElkCQCsAgIJAKwCAgkArAICBQdhZGRyZXNzAgFfBQdhc3NldElkAgVfdXNkbgEVYWRkcmVzc1RvdGFsVVNETlN0b3JlAQdhZGRyZXNzCQCsAgIFB2FkZHJlc3MCBV91c2RuAQ90b3RhbEFzc2V0U3RvcmUBB2Fzc2V0SWQJAKwCAgIGdG90YWxfBQdhc3NldElkARF2ZXN0aW5nU3RhcnRTdG9yZQEHYWRkcmVzcwkArAICBQdhZGRyZXNzAg5fdmVzdGluZ19zdGFydAETdmVzdGluZ0NsYWltZWRTdG9yZQEHYWRkcmVzcwkArAICBQdhZGRyZXNzAghfY2xhaW1lZAAOdG90YWxVU0ROU3RvcmUCCnRvdGFsX3VzZG4ADXZlc3RpbmdQZXJpb2QJAGgCAKALAO0CARJ1c2VyVmVzdGluZ0JhbGFuY2UBB2FkZHJlc3MEBWNVU0ROCQELdmFsdWVPckVsc2UCCQCfCAEJARVhZGRyZXNzQXNzZXRVU0ROU3RvcmUCBQdhZGRyZXNzBQR1c2RjAAAEBXRVU0ROCQELdmFsdWVPckVsc2UCCQCfCAEJARVhZGRyZXNzQXNzZXRVU0ROU3RvcmUCBQdhZGRyZXNzBQR1c2R0AAAEDHRvdGFsVmVzdGluZwkAZAIFBWNVU0ROBQV0VVNETgQOYWxyZWFkeUNsYWltZWQJAQt2YWx1ZU9yRWxzZQIJAJ8IAQkBE3Zlc3RpbmdDbGFpbWVkU3RvcmUBBQdhZGRyZXNzAAAEByRtYXRjaDAJAJoIAgUEdGhpcwkBEXZlc3RpbmdTdGFydFN0b3JlAQUHYWRkcmVzcwMJAAECBQckbWF0Y2gwAgNJbnQEDHZlc3RpbmdTdGFydAUHJG1hdGNoMAQIZWxpZ2libGUDCQBmAgUGSEVJR0hUCQBkAgUMdmVzdGluZ1N0YXJ0BQ12ZXN0aW5nUGVyaW9kBQx0b3RhbFZlc3RpbmcJAGsDBQx0b3RhbFZlc3RpbmcJAGUCBQZIRUlHSFQFDHZlc3RpbmdTdGFydAUNdmVzdGluZ1BlcmlvZAkAlwoFBQx0b3RhbFZlc3RpbmcFDmFscmVhZHlDbGFpbWVkBQhlbGlnaWJsZQUMdmVzdGluZ1N0YXJ0CQBkAgUMdmVzdGluZ1N0YXJ0BQ12ZXN0aW5nUGVyaW9kCQCXCgUFDHRvdGFsVmVzdGluZwAAAP///////////wEA////////////AQD///////////8BAQphZHZpc2VVc2VyAQdhZGRyZXNzBAskdDAyODc5Mjk2NQkBEnVzZXJWZXN0aW5nQmFsYW5jZQEFB2FkZHJlc3MEDHRvdGFsVmVzdGluZwgFCyR0MDI4NzkyOTY1Al8xBA5hbHJlYWR5Q2xhaW1lZAgFCyR0MDI4NzkyOTY1Al8yBAhlbGlnaWJsZQgFCyR0MDI4NzkyOTY1Al8zBAVzdGFydAgFCyR0MDI4NzkyOTY1Al80BANlbmQIBQskdDAyODc5Mjk2NQJfNQQBYwkBC3ZhbHVlT3JFbHNlAgkAnwgBCQERYWRkcmVzc0Fzc2V0U3RvcmUCBQdhZGRyZXNzBQR1c2RjAAAEAXQJAQt2YWx1ZU9yRWxzZQIJAJ8IAQkBEWFkZHJlc3NBc3NldFN0b3JlAgUHYWRkcmVzcwUEdXNkdAAACQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICAglhZGRyZXNzOiAFB2FkZHJlc3MCECwgdG90YWxWZXN0aW5nOiAJAKQDAQUMdG90YWxWZXN0aW5nAhIsIGFscmVhZHlDbGFpbWVkOiAJAKQDAQUOYWxyZWFkeUNsYWltZWQCDCwgZWxpZ2libGU6IAkApAMBBQhlbGlnaWJsZQIPLCBzdGFydEhlaWdodDogCQCkAwEFBXN0YXJ0Ag0sIGVuZEhlaWdodDogCQCkAwEFA2VuZAINLCBub3dIZWlnaHQ6IAkApAMBBQZIRUlHSFQCESwgdXNkY19taWdyYXRlZDogCQCkAwEFAWMCESwgdXNkdF9taWdyYXRlZDogCQCkAwEFAXQCECwgdXNkY19hc3NldElkOiAFBHVzZGMCECwgdXNkdF9hc3NldElkOiAFBHVzZHQEAWkBBGluaXQEBGNvbmYDdElkA2NJZANuSWQDCQECIT0CCAUBaQZjYWxsZXIFBHRoaXMJAAIBAhJvbmx5IHNlbGYgY2FuIGluaXQJAMwIAgkBEHdyaXRlQ29uc3RTdHJpbmcCBQtjb25maWdTdG9yZQUEY29uZgkAzAgCCQEQd3JpdGVDb25zdFN0cmluZwICBHVzZHQFA3RJZAkAzAgCCQEQd3JpdGVDb25zdFN0cmluZwICBHVzZGMFA2NJZAkAzAgCCQEQd3JpdGVDb25zdFN0cmluZwICBHVzZG4FA25JZAUDbmlsAWkBD3N0YXJ0VmVzdGluZ0FsbAAEB2FkZHJlc3MJAKUIAQgFAWkGY2FsbGVyBAZjaGVja3MJAQlvcEFsbG93ZWQBAhVsaXF1aWRhb19zdGFydFZlc3RpbmcDCQAAAgUGY2hlY2tzBQZjaGVja3MECnVzZXJUU3RvcmUJARFhZGRyZXNzQXNzZXRTdG9yZQIFB2FkZHJlc3MFBHVzZHQECnVzZXJDU3RvcmUJARFhZGRyZXNzQXNzZXRTdG9yZQIFB2FkZHJlc3MFBHVzZGMECmNvbnZlcnRlZEMJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUKdXNlckNTdG9yZQAABApjb252ZXJ0ZWRUCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFCnVzZXJUU3RvcmUAAAQOc3RhcnRlZFZlc3RpbmcJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAmggCBQR0aGlzCQEVYWRkcmVzc1RvdGFsVVNETlN0b3JlAQUHYWRkcmVzcwIVbm8gYWNjb3VudGVkIGZvciB1c2VyCQDMCAIJAQhjaGFuZ2VCeQICDWNvbW1pdHRlZFVTRE4FDnN0YXJ0ZWRWZXN0aW5nCQDMCAIJAQ13cml0ZUNvbnN0SW50AgkBEXZlc3RpbmdTdGFydFN0b3JlAQUHYWRkcmVzcwUGSEVJR0hUCQDMCAIJAQhjaGFuZ2VCeQIJAQ90b3RhbEFzc2V0U3RvcmUBBQR1c2RjCQEBLQEFCmNvbnZlcnRlZEMJAMwIAgkBC0RlbGV0ZUVudHJ5AQUKdXNlckNTdG9yZQkAzAgCCQEIY2hhbmdlQnkCCQEPdG90YWxBc3NldFN0b3JlAQUEdXNkdAkBAS0BBQpjb252ZXJ0ZWRUCQDMCAIJAQtEZWxldGVFbnRyeQEFCnVzZXJUU3RvcmUFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQ53aXRoZHJhd1Zlc3RlZAAEBmNoZWNrcwkBCW9wQWxsb3dlZAECF2xpcXVpZGFvX3dpdGhkcmF3VmVzdGVkAwkAAAIFBmNoZWNrcwUGY2hlY2tzBAdhZGRyZXNzCQClCAEIBQFpBmNhbGxlcgQLJHQwNTA2OTUxNTUJARJ1c2VyVmVzdGluZ0JhbGFuY2UBBQdhZGRyZXNzBAx0b3RhbFZlc3RpbmcIBQskdDA1MDY5NTE1NQJfMQQOYWxyZWFkeUNsYWltZWQIBQskdDA1MDY5NTE1NQJfMgQIZWxpZ2libGUIBQskdDA1MDY5NTE1NQJfMwQFc3RhcnQIBQskdDA1MDY5NTE1NQJfNAQDZW5kCAULJHQwNTA2OTUxNTUCXzUECWF2YWlsYWJsZQkAZQIFCGVsaWdpYmxlBQ5hbHJlYWR5Q2xhaW1lZAMJAGYCAAAFBXN0YXJ0CQACAQISbm8gdmVzdGluZyBlbmFibGVkAwkAAAIFCWF2YWlsYWJsZQAACQCUCgIFA25pbAAACQCUCgIJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyBQlhdmFpbGFibGUJANkEAQUEdXNkbgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBE3Zlc3RpbmdDbGFpbWVkU3RvcmUBBQdhZGRyZXNzCQBkAgUOYWxyZWFkeUNsYWltZWQFCWF2YWlsYWJsZQUDbmlsBQlhdmFpbGFibGUJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEKYWNjb3VudEZvcgMHYWRkcmVzcwdhc3NldElkBmFtb3VudAQIYXR0YWNoZWQJAJEDAggFAWkIcGF5bWVudHMAAAQGY2hlY2tzAwMDAwkBCG1haW5Pbmx5AQUBaQkBCW9wQWxsb3dlZAECDWxpcXVpZGFvX21vdmUHCQEHdGhyb3dJZgIJAQIhPQIJANgEAQkBBXZhbHVlAQgFCGF0dGFjaGVkB2Fzc2V0SWQFBHVzZG4CFXVzZG4gbXVzdCBiZSBhdHRhY2hlZAcJAQd0aHJvd0lmAgkAZgIFBmFtb3VudAgFCGF0dGFjaGVkBmFtb3VudAITbm90IGVub3VnaCBzdXBwbGllZAcJAQd0aHJvd0lmAgMJAQIhPQIFB2Fzc2V0SWQFBHVzZGMJAQIhPQIFB2Fzc2V0SWQFBHVzZHQHAgtvbmx5IHQgb3IgYwcDCQAAAgUGY2hlY2tzBQZjaGVja3MJAMwIAgkBDXdyaXRlQ29uc3RJbnQCCQERYWRkcmVzc0Fzc2V0U3RvcmUCBQdhZGRyZXNzBQdhc3NldElkBQZhbW91bnQJAMwIAgkBCGNoYW5nZUJ5AgkBFWFkZHJlc3NBc3NldFVTRE5TdG9yZQIFB2FkZHJlc3MFB2Fzc2V0SWQIBQhhdHRhY2hlZAZhbW91bnQJAMwIAgkBCGNoYW5nZUJ5AgkBFWFkZHJlc3NUb3RhbFVTRE5TdG9yZQEFB2FkZHJlc3MIBQhhdHRhY2hlZAZhbW91bnQJAMwIAgkBCGNoYW5nZUJ5AgkBD3RvdGFsQXNzZXRTdG9yZQEFB2Fzc2V0SWQFBmFtb3VudAkAzAgCCQEIY2hhbmdlQnkCBQ50b3RhbFVTRE5TdG9yZQgFCGF0dGFjaGVkBmFtb3VudAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAAIj9d8=", "chainId": 87, "height": 3225389, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 4ZehgtFX9NUvJ8bhvbzxqyWLYU5PazU5bhvFEqu3nhCB Next: HWQ5bBtUFi2Bh4KswDryoi3JKQzz9Sjn15FwnWG2A4dX Diff:
OldNewDifferences
125125 then {
126126 let userTStore = addressAssetStore(address, usdt)
127127 let userCStore = addressAssetStore(address, usdc)
128- let convertedC = valueOrElse(getIntegerValue(this, userCStore), 0)
129- let convertedT = valueOrElse(getIntegerValue(this, userTStore), 0)
130- let startedVesting = getIntegerValue(this, addressTotalUSDNStore(address))
128+ let convertedC = valueOrElse(getInteger(this, userCStore), 0)
129+ let convertedT = valueOrElse(getInteger(this, userTStore), 0)
130+ let startedVesting = valueOrErrorMessage(getInteger(this, addressTotalUSDNStore(address)), "no accounted for user")
131131 [changeBy("committedUSDN", startedVesting), writeConstInt(vestingStartStore(address), HEIGHT), changeBy(totalAssetStore(usdc), -(convertedC)), DeleteEntry(userCStore), changeBy(totalAssetStore(usdt), -(convertedT)), DeleteEntry(userTStore)]
132132 }
133133 else throw("Strict value is not equal to itself.")
141141 if ((checks == checks))
142142 then {
143143 let address = toString(i.caller)
144- let $t050395125 = userVestingBalance(address)
145- let totalVesting = $t050395125._1
146- let alreadyClaimed = $t050395125._2
147- let eligible = $t050395125._3
148- let start = $t050395125._4
149- let end = $t050395125._5
144+ let $t050695155 = userVestingBalance(address)
145+ let totalVesting = $t050695155._1
146+ let alreadyClaimed = $t050695155._2
147+ let eligible = $t050695155._3
148+ let start = $t050695155._4
149+ let end = $t050695155._5
150150 let available = (eligible - alreadyClaimed)
151151 if ((0 > start))
152152 then throw("no vesting enabled")
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 usdc = getStringValue(this, "usdc")
5656
5757 let usdt = getStringValue(this, "usdt")
5858
5959 let usdn = getStringValue(this, "usdn")
6060
6161 func addressAssetStore (address,assetId) = ((address + "_") + assetId)
6262
6363
6464 func addressAssetUSDNStore (address,assetId) = (((address + "_") + assetId) + "_usdn")
6565
6666
6767 func addressTotalUSDNStore (address) = (address + "_usdn")
6868
6969
7070 func totalAssetStore (assetId) = ("total_" + assetId)
7171
7272
7373 func vestingStartStore (address) = (address + "_vesting_start")
7474
7575
7676 func vestingClaimedStore (address) = (address + "_claimed")
7777
7878
7979 let totalUSDNStore = "total_usdn"
8080
8181 let vestingPeriod = (1440 * 365)
8282
8383 func userVestingBalance (address) = {
8484 let cUSDN = valueOrElse(getInteger(addressAssetUSDNStore(address, usdc)), 0)
8585 let tUSDN = valueOrElse(getInteger(addressAssetUSDNStore(address, usdt)), 0)
8686 let totalVesting = (cUSDN + tUSDN)
8787 let alreadyClaimed = valueOrElse(getInteger(vestingClaimedStore(address)), 0)
8888 match getInteger(this, vestingStartStore(address)) {
8989 case vestingStart: Int =>
9090 let eligible = if ((HEIGHT > (vestingStart + vestingPeriod)))
9191 then totalVesting
9292 else fraction(totalVesting, (HEIGHT - vestingStart), vestingPeriod)
9393 $Tuple5(totalVesting, alreadyClaimed, eligible, vestingStart, (vestingStart + vestingPeriod))
9494 case _ =>
9595 $Tuple5(totalVesting, 0, -1, -1, -1)
9696 }
9797 }
9898
9999
100100 func adviseUser (address) = {
101101 let $t028792965 = userVestingBalance(address)
102102 let totalVesting = $t028792965._1
103103 let alreadyClaimed = $t028792965._2
104104 let eligible = $t028792965._3
105105 let start = $t028792965._4
106106 let end = $t028792965._5
107107 let c = valueOrElse(getInteger(addressAssetStore(address, usdc)), 0)
108108 let t = valueOrElse(getInteger(addressAssetStore(address, usdt)), 0)
109109 ((((((((((((((((((((("address: " + address) + ", totalVesting: ") + toString(totalVesting)) + ", alreadyClaimed: ") + toString(alreadyClaimed)) + ", eligible: ") + toString(eligible)) + ", startHeight: ") + toString(start)) + ", endHeight: ") + toString(end)) + ", nowHeight: ") + toString(HEIGHT)) + ", usdc_migrated: ") + toString(c)) + ", usdt_migrated: ") + toString(t)) + ", usdc_assetId: ") + usdc) + ", usdt_assetId: ") + usdt)
110110 }
111111
112112
113113 @Callable(i)
114114 func init (conf,tId,cId,nId) = if ((i.caller != this))
115115 then throw("only self can init")
116116 else [writeConstString(configStore, conf), writeConstString("usdt", tId), writeConstString("usdc", cId), writeConstString("usdn", nId)]
117117
118118
119119
120120 @Callable(i)
121121 func startVestingAll () = {
122122 let address = toString(i.caller)
123123 let checks = opAllowed("liquidao_startVesting")
124124 if ((checks == checks))
125125 then {
126126 let userTStore = addressAssetStore(address, usdt)
127127 let userCStore = addressAssetStore(address, usdc)
128- let convertedC = valueOrElse(getIntegerValue(this, userCStore), 0)
129- let convertedT = valueOrElse(getIntegerValue(this, userTStore), 0)
130- let startedVesting = getIntegerValue(this, addressTotalUSDNStore(address))
128+ let convertedC = valueOrElse(getInteger(this, userCStore), 0)
129+ let convertedT = valueOrElse(getInteger(this, userTStore), 0)
130+ let startedVesting = valueOrErrorMessage(getInteger(this, addressTotalUSDNStore(address)), "no accounted for user")
131131 [changeBy("committedUSDN", startedVesting), writeConstInt(vestingStartStore(address), HEIGHT), changeBy(totalAssetStore(usdc), -(convertedC)), DeleteEntry(userCStore), changeBy(totalAssetStore(usdt), -(convertedT)), DeleteEntry(userTStore)]
132132 }
133133 else throw("Strict value is not equal to itself.")
134134 }
135135
136136
137137
138138 @Callable(i)
139139 func withdrawVested () = {
140140 let checks = opAllowed("liquidao_withdrawVested")
141141 if ((checks == checks))
142142 then {
143143 let address = toString(i.caller)
144- let $t050395125 = userVestingBalance(address)
145- let totalVesting = $t050395125._1
146- let alreadyClaimed = $t050395125._2
147- let eligible = $t050395125._3
148- let start = $t050395125._4
149- let end = $t050395125._5
144+ let $t050695155 = userVestingBalance(address)
145+ let totalVesting = $t050695155._1
146+ let alreadyClaimed = $t050695155._2
147+ let eligible = $t050695155._3
148+ let start = $t050695155._4
149+ let end = $t050695155._5
150150 let available = (eligible - alreadyClaimed)
151151 if ((0 > start))
152152 then throw("no vesting enabled")
153153 else if ((available == 0))
154154 then $Tuple2(nil, 0)
155155 else $Tuple2([ScriptTransfer(i.caller, available, fromBase58String(usdn)), IntegerEntry(vestingClaimedStore(address), (alreadyClaimed + available))], available)
156156 }
157157 else throw("Strict value is not equal to itself.")
158158 }
159159
160160
161161
162162 @Callable(i)
163163 func accountFor (address,assetId,amount) = {
164164 let attached = i.payments[0]
165165 let checks = if (if (if (if (mainOnly(i))
166166 then opAllowed("liquidao_move")
167167 else false)
168168 then throwIf((toBase58String(value(attached.assetId)) != usdn), "usdn must be attached")
169169 else false)
170170 then throwIf((amount > attached.amount), "not enough supplied")
171171 else false)
172172 then throwIf(if ((assetId != usdc))
173173 then (assetId != usdt)
174174 else false, "only t or c")
175175 else false
176176 if ((checks == checks))
177177 then [writeConstInt(addressAssetStore(address, assetId), amount), changeBy(addressAssetUSDNStore(address, assetId), attached.amount), changeBy(addressTotalUSDNStore(address), attached.amount), changeBy(totalAssetStore(assetId), amount), changeBy(totalUSDNStore, attached.amount)]
178178 else throw("Strict value is not equal to itself.")
179179 }
180180
181181

github/deemru/w8io/6500d08 
37.59 ms