tx · 7HpJcQs4pX16fsLJJD2njP9Tf5aJJwQgCEXTp4L3RmAf

3MwyBKGZcdChEK9Z55HwLn3A2EgwEJJpqC1:  -0.01000000 Waves

2024.01.09 12:11 [2923750] smart account 3MwyBKGZcdChEK9Z55HwLn3A2EgwEJJpqC1 > SELF 0.00000000 Waves

{ "type": 13, "id": "7HpJcQs4pX16fsLJJD2njP9Tf5aJJwQgCEXTp4L3RmAf", "fee": 1000000, "feeAssetId": null, "timestamp": 1704791496676, "version": 2, "chainId": 84, "sender": "3MwyBKGZcdChEK9Z55HwLn3A2EgwEJJpqC1", "senderPublicKey": "7c3qLtcJ7EaPS2JDjXv8MBbd4kpyc6R27wcn5GgvZhur", "proofs": [ "4Guq5Nk5H5Tv1YbryeNrsoTEayzki4byMzk9Kkw2W4HMa8YHoYa1yeJq7KW6jUZXwt4JYBrfUe4nqigfonKom7Zr" ], "script": "base64:BgIKCAISBgoECAEBAREADGNvbnRyYWN0RmlsZQIQdmVzdGluZ19uZW8ucmlkZQADU0VQAgJfXwAISURTX0xJU1QJAMwIAgAACQDMCAIAAQkAzAgCAAIJAMwIAgADCQDMCAIABAkAzAgCAAUJAMwIAgAGCQDMCAIABwkAzAgCAAgJAMwIAgAJCQDMCAIACgkAzAgCAAsJAMwIAgAMCQDMCAIADQkAzAgCAA4JAMwIAgAPCQDMCAIAEAkAzAgCABEJAMwIAgASCQDMCAIAEwkAzAgCABQJAMwIAgAVCQDMCAIAFgkAzAgCABcJAMwIAgAYCQDMCAIAGQkAzAgCABoJAMwIAgAbCQDMCAIAHAkAzAgCAB0JAMwIAgAeCQDMCAIAHwkAzAgCACAJAMwIAgAhCQDMCAIAIgkAzAgCACMJAMwIAgAkCQDMCAIAJQkAzAgCACYJAMwIAgAnCQDMCAIAKAkAzAgCACkJAMwIAgAqCQDMCAIAKwkAzAgCACwJAMwIAgAtCQDMCAIALgkAzAgCAC8JAMwIAgAwCQDMCAIAMQkAzAgCADIJAMwIAgAzCQDMCAIANAkAzAgCADUJAMwIAgA2CQDMCAIANwkAzAgCADgJAMwIAgA5CQDMCAIAOgkAzAgCADsJAMwIAgA8CQDMCAIAPQkAzAgCAD4JAMwIAgA/CQDMCAIAQAkAzAgCAEEJAMwIAgBCCQDMCAIAQwkAzAgCAEQJAMwIAgBFCQDMCAIARgkAzAgCAEcJAMwIAgBICQDMCAIASQkAzAgCAEoJAMwIAgBLCQDMCAIATAkAzAgCAE0JAMwIAgBOCQDMCAIATwkAzAgCAFAJAMwIAgBRCQDMCAIAUgkAzAgCAFMJAMwIAgBUCQDMCAIAVQkAzAgCAFYJAMwIAgBXCQDMCAIAWAkAzAgCAFkJAMwIAgBaCQDMCAIAWwkAzAgCAFwJAMwIAgBdCQDMCAIAXgkAzAgCAF8JAMwIAgBgCQDMCAIAYQkAzAgCAGIJAMwIAgBjBQNuaWwAEU1BWF9WRVNUSU5HX0NPVU5UCQCQAwEFCElEU19MSVNUAQh0aHJvd0VycgEDbXNnCQACAQkArAICCQCsAgIFDGNvbnRyYWN0RmlsZQICOiAFA21zZwAKa2V5QXNzZXRJZAkAuQkCCQDMCAICAiVzCQDMCAICB2Fzc2V0SWQFA25pbAUDU0VQAA1hc3NldElkU3RyaW5nCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMFCmtleUFzc2V0SWQCBVdBVkVTAAxhc3NldElkQnl0ZXMDCQAAAgUNYXNzZXRJZFN0cmluZwIFV0FWRVMFBHVuaXQJANkEAQUNYXNzZXRJZFN0cmluZwEUaXNWYWxpZEFkZHJlc3NTdHJpbmcBDWFkZHJlc3NTdHJpbmcEByRtYXRjaDAJAKYIAQUNYWRkcmVzc1N0cmluZwMJAAECBQckbWF0Y2gwAgdBZGRyZXNzBAFhBQckbWF0Y2gwBgcBDmtleVVzZXJWZXN0aW5nAgt1c2VyQWRkcmVzcwJpZAQGY2hlY2tzCQDMCAIDCQEUaXNWYWxpZEFkZHJlc3NTdHJpbmcBBQt1c2VyQWRkcmVzcwYJAQh0aHJvd0VycgEJALkJAgkAzAgCAhVhZGRyZXNzIGlzIG5vdCB2YWxpZDoJAMwIAgULdXNlckFkZHJlc3MFA25pbAIBIAkAzAgCAwMJAGcCBQJpZAAACQBmAgURTUFYX1ZFU1RJTkdfQ09VTlQFAmlkBwYJAQh0aHJvd0VycgEJALkJAgkAzAgCAg5pZCBpcyBpbnZhbGlkOgkAzAgCCQCkAwEFAmlkBQNuaWwCASAFA25pbAMJAAACBQZjaGVja3MFBmNoZWNrcwkAuQkCCQDMCAICBCVzJWQJAMwIAgULdXNlckFkZHJlc3MJAMwIAgkApAMBBQJpZAUDbmlsBQNTRVAJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BEWZvcm1hdFVzZXJWZXN0aW5nAw12ZXN0aW5nQW1vdW50CnN0YXJ0QmxvY2sKbG9ja0xlbmd0aAQGY2hlY2tzCQDMCAIDCQBnAgUNdmVzdGluZ0Ftb3VudAAABgkBCHRocm93RXJyAQIhdmVzdGluZyBhbW91bnQgY2Fubm90IGJlIG5lZ2F0aXZlCQDMCAIDCQBnAgUKc3RhcnRCbG9jawAABgkBCHRocm93RXJyAQIec3RhcnQgYmxvY2sgY2Fubm90IGJlIG5lZ2F0aXZlCQDMCAIDCQBnAgUKbG9ja0xlbmd0aAAABgkBCHRocm93RXJyAQIebG9jayBsZW5ndGggY2Fubm90IGJlIG5lZ2F0aXZlBQNuaWwDCQAAAgUGY2hlY2tzBQZjaGVja3MJALkJAgkAzAgCAgYlZCVkJWQJAMwIAgkApAMBBQ12ZXN0aW5nQW1vdW50CQDMCAIJAKQDAQUKc3RhcnRCbG9jawkAzAgCCQCkAwEFCmxvY2tMZW5ndGgFA25pbAUDU0VQCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuARBwYXJzZVVzZXJWZXN0aW5nAgt1c2VyQWRkcmVzcwJpZAQHJG1hdGNoMAkAnQgCBQR0aGlzCQEOa2V5VXNlclZlc3RpbmcCBQt1c2VyQWRkcmVzcwUCaWQDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAlyYXdTdHJpbmcFByRtYXRjaDAEC3NwbGl0U3RyaW5nCQC1CQIFCXJhd1N0cmluZwUDU0VQBA12ZXN0aW5nQW1vdW50CQENcGFyc2VJbnRWYWx1ZQEJAJEDAgULc3BsaXRTdHJpbmcAAQQKc3RhcnRCbG9jawkBDXBhcnNlSW50VmFsdWUBCQCRAwIFC3NwbGl0U3RyaW5nAAIECmxvY2tMZW5ndGgJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQtzcGxpdFN0cmluZwADCQCVCgMFDXZlc3RpbmdBbW91bnQFCnN0YXJ0QmxvY2sFCmxvY2tMZW5ndGgJAJUKAwAAAAAAAAESY2FsY1VubG9ja2VkQW1vdW50AwZhbW91bnQKc3RhcnRCbG9jawpsb2NrTGVuZ3RoBA1lbGFwc2VkQmxvY2tzCQBlAgUGaGVpZ2h0BQpzdGFydEJsb2NrBA51bmxvY2tlZEFtb3VudAMDCQECIT0CBQpsb2NrTGVuZ3RoAAAJAGYCBQ1lbGFwc2VkQmxvY2tzAAAHCQCXAwEJAMwIAgkAawMFBmFtb3VudAUNZWxhcHNlZEJsb2NrcwUKbG9ja0xlbmd0aAkAzAgCBQZhbW91bnQFA25pbAAACQCUCgIFDnVubG9ja2VkQW1vdW50CQBlAgUGYW1vdW50BQ51bmxvY2tlZEFtb3VudAEVZ2V0VXNlclVubG9ja2VkQW1vdW50Agt1c2VyQWRkcmVzcwJpZAQLJHQwMjY5MTI3NzAJARBwYXJzZVVzZXJWZXN0aW5nAgULdXNlckFkZHJlc3MFAmlkBA12ZXN0aW5nQW1vdW50CAULJHQwMjY5MTI3NzACXzEECnN0YXJ0QmxvY2sIBQskdDAyNjkxMjc3MAJfMgQKbG9ja0xlbmd0aAgFCyR0MDI2OTEyNzcwAl8zBAskdDAyNzczMjg3MAkBEmNhbGNVbmxvY2tlZEFtb3VudAMFDXZlc3RpbmdBbW91bnQFCnN0YXJ0QmxvY2sFCmxvY2tMZW5ndGgEDnVubG9ja2VkQW1vdW50CAULJHQwMjc3MzI4NzACXzEED3JlbWFpbmluZ0Ftb3VudAgFCyR0MDI3NzMyODcwAl8yCQCUCgIFDnVubG9ja2VkQW1vdW50BQ9yZW1haW5pbmdBbW91bnQBE2dldFVzZXJDbGFpbUFjdGlvbnMCC3VzZXJBZGRyZXNzAmlkBAskdDAyOTczMzA1MgkBEHBhcnNlVXNlclZlc3RpbmcCBQt1c2VyQWRkcmVzcwUCaWQEDXZlc3RpbmdBbW91bnQIBQskdDAyOTczMzA1MgJfMQQKc3RhcnRCbG9jawgFCyR0MDI5NzMzMDUyAl8yBApsb2NrTGVuZ3RoCAULJHQwMjk3MzMwNTICXzMECyR0MDMwNTUzMTMzCQEVZ2V0VXNlclVubG9ja2VkQW1vdW50AgULdXNlckFkZHJlc3MFAmlkBA51bmxvY2tlZEFtb3VudAgFCyR0MDMwNTUzMTMzAl8xBA9yZW1haW5pbmdBbW91bnQIBQskdDAzMDU1MzEzMwJfMgQPcmVtYWluaW5nQmxvY2tzCQCWAwEJAMwIAgkAZQIJAGQCBQpzdGFydEJsb2NrBQpsb2NrTGVuZ3RoBQZoZWlnaHQJAMwIAgAABQNuaWwDCQECIT0CBQ51bmxvY2tlZEFtb3VudAAACQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJARFAZXh0ck5hdGl2ZSgxMDYyKQEFC3VzZXJBZGRyZXNzBQ51bmxvY2tlZEFtb3VudAUMYXNzZXRJZEJ5dGVzCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQ5rZXlVc2VyVmVzdGluZwIFC3VzZXJBZGRyZXNzBQJpZAkBEWZvcm1hdFVzZXJWZXN0aW5nAwUPcmVtYWluaW5nQW1vdW50BQZoZWlnaHQFD3JlbWFpbmluZ0Jsb2NrcwUDbmlsBQNuaWwBFGdldE5ld1Zlc3RpbmdBY3Rpb25zBQt1c2VyQWRkcmVzcwJpZA12ZXN0aW5nQW1vdW50CnN0YXJ0QmxvY2sKbG9ja0xlbmd0aAkAzAgCCQELU3RyaW5nRW50cnkCCQEOa2V5VXNlclZlc3RpbmcCBQt1c2VyQWRkcmVzcwUCaWQJARFmb3JtYXRVc2VyVmVzdGluZwMFDXZlc3RpbmdBbW91bnQFCnN0YXJ0QmxvY2sFCmxvY2tMZW5ndGgFA25pbAEWZ2V0QWxsVXNlckNsYWltQWN0aW9ucwELdXNlckFkZHJlc3MKAQ1hY3Rpb25zSGVscGVyAgVhY2N1bQFhBAskdDAzODM4Mzg2OQUFYWNjdW0ECmFsbEFjdGlvbnMIBQskdDAzODM4Mzg2OQJfMQQFaW5kZXgIBQskdDAzODM4Mzg2OQJfMgkAlAoCCQDOCAIFCmFsbEFjdGlvbnMJARNnZXRVc2VyQ2xhaW1BY3Rpb25zAgULdXNlckFkZHJlc3MFBWluZGV4CQBkAgUFaW5kZXgAAQQLJHQwMzk2NzQwMzMKAAIkbAUISURTX0xJU1QKAAIkcwkAkAMBBQIkbAoABSRhY2MwCQCUCgIFA25pbAAACgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQ1hY3Rpb25zSGVscGVyAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYwXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhVMaXN0IHNpemUgZXhjZWVkcyAxMDAJAQUkZjBfMgIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYABwAIAAkACgALAAwADQAOAA8AEAARABIAEwAUABUAFgAXABgAGQAaABsAHAAdAB4AHwAgACEAIgAjACQAJQAmACcAKAApACoAKwAsAC0ALgAvADAAMQAyADMANAA1ADYANwA4ADkAOgA7ADwAPQA+AD8AQABBAEIAQwBEAEUARgBHAEgASQBKAEsATABNAE4ATwBQAFEAUgBTAFQAVQBWAFcAWABZAFoAWwBcAF0AXgBfAGAAYQBiAGMAZAQKYWxsQWN0aW9ucwgFCyR0MDM5Njc0MDMzAl8xBAJfYQgFCyR0MDM5Njc0MDMzAl8yBQphbGxBY3Rpb25zAQFpAQNmb28EC3VzZXJBZGRyZXNzDXZlc3RpbmdBbW91bnQKc3RhcnRCbG9jawpsb2NrTGVuZ3RoCQEUZ2V0TmV3VmVzdGluZ0FjdGlvbnMFBQt1c2VyQWRkcmVzcwABBQ12ZXN0aW5nQW1vdW50BQpzdGFydEJsb2NrBQpsb2NrTGVuZ3RoAPYcx8o=", "height": 2923750, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: AaSXKSeAg5BP5dMGLuoXS3gF64A7wCybx1w9WoohCMNd Next: 7C2T8247Dv37CKQXWqSoG8i2PCrVkH2VSCPVxSe9PqRq Diff:
OldNewDifferences
138138
139139
140140 @Callable(i)
141-func foo (userAddress,vestingAmount,startBlock,lockLength) = getNewVestingActions(userAddress, 0, vestingAmount, startBlock, lockLength)
141+func foo (userAddress,vestingAmount,startBlock,lockLength) = getNewVestingActions(userAddress, 1, vestingAmount, startBlock, lockLength)
142142
143143
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let contractFile = "vesting_neo.ride"
55
66 let SEP = "__"
77
88 let IDS_LIST = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99]
99
1010 let MAX_VESTING_COUNT = size(IDS_LIST)
1111
1212 func throwErr (msg) = throw(((contractFile + ": ") + msg))
1313
1414
1515 let keyAssetId = makeString(["%s", "assetId"], SEP)
1616
1717 let assetIdString = valueOrElse(getString(this, keyAssetId), "WAVES")
1818
1919 let assetIdBytes = if ((assetIdString == "WAVES"))
2020 then unit
2121 else fromBase58String(assetIdString)
2222
2323 func isValidAddressString (addressString) = match addressFromString(addressString) {
2424 case a: Address =>
2525 true
2626 case _ =>
2727 false
2828 }
2929
3030
3131 func keyUserVesting (userAddress,id) = {
3232 let checks = [if (isValidAddressString(userAddress))
3333 then true
3434 else throwErr(makeString(["address is not valid:", userAddress], " ")), if (if ((id >= 0))
3535 then (MAX_VESTING_COUNT > id)
3636 else false)
3737 then true
3838 else throwErr(makeString(["id is invalid:", toString(id)], " "))]
3939 if ((checks == checks))
4040 then makeString(["%s%d", userAddress, toString(id)], SEP)
4141 else throw("Strict value is not equal to itself.")
4242 }
4343
4444
4545 func formatUserVesting (vestingAmount,startBlock,lockLength) = {
4646 let checks = [if ((vestingAmount >= 0))
4747 then true
4848 else throwErr("vesting amount cannot be negative"), if ((startBlock >= 0))
4949 then true
5050 else throwErr("start block cannot be negative"), if ((lockLength >= 0))
5151 then true
5252 else throwErr("lock length cannot be negative")]
5353 if ((checks == checks))
5454 then makeString(["%d%d%d", toString(vestingAmount), toString(startBlock), toString(lockLength)], SEP)
5555 else throw("Strict value is not equal to itself.")
5656 }
5757
5858
5959 func parseUserVesting (userAddress,id) = match getString(this, keyUserVesting(userAddress, id)) {
6060 case rawString: String =>
6161 let splitString = split(rawString, SEP)
6262 let vestingAmount = parseIntValue(splitString[1])
6363 let startBlock = parseIntValue(splitString[2])
6464 let lockLength = parseIntValue(splitString[3])
6565 $Tuple3(vestingAmount, startBlock, lockLength)
6666 case _ =>
6767 $Tuple3(0, 0, 0)
6868 }
6969
7070
7171 func calcUnlockedAmount (amount,startBlock,lockLength) = {
7272 let elapsedBlocks = (height - startBlock)
7373 let unlockedAmount = if (if ((lockLength != 0))
7474 then (elapsedBlocks > 0)
7575 else false)
7676 then min([fraction(amount, elapsedBlocks, lockLength), amount])
7777 else 0
7878 $Tuple2(unlockedAmount, (amount - unlockedAmount))
7979 }
8080
8181
8282 func getUserUnlockedAmount (userAddress,id) = {
8383 let $t026912770 = parseUserVesting(userAddress, id)
8484 let vestingAmount = $t026912770._1
8585 let startBlock = $t026912770._2
8686 let lockLength = $t026912770._3
8787 let $t027732870 = calcUnlockedAmount(vestingAmount, startBlock, lockLength)
8888 let unlockedAmount = $t027732870._1
8989 let remainingAmount = $t027732870._2
9090 $Tuple2(unlockedAmount, remainingAmount)
9191 }
9292
9393
9494 func getUserClaimActions (userAddress,id) = {
9595 let $t029733052 = parseUserVesting(userAddress, id)
9696 let vestingAmount = $t029733052._1
9797 let startBlock = $t029733052._2
9898 let lockLength = $t029733052._3
9999 let $t030553133 = getUserUnlockedAmount(userAddress, id)
100100 let unlockedAmount = $t030553133._1
101101 let remainingAmount = $t030553133._2
102102 let remainingBlocks = max([((startBlock + lockLength) - height), 0])
103103 if ((unlockedAmount != 0))
104104 then [ScriptTransfer(addressFromStringValue(userAddress), unlockedAmount, assetIdBytes), StringEntry(keyUserVesting(userAddress, id), formatUserVesting(remainingAmount, height, remainingBlocks))]
105105 else nil
106106 }
107107
108108
109109 func getNewVestingActions (userAddress,id,vestingAmount,startBlock,lockLength) = [StringEntry(keyUserVesting(userAddress, id), formatUserVesting(vestingAmount, startBlock, lockLength))]
110110
111111
112112 func getAllUserClaimActions (userAddress) = {
113113 func actionsHelper (accum,a) = {
114114 let $t038383869 = accum
115115 let allActions = $t038383869._1
116116 let index = $t038383869._2
117117 $Tuple2((allActions ++ getUserClaimActions(userAddress, index)), (index + 1))
118118 }
119119
120120 let $t039674033 = {
121121 let $l = IDS_LIST
122122 let $s = size($l)
123123 let $acc0 = $Tuple2(nil, 0)
124124 func $f0_1 ($a,$i) = if (($i >= $s))
125125 then $a
126126 else actionsHelper($a, $l[$i])
127127
128128 func $f0_2 ($a,$i) = if (($i >= $s))
129129 then $a
130130 else throw("List size exceeds 100")
131131
132132 $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60), 61), 62), 63), 64), 65), 66), 67), 68), 69), 70), 71), 72), 73), 74), 75), 76), 77), 78), 79), 80), 81), 82), 83), 84), 85), 86), 87), 88), 89), 90), 91), 92), 93), 94), 95), 96), 97), 98), 99), 100)
133133 }
134134 let allActions = $t039674033._1
135135 let _a = $t039674033._2
136136 allActions
137137 }
138138
139139
140140 @Callable(i)
141-func foo (userAddress,vestingAmount,startBlock,lockLength) = getNewVestingActions(userAddress, 0, vestingAmount, startBlock, lockLength)
141+func foo (userAddress,vestingAmount,startBlock,lockLength) = getNewVestingActions(userAddress, 1, vestingAmount, startBlock, lockLength)
142142
143143

github/deemru/w8io/169f3d6 
42.05 ms