tx · 31i2i9Fhn4KWnmeS8d3LGY5EX5cnfv7irQZFSfuCN3HY

3Mr7HCJPTazuYjJbfbbpRMvZX8xrNTjT1Kx:  -0.01000000 Waves

2023.03.09 01:31 [2481715] smart account 3Mr7HCJPTazuYjJbfbbpRMvZX8xrNTjT1Kx > SELF 0.00000000 Waves

{ "type": 13, "id": "31i2i9Fhn4KWnmeS8d3LGY5EX5cnfv7irQZFSfuCN3HY", "fee": 1000000, "feeAssetId": null, "timestamp": 1678314674174, "version": 2, "chainId": 84, "sender": "3Mr7HCJPTazuYjJbfbbpRMvZX8xrNTjT1Kx", "senderPublicKey": "D35PGQCSSdrp9pvujggj7b2DaCK1BhcU3kho7tikKJYs", "proofs": [ "5ryQTpeB3dCxGmqmnzJUkN3Axfrzs3enNZtrbjNrQgccBdEdjgTvSFV4YsshpRgbGRTzR4j7mwFu2HezWR85pjvc" ], "script": "base64:BgIiCAISABIECgIBARIAEgMKAQESBAoCGBESBAoCCAgSAwoBCAMADG9wdGlvbnNfYWRkcgkBB0FkZHJlc3MBARoBVEFb+Cv2F+oqocvEivH7x7uyIGEx/ocgwQAEdFJVQgEgv7I1LEj/fS4nZAGEmW42z/vK94nfeiKN08fw7a6U2ZsABHRVU0QBIKskSmq2Qkbr0vzjebBhusOuaVdNUnrKRRynQB0RsCkOBwFpARRyZWlzc3VlVG9rZW5zTG95YWx0eQADCQAAAgkAkAMBCAUBaQhwYXltZW50cwAACQACAQIUUGF5bWVudCBub3QgYXR0YWNoZWQECGFzc2V0X2lkBAckbWF0Y2gwCAkAkQMCCAUBaQhwYXltZW50cwAAB2Fzc2V0SWQDCQABAgUHJG1hdGNoMAIKQnl0ZVZlY3RvcgQCaWQFByRtYXRjaDAFAmlkCQACAQIQQ2FuJ3QgZmluZCBhc3NldAQKYXNzZXRfaW5mbwQHJG1hdGNoMAkA7AcBBQhhc3NldF9pZAMJAAECBQckbWF0Y2gwAgVBc3NldAQFYXNzZXQFByRtYXRjaDAFBWFzc2V0CQACAQIbQ2FuJ3QgZ2V0IGluZm8gZnJvbSBwYXltZW50BAhxdWFudGl0eQQHJG1hdGNoMAkAtgkBCQCRAwIJALUJAggFCmFzc2V0X2luZm8LZGVzY3JpcHRpb24CAToAAQMJAAECBQckbWF0Y2gwAgNJbnQEAXEFByRtYXRjaDAFAXEJAAIBAh9DYW4ndCBnZXQgcXVhbnRpdHkgZnJvbSBwYXltZW50BAtpc19vcHRfYWRkcgQHJG1hdGNoMAgFCmFzc2V0X2luZm8GaXNzdWVyAwkAAQIFByRtYXRjaDACB0FkZHJlc3MEBmlzc3VlcgUHJG1hdGNoMAUGaXNzdWVyCQACAQIdQ2FuJ3QgZ2V0IGlzc3VlciBmcm9tIHBheW1lbnQDCQECIT0CCQClCAEFC2lzX29wdF9hZGRyCQClCAEFBHRoaXMJAAIBAhdJc3N1ZXIgbm90IG9wdGlvbnNfYWRkcgQDcmVzCQD8BwQFDG9wdGlvbnNfYWRkcgIRcmVpc3N1ZUZvckRlcEFkZHIJAMwIAgUIcXVhbnRpdHkFA25pbAUDbmlsAwkAAAIFA3JlcwUDcmVzBAckbWF0Y2gwBQNyZXMDCQABAgUHJG1hdGNoMAIDSW50BAFyBQckbWF0Y2gwCQCUCgIJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyBQhxdWFudGl0eQUEdFJVQgkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICAgRsX2JfCQDYBAEFCGFzc2V0X2lkBQhxdWFudGl0eQUDbmlsBQR1bml0CQACAQIXSW5jb3JyZWN0IGludm9rZSByZXN1bHQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEJaXNzdWVCaWxsAglwcm92aWRpbmcEc2l6ZQQKY3VycmVudEtleQkA2AQBCAgFAWkGY2FsbGVyBWJ5dGVzBA1jdXJyZW50QW1vdW50BAckbWF0Y2gwCQCaCAIFBHRoaXMFCmN1cnJlbnRLZXkDCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhAAAEEW1pbkJpbGxEZXBvc2l0U3RyBAckbWF0Y2gwCQCdCAIFDG9wdGlvbnNfYWRkcgIQbWluX2JpbGxfZGVwb3NpdAMJAAECBQckbWF0Y2gwAgRVbml0AgEwAwkAAQIFByRtYXRjaDACBlN0cmluZwQBeAUHJG1hdGNoMAUBeAkAAgECC01hdGNoIGVycm9yBA5taW5CaWxsRGVwb3NpdAQHJG1hdGNoMAkAtgkBCQCRAwIJALUJAgURbWluQmlsbERlcG9zaXRTdHICAS4AAAMJAAECBQckbWF0Y2gwAgRVbml0AAADCQABAgUHJG1hdGNoMAIDSW50BAF0BQckbWF0Y2gwBQF0CQACAQILTWF0Y2ggZXJyb3IED2V4Y2hhbmdlUmF0ZVN0cgQHJG1hdGNoMAkAnQgCBQxvcHRpb25zX2FkZHICDWV4Y2hhbmdlX3JhdGUDCQABAgUHJG1hdGNoMAIEVW5pdAIBMAMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAXgFByRtYXRjaDAFAXgJAAIBAgtNYXRjaCBlcnJvcgQMZXhjaGFuZ2VSYXRlBAckbWF0Y2gwCQC2CQEFD2V4Y2hhbmdlUmF0ZVN0cgMJAAECBQckbWF0Y2gwAgRVbml0AAADCQABAgUHJG1hdGNoMAIDSW50BAF0BQckbWF0Y2gwBQF0CQACAQILTWF0Y2ggZXJyb3IEFHNoYXJlR3VhcmFudGVlRmVlU3RyBAckbWF0Y2gwCQCdCAIFDG9wdGlvbnNfYWRkcgITc2hhcmVfZ3VhcmFudGVlX2ZlZQMJAAECBQckbWF0Y2gwAgRVbml0AgEwAwkAAQIFByRtYXRjaDACBlN0cmluZwQBeAUHJG1hdGNoMAUBeAkAAgECC01hdGNoIGVycm9yBBFzaGFyZUd1YXJhbnRlZUZlZQQHJG1hdGNoMAkAtgkBBRRzaGFyZUd1YXJhbnRlZUZlZVN0cgMJAAECBQckbWF0Y2gwAgRVbml0AAADCQABAgUHJG1hdGNoMAIDSW50BAF0BQckbWF0Y2gwBQF0CQACAQILTWF0Y2ggZXJyb3IECHRSVUJfbWluCQBpAgkAaAIJAGgCBQ5taW5CaWxsRGVwb3NpdAUMZXhjaGFuZ2VSYXRlAGQFEXNoYXJlR3VhcmFudGVlRmVlBAh0UlVCX21heAkAaQIJAGgCBQlwcm92aWRpbmcFDGV4Y2hhbmdlUmF0ZQURc2hhcmVHdWFyYW50ZWVGZWUECW5ld0Ftb3VudAkAZQIFDWN1cnJlbnRBbW91bnQFCXByb3ZpZGluZwMJAGYCCQBoAgUObWluQmlsbERlcG9zaXQAZAUJcHJvdmlkaW5nCQACAQkArAICCQCsAgIJAKwCAgkArAICAidUaGUgc2VjdXJpdHkgZGVwb3NpdCBtdXN0IGJlIG1vcmUgdGhhbiAFEW1pbkJpbGxEZXBvc2l0U3RyAhQuIFlvdSBzZXQgdGhlIHNpemU6IAkApAMBCQBpAgUJcHJvdmlkaW5nAGQCAy4wMAMJAGYCAAAFCW5ld0Ftb3VudAkAAgECEk5vdCBlbm91Z2ggYmFsYW5jZQMJAGYCBQh0UlVCX21pbgUEc2l6ZQkAAgEJAKwCAgkArAICCQCsAgIJAKwCAgJIVGhlIG5vbWluYWwgdmFsdWUgb2YgdGhlIHByb21pc3NvcnkgYmlsbCBleGNlZWRzIHRoZSBjb2xsYXRlcmFsIG1pbmltdW0gCQCkAwEFCHRSVUJfbWluAgXigr0gKAURbWluQmlsbERlcG9zaXRTdHICBXRVU0QpAwkAZgIFBHNpemUFCHRSVUJfbWF4CQACAQkArAICCQCsAgIJAKwCAgkArAICAjFUaGUgdmFsdWUgb2YgdGhlIHRva2VuIGNhbm5vdCBleGNlZWQgdGhlIG1heGltdW0gCQCkAwEFCHRSVUJfbWF4Ah7igr0gb2YgdGhlIGd1YXJhbnRlZSBkZXBvc2l0ICgJAKQDAQkAaQIFCXByb3ZpZGluZwBkAgV0VVNEKQQFaXNzdWUJAMIIBQkArAICAgliaWxsIGZvcjoJAKQDAQkAaQIFCXByb3ZpZGluZwBkCQCsAgIJAKwCAgUKY3VycmVudEtleQIBOgkApAMBBQRzaXplAAEAAAcEAmlkCQC4CAEFBWlzc3VlCQCUCgIJAMwIAgkBDEludGVnZXJFbnRyeQIFCmN1cnJlbnRLZXkFCW5ld0Ftb3VudAkAzAgCBQVpc3N1ZQkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIAAQUCaWQJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgIEbF91XwkA2AQBBQJpZAUJcHJvdmlkaW5nBQNuaWwFBHVuaXQBaQEHZGVwb3NpdAADCQAAAgkAkAMBCAUBaQhwYXltZW50cwAACQACAQIUUGF5bWVudCBub3QgYXR0YWNoZWQEA3BtdAkAkQMCCQEFdmFsdWUBCAUBaQhwYXltZW50cwAABA1taW5EZXBvc2l0U3RyBAckbWF0Y2gwCQCdCAIFDG9wdGlvbnNfYWRkcgILbWluX2RlcG9zaXQDCQABAgUHJG1hdGNoMAIEVW5pdAIBMAMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAXgFByRtYXRjaDAFAXgJAAIBAgtNYXRjaCBlcnJvcgQKbWluRGVwb3NpdAQHJG1hdGNoMAkAtgkBCQCRAwIJALUJAgUNbWluRGVwb3NpdFN0cgIBLgAAAwkAAQIFByRtYXRjaDACBFVuaXQAAAMJAAECBQckbWF0Y2gwAgNJbnQEAXQFByRtYXRjaDAFAXQJAAIBAgtNYXRjaCBlcnJvcgMJAQIhPQIIBQNwbXQHYXNzZXRJZAUEdFVTRAkAAgECF2hvbGRlZCBwYXltZW50IG5vdCB0VVNEAwkAZgIJAGgCBQptaW5EZXBvc2l0AGQIBQNwbXQGYW1vdW50CQACAQkArAICCQCsAgIJAKwCAgkArAICAiNZb3UgaGF2ZSBzZXQgdGhlIGRlcG9zaXQgYW1vdW50IHRvIAkApAMBCQBpAggFA3BtdAZhbW91bnQAZAIlLjAwLCB3aGljaCBpcyBsZXNzIHRoYW4gdGhlIG1pbmltdW0gKAUNbWluRGVwb3NpdFN0cgIBKQQKY3VycmVudEtleQkA2AQBCAgFAWkGY2FsbGVyBWJ5dGVzBA1jdXJyZW50QW1vdW50BAckbWF0Y2gwCQCaCAIFBHRoaXMFCmN1cnJlbnRLZXkDCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhAAAECW5ld0Ftb3VudAkAZAIFDWN1cnJlbnRBbW91bnQIBQNwbXQGYW1vdW50CQDMCAIJAQxJbnRlZ2VyRW50cnkCBQpjdXJyZW50S2V5BQluZXdBbW91bnQFA25pbAFpAQh3aXRoZHJhdwEGYW1vdW50BApjdXJyZW50S2V5CQDYBAEICAUBaQZjYWxsZXIFYnl0ZXMEDWN1cnJlbnRBbW91bnQEByRtYXRjaDAJAJoIAgUEdGhpcwUKY3VycmVudEtleQMJAAECBQckbWF0Y2gwAgNJbnQEAWEFByRtYXRjaDAFAWEAAAQJbmV3QW1vdW50CQBlAgUNY3VycmVudEFtb3VudAUGYW1vdW50AwkAZgIAAAUGYW1vdW50CQACAQIeQ2FuJ3Qgd2l0aGRyYXcgbmVnYXRpdmUgYW1vdW50AwkAZgIAAAUJbmV3QW1vdW50CQACAQISTm90IGVub3VnaCBiYWxhbmNlCQCUCgIJAMwIAgkBDEludGVnZXJFbnRyeQIFCmN1cnJlbnRLZXkFCW5ld0Ftb3VudAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIFBmFtb3VudAUEdFVTRAUDbmlsBQR1bml0AWkBCnNldE9wdGlvbnMCBG9wdHMEdmFscwQIb3B0X3NpemUJAJADAQUEb3B0cwMJAGcCAGQFCG9wdF9zaXplBAlhZG1pbkxpc3QEByRtYXRjaDAJAJ0IAgUMb3B0aW9uc19hZGRyAgphZG1pbl9saXN0AwkAAQIFByRtYXRjaDACBFVuaXQCBXVuc2V0AwkAAQIFByRtYXRjaDACBlN0cmluZwQBeAUHJG1hdGNoMAUBeAkAAgECC01hdGNoIGVycm9yCgEOYWRkU3RyaW5nRW50cnkCBWFjY3VtCW5leHRWYWx1ZQQLJHQwNzY3Mjc2OTUF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CWFkbWluTGlzdAILLCBpc0FkbWluOiAFB2lzQWRtaW4CFCwgY2FsbGVyQWRkcmVzc1N0cjogBRBjYWxsZXJBZGRyZXNzU3RyAgIsIAkAAgECEFVuc2V0IGFkbWluIGxpc3QJAAIBAi9UaGUgbnVtYmVyIG9mIGxpc3QgZWxlbWVudHMgbXVzdCBub3QgZXhjZWVkIDEwMAFpAQlzZXRPcHRpb24CCHZhcmlhYmxlBXZhbHVlBAlhZG1pbkxpc3QEByRtYXRjaDAJAJ0IAgUMb3B0aW9uc19hZGRyAgphZG1pbl9saXN0AwkAAQIFByRtYXRjaDACBFVuaXQCBXVuc2V0AwkAAQIFByRtYXRjaDACBlN0cmluZwQBeAUHJG1hdGNoMAUBeAkAAgECC01hdGNoIGVycm9yBBBjYWxsZXJBZGRyZXNzU3RyCQClCAEIBQFpBmNhbGxlcgMJAQIhPQIFCWFkbWluTGlzdAIFdW5zZXQEBHRlc3QJAJ0IAgkBEUBleHRyTmF0aXZlKDEwNjIpAQUJYWRtaW5MaXN0BRBjYWxsZXJBZGRyZXNzU3RyBAdpc0FkbWluBAckbWF0Y2gwBQR0ZXN0AwkAAQIFByRtYXRjaDACBlN0cmluZwQBeAUHJG1hdGNoMAUBeAMJAAECBQckbWF0Y2gwAgRVbml0AghubyBhZG1pbgkAAgECC01hdGNoIGVycm9yAwkBAiE9AgUHaXNBZG1pbgIIbm8gYWRtaW4JAJQKAgkAzAgCCQELU3RyaW5nRW50cnkCBQh2YXJpYWJsZQUFdmFsdWUFA25pbAUEdW5pdAkAAgEJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgICD1lvdSBub3QgYWRtaW46IAUJYWRtaW5MaXN0AgssIGlzQWRtaW46IAUHaXNBZG1pbgIULCBjYWxsZXJBZGRyZXNzU3RyOiAFEGNhbGxlckFkZHJlc3NTdHICAiwgCQACAQIQVW5zZXQgYWRtaW4gbGlzdAFpAQlkZWxPcHRpb24BCHZhcmlhYmxlBAlhZG1pbkxpc3QEByRtYXRjaDAJAJ0IAgUMb3B0aW9uc19hZGRyAgphZG1pbl9saXN0AwkAAQIFByRtYXRjaDACBFVuaXQCBXVuc2V0AwkAAQIFByRtYXRjaDACBlN0cmluZwQBeAUHJG1hdGNoMAUBeAkAAgECC01hdGNoIGVycm9yBBBjYWxsZXJBZGRyZXNzU3RyCQClCAEIBQFpBmNhbGxlcgMJAQIhPQIFCWFkbWluTGlzdAIFdW5zZXQEBHRlc3QJAJ0IAgkBEUBleHRyTmF0aXZlKDEwNjIpAQUJYWRtaW5MaXN0BRBjYWxsZXJBZGRyZXNzU3RyBAdpc0FkbWluBAckbWF0Y2gwBQR0ZXN0AwkAAQIFByRtYXRjaDACBlN0cmluZwQBeAUHJG1hdGNoMAUBeAMJAAECBQckbWF0Y2gwAgRVbml0AghubyBhZG1pbgkAAgECC01hdGNoIGVycm9yAwkBAiE9AgUHaXNBZG1pbgIIbm8gYWRtaW4JAJQKAgkAzAgCCQELRGVsZXRlRW50cnkBBQh2YXJpYWJsZQUDbmlsBQR1bml0CQACAQkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgIPWW91IG5vdCBhZG1pbjogBQlhZG1pbkxpc3QCCywgaXNBZG1pbjogBQdpc0FkbWluAhQsIGNhbGxlckFkZHJlc3NTdHI6IAUQY2FsbGVyQWRkcmVzc1N0cgICLCAJAAIBAhBVbnNldCBhZG1pbiBsaXN0AQJ0eAEGdmVyaWZ5AAkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAAgFAnR4D3NlbmRlclB1YmxpY0tleUJVNzM=", "height": 2481715, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 9ejxPqM7ZP431yqGmetUrpen9jLQYRtHtsCJoqDzP8uT Next: 7J7uoWgHq71coxdhgtzi6qdNK1wgHG2cWKgaompgievq Diff:
OldNewDifferences
55
66 let b = base58'DuJUjEZJWmpFUo3bubFX8tomUVitqZZNAPuhd6KWgJNE'
77
8-let c = "DuJUjEZJWmpFUo3bubFX8tomUVitqZZNAPuhd6KWgJNE"
8+let c = base58'CX4p6XcuSBUvv44r1avCqYka5PYAVzBK5hSXaT7maU85'
99
10-let d = base58'CX4p6XcuSBUvv44r1avCqYka5PYAVzBK5hSXaT7maU85'
11-
12-@Callable(e)
13-func reissueTokensLoyalty () = if ((size(e.payments) == 0))
10+@Callable(d)
11+func reissueTokensLoyalty () = if ((size(d.payments) == 0))
1412 then throw("Payment not attached")
1513 else {
16- let f = {
17- let g = e.payments[0].assetId
18- if ($isInstanceOf(g, "ByteVector"))
14+ let e = {
15+ let f = d.payments[0].assetId
16+ if ($isInstanceOf(f, "ByteVector"))
1917 then {
20- let h = g
21- h
18+ let g = f
19+ g
2220 }
2321 else throw("Can't find asset")
2422 }
25- let i = {
26- let g = assetInfo(f)
27- if ($isInstanceOf(g, "Asset"))
23+ let h = {
24+ let f = assetInfo(e)
25+ if ($isInstanceOf(f, "Asset"))
2826 then {
29- let j = g
30- j
27+ let i = f
28+ i
3129 }
3230 else throw("Can't get info from payment")
3331 }
34- let k = {
35- let g = parseInt(split(i.description, ":")[1])
36- if ($isInstanceOf(g, "Int"))
32+ let j = {
33+ let f = parseInt(split(h.description, ":")[1])
34+ if ($isInstanceOf(f, "Int"))
3735 then {
38- let l = g
39- l
36+ let k = f
37+ k
4038 }
4139 else throw("Can't get quantity from payment")
4240 }
43- let m = {
44- let g = i.issuer
45- if ($isInstanceOf(g, "Address"))
41+ let l = {
42+ let f = h.issuer
43+ if ($isInstanceOf(f, "Address"))
4644 then {
47- let n = g
48- n
45+ let m = f
46+ m
4947 }
5048 else throw("Can't get issuer from payment")
5149 }
52- if ((toString(m) != toString(this)))
50+ if ((toString(l) != toString(this)))
5351 then throw("Issuer not options_addr")
5452 else {
55- let o = invoke(a, "reissueTokens", ["DuJUjEZJWmpFUo3bubFX8tomUVitqZZNAPuhd6KWgJNE", k], nil)
56- if ((o == o))
53+ let n = invoke(a, "reissueForDepAddr", [j], nil)
54+ if ((n == n))
5755 then {
58- let g = o
59- if ($isInstanceOf(g, "Int"))
56+ let f = n
57+ if ($isInstanceOf(f, "Int"))
6058 then {
61- let p = g
62- $Tuple2([ScriptTransfer(e.caller, k, b), IntegerEntry(("l_b_" + toBase58String(f)), k)], unit)
59+ let o = f
60+ $Tuple2([ScriptTransfer(d.caller, j, b), IntegerEntry(("l_b_" + toBase58String(e)), j)], unit)
6361 }
64- else throw({
65- let q = o
66- if ($isInstanceOf(q, "String"))
67- then q
68- else throw(($getType(q) + " couldn't be cast to String"))
69- })
62+ else throw("Incorrect invoke result")
7063 }
7164 else throw("Strict value is not equal to itself.")
7265 }
7467
7568
7669
77-@Callable(e)
78-func issueBill (r,s) = {
79- let t = toBase58String(e.caller.bytes)
80- let u = {
81- let g = getInteger(this, t)
82- if ($isInstanceOf(g, "Int"))
70+@Callable(d)
71+func issueBill (p,q) = {
72+ let r = toBase58String(d.caller.bytes)
73+ let s = {
74+ let f = getInteger(this, r)
75+ if ($isInstanceOf(f, "Int"))
8376 then {
84- let v = g
85- v
77+ let t = f
78+ t
8679 }
8780 else 0
8881 }
82+ let u = {
83+ let f = getString(a, "min_bill_deposit")
84+ if ($isInstanceOf(f, "Unit"))
85+ then "0"
86+ else if ($isInstanceOf(f, "String"))
87+ then {
88+ let v = f
89+ v
90+ }
91+ else throw("Match error")
92+ }
8993 let w = {
90- let g = getString(a, "min_bill_deposit")
91- if ($isInstanceOf(g, "Unit"))
92- then "0"
93- else if ($isInstanceOf(g, "String"))
94+ let f = parseInt(split(u, ".")[0])
95+ if ($isInstanceOf(f, "Unit"))
96+ then 0
97+ else if ($isInstanceOf(f, "Int"))
9498 then {
95- let x = g
99+ let x = f
96100 x
97101 }
98102 else throw("Match error")
99103 }
100104 let y = {
101- let g = parseInt(split(w, ".")[0])
102- if ($isInstanceOf(g, "Unit"))
105+ let f = getString(a, "exchange_rate")
106+ if ($isInstanceOf(f, "Unit"))
107+ then "0"
108+ else if ($isInstanceOf(f, "String"))
109+ then {
110+ let v = f
111+ v
112+ }
113+ else throw("Match error")
114+ }
115+ let z = {
116+ let f = parseInt(y)
117+ if ($isInstanceOf(f, "Unit"))
103118 then 0
104- else if ($isInstanceOf(g, "Int"))
119+ else if ($isInstanceOf(f, "Int"))
105120 then {
106- let z = g
107- z
121+ let x = f
122+ x
108123 }
109124 else throw("Match error")
110125 }
111126 let A = {
112- let g = getString(a, "exchange_rate")
113- if ($isInstanceOf(g, "Unit"))
127+ let f = getString(a, "share_guarantee_fee")
128+ if ($isInstanceOf(f, "Unit"))
114129 then "0"
115- else if ($isInstanceOf(g, "String"))
130+ else if ($isInstanceOf(f, "String"))
116131 then {
117- let x = g
132+ let v = f
133+ v
134+ }
135+ else throw("Match error")
136+ }
137+ let B = {
138+ let f = parseInt(A)
139+ if ($isInstanceOf(f, "Unit"))
140+ then 0
141+ else if ($isInstanceOf(f, "Int"))
142+ then {
143+ let x = f
118144 x
119145 }
120146 else throw("Match error")
121147 }
122- let B = {
123- let g = parseInt(A)
124- if ($isInstanceOf(g, "Unit"))
125- then 0
126- else if ($isInstanceOf(g, "Int"))
127- then {
128- let z = g
129- z
130- }
131- else throw("Match error")
132- }
133- let C = {
134- let g = getString(a, "share_guarantee_fee")
135- if ($isInstanceOf(g, "Unit"))
136- then "0"
137- else if ($isInstanceOf(g, "String"))
138- then {
139- let x = g
140- x
141- }
142- else throw("Match error")
143- }
144- let D = {
145- let g = parseInt(C)
146- if ($isInstanceOf(g, "Unit"))
147- then 0
148- else if ($isInstanceOf(g, "Int"))
149- then {
150- let z = g
151- z
152- }
153- else throw("Match error")
154- }
155- let E = (((y * B) * 100) / D)
156- let F = ((r * B) / D)
157- let G = (u - r)
158- if (((y * 100) > r))
159- then throw((((("The security deposit must be more than " + w) + ". You set the size: ") + toString((r / 100))) + ".00"))
160- else if ((0 > G))
148+ let C = (((w * z) * 100) / B)
149+ let D = ((p * z) / B)
150+ let E = (s - p)
151+ if (((w * 100) > p))
152+ then throw((((("The security deposit must be more than " + u) + ". You set the size: ") + toString((p / 100))) + ".00"))
153+ else if ((0 > E))
161154 then throw("Not enough balance")
162- else if ((E > s))
163- then throw((((("The nominal value of the promissory bill exceeds the collateral minimum " + toString(E)) + "₽ (") + w) + "tUSD)"))
164- else if ((s > F))
165- then throw((((("The value of the token cannot exceed the maximum " + toString(F)) + "₽ of the guarantee deposit (") + toString((r / 100))) + "tUSD)"))
155+ else if ((C > q))
156+ then throw((((("The nominal value of the promissory bill exceeds the collateral minimum " + toString(C)) + "₽ (") + u) + "tUSD)"))
157+ else if ((q > D))
158+ then throw((((("The value of the token cannot exceed the maximum " + toString(D)) + "₽ of the guarantee deposit (") + toString((p / 100))) + "tUSD)"))
166159 else {
167- let H = Issue(("bill for:" + toString((r / 100))), ((t + ":") + toString(s)), 1, 0, false)
168- let h = calculateAssetId(H)
169- $Tuple2([IntegerEntry(t, G), H, ScriptTransfer(e.caller, 1, h), IntegerEntry(("l_u_" + toBase58String(h)), r)], unit)
160+ let F = Issue(("bill for:" + toString((p / 100))), ((r + ":") + toString(q)), 1, 0, false)
161+ let g = calculateAssetId(F)
162+ $Tuple2([IntegerEntry(r, E), F, ScriptTransfer(d.caller, 1, g), IntegerEntry(("l_u_" + toBase58String(g)), p)], unit)
170163 }
171164 }
172165
173166
174167
175-@Callable(e)
176-func deposit () = if ((size(e.payments) == 0))
168+@Callable(d)
169+func deposit () = if ((size(d.payments) == 0))
177170 then throw("Payment not attached")
178171 else {
179- let I = value(e.payments)[0]
180- let J = {
181- let g = getString(a, "min_deposit")
182- if ($isInstanceOf(g, "Unit"))
172+ let G = value(d.payments)[0]
173+ let H = {
174+ let f = getString(a, "min_deposit")
175+ if ($isInstanceOf(f, "Unit"))
183176 then "0"
184- else if ($isInstanceOf(g, "String"))
177+ else if ($isInstanceOf(f, "String"))
185178 then {
186- let x = g
179+ let v = f
180+ v
181+ }
182+ else throw("Match error")
183+ }
184+ let I = {
185+ let f = parseInt(split(H, ".")[0])
186+ if ($isInstanceOf(f, "Unit"))
187+ then 0
188+ else if ($isInstanceOf(f, "Int"))
189+ then {
190+ let x = f
187191 x
188192 }
189193 else throw("Match error")
190194 }
191- let K = {
192- let g = parseInt(split(J, ".")[0])
193- if ($isInstanceOf(g, "Unit"))
194- then 0
195- else if ($isInstanceOf(g, "Int"))
196- then {
197- let z = g
198- z
199- }
200- else throw("Match error")
201- }
202- if ((I.assetId != d))
195+ if ((G.assetId != c))
203196 then throw("holded payment not tUSD")
204- else if (((K * 100) > I.amount))
205- then throw((((("You have set the deposit amount to " + toString((I.amount / 100))) + ".00, which is less than the minimum (") + J) + ")"))
197+ else if (((I * 100) > G.amount))
198+ then throw((((("You have set the deposit amount to " + toString((G.amount / 100))) + ".00, which is less than the minimum (") + H) + ")"))
206199 else {
207- let t = toBase58String(e.caller.bytes)
208- let u = {
209- let g = getInteger(this, t)
210- if ($isInstanceOf(g, "Int"))
200+ let r = toBase58String(d.caller.bytes)
201+ let s = {
202+ let f = getInteger(this, r)
203+ if ($isInstanceOf(f, "Int"))
211204 then {
212- let v = g
213- v
205+ let t = f
206+ t
214207 }
215208 else 0
216209 }
217- let G = (u + I.amount)
218-[IntegerEntry(t, G)]
210+ let E = (s + G.amount)
211+[IntegerEntry(r, E)]
219212 }
220213 }
221214
222215
223216
224-@Callable(e)
225-func withdraw (L) = {
226- let t = toBase58String(e.caller.bytes)
227- let u = {
228- let g = getInteger(this, t)
229- if ($isInstanceOf(g, "Int"))
217+@Callable(d)
218+func withdraw (J) = {
219+ let r = toBase58String(d.caller.bytes)
220+ let s = {
221+ let f = getInteger(this, r)
222+ if ($isInstanceOf(f, "Int"))
230223 then {
231- let v = g
232- v
224+ let t = f
225+ t
233226 }
234227 else 0
235228 }
236- let G = (u - L)
237- if ((0 > L))
229+ let E = (s - J)
230+ if ((0 > J))
238231 then throw("Can't withdraw negative amount")
239- else if ((0 > G))
232+ else if ((0 > E))
240233 then throw("Not enough balance")
241- else $Tuple2([IntegerEntry(t, G), ScriptTransfer(e.caller, L, d)], unit)
234+ else $Tuple2([IntegerEntry(r, E), ScriptTransfer(d.caller, J, c)], unit)
242235 }
243236
244237
245238
246-@Callable(e)
247-func setOptions (M,N) = {
248- let O = size(M)
249- if ((100 >= O))
239+@Callable(d)
240+func setOptions (K,L) = {
241+ let M = size(K)
242+ if ((100 >= M))
250243 then {
251- let P = {
252- let g = getString(a, "admin_list")
253- if ($isInstanceOf(g, "Unit"))
244+ let N = {
245+ let f = getString(a, "admin_list")
246+ if ($isInstanceOf(f, "Unit"))
254247 then "unset"
255- else if ($isInstanceOf(g, "String"))
248+ else if ($isInstanceOf(f, "String"))
256249 then {
257- let x = g
258- x
250+ let v = f
251+ v
259252 }
260253 else throw("Match error")
261254 }
262- func Q (R,S) = {
263- let T = R
264- let U = T._1
265- let V = T._2
266- $Tuple2((U :+ IntegerEntry(M[V], S)), (V + 1))
255+ func O (P,Q) = {
256+ let R = P
257+ let S = R._1
258+ let T = R._2
259+ $Tuple2((S :+ IntegerEntry(K[T], Q)), (T + 1))
267260 }
268261
269- let p = {
270- let W = N
271- let X = size(W)
272- let Y = $Tuple2(nil, 0)
273- func Z (aa,ab) = if ((ab >= X))
274- then aa
275- else Q(aa, W[ab])
262+ let o = {
263+ let U = L
264+ let V = size(U)
265+ let W = $Tuple2(nil, 0)
266+ func X (Y,Z) = if ((Z >= V))
267+ then Y
268+ else O(Y, U[Z])
276269
277- func ac (aa,ab) = if ((ab >= X))
278- then aa
270+ func aa (Y,Z) = if ((Z >= V))
271+ then Y
279272 else throw("List size exceeds 100")
280273
281- ac(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Y, 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)
274+ aa(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(W, 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)
282275 }
283- let ad = toString(e.caller)
284- if ((P != "unset"))
276+ let ab = toString(d.caller)
277+ if ((N != "unset"))
285278 then {
286- let ae = getString(addressFromStringValue(P), ad)
287- let af = {
288- let g = ae
289- if ($isInstanceOf(g, "String"))
279+ let ac = getString(addressFromStringValue(N), ab)
280+ let ad = {
281+ let f = ac
282+ if ($isInstanceOf(f, "String"))
290283 then {
291- let x = g
292- x
284+ let v = f
285+ v
293286 }
294- else if ($isInstanceOf(g, "Unit"))
287+ else if ($isInstanceOf(f, "Unit"))
295288 then "no admin"
296289 else throw("Match error")
297290 }
298- func ag (ah) = {
299- let ai = split(ah, "|")
300- StringEntry(ai[0], ai[1])
291+ func ae (af) = {
292+ let ag = split(af, "|")
293+ StringEntry(ag[0], ag[1])
301294 }
302295
303- if ((af != "no admin"))
304- then p
305- else throw((((((("You not admin: " + P) + ", isAdmin: ") + af) + ", callerAddressStr: ") + ad) + ", "))
296+ if ((ad != "no admin"))
297+ then o
298+ else throw((((((("You not admin: " + N) + ", isAdmin: ") + ad) + ", callerAddressStr: ") + ab) + ", "))
306299 }
307300 else throw("Unset admin list")
308301 }
311304
312305
313306
314-@Callable(e)
315-func setOption (aj,ak) = {
316- let P = {
317- let g = getString(a, "admin_list")
318- if ($isInstanceOf(g, "Unit"))
307+@Callable(d)
308+func setOption (ah,ai) = {
309+ let N = {
310+ let f = getString(a, "admin_list")
311+ if ($isInstanceOf(f, "Unit"))
319312 then "unset"
320- else if ($isInstanceOf(g, "String"))
313+ else if ($isInstanceOf(f, "String"))
321314 then {
322- let x = g
323- x
315+ let v = f
316+ v
324317 }
325318 else throw("Match error")
326319 }
327- let ad = toString(e.caller)
328- if ((P != "unset"))
320+ let ab = toString(d.caller)
321+ if ((N != "unset"))
329322 then {
330- let ae = getString(addressFromStringValue(P), ad)
331- let af = {
332- let g = ae
333- if ($isInstanceOf(g, "String"))
323+ let ac = getString(addressFromStringValue(N), ab)
324+ let ad = {
325+ let f = ac
326+ if ($isInstanceOf(f, "String"))
334327 then {
335- let x = g
336- x
328+ let v = f
329+ v
337330 }
338- else if ($isInstanceOf(g, "Unit"))
331+ else if ($isInstanceOf(f, "Unit"))
339332 then "no admin"
340333 else throw("Match error")
341334 }
342- if ((af != "no admin"))
343- then $Tuple2([StringEntry(aj, ak)], unit)
344- else throw((((((("You not admin: " + P) + ", isAdmin: ") + af) + ", callerAddressStr: ") + ad) + ", "))
335+ if ((ad != "no admin"))
336+ then $Tuple2([StringEntry(ah, ai)], unit)
337+ else throw((((((("You not admin: " + N) + ", isAdmin: ") + ad) + ", callerAddressStr: ") + ab) + ", "))
345338 }
346339 else throw("Unset admin list")
347340 }
348341
349342
350343
351-@Callable(e)
352-func delOption (aj) = {
353- let P = {
354- let g = getString(a, "admin_list")
355- if ($isInstanceOf(g, "Unit"))
344+@Callable(d)
345+func delOption (ah) = {
346+ let N = {
347+ let f = getString(a, "admin_list")
348+ if ($isInstanceOf(f, "Unit"))
356349 then "unset"
357- else if ($isInstanceOf(g, "String"))
350+ else if ($isInstanceOf(f, "String"))
358351 then {
359- let x = g
360- x
352+ let v = f
353+ v
361354 }
362355 else throw("Match error")
363356 }
364- let ad = toString(e.caller)
365- if ((P != "unset"))
357+ let ab = toString(d.caller)
358+ if ((N != "unset"))
366359 then {
367- let ae = getString(addressFromStringValue(P), ad)
368- let af = {
369- let g = ae
370- if ($isInstanceOf(g, "String"))
360+ let ac = getString(addressFromStringValue(N), ab)
361+ let ad = {
362+ let f = ac
363+ if ($isInstanceOf(f, "String"))
371364 then {
372- let x = g
373- x
365+ let v = f
366+ v
374367 }
375- else if ($isInstanceOf(g, "Unit"))
368+ else if ($isInstanceOf(f, "Unit"))
376369 then "no admin"
377370 else throw("Match error")
378371 }
379- if ((af != "no admin"))
380- then $Tuple2([DeleteEntry(aj)], unit)
381- else throw((((((("You not admin: " + P) + ", isAdmin: ") + af) + ", callerAddressStr: ") + ad) + ", "))
372+ if ((ad != "no admin"))
373+ then $Tuple2([DeleteEntry(ah)], unit)
374+ else throw((((((("You not admin: " + N) + ", isAdmin: ") + ad) + ", callerAddressStr: ") + ab) + ", "))
382375 }
383376 else throw("Unset admin list")
384377 }
385378
386379
387-@Verifier(al)
388-func am () = sigVerify(al.bodyBytes, al.proofs[0], al.senderPublicKey)
380+@Verifier(aj)
381+func ak () = sigVerify(aj.bodyBytes, aj.proofs[0], aj.senderPublicKey)
389382
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = Address(base58'3MusfsY6PqDh1YnF7YyTi5ffVT16Dm2bqf6')
55
66 let b = base58'DuJUjEZJWmpFUo3bubFX8tomUVitqZZNAPuhd6KWgJNE'
77
8-let c = "DuJUjEZJWmpFUo3bubFX8tomUVitqZZNAPuhd6KWgJNE"
8+let c = base58'CX4p6XcuSBUvv44r1avCqYka5PYAVzBK5hSXaT7maU85'
99
10-let d = base58'CX4p6XcuSBUvv44r1avCqYka5PYAVzBK5hSXaT7maU85'
11-
12-@Callable(e)
13-func reissueTokensLoyalty () = if ((size(e.payments) == 0))
10+@Callable(d)
11+func reissueTokensLoyalty () = if ((size(d.payments) == 0))
1412 then throw("Payment not attached")
1513 else {
16- let f = {
17- let g = e.payments[0].assetId
18- if ($isInstanceOf(g, "ByteVector"))
14+ let e = {
15+ let f = d.payments[0].assetId
16+ if ($isInstanceOf(f, "ByteVector"))
1917 then {
20- let h = g
21- h
18+ let g = f
19+ g
2220 }
2321 else throw("Can't find asset")
2422 }
25- let i = {
26- let g = assetInfo(f)
27- if ($isInstanceOf(g, "Asset"))
23+ let h = {
24+ let f = assetInfo(e)
25+ if ($isInstanceOf(f, "Asset"))
2826 then {
29- let j = g
30- j
27+ let i = f
28+ i
3129 }
3230 else throw("Can't get info from payment")
3331 }
34- let k = {
35- let g = parseInt(split(i.description, ":")[1])
36- if ($isInstanceOf(g, "Int"))
32+ let j = {
33+ let f = parseInt(split(h.description, ":")[1])
34+ if ($isInstanceOf(f, "Int"))
3735 then {
38- let l = g
39- l
36+ let k = f
37+ k
4038 }
4139 else throw("Can't get quantity from payment")
4240 }
43- let m = {
44- let g = i.issuer
45- if ($isInstanceOf(g, "Address"))
41+ let l = {
42+ let f = h.issuer
43+ if ($isInstanceOf(f, "Address"))
4644 then {
47- let n = g
48- n
45+ let m = f
46+ m
4947 }
5048 else throw("Can't get issuer from payment")
5149 }
52- if ((toString(m) != toString(this)))
50+ if ((toString(l) != toString(this)))
5351 then throw("Issuer not options_addr")
5452 else {
55- let o = invoke(a, "reissueTokens", ["DuJUjEZJWmpFUo3bubFX8tomUVitqZZNAPuhd6KWgJNE", k], nil)
56- if ((o == o))
53+ let n = invoke(a, "reissueForDepAddr", [j], nil)
54+ if ((n == n))
5755 then {
58- let g = o
59- if ($isInstanceOf(g, "Int"))
56+ let f = n
57+ if ($isInstanceOf(f, "Int"))
6058 then {
61- let p = g
62- $Tuple2([ScriptTransfer(e.caller, k, b), IntegerEntry(("l_b_" + toBase58String(f)), k)], unit)
59+ let o = f
60+ $Tuple2([ScriptTransfer(d.caller, j, b), IntegerEntry(("l_b_" + toBase58String(e)), j)], unit)
6361 }
64- else throw({
65- let q = o
66- if ($isInstanceOf(q, "String"))
67- then q
68- else throw(($getType(q) + " couldn't be cast to String"))
69- })
62+ else throw("Incorrect invoke result")
7063 }
7164 else throw("Strict value is not equal to itself.")
7265 }
7366 }
7467
7568
7669
77-@Callable(e)
78-func issueBill (r,s) = {
79- let t = toBase58String(e.caller.bytes)
80- let u = {
81- let g = getInteger(this, t)
82- if ($isInstanceOf(g, "Int"))
70+@Callable(d)
71+func issueBill (p,q) = {
72+ let r = toBase58String(d.caller.bytes)
73+ let s = {
74+ let f = getInteger(this, r)
75+ if ($isInstanceOf(f, "Int"))
8376 then {
84- let v = g
85- v
77+ let t = f
78+ t
8679 }
8780 else 0
8881 }
82+ let u = {
83+ let f = getString(a, "min_bill_deposit")
84+ if ($isInstanceOf(f, "Unit"))
85+ then "0"
86+ else if ($isInstanceOf(f, "String"))
87+ then {
88+ let v = f
89+ v
90+ }
91+ else throw("Match error")
92+ }
8993 let w = {
90- let g = getString(a, "min_bill_deposit")
91- if ($isInstanceOf(g, "Unit"))
92- then "0"
93- else if ($isInstanceOf(g, "String"))
94+ let f = parseInt(split(u, ".")[0])
95+ if ($isInstanceOf(f, "Unit"))
96+ then 0
97+ else if ($isInstanceOf(f, "Int"))
9498 then {
95- let x = g
99+ let x = f
96100 x
97101 }
98102 else throw("Match error")
99103 }
100104 let y = {
101- let g = parseInt(split(w, ".")[0])
102- if ($isInstanceOf(g, "Unit"))
105+ let f = getString(a, "exchange_rate")
106+ if ($isInstanceOf(f, "Unit"))
107+ then "0"
108+ else if ($isInstanceOf(f, "String"))
109+ then {
110+ let v = f
111+ v
112+ }
113+ else throw("Match error")
114+ }
115+ let z = {
116+ let f = parseInt(y)
117+ if ($isInstanceOf(f, "Unit"))
103118 then 0
104- else if ($isInstanceOf(g, "Int"))
119+ else if ($isInstanceOf(f, "Int"))
105120 then {
106- let z = g
107- z
121+ let x = f
122+ x
108123 }
109124 else throw("Match error")
110125 }
111126 let A = {
112- let g = getString(a, "exchange_rate")
113- if ($isInstanceOf(g, "Unit"))
127+ let f = getString(a, "share_guarantee_fee")
128+ if ($isInstanceOf(f, "Unit"))
114129 then "0"
115- else if ($isInstanceOf(g, "String"))
130+ else if ($isInstanceOf(f, "String"))
116131 then {
117- let x = g
132+ let v = f
133+ v
134+ }
135+ else throw("Match error")
136+ }
137+ let B = {
138+ let f = parseInt(A)
139+ if ($isInstanceOf(f, "Unit"))
140+ then 0
141+ else if ($isInstanceOf(f, "Int"))
142+ then {
143+ let x = f
118144 x
119145 }
120146 else throw("Match error")
121147 }
122- let B = {
123- let g = parseInt(A)
124- if ($isInstanceOf(g, "Unit"))
125- then 0
126- else if ($isInstanceOf(g, "Int"))
127- then {
128- let z = g
129- z
130- }
131- else throw("Match error")
132- }
133- let C = {
134- let g = getString(a, "share_guarantee_fee")
135- if ($isInstanceOf(g, "Unit"))
136- then "0"
137- else if ($isInstanceOf(g, "String"))
138- then {
139- let x = g
140- x
141- }
142- else throw("Match error")
143- }
144- let D = {
145- let g = parseInt(C)
146- if ($isInstanceOf(g, "Unit"))
147- then 0
148- else if ($isInstanceOf(g, "Int"))
149- then {
150- let z = g
151- z
152- }
153- else throw("Match error")
154- }
155- let E = (((y * B) * 100) / D)
156- let F = ((r * B) / D)
157- let G = (u - r)
158- if (((y * 100) > r))
159- then throw((((("The security deposit must be more than " + w) + ". You set the size: ") + toString((r / 100))) + ".00"))
160- else if ((0 > G))
148+ let C = (((w * z) * 100) / B)
149+ let D = ((p * z) / B)
150+ let E = (s - p)
151+ if (((w * 100) > p))
152+ then throw((((("The security deposit must be more than " + u) + ". You set the size: ") + toString((p / 100))) + ".00"))
153+ else if ((0 > E))
161154 then throw("Not enough balance")
162- else if ((E > s))
163- then throw((((("The nominal value of the promissory bill exceeds the collateral minimum " + toString(E)) + "₽ (") + w) + "tUSD)"))
164- else if ((s > F))
165- then throw((((("The value of the token cannot exceed the maximum " + toString(F)) + "₽ of the guarantee deposit (") + toString((r / 100))) + "tUSD)"))
155+ else if ((C > q))
156+ then throw((((("The nominal value of the promissory bill exceeds the collateral minimum " + toString(C)) + "₽ (") + u) + "tUSD)"))
157+ else if ((q > D))
158+ then throw((((("The value of the token cannot exceed the maximum " + toString(D)) + "₽ of the guarantee deposit (") + toString((p / 100))) + "tUSD)"))
166159 else {
167- let H = Issue(("bill for:" + toString((r / 100))), ((t + ":") + toString(s)), 1, 0, false)
168- let h = calculateAssetId(H)
169- $Tuple2([IntegerEntry(t, G), H, ScriptTransfer(e.caller, 1, h), IntegerEntry(("l_u_" + toBase58String(h)), r)], unit)
160+ let F = Issue(("bill for:" + toString((p / 100))), ((r + ":") + toString(q)), 1, 0, false)
161+ let g = calculateAssetId(F)
162+ $Tuple2([IntegerEntry(r, E), F, ScriptTransfer(d.caller, 1, g), IntegerEntry(("l_u_" + toBase58String(g)), p)], unit)
170163 }
171164 }
172165
173166
174167
175-@Callable(e)
176-func deposit () = if ((size(e.payments) == 0))
168+@Callable(d)
169+func deposit () = if ((size(d.payments) == 0))
177170 then throw("Payment not attached")
178171 else {
179- let I = value(e.payments)[0]
180- let J = {
181- let g = getString(a, "min_deposit")
182- if ($isInstanceOf(g, "Unit"))
172+ let G = value(d.payments)[0]
173+ let H = {
174+ let f = getString(a, "min_deposit")
175+ if ($isInstanceOf(f, "Unit"))
183176 then "0"
184- else if ($isInstanceOf(g, "String"))
177+ else if ($isInstanceOf(f, "String"))
185178 then {
186- let x = g
179+ let v = f
180+ v
181+ }
182+ else throw("Match error")
183+ }
184+ let I = {
185+ let f = parseInt(split(H, ".")[0])
186+ if ($isInstanceOf(f, "Unit"))
187+ then 0
188+ else if ($isInstanceOf(f, "Int"))
189+ then {
190+ let x = f
187191 x
188192 }
189193 else throw("Match error")
190194 }
191- let K = {
192- let g = parseInt(split(J, ".")[0])
193- if ($isInstanceOf(g, "Unit"))
194- then 0
195- else if ($isInstanceOf(g, "Int"))
196- then {
197- let z = g
198- z
199- }
200- else throw("Match error")
201- }
202- if ((I.assetId != d))
195+ if ((G.assetId != c))
203196 then throw("holded payment not tUSD")
204- else if (((K * 100) > I.amount))
205- then throw((((("You have set the deposit amount to " + toString((I.amount / 100))) + ".00, which is less than the minimum (") + J) + ")"))
197+ else if (((I * 100) > G.amount))
198+ then throw((((("You have set the deposit amount to " + toString((G.amount / 100))) + ".00, which is less than the minimum (") + H) + ")"))
206199 else {
207- let t = toBase58String(e.caller.bytes)
208- let u = {
209- let g = getInteger(this, t)
210- if ($isInstanceOf(g, "Int"))
200+ let r = toBase58String(d.caller.bytes)
201+ let s = {
202+ let f = getInteger(this, r)
203+ if ($isInstanceOf(f, "Int"))
211204 then {
212- let v = g
213- v
205+ let t = f
206+ t
214207 }
215208 else 0
216209 }
217- let G = (u + I.amount)
218-[IntegerEntry(t, G)]
210+ let E = (s + G.amount)
211+[IntegerEntry(r, E)]
219212 }
220213 }
221214
222215
223216
224-@Callable(e)
225-func withdraw (L) = {
226- let t = toBase58String(e.caller.bytes)
227- let u = {
228- let g = getInteger(this, t)
229- if ($isInstanceOf(g, "Int"))
217+@Callable(d)
218+func withdraw (J) = {
219+ let r = toBase58String(d.caller.bytes)
220+ let s = {
221+ let f = getInteger(this, r)
222+ if ($isInstanceOf(f, "Int"))
230223 then {
231- let v = g
232- v
224+ let t = f
225+ t
233226 }
234227 else 0
235228 }
236- let G = (u - L)
237- if ((0 > L))
229+ let E = (s - J)
230+ if ((0 > J))
238231 then throw("Can't withdraw negative amount")
239- else if ((0 > G))
232+ else if ((0 > E))
240233 then throw("Not enough balance")
241- else $Tuple2([IntegerEntry(t, G), ScriptTransfer(e.caller, L, d)], unit)
234+ else $Tuple2([IntegerEntry(r, E), ScriptTransfer(d.caller, J, c)], unit)
242235 }
243236
244237
245238
246-@Callable(e)
247-func setOptions (M,N) = {
248- let O = size(M)
249- if ((100 >= O))
239+@Callable(d)
240+func setOptions (K,L) = {
241+ let M = size(K)
242+ if ((100 >= M))
250243 then {
251- let P = {
252- let g = getString(a, "admin_list")
253- if ($isInstanceOf(g, "Unit"))
244+ let N = {
245+ let f = getString(a, "admin_list")
246+ if ($isInstanceOf(f, "Unit"))
254247 then "unset"
255- else if ($isInstanceOf(g, "String"))
248+ else if ($isInstanceOf(f, "String"))
256249 then {
257- let x = g
258- x
250+ let v = f
251+ v
259252 }
260253 else throw("Match error")
261254 }
262- func Q (R,S) = {
263- let T = R
264- let U = T._1
265- let V = T._2
266- $Tuple2((U :+ IntegerEntry(M[V], S)), (V + 1))
255+ func O (P,Q) = {
256+ let R = P
257+ let S = R._1
258+ let T = R._2
259+ $Tuple2((S :+ IntegerEntry(K[T], Q)), (T + 1))
267260 }
268261
269- let p = {
270- let W = N
271- let X = size(W)
272- let Y = $Tuple2(nil, 0)
273- func Z (aa,ab) = if ((ab >= X))
274- then aa
275- else Q(aa, W[ab])
262+ let o = {
263+ let U = L
264+ let V = size(U)
265+ let W = $Tuple2(nil, 0)
266+ func X (Y,Z) = if ((Z >= V))
267+ then Y
268+ else O(Y, U[Z])
276269
277- func ac (aa,ab) = if ((ab >= X))
278- then aa
270+ func aa (Y,Z) = if ((Z >= V))
271+ then Y
279272 else throw("List size exceeds 100")
280273
281- ac(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Y, 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)
274+ aa(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(X(W, 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)
282275 }
283- let ad = toString(e.caller)
284- if ((P != "unset"))
276+ let ab = toString(d.caller)
277+ if ((N != "unset"))
285278 then {
286- let ae = getString(addressFromStringValue(P), ad)
287- let af = {
288- let g = ae
289- if ($isInstanceOf(g, "String"))
279+ let ac = getString(addressFromStringValue(N), ab)
280+ let ad = {
281+ let f = ac
282+ if ($isInstanceOf(f, "String"))
290283 then {
291- let x = g
292- x
284+ let v = f
285+ v
293286 }
294- else if ($isInstanceOf(g, "Unit"))
287+ else if ($isInstanceOf(f, "Unit"))
295288 then "no admin"
296289 else throw("Match error")
297290 }
298- func ag (ah) = {
299- let ai = split(ah, "|")
300- StringEntry(ai[0], ai[1])
291+ func ae (af) = {
292+ let ag = split(af, "|")
293+ StringEntry(ag[0], ag[1])
301294 }
302295
303- if ((af != "no admin"))
304- then p
305- else throw((((((("You not admin: " + P) + ", isAdmin: ") + af) + ", callerAddressStr: ") + ad) + ", "))
296+ if ((ad != "no admin"))
297+ then o
298+ else throw((((((("You not admin: " + N) + ", isAdmin: ") + ad) + ", callerAddressStr: ") + ab) + ", "))
306299 }
307300 else throw("Unset admin list")
308301 }
309302 else throw("The number of list elements must not exceed 100")
310303 }
311304
312305
313306
314-@Callable(e)
315-func setOption (aj,ak) = {
316- let P = {
317- let g = getString(a, "admin_list")
318- if ($isInstanceOf(g, "Unit"))
307+@Callable(d)
308+func setOption (ah,ai) = {
309+ let N = {
310+ let f = getString(a, "admin_list")
311+ if ($isInstanceOf(f, "Unit"))
319312 then "unset"
320- else if ($isInstanceOf(g, "String"))
313+ else if ($isInstanceOf(f, "String"))
321314 then {
322- let x = g
323- x
315+ let v = f
316+ v
324317 }
325318 else throw("Match error")
326319 }
327- let ad = toString(e.caller)
328- if ((P != "unset"))
320+ let ab = toString(d.caller)
321+ if ((N != "unset"))
329322 then {
330- let ae = getString(addressFromStringValue(P), ad)
331- let af = {
332- let g = ae
333- if ($isInstanceOf(g, "String"))
323+ let ac = getString(addressFromStringValue(N), ab)
324+ let ad = {
325+ let f = ac
326+ if ($isInstanceOf(f, "String"))
334327 then {
335- let x = g
336- x
328+ let v = f
329+ v
337330 }
338- else if ($isInstanceOf(g, "Unit"))
331+ else if ($isInstanceOf(f, "Unit"))
339332 then "no admin"
340333 else throw("Match error")
341334 }
342- if ((af != "no admin"))
343- then $Tuple2([StringEntry(aj, ak)], unit)
344- else throw((((((("You not admin: " + P) + ", isAdmin: ") + af) + ", callerAddressStr: ") + ad) + ", "))
335+ if ((ad != "no admin"))
336+ then $Tuple2([StringEntry(ah, ai)], unit)
337+ else throw((((((("You not admin: " + N) + ", isAdmin: ") + ad) + ", callerAddressStr: ") + ab) + ", "))
345338 }
346339 else throw("Unset admin list")
347340 }
348341
349342
350343
351-@Callable(e)
352-func delOption (aj) = {
353- let P = {
354- let g = getString(a, "admin_list")
355- if ($isInstanceOf(g, "Unit"))
344+@Callable(d)
345+func delOption (ah) = {
346+ let N = {
347+ let f = getString(a, "admin_list")
348+ if ($isInstanceOf(f, "Unit"))
356349 then "unset"
357- else if ($isInstanceOf(g, "String"))
350+ else if ($isInstanceOf(f, "String"))
358351 then {
359- let x = g
360- x
352+ let v = f
353+ v
361354 }
362355 else throw("Match error")
363356 }
364- let ad = toString(e.caller)
365- if ((P != "unset"))
357+ let ab = toString(d.caller)
358+ if ((N != "unset"))
366359 then {
367- let ae = getString(addressFromStringValue(P), ad)
368- let af = {
369- let g = ae
370- if ($isInstanceOf(g, "String"))
360+ let ac = getString(addressFromStringValue(N), ab)
361+ let ad = {
362+ let f = ac
363+ if ($isInstanceOf(f, "String"))
371364 then {
372- let x = g
373- x
365+ let v = f
366+ v
374367 }
375- else if ($isInstanceOf(g, "Unit"))
368+ else if ($isInstanceOf(f, "Unit"))
376369 then "no admin"
377370 else throw("Match error")
378371 }
379- if ((af != "no admin"))
380- then $Tuple2([DeleteEntry(aj)], unit)
381- else throw((((((("You not admin: " + P) + ", isAdmin: ") + af) + ", callerAddressStr: ") + ad) + ", "))
372+ if ((ad != "no admin"))
373+ then $Tuple2([DeleteEntry(ah)], unit)
374+ else throw((((((("You not admin: " + N) + ", isAdmin: ") + ad) + ", callerAddressStr: ") + ab) + ", "))
382375 }
383376 else throw("Unset admin list")
384377 }
385378
386379
387-@Verifier(al)
388-func am () = sigVerify(al.bodyBytes, al.proofs[0], al.senderPublicKey)
380+@Verifier(aj)
381+func ak () = sigVerify(aj.bodyBytes, aj.proofs[0], aj.senderPublicKey)
389382

github/deemru/w8io/169f3d6 
239.02 ms