tx · BBfsqXChmaALfz18pQ658VAcW6EbDY9dAQZQ1oKqVR13

3MwyBKGZcdChEK9Z55HwLn3A2EgwEJJpqC1:  -0.01000000 Waves

2024.01.09 12:21 [2923759] smart account 3MwyBKGZcdChEK9Z55HwLn3A2EgwEJJpqC1 > SELF 0.00000000 Waves

{ "type": 13, "id": "BBfsqXChmaALfz18pQ658VAcW6EbDY9dAQZQ1oKqVR13", "fee": 1000000, "feeAssetId": null, "timestamp": 1704792178770, "version": 2, "chainId": 84, "sender": "3MwyBKGZcdChEK9Z55HwLn3A2EgwEJJpqC1", "senderPublicKey": "7c3qLtcJ7EaPS2JDjXv8MBbd4kpyc6R27wcn5GgvZhur", "proofs": [ "UbQWj281VL1mWxHmMuLUFXLMHDrbov2BCZt5XaatiGJmXywCymqLhsmgzPXF1DiG7FPYChUZTA3sSHqwvtaWjgH" ], "script": "base64:BgIKCAISBgoECAEBARIADGNvbnRyYWN0RmlsZQIQdmVzdGluZ19uZW8ucmlkZQADU0VQAgJfXwAISURTX0xJU1QJAMwIAgAACQDMCAIAAQkAzAgCAAIJAMwIAgADCQDMCAIABAkAzAgCAAUJAMwIAgAGCQDMCAIABwkAzAgCAAgJAMwIAgAJCQDMCAIACgkAzAgCAAsJAMwIAgAMCQDMCAIADQkAzAgCAA4JAMwIAgAPCQDMCAIAEAkAzAgCABEJAMwIAgASCQDMCAIAEwkAzAgCABQJAMwIAgAVCQDMCAIAFgkAzAgCABcJAMwIAgAYCQDMCAIAGQkAzAgCABoJAMwIAgAbCQDMCAIAHAkAzAgCAB0FA25pbAARTUFYX1ZFU1RJTkdfQ09VTlQJAJADAQUISURTX0xJU1QBCHRocm93RXJyAQNtc2cJAAIBCQCsAgIJAKwCAgUMY29udHJhY3RGaWxlAgI6IAUDbXNnAAprZXlBc3NldElkCQC5CQIJAMwIAgICJXMJAMwIAgIHYXNzZXRJZAUDbmlsBQNTRVAADWFzc2V0SWRTdHJpbmcJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwUKa2V5QXNzZXRJZAIFV0FWRVMADGFzc2V0SWRCeXRlcwMJAAACBQ1hc3NldElkU3RyaW5nAgVXQVZFUwUEdW5pdAkA2QQBBQ1hc3NldElkU3RyaW5nARRpc1ZhbGlkQWRkcmVzc1N0cmluZwENYWRkcmVzc1N0cmluZwQHJG1hdGNoMAkApggBBQ1hZGRyZXNzU3RyaW5nAwkAAQIFByRtYXRjaDACB0FkZHJlc3MEAWEFByRtYXRjaDAGBwEOa2V5VXNlclZlc3RpbmcCC3VzZXJBZGRyZXNzAmlkBAZjaGVja3MJAMwIAgMJARRpc1ZhbGlkQWRkcmVzc1N0cmluZwEFC3VzZXJBZGRyZXNzBgkBCHRocm93RXJyAQkAuQkCCQDMCAICFWFkZHJlc3MgaXMgbm90IHZhbGlkOgkAzAgCBQt1c2VyQWRkcmVzcwUDbmlsAgEgCQDMCAIDAwkAZwIFAmlkAAAJAGYCBRFNQVhfVkVTVElOR19DT1VOVAUCaWQHBgkBCHRocm93RXJyAQkAuQkCCQDMCAICFmlkIHNob3VsZCBiZSBsZXNzIHRoYW4JAMwIAgkApAMBBRFNQVhfVkVTVElOR19DT1VOVAkAzAgCAgRnb3Q6CQDMCAIJAKQDAQUCaWQFA25pbAIBIAUDbmlsAwkAAAIFBmNoZWNrcwUGY2hlY2tzCQC5CQIJAMwIAgIEJXMlZAkAzAgCBQt1c2VyQWRkcmVzcwkAzAgCCQCkAwEFAmlkBQNuaWwFA1NFUAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgERZm9ybWF0VXNlclZlc3RpbmcDDXZlc3RpbmdBbW91bnQKc3RhcnRCbG9jawpsb2NrTGVuZ3RoBAZjaGVja3MJAMwIAgMJAGcCBQ12ZXN0aW5nQW1vdW50AAAGCQEIdGhyb3dFcnIBAiF2ZXN0aW5nIGFtb3VudCBjYW5ub3QgYmUgbmVnYXRpdmUJAMwIAgMJAGcCBQpzdGFydEJsb2NrAAAGCQEIdGhyb3dFcnIBAh5zdGFydCBibG9jayBjYW5ub3QgYmUgbmVnYXRpdmUJAMwIAgMJAGcCBQpsb2NrTGVuZ3RoAAAGCQEIdGhyb3dFcnIBAh5sb2NrIGxlbmd0aCBjYW5ub3QgYmUgbmVnYXRpdmUFA25pbAMJAAACBQZjaGVja3MFBmNoZWNrcwkAuQkCCQDMCAICBiVkJWQlZAkAzAgCCQCkAwEFDXZlc3RpbmdBbW91bnQJAMwIAgkApAMBBQpzdGFydEJsb2NrCQDMCAIJAKQDAQUKbG9ja0xlbmd0aAUDbmlsBQNTRVAJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BEHBhcnNlVXNlclZlc3RpbmcCC3VzZXJBZGRyZXNzAmlkBAckbWF0Y2gwCQCdCAIFBHRoaXMJAQ5rZXlVc2VyVmVzdGluZwIFC3VzZXJBZGRyZXNzBQJpZAMJAAECBQckbWF0Y2gwAgZTdHJpbmcECXJhd1N0cmluZwUHJG1hdGNoMAQLc3BsaXRTdHJpbmcJALUJAgUJcmF3U3RyaW5nBQNTRVAEDXZlc3RpbmdBbW91bnQJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQtzcGxpdFN0cmluZwABBApzdGFydEJsb2NrCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgULc3BsaXRTdHJpbmcAAgQKbG9ja0xlbmd0aAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFC3NwbGl0U3RyaW5nAAMJAJUKAwUNdmVzdGluZ0Ftb3VudAUKc3RhcnRCbG9jawUKbG9ja0xlbmd0aAkAlQoDAAAAAAAAARJjYWxjVW5sb2NrZWRBbW91bnQDBmFtb3VudApzdGFydEJsb2NrCmxvY2tMZW5ndGgEDWVsYXBzZWRCbG9ja3MJAGUCBQZoZWlnaHQFCnN0YXJ0QmxvY2sEDnVubG9ja2VkQW1vdW50AwMJAQIhPQIFCmxvY2tMZW5ndGgAAAkAZgIFDWVsYXBzZWRCbG9ja3MAAAcJAJcDAQkAzAgCCQBrAwUGYW1vdW50BQ1lbGFwc2VkQmxvY2tzBQpsb2NrTGVuZ3RoCQDMCAIFBmFtb3VudAUDbmlsAAAJAJQKAgUOdW5sb2NrZWRBbW91bnQJAGUCBQZhbW91bnQFDnVubG9ja2VkQW1vdW50ARVnZXRVc2VyVW5sb2NrZWRBbW91bnQCC3VzZXJBZGRyZXNzAmlkBAskdDAyNDM3MjUxNgkBEHBhcnNlVXNlclZlc3RpbmcCBQt1c2VyQWRkcmVzcwUCaWQEDXZlc3RpbmdBbW91bnQIBQskdDAyNDM3MjUxNgJfMQQKc3RhcnRCbG9jawgFCyR0MDI0MzcyNTE2Al8yBApsb2NrTGVuZ3RoCAULJHQwMjQzNzI1MTYCXzMECyR0MDI1MTkyNjE2CQESY2FsY1VubG9ja2VkQW1vdW50AwUNdmVzdGluZ0Ftb3VudAUKc3RhcnRCbG9jawUKbG9ja0xlbmd0aAQOdW5sb2NrZWRBbW91bnQIBQskdDAyNTE5MjYxNgJfMQQPcmVtYWluaW5nQW1vdW50CAULJHQwMjUxOTI2MTYCXzIJAJQKAgUOdW5sb2NrZWRBbW91bnQFD3JlbWFpbmluZ0Ftb3VudAETZ2V0VXNlckNsYWltQWN0aW9ucwILdXNlckFkZHJlc3MCaWQECyR0MDI3MTkyNzk4CQEQcGFyc2VVc2VyVmVzdGluZwIFC3VzZXJBZGRyZXNzBQJpZAQNdmVzdGluZ0Ftb3VudAgFCyR0MDI3MTkyNzk4Al8xBApzdGFydEJsb2NrCAULJHQwMjcxOTI3OTgCXzIECmxvY2tMZW5ndGgIBQskdDAyNzE5Mjc5OAJfMwQLJHQwMjgwMTI4NzkJARVnZXRVc2VyVW5sb2NrZWRBbW91bnQCBQt1c2VyQWRkcmVzcwUCaWQEDnVubG9ja2VkQW1vdW50CAULJHQwMjgwMTI4NzkCXzEED3JlbWFpbmluZ0Ftb3VudAgFCyR0MDI4MDEyODc5Al8yBA9yZW1haW5pbmdCbG9ja3MJAJYDAQkAzAgCCQBlAgkAZAIFCnN0YXJ0QmxvY2sFCmxvY2tMZW5ndGgFBmhlaWdodAkAzAgCAAAFA25pbAMJAQIhPQIFDnVubG9ja2VkQW1vdW50AAAJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBEUBleHRyTmF0aXZlKDEwNjIpAQULdXNlckFkZHJlc3MFDnVubG9ja2VkQW1vdW50BQxhc3NldElkQnl0ZXMJAMwIAgkBC1N0cmluZ0VudHJ5AgkBDmtleVVzZXJWZXN0aW5nAgULdXNlckFkZHJlc3MFAmlkCQERZm9ybWF0VXNlclZlc3RpbmcDBQ9yZW1haW5pbmdBbW91bnQFBmhlaWdodAUPcmVtYWluaW5nQmxvY2tzBQNuaWwFA25pbAEUZ2V0TmV3VmVzdGluZ0FjdGlvbnMFC3VzZXJBZGRyZXNzAmlkDXZlc3RpbmdBbW91bnQKc3RhcnRCbG9jawpsb2NrTGVuZ3RoCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQ5rZXlVc2VyVmVzdGluZwIFC3VzZXJBZGRyZXNzBQJpZAkBEWZvcm1hdFVzZXJWZXN0aW5nAwUNdmVzdGluZ0Ftb3VudAUKc3RhcnRCbG9jawUKbG9ja0xlbmd0aAUDbmlsARZnZXRBbGxVc2VyQ2xhaW1BY3Rpb25zAQt1c2VyQWRkcmVzcwoBDWFjdGlvbnNIZWxwZXICCmFsbEFjdGlvbnMBYQkAzggCBQphbGxBY3Rpb25zCQETZ2V0VXNlckNsYWltQWN0aW9ucwIFC3VzZXJBZGRyZXNzBQFhCgACJGwFCElEU19MSVNUCgACJHMJAJADAQUCJGwKAAUkYWNjMAUDbmlsCgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQ1hY3Rpb25zSGVscGVyAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYwXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyAzMAkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAANAA4ADwAQABEAEgATABQAFQAWABcAGAAZABoAGwAcAB0AHgEOZ2V0QXZhaWxhYmxlSWQBC3VzZXJBZGRyZXNzBQNuaWwBAWkBA2ZvbwQLdXNlckFkZHJlc3MNdmVzdGluZ0Ftb3VudApzdGFydEJsb2NrCmxvY2tMZW5ndGgJARRnZXROZXdWZXN0aW5nQWN0aW9ucwUFC3VzZXJBZGRyZXNzAAAFDXZlc3RpbmdBbW91bnQFCnN0YXJ0QmxvY2sFCmxvY2tMZW5ndGgAT6Hn8A==", "height": 2923759, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 7C2T8247Dv37CKQXWqSoG8i2PCrVkH2VSCPVxSe9PqRq Next: 3FE8GNfALMnkRNvManK7bfR7TRCJ5p4HqUwPT98Xpm4V Diff:
OldNewDifferences
55
66 let SEP = "__"
77
8-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]
8+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]
99
1010 let MAX_VESTING_COUNT = size(IDS_LIST)
1111
3535 then (MAX_VESTING_COUNT > id)
3636 else false)
3737 then true
38- else throwErr(makeString(["id is invalid:", toString(id)], " "))]
38+ else throwErr(makeString(["id should be less than", toString(MAX_VESTING_COUNT), "got:", 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.")
8080
8181
8282 func getUserUnlockedAmount (userAddress,id) = {
83- let $t026912770 = parseUserVesting(userAddress, id)
84- let vestingAmount = $t026912770._1
85- let startBlock = $t026912770._2
86- let lockLength = $t026912770._3
87- let $t027732870 = calcUnlockedAmount(vestingAmount, startBlock, lockLength)
88- let unlockedAmount = $t027732870._1
89- let remainingAmount = $t027732870._2
83+ let $t024372516 = parseUserVesting(userAddress, id)
84+ let vestingAmount = $t024372516._1
85+ let startBlock = $t024372516._2
86+ let lockLength = $t024372516._3
87+ let $t025192616 = calcUnlockedAmount(vestingAmount, startBlock, lockLength)
88+ let unlockedAmount = $t025192616._1
89+ let remainingAmount = $t025192616._2
9090 $Tuple2(unlockedAmount, remainingAmount)
9191 }
9292
9393
9494 func getUserClaimActions (userAddress,id) = {
95- let $t029733052 = parseUserVesting(userAddress, id)
96- let vestingAmount = $t029733052._1
97- let startBlock = $t029733052._2
98- let lockLength = $t029733052._3
99- let $t030553133 = getUserUnlockedAmount(userAddress, id)
100- let unlockedAmount = $t030553133._1
101- let remainingAmount = $t030553133._2
95+ let $t027192798 = parseUserVesting(userAddress, id)
96+ let vestingAmount = $t027192798._1
97+ let startBlock = $t027192798._2
98+ let lockLength = $t027192798._3
99+ let $t028012879 = getUserUnlockedAmount(userAddress, id)
100+ let unlockedAmount = $t028012879._1
101+ let remainingAmount = $t028012879._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))]
110110
111111
112112 func getAllUserClaimActions (userAddress) = {
113- func actionsHelper (accum,a) = {
114- let $t038383869 = accum
115- let allActions = $t038383869._1
116- let index = $t038383869._2
117- $Tuple2((allActions ++ getUserClaimActions(userAddress, index)), (index + 1))
118- }
113+ func actionsHelper (allActions,a) = (allActions ++ getUserClaimActions(userAddress, a))
119114
120- let $t039674028 = {
121- let $l = [0]
122- let $s = size($l)
123- let $acc0 = $Tuple2(nil, 0)
124- func $f0_1 ($a,$i) = if (($i >= $s))
125- then $a
126- else actionsHelper($a, $l[$i])
115+ let $l = IDS_LIST
116+ let $s = size($l)
117+ let $acc0 = nil
118+ func $f0_1 ($a,$i) = if (($i >= $s))
119+ then $a
120+ else actionsHelper($a, $l[$i])
127121
128- func $f0_2 ($a,$i) = if (($i >= $s))
129- then $a
130- else throw("List size exceeds 100")
122+ func $f0_2 ($a,$i) = if (($i >= $s))
123+ then $a
124+ else throw("List size exceeds 30")
131125
132- $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)
133- }
134- let allActions = $t039674028._1
135- let _a = $t039674028._2
136- allActions
126+ $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($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)
137127 }
128+
129+
130+func getAvailableId (userAddress) = nil
138131
139132
140133 @Callable(i)
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
8-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]
8+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]
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
38- else throwErr(makeString(["id is invalid:", toString(id)], " "))]
38+ else throwErr(makeString(["id should be less than", toString(MAX_VESTING_COUNT), "got:", 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) = {
83- let $t026912770 = parseUserVesting(userAddress, id)
84- let vestingAmount = $t026912770._1
85- let startBlock = $t026912770._2
86- let lockLength = $t026912770._3
87- let $t027732870 = calcUnlockedAmount(vestingAmount, startBlock, lockLength)
88- let unlockedAmount = $t027732870._1
89- let remainingAmount = $t027732870._2
83+ let $t024372516 = parseUserVesting(userAddress, id)
84+ let vestingAmount = $t024372516._1
85+ let startBlock = $t024372516._2
86+ let lockLength = $t024372516._3
87+ let $t025192616 = calcUnlockedAmount(vestingAmount, startBlock, lockLength)
88+ let unlockedAmount = $t025192616._1
89+ let remainingAmount = $t025192616._2
9090 $Tuple2(unlockedAmount, remainingAmount)
9191 }
9292
9393
9494 func getUserClaimActions (userAddress,id) = {
95- let $t029733052 = parseUserVesting(userAddress, id)
96- let vestingAmount = $t029733052._1
97- let startBlock = $t029733052._2
98- let lockLength = $t029733052._3
99- let $t030553133 = getUserUnlockedAmount(userAddress, id)
100- let unlockedAmount = $t030553133._1
101- let remainingAmount = $t030553133._2
95+ let $t027192798 = parseUserVesting(userAddress, id)
96+ let vestingAmount = $t027192798._1
97+ let startBlock = $t027192798._2
98+ let lockLength = $t027192798._3
99+ let $t028012879 = getUserUnlockedAmount(userAddress, id)
100+ let unlockedAmount = $t028012879._1
101+ let remainingAmount = $t028012879._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) = {
113- func actionsHelper (accum,a) = {
114- let $t038383869 = accum
115- let allActions = $t038383869._1
116- let index = $t038383869._2
117- $Tuple2((allActions ++ getUserClaimActions(userAddress, index)), (index + 1))
118- }
113+ func actionsHelper (allActions,a) = (allActions ++ getUserClaimActions(userAddress, a))
119114
120- let $t039674028 = {
121- let $l = [0]
122- let $s = size($l)
123- let $acc0 = $Tuple2(nil, 0)
124- func $f0_1 ($a,$i) = if (($i >= $s))
125- then $a
126- else actionsHelper($a, $l[$i])
115+ let $l = IDS_LIST
116+ let $s = size($l)
117+ let $acc0 = nil
118+ func $f0_1 ($a,$i) = if (($i >= $s))
119+ then $a
120+ else actionsHelper($a, $l[$i])
127121
128- func $f0_2 ($a,$i) = if (($i >= $s))
129- then $a
130- else throw("List size exceeds 100")
122+ func $f0_2 ($a,$i) = if (($i >= $s))
123+ then $a
124+ else throw("List size exceeds 30")
131125
132- $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)
133- }
134- let allActions = $t039674028._1
135- let _a = $t039674028._2
136- allActions
126+ $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($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)
137127 }
128+
129+
130+func getAvailableId (userAddress) = nil
138131
139132
140133 @Callable(i)
141134 func foo (userAddress,vestingAmount,startBlock,lockLength) = getNewVestingActions(userAddress, 0, vestingAmount, startBlock, lockLength)
142135
143136

github/deemru/w8io/169f3d6 
68.13 ms