tx · 26JwJwPp4ZdB4ztaGbVeMgmENzZtkP51PRtnBtBKi25T

3N61Cvq5XcnPk9rxpy2Rnp3bSr4syNGUJph:  -0.01400000 Waves

2021.12.14 21:49 [1834307] smart account 3N61Cvq5XcnPk9rxpy2Rnp3bSr4syNGUJph > SELF 0.00000000 Waves

{ "type": 13, "id": "26JwJwPp4ZdB4ztaGbVeMgmENzZtkP51PRtnBtBKi25T", "fee": 1400000, "feeAssetId": null, "timestamp": 1639507774069, "version": 2, "chainId": 84, "sender": "3N61Cvq5XcnPk9rxpy2Rnp3bSr4syNGUJph", "senderPublicKey": "G7cNXePvAHUHmZfXa1eHnvFeH6DuykPC5wm9v9djTKgD", "proofs": [ "zoHaJ6thxkseZ3UaW7a6fmhdYmDMHobW7sGt9Gsg7ufEpcib7aFgvXxfrMPFDfgsmxvDoTyBAsu2bABGvsPWrWn" ], "script": "base64:AAIFAAAAAAAABwsIAhIGCgQYGBgREgMKARgSBgoECAEYERIGCgQICAEBEgASAwoBCBIDCgEIEgMKAQgSBAoCGBQaIQoBQRIcZ2VuZXJhdGVQb29sU2VydmljZVRva2VuS2V5cxoqCgFCEiVnZW5lcmF0ZVBvb2xMaXF1aWRpdHlUb2tlbkRlY2ltYWxLZXlzGhsKAUMSFmdlbmVyYXRlUG9vbEFjdGl2ZUtleXMaFAoBRBIPcG9vbEJhbGFuY2VLZXlzGgcKAUUSAiRsGgcKAUYSAiRzGgoKAUcSBSRhY2MwGgoKAUgSBSRmMF8xGgcKAUkSAiRhGgcKAUoSAiRpGgoKAUsSBSRmMF8yGhsKAUwSFnBvb2xMaXF1aWRpdHlUb2tlbktleXMaCgoBTRIFJGYxXzEaCgoBThIFJGYxXzIaGQoBTxIUcG9vbFNlcnZpY2VUb2tlbktleXMaCgoBUBIFJGYyXzEaCgoBURIFJGYyXzIaIgoBUhIdcG9vbExpcXVpZGl0eVRva2VuRGVjaW1hbEtleXMaCgoBUxIFJGYzXzEaCgoBVBIFJGYzXzIaEwoBVRIOcG9vbEFjdGl2ZUtleXMaCgoBVhIFJGY0XzEaCgoBVxIFJGY0XzIaDAoBWBIHcmVjb3JkcxoZCgFZEhRnZW5lcmF0ZURlbGV0aW5nS2V5cxoLCgFaEgZyZWNvcmQaDwoBYRIKZGVwb3NpdEZlZRobCgJhQRIVbGlxdWlkdXR5QXNzZXRBZGRyZXNzGhsKAmFCEhVsaXF1aWRpdHlUb2tlbkRlY2ltYWwaCwoCYUMSBWFzc2V0GhAKAmFEEgpwb29sQW1vdW50GhAKAmFFEgp1c2VyQW1vdW50GhMKAmFGEg1uZXdQb29sQW1vdW50GhoKAmFHEhR1c2VyQW1vdW50V2l0aG91dEZlZRoJCgJhSBIDZmVlGhcKAmFJEhFuZXdVc2VyUG9vbEFtb3VudBoTCgJhShINbG9ja1Rva2Vuc0tleRoWCgJhSxIQYW1vdW50V2l0aG91dEZlZRoTCgJhTBINdXNlclJld2FyZEtleRoQCgJhTRIKdXNlclJld2FyZBoOCgJhThIIc3RhdHVzZXMaDAoCYU8SBnN0YXR1cxoICgJhUBICYjYaCAoCYVESAmI3GhAKAmFhEgpkZWxldGVLZXlzGhEKAmFiEgt0b3RhbFJld2FyZBoNCgJhYxIHd2FsbGV0cxoSCgJhZBIMcmV3YXJkVmFsdWVzGhUKAmFlEg9nZW5lcmF0ZVJlY29yZHMaDAoCYWYSBndhbGxldBoRCgJhZxILd2FsbGV0SW5kZXgaEQoCYWgSC3Jld2FyZFZhbHVlGg8KAmFpEglyZXdhcmRLZXkaGAoCYWoSEnVzZXJQcmV2aW91c1Jld2FyZBoJCgJhaxIDaW50GhMKAmFsEg11c2VyTmV3UmV3YXJkGg0KAmFtEgdyZXdhcmRzGhYKAmFuEhBkQXBwQXNzZXRBZGRyZXNzGgoKAmFvEgRuYW1lGhEKAmFwEgtkZXNjcmlwdGlvbhoOCgJhcRIIcXVhbnRpdHkaDgoCYXISCGRlY2ltYWxzGggKAmFzEgJhOBoMCgJhdBIGYW1vdW50Gg0KAmF1Egdhc3NldElkGhMKAmF2Eg1hc3NldElkU3RyaW5nGggKAmF3EgJpZBoTCgJheBINcG9vbEFtb3VudEtleRoRCgJheRILdXNlckFkZHJlc3MaFwoCYXoSEXVzZXJQb29sQW1vdW50S2V5GhIKAWISDWNvbnRyb2xsZXJGZWUaEAoBYxILcGxhdGZvcm1GZWUaEQoBZBIMYWRtaW5QdWJLZXkxGhEKAWUSDGFkbWluUHViS2V5MhoRCgFmEgxhZG1pblB1YktleTMaFgoBZxIRZ292ZXJtYW5jZUFkZHJlc3MaEQoBaBIMaXNQb29sQWN0aXZlGgkKAWkSBHBvb2waDAoBahIHa0FjdGl2ZRoNCgFrEghpc0FjdGl2ZRoYCgFsEhNnZXREQXBwQXNzZXRBZGRyZXNzGgwKAW0SByRtYXRjaDAaCwoBbhIGc3RyaW5nGgwKAW8SB25vdGhpbmcaHQoBcBIYZ2V0TGlxdWlkdXR5QXNzZXRBZGRyZXNzGgYKAXESAWkaCgoBchIFcG9vbHMaFAoBcxIPbGlxdWlkaXR5VG9rZW5zGhIKAXQSDXNlcnZpY2VUb2tlbnMaGwoBdRIWbGlxdWlkaXR5VG9rZW5EZWNpbWFscxoVCgF2EhBnZW5lcmF0ZVBvb2xLZXlzGhAKAXcSC2FjY3VtdWxhdGVkGiMKAXgSHmdlbmVyYXRlUG9vbExpcXVpZGl0eVRva2VuS2V5cxoOCgF5Eglwb29sSW5kZXgaEwoBehIO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AQAAAAFIAAAAAgkBAAAAAUgAAAACCQEAAAABSAAAAAIJAQAAAAFIAAAAAgkBAAAAAUgAAAACCQEAAAABSAAAAAIJAQAAAAFIAAAAAgkBAAAAAUgAAAACCQEAAAABSAAAAAIJAQAAAAFIAAAAAgkBAAAAAUgAAAACCQEAAAABSAAAAAIJAQAAAAFIAAAAAgkBAAAAAUgAAAACCQEAAAABSAAAAAIJAQAAAAFIAAAAAgkBAAAAAUgAAAACCQEAAAABSAAAAAIJAQAAAAFIAAAAAgkBAAAAAUgAAAACCQEAAAABSAAAAAIJAQAAAAFIAAAAAgkBAAAAAUgAAAACCQEAAAABSAAAAAIJAQAAAAFIAAAAAgkBAAAAAUgAAAACCQEAAAABSAAAAAIJAQAAAAFIAAAAAgkBAAAAAUgAAAACCQEAAAABSAAAAAIJAQAAAAFIAAAAAgkBAAAAAUgAAAACCQEAAAABSAAAAAIJAQAAAAFIAAAAAgkBAAAAAUgAAAACCQEAAAABSAAAAAIJAQAAAAFIAAAAAgkBAAAAAUgAAAACCQEAAAABSAAAAAIJAQAAAAFIAAAAAgkBAAAAAUgAAAACCQEAAAABSAAAAAIJAQAAAAFIAAAAAgkBAAAAAUgAAAACCQEAAAABSAAAAAIJAQAAAAFIAAAAAgkBAAAAAUgAAAACCQEAAAABSAAAAAIJAQAAAAFIAAAAAgkBAAAAAUgAAAACCQEAAAABSAAAAAIJAQAAAAFIAAAAAgkBAAAAAUgAAAACCQEAAAABSAAAAAIJAQAAAAFIAAAAAgkBAAAAAUgAAAACCQEAAAABSAAAAAIJAQAAAAFIAAAAAgkBAAAAAUgAAAACCQEAAAABSAAAAAIJAQAAAAFIAAAAAgkBAAAAAUgAAAACCQEAAAABSAAAAAIJAQAAAAFIAAAAAgkBAAAAAUgAAAACCQEAAAABSAAAAAIJAQAAAAFIAAAAAgkBAAAAAUgAAAACCQEAAAABSAAAAAIJAQAAAAFIAAAAAgkBAAAAAUgAAAACCQEAAAABSAAAAAIJAQAAAAFIAAAAAgkBAAAAAUgAAAACCQEAAAABSAAAAAIJAQAAAAFIAAAAAgkBAAAAAUgAAAACCQEAAAABSAAAAAIJAQAAAAFIAAAAAgkBAAAAAUgAAAACCQEAAAABSAAAAAIJAQAAAAFIAAAAAgkBAAAAAUgAAAACCQEAAAABSAAAAAIJAQAAAAFIAAAAAgkBAAAAAUgAAAACCQEAAAABSAAAAAIJAQAAAAFIAAAAAgkBAAAAAUgAAAACCQEAAAABSAAAAAIJAQAAAAFIAAAAAgkBAAAAAUgAAAACCQEAAAABSAAAAAIFAAAAAUcAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAIAAAAAAAAAAAMAAAAAAAAAAAQAAAAAAAAAAAUAAAAAAAAAAAYAAAAAAAAAAAcAAAAAAAAAAAgAAAAAAAAAAAkAAAAAAAAAAAoAAAAAAAAAAAsAAAAAAAAAAAwAAAAAAAAAAA0AAAAAAAAAAA4AAAAAAAAAAA8AAAAAAAAAABAAAAAAAAAAABEAAAAAAAAAABIAAAAAAAAAABMAAAAAAAAAABQAAAAAAAAAABUAAAAAAAAAABYAAAAAAAAAABcAAAAAAAAAABgAAAAAAAAAABkAAAAAAAAAABoAAAAAAAAAABsAAAAAAAAAABwAAAAAAAAAAB0AAAAAAAAAAB4AAAAAAAAAAB8AAAAAAAAAACAAAAAAAAAAACEAAAAAAAAAACIAAAAAAAAAACMAAAAAAAAAACQAAAAAAAAAACUAAAAAAAAAACYAAAAAAAAAACcAAAAAAAAAACgAAAAAAAAAACkAAAAAAAAAACoAAAAAAAAAACsAAAAAAAAAACwAAAAAAAAAAC0AAAAAAAAAAC4AAAAAAAAAAC8AAAAAAAAAADAAAAAAAAAAADEAAAAAAAAAADIAAAAAAAAAADMAAAAAAAAAADQAAAAAAAAAADUAAAAAAAAAADYAAAAAAAAAADcAAAAAAAAAADgAAAAAAAAAADkAAAAAAAAAADoAAAAAAAAAADsAAAAAAAAAADwAAAAAAAAAAD0AAAAAAAAAAD4AAAAAAAAAAD8AAAAAAAAAAEAAAAAAAAAAAEEAAAAAAAAAAEIAAAAAAAAAAEMAAAAAAAAAAEQAAAAAAAAAAEUAAAAAAAAAAEYAAAAAAAAAAEcAAAAAAAAAAEgAAAAAAAAAAEkAAAAAAAAAAEoAAAAAAAAAAEsAAAAAAAAAAEwAAAAAAAAAAE0AAAAAAAAAAE4AAAAAAAAAAE8AAAAAAAAAAFAAAAAAAAAAAFEAAAAAAAAAAFIAAAAAAAAAAFMAAAAAAAAAAFQAAAAAAAAAAFUAAAAAAAAAAFYAAAAAAAAAAFcAAAAAAAAAAFgAAAAAAAAAAFkAAAAAAAAAAFoAAAAAAAAAAFsAAAAAAAAAAFwAAAAAAAAAAF0AAAAAAAAAAF4AAAAAAAAAAF8AAAAAAAAAAGAAAAAAAAAAAGEAAAAAAAAAAGIAAAAAAAAAAGMAAAAAAAAAAGQFAAAAAmFhCQAAAgAAAAECAAAAIU9ubHkgYWRtaW4gY2FuIGNhbGwgdGhpcyBmdW5jdGlvbgAAAAFxAQAAABJkaXN0cmlidXRpb25SZXdhcmQAAAAEAAAAAWkAAAACYWIAAAACYWMAAAACYWQDCQEAAAAPY29udGFpbnNFbGVtZW50AAAAAgkABEwAAAACBQAAAAFkCQAETAAAAAIFAAAAAWUJAARMAAAAAgUAAAABZgUAAAADbmlsCAUAAAABcQAAAA9jYWxsZXJQdWJsaWNLZXkKAQAAAAJhZQAAAAIAAAABdwAAAAJhZgQAAAACYWcJAQAAAAV2YWx1ZQAAAAEJAARPAAAAAgUAAAACYWMFAAAAAmFmBAAAAAJhaAkAAZEAAAACBQAAAAJhZAUAAAACYWcEAAAAAmFpCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAFpAgAAAAFfBQAAAAJhZgIAAAAPX2N1cnJlbnRfcmV3YXJkBAAAAAJhagQAAAABbQkABB8AAAABBQAAAAJhaQMJAAABAAAAAgUAAAABbQIAAAADSW50BAAAAAJhawUAAAABbQUAAAACYWsEAAAAAW8FAAAAAW0AAAAAAAAAAAAEAAAAAmFsCQAAZAAAAAIFAAAAAmFqBQAAAAJhaAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAACYWkFAAAAAmFsBQAAAAF3BAAAAAJhbQoAAAAAAUUFAAAAAmFjCgAAAAABRgkAAZAAAAABBQAAAAFFCgAAAAABRwUAAAADbmlsCgEAAAABSAAAAAIAAAABSQAAAAFKAwkAAGcAAAACBQAAAAFKBQAAAAFGBQAAAAFJCQEAAAACYWUAAAACBQAAAAFJCQABkQAAAAIFAAAAAUUFAAAAAUoKAQAAAAFLAAAAAgAAAAFJAAAAAUoDCQAAZwAAAAIFAAAAAUoFAAAAAUYFAAAAAUkJAAACAAAAAQIAAAAUTGlzdCBzaXplIGV4Y2VlZHMgODcJAQAAAAFLAAAAAgkBAAAAAUgAAAACCQEAAAABSAAAAAIJAQAAAAFIAAAAAgkBAAAAAUgAAAACCQEAAAABSAAAAAIJAQAAAAFIAAAAAgkBAAAAAUgAAAACCQEAAAABSAAAAAIJAQAAAAFIAAAAAgkBAAAAAUgAAAACCQEAAAABSAAAAAIJAQAAAAFIAAAAAgkBAAAAAUgAAAACCQEAAAABSAAAAAIJAQAAAAFIAAAAAgkBAAAAAUgAAAACCQEAAAABSAAAAAIJAQAAAAFIAAAAAgkBAAAAAUgAAAACCQEAAAABSAAAAAIJAQAAAAFIAAAAAgkBAAAAAUgAAAACCQEAAAABSAAAAAIJAQAAAAFIAAAAAgkBAAAAAUgAAAACCQEAAAABSAAAAAIJAQAAAAFIAAAAAgkBAAAAAUgAAAACCQEAAAABSAAAAAIJAQAAAAFIAAAAAgkBAAAAAUgAAAACCQEAAAABSAAAAAIJAQAAAAFIAAAAAgkBAAAAAUgAAAACCQEAAAABSAAAAAIJAQAAAAFIAAAAAgkBAAAAAUgAAAACCQEAAAABSAAAAAIJAQAAAAFIAAAAAgkBAAAAAUgAAAACCQEAAAABSAAAAAIJAQAAAAFIAAAAAgkBAAAAAUgAAAACCQEAAAABSAAAAAIJAQAAAAFIAAAAAgkBAAAAAUgAAAACCQEAAAABSAAAAAIJAQAAAAFIAAAAAgkBAAAAAUgAAAACCQEAAAABSAAAAAIJAQAAAAFIAAAAAgkBAAAAAUgAAAACCQEAAAABSAAAAAIJAQAAAAFIAAAAAgkBAAAAAUgAAAACCQEAAAABSAAAAAIJAQAAAAFIAAAAAgkBAAAAAUgAAAACCQEAAAABSAAAAAIJAQAAAAFIAAAAAgkBAAAAAUgAAAACCQEAAAABSAAAAAIJAQAAAAFIAAAAAgkBAAAAAUgAAAACCQEAAAABSAAAAAIJAQAAAAFIAAAAAgkBAAAAAUgAAAACCQEAAAABSAAAAAIJAQAAAAFIAAAAAgkBAAAAAUgAAAACCQEAAAABSAAAAAIJAQAAAAFIAAAAAgkBAAAAAUgAAAACCQEAAAABSAAAAAIJAQAAAAFIAAAAAgkBAAAAAUgAAAACCQEAAAABSAAAAAIJAQAAAAFIAAAAAgkBAAAAAUgAAAACCQEAAAABSAAAAAIJAQAAAAFIAAAAAgkBAAAAAUgAAAACCQEAAAABSAAAAAIJAQAAAAFIAAAAAgkBAAAAAUgAAAACCQEAAAABSAAAAAIJAQAAAAFIAAAAAgUAAAABRwAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAgAAAAAAAAAAAwAAAAAAAAAABAAAAAAAAAAABQAAAAAAAAAABgAAAAAAAAAABwAAAAAAAAAACAAAAAAAAAAACQAAAAAAAAAACgAAAAAAAAAACwAAAAAAAAAADAAAAAAAAAAADQAAAAAAAAAADgAAAAAAAAAADwAAAAAAAAAAEAAAAAAAAAAAEQAAAAAAAAAAEgAAAAAAAAAAEwAAAAAAAAAAFAAAAAAAAAAAFQAAAAAAAAAAFgAAAAAAAAAAFwAAAAAAAAAAGAAAAAAAAAAAGQAAAAAAAAAAGgAAAAAAAAAAGwAAAAAAAAAAHAAAAAAAAAAAHQAAAAAAAAAAHgAAAAAAAAAAHwAAAAAAAAAAIAAAAAAAAAAAIQAAAAAAAAAAIgAAAAAAAAAAIwAAAAAAAAAAJAAAAAAAAAAAJQAAAAAAAAAAJgAAAAAAAAAAJwAAAAAAAAAAKAAAAAAAAAAAKQAAAAAAAAAAKgAAAAAAAAAAKwAAAAAAAAAALAAAAAAAAAAALQAAAAAAAAAALgAAAAAAAAAALwAAAAAAAAAAMAAAAAAAAAAAMQAAAAAAAAAAMgAAAAAAAAAAMwAAAAAAAAAANAAAAAAAAAAANQAAAAAAAAAANgAAAAAAAAAANwAAAAAAAAAAOAAAAAAAAAAAOQAAAAAAAAAAOgAAAAAAAAAAOwAAAAAAAAAAPAAAAAAAAAAAPQAAAAAAAAAAPgAAAAAAAAAAPwAAAAAAAAAAQAAAAAAAAAAAQQAAAAAAAAAAQgAAAAAAAAAAQwAAAAAAAAAARAAAAAAAAAAARQAAAAAAAAAARgAAAAAAAAAARwAAAAAAAAAASAAAAAAAAAAASQAAAAAAAAAASgAAAAAAAAAASwAAAAAAAAAATAAAAAAAAAAATQAAAAAAAAAATgAAAAAAAAAATwAAAAAAAAAAUAAAAAAAAAAAUQAAAAAAAAAAUgAAAAAAAAAAUwAAAAAAAAAAVAAAAAAAAAAAVQAAAAAAAAAAVgAAAAAAAAAAVwQAAAACYW4JAQAAAAFsAAAAAQUAAAABaQkA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SAAAAAIJAQAAAAFIAAAAAgkBAAAAAUgAAAACCQEAAAABSAAAAAIJAQAAAAFIAAAAAgkBAAAAAUgAAAACCQEAAAABSAAAAAIJAQAAAAFIAAAAAgkBAAAAAUgAAAACCQEAAAABSAAAAAIJAQAAAAFIAAAAAgkBAAAAAUgAAAACCQEAAAABSAAAAAIJAQAAAAFIAAAAAgkBAAAAAUgAAAACCQEAAAABSAAAAAIJAQAAAAFIAAAAAgkBAAAAAUgAAAACCQEAAAABSAAAAAIJAQAAAAFIAAAAAgkBAAAAAUgAAAACCQEAAAABSAAAAAIJAQAAAAFIAAAAAgkBAAAAAUgAAAACCQEAAAABSAAAAAIJAQAAAAFIAAAAAgkBAAAAAUgAAAACCQEAAAABSAAAAAIJAQAAAAFIAAAAAgkBAAAAAUgAAAACCQEAAAABSAAAAAIJAQAAAAFIAAAAAgkBAAAAAUgAAAACCQEAAAABSAAAAAIJAQAAAAFIAAAAAgkBAAAAAUgAAAACCQEAAAABSAAAAAIJAQAAAAFIAAAAAgkBAAAAAUgAAAACCQEAAAABSAAAAAIJAQAAAAFIAAAAAgkBAAAAAUgAAAACCQEAAAABSAAAAAIJAQAAAAFIAAAAAgkBAAAAAUgAAAACCQEAAAABSAAAAAIJAQAAAAFIAAAAAgkBAAAAAUgAAAACCQEAAAABSAAAAAIJAQAAAAFIAAAAAgkBAAAAAUgAAAACCQEAAAABSAAAAAIJAQAAAAFIAAAAAgkBAAAAAUgAAAACCQEAAAABSAAAAAIJAQAAAAFIAAAAAgkBAAAAAUgAAAACCQEAAAABSAAAAAIJAQAAAAFIAAAAAgkBAAAAAUgAAAACCQEAAAABSAAAAAIJAQAAAAFIAAAAAgkBAAAAAUgAAAACCQEAAAABSAAAAAIJAQAAAAFIAAAAAgkBAAAAAUgAAAACCQEAAAABSAAAAAIJAQAAAAFIAAAAAgkBAAAAAUgAAAACCQEAAAABSAAAAAIJAQAAAAFIAAAAAgkBAAAAAUgAAAACCQEAAAABSAAAAAIJAQAAAAFIAAAAAgkBAAAAAUgAAAACCQEAAAABSAAAAAIJAQAAAAFIAAAAAgkBAAAAAUgAAAACCQEAAAABSAAAAAIJAQAAAAFIAAAAAgkBAAAAAUgAAAACCQEAAAABSAAAAAIJAQAAAAFIAAAAAgkBAAAAAUgAAAACCQEAAAABSAAAAAIJAQAAAAFIAAAAAgkBAAAAAUgAAAACCQEAAAABSAAAAAIJAQAAAAFIAAAAAgkBAAAAAUgAAAACCQEAAAABSAAAAAIJAQAAAAFIAAAAAgkBAAAAAUgAAAACCQEAAAABSAAAAAIFAAAAAUcAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAIAAAAAAAAAAAMAAAAAAAAAAAQAAAAAAAAAAAUAAAAAAAAAAAYAAAAAAAAAAAcAAAAAAAAAAAgAAAAAAAAAAAkAAAAAAAAAAAoAAAAAAAAAAAsAAAAAAAAAAAwAAAAAAAAAAA0AAAAAAAAAAA4AAAAAAAAAAA8AAAAAAAAAABAAAAAAAAAAABEAAAAAAAAAABIAAAAAAAAAABMAAAAAAAAAABQAAAAAAAAAABUAAAAAAAAAABYAAAAAAAAAABcAAAAAAAAAABgAAAAAAAAAABkAAAAAAAAAABoAAAAAAAAAABsAAAAAAAAAABwAAAAAAAAAAB0AAAAAAAAAAB4AAAAAAAAAAB8AAAAAAAAAACAAAAAAAAAAACEAAAAAAAAAACIAAAAAAAAAACMAAAAAAAAAACQAAAAAAAAAACUAAAAAAAAAACYAAAAAAAAAACcAAAAAAAAAACgAAAAAAAAAACkAAAAAAAAAACoAAAAAAAAAACsAAAAAAAAAACwAAAAAAAAAAC0AAAAAAAAAAC4AAAAAAAAAAC8AAAAAAAAAADAAAAAAAAAAADEAAAAAAAAAADIAAAAAAAAAADMAAAAAAAAAADQAAAAAAAAAADUAAAAAAAAAADYAAAAAAAAAADcAAAAAAAAAADgAAAAAAAAAADkAAAAAAAAAADoAAAAAAAAAADsAAAAAAAAAADwAAAAAAAAAAD0AAAAAAAAAAD4AAAAAAAAAAD8AAAAAAAAAAEAAAAAAAAAAAEEAAAAAAAAAAEIAAAAAAAAAAEMAAAAAAAAAAEQAAAAAAAAAAEUAAAAAAAAAAEYAAAAAAAAAAEcAAAAAAAAAAEgAAAAAAAAAAEkAAAAAAAAAAEoAAAAAAAAAAEsAAAAAAAAAAEwAAAAAAAAAAE0AAAAAAAAAAE4AAAAAAAAAAE8AAAAAAAAAAFAAAAAAAAAAAFEAAAAAAAAAAFIAAAAAAAAAAFMAAAAAAAAAAFQAAAAAAAAAAFUAAAAAAAAAAFYAAAAAAAAAAFcAAAAAAAAAAFgAAAAAAAAAAFkAAAAAAAAAAFoAAAAAAAAAAFsAAAAAAAAAAFwAAAAAAAAAAF0AAAAAAAAAAF4AAAAAAAAAAF8AAAAAAAAAAGAAAAAAAAAAAGEAAAAAAAAAAGIAAAAAAAAAAGMAAAAAAAAAAGQFAAAAAVUJAAACAAAAAQIAAAAhT25seSBhZG1pbiBjYW4gY2FsbCB0aGlzIGZ1bmN0aW9uAAAAAQAAAAJhUAEAAAACYVEAAAAACQAB9AAAAAMIBQAAAAJhUAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAmFQAAAABnByb29mcwAAAAAAAAAAAAgFAAAAAmFQAAAAD3NlbmRlclB1YmxpY0tlecsb2xU=", "height": 1834307, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 8Jz86RuAvhke81MqqJG5hvykMMhun25GFPtxF5iTvKvr Next: 8jn2QMJi36FZVDDyPQP9daeV5UY8WcsUN6UycpmTZpQ Diff:
OldNewDifferences
240240 throw("You try to deposit on unsupported pool")
241241 }
242242 if (isPoolActive(pool))
243- then throw("Pool is not active!")
244- else {
243+ then {
245244 let liquidityTokenDecimal = match assetInfo(fromBase58String(liquidutyAssetAddress)) {
246245 case asset: Asset =>
247246 asset.decimals
266265 [Reissue(fromBase58String(dAppAssetAddress), userAmountWithoutFee, true), ScriptTransfer(i.caller, userAmountWithoutFee, fromBase58String(dAppAssetAddress)), ScriptTransfer(govermanceAddress, fee, fromBase58String(liquidutyAssetAddress)), IntegerEntry(lockTokensKey, userAmountWithoutFee), IntegerEntry(poolAmountKey, newPoolAmount), IntegerEntry(userPoolAmountKey, newUserPoolAmount)]
267266 }
268267 }
268+ else throw("Pool is not active!")
269269 }
270270 }
271271
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let depositFee = 1000
55
66 let controllerFee = 10000
77
88 let platformFee = 10000
99
1010 let adminPubKey1 = base58'68Po1k24uP6goKr7RDmXPg4QkMiKuyTMEirao14rif8s'
1111
1212 let adminPubKey2 = base58'68Po1k24uP6goKr7RDmXPg4QkMiKuyTMEirao14rif8s'
1313
1414 let adminPubKey3 = base58'ALsqwPqiUP3bVbM7grozc1Y5oHVBAGKqACRJ5J8RXceC'
1515
1616 let govermanceAddress = Address(base58'3N7ExjwfofPYTvNBv2zqtAtLcMxqjTxS7iL')
1717
1818 func isPoolActive (pool) = {
1919 let kActive = (pool + "_active")
2020 let isActive = getBooleanValue(this, kActive)
2121 isActive
2222 }
2323
2424
2525 func getDAppAssetAddress (pool) = match getString((pool + "_service_token")) {
2626 case string: String =>
2727 string
2828 case nothing =>
2929 throw("You try to deposit on unsupported pool")
3030 }
3131
3232
3333 func getLiquidutyAssetAddress (pool) = match getString((pool + "_liquidity_token")) {
3434 case string: String =>
3535 string
3636 case nothing =>
3737 throw("You try to withdraw from unsupported pool")
3838 }
3939
4040
4141 @Callable(i)
4242 func addPools (pools,liquidityTokens,serviceTokens,liquidityTokenDecimals) = if (containsElement([adminPubKey1, adminPubKey2, adminPubKey3], i.callerPublicKey))
4343 then {
4444 func generatePoolKeys (accumulated,pool) = IntegerEntry((pool + "_asset_balance"), 0) :: accumulated
4545
4646 func generatePoolLiquidityTokenKeys (accumulated,pool) = {
4747 let poolIndex = value(indexOf(pools, pool))
4848 let liquidityToken = liquidityTokens[poolIndex]
4949 StringEntry((pool + "_liquidity_token"), liquidityToken) :: accumulated
5050 }
5151
5252 func generatePoolServiceTokenKeys (accumulated,pool) = {
5353 let poolIndex = value(indexOf(pools, pool))
5454 let liquidityToken = serviceTokens[poolIndex]
5555 StringEntry((pool + "_service_token"), liquidityToken) :: accumulated
5656 }
5757
5858 func generatePoolLiquidityTokenDecimalKeys (accumulated,pool) = {
5959 let poolIndex = value(indexOf(pools, pool))
6060 let liquidityToken = liquidityTokenDecimals[poolIndex]
6161 IntegerEntry((pool + "_service_token_decimal"), liquidityToken) :: accumulated
6262 }
6363
6464 func generatePoolActiveKeys (accumulated,pool) = BooleanEntry((pool + "_active"), true) :: accumulated
6565
6666 let poolBalanceKeys = {
6767 let $l = pools
6868 let $s = size($l)
6969 let $acc0 = nil
7070 func $f0_1 ($a,$i) = if (($i >= $s))
7171 then $a
7272 else generatePoolKeys($a, $l[$i])
7373
7474 func $f0_2 ($a,$i) = if (($i >= $s))
7575 then $a
7676 else throw("List size exceeds 20")
7777
7878 $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($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
7979 }
8080 let poolLiquidityTokenKeys = {
8181 let $l = pools
8282 let $s = size($l)
8383 let $acc0 = nil
8484 func $f1_1 ($a,$i) = if (($i >= $s))
8585 then $a
8686 else generatePoolLiquidityTokenKeys($a, $l[$i])
8787
8888 func $f1_2 ($a,$i) = if (($i >= $s))
8989 then $a
9090 else throw("List size exceeds 20")
9191
9292 $f1_2($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
9393 }
9494 let poolServiceTokenKeys = {
9595 let $l = pools
9696 let $s = size($l)
9797 let $acc0 = nil
9898 func $f2_1 ($a,$i) = if (($i >= $s))
9999 then $a
100100 else generatePoolServiceTokenKeys($a, $l[$i])
101101
102102 func $f2_2 ($a,$i) = if (($i >= $s))
103103 then $a
104104 else throw("List size exceeds 20")
105105
106106 $f2_2($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
107107 }
108108 let poolLiquidityTokenDecimalKeys = {
109109 let $l = pools
110110 let $s = size($l)
111111 let $acc0 = nil
112112 func $f3_1 ($a,$i) = if (($i >= $s))
113113 then $a
114114 else generatePoolLiquidityTokenDecimalKeys($a, $l[$i])
115115
116116 func $f3_2 ($a,$i) = if (($i >= $s))
117117 then $a
118118 else throw("List size exceeds 20")
119119
120120 $f3_2($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
121121 }
122122 let poolActiveKeys = {
123123 let $l = pools
124124 let $s = size($l)
125125 let $acc0 = nil
126126 func $f4_1 ($a,$i) = if (($i >= $s))
127127 then $a
128128 else generatePoolActiveKeys($a, $l[$i])
129129
130130 func $f4_2 ($a,$i) = if (($i >= $s))
131131 then $a
132132 else throw("List size exceeds 20")
133133
134134 $f4_2($f4_1($f4_1($f4_1($f4_1($f4_1($f4_1($f4_1($f4_1($f4_1($f4_1($f4_1($f4_1($f4_1($f4_1($f4_1($f4_1($f4_1($f4_1($f4_1($f4_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
135135 }
136136 ((((poolBalanceKeys ++ poolLiquidityTokenKeys) ++ poolServiceTokenKeys) ++ poolLiquidityTokenDecimalKeys) ++ poolActiveKeys)
137137 }
138138 else throw("Only admin can call this function")
139139
140140
141141
142142 @Callable(i)
143143 func deleteDepositLockRecords (records) = if (containsElement([adminPubKey1, adminPubKey2, adminPubKey3], i.callerPublicKey))
144144 then {
145145 func generateDeletingKeys (accumulated,record) = DeleteEntry((record + "_locked")) :: accumulated
146146
147147 let deleteKeys = {
148148 let $l = records
149149 let $s = size($l)
150150 let $acc0 = nil
151151 func $f0_1 ($a,$i) = if (($i >= $s))
152152 then $a
153153 else generateDeletingKeys($a, $l[$i])
154154
155155 func $f0_2 ($a,$i) = if (($i >= $s))
156156 then $a
157157 else throw("List size exceeds 100")
158158
159159 $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)
160160 }
161161 deleteKeys
162162 }
163163 else throw("Only admin can call this function")
164164
165165
166166
167167 @Callable(i)
168168 func distributionReward (pool,totalReward,wallets,rewardValues) = if (containsElement([adminPubKey1, adminPubKey2, adminPubKey3], i.callerPublicKey))
169169 then {
170170 func generateRecords (accumulated,wallet) = {
171171 let walletIndex = value(indexOf(wallets, wallet))
172172 let rewardValue = rewardValues[walletIndex]
173173 let rewardKey = (((pool + "_") + wallet) + "_current_reward")
174174 let userPreviousReward = match getInteger(rewardKey) {
175175 case int: Int =>
176176 int
177177 case nothing =>
178178 0
179179 }
180180 let userNewReward = (userPreviousReward + rewardValue)
181181 IntegerEntry(rewardKey, userNewReward) :: accumulated
182182 }
183183
184184 let rewards = {
185185 let $l = wallets
186186 let $s = size($l)
187187 let $acc0 = nil
188188 func $f0_1 ($a,$i) = if (($i >= $s))
189189 then $a
190190 else generateRecords($a, $l[$i])
191191
192192 func $f0_2 ($a,$i) = if (($i >= $s))
193193 then $a
194194 else throw("List size exceeds 87")
195195
196196 $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($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)
197197 }
198198 let dAppAssetAddress = getDAppAssetAddress(pool)
199199 Reissue(fromBase58String(dAppAssetAddress), totalReward, true) :: rewards
200200 }
201201 else throw("Only admin can call this function")
202202
203203
204204
205205 @Callable(i)
206206 func issueToken (name,description,quantity,decimals) = if (containsElement([adminPubKey1, adminPubKey2, adminPubKey3], i.callerPublicKey))
207207 then [Issue(name, description, quantity, decimals, true, unit, 0)]
208208 else throw("Only admin can call this function")
209209
210210
211211
212212 @Callable(a8)
213213 func call () = [DeleteEntry("3PPH7x7iqobW5ziyiRCic19rQqKr6nPYaK1_3N5viYFhnu1ew4FRZ9nujme9edr918FkT1a_current_reward")]
214214
215215
216216
217217 @Callable(i)
218218 func deposit (pool) = if ((size(i.payments) != 1))
219219 then throw("One attached payment expected")
220220 else {
221221 let amount = i.payments[0].amount
222222 let assetId = i.payments[0].assetId
223223 let assetIdString = match assetId {
224224 case id: ByteVector =>
225225 toBase58String(id)
226226 case _ =>
227227 throw("Match error")
228228 }
229229 if ((0 >= amount))
230230 then throw(("Deposit amount must be positive. Actual: " + toString(amount)))
231231 else {
232232 let poolAmountKey = (pool + "_asset_balance")
233233 let userAddress = toString(i.caller)
234234 let userPoolAmountKey = (((pool + "_") + userAddress) + "_asset_balance")
235235 let dAppAssetAddress = getDAppAssetAddress(pool)
236236 let liquidutyAssetAddress = match getString((pool + "_liquidity_token")) {
237237 case string: String =>
238238 string
239239 case nothing =>
240240 throw("You try to deposit on unsupported pool")
241241 }
242242 if (isPoolActive(pool))
243- then throw("Pool is not active!")
244- else {
243+ then {
245244 let liquidityTokenDecimal = match assetInfo(fromBase58String(liquidutyAssetAddress)) {
246245 case asset: Asset =>
247246 asset.decimals
248247 case _ =>
249248 throw("Can't find asset")
250249 }
251250 if ((liquidutyAssetAddress != assetIdString))
252251 then throw("You attached wrong liquidity token from Swop.fi")
253252 else {
254253 let poolAmount = getIntegerValue(this, poolAmountKey)
255254 let userAmount = match getInteger(userPoolAmountKey) {
256255 case int: Int =>
257256 int
258257 case nothing =>
259258 0
260259 }
261260 let newPoolAmount = (poolAmount + amount)
262261 let userAmountWithoutFee = ((amount - fraction(amount, 1, depositFee, HALFUP)) - fraction(amount, 1, controllerFee, HALFUP))
263262 let fee = (amount - userAmountWithoutFee)
264263 let newUserPoolAmount = (userAmount + userAmountWithoutFee)
265264 let lockTokensKey = (((((pool + "_") + userAddress) + "_") + toBase58String(i.transactionId)) + "_locked")
266265 [Reissue(fromBase58String(dAppAssetAddress), userAmountWithoutFee, true), ScriptTransfer(i.caller, userAmountWithoutFee, fromBase58String(dAppAssetAddress)), ScriptTransfer(govermanceAddress, fee, fromBase58String(liquidutyAssetAddress)), IntegerEntry(lockTokensKey, userAmountWithoutFee), IntegerEntry(poolAmountKey, newPoolAmount), IntegerEntry(userPoolAmountKey, newUserPoolAmount)]
267266 }
268267 }
268+ else throw("Pool is not active!")
269269 }
270270 }
271271
272272
273273
274274 @Callable(i)
275275 func withdraw (pool) = if ((size(i.payments) != 1))
276276 then throw("One attached payment expected")
277277 else {
278278 let amount = i.payments[0].amount
279279 let assetId = i.payments[0].assetId
280280 let assetIdString = match assetId {
281281 case id: ByteVector =>
282282 toBase58String(id)
283283 case _ =>
284284 throw("Match error")
285285 }
286286 if ((0 >= amount))
287287 then throw(("Deposit amount must be positive. Actual: " + toString(amount)))
288288 else {
289289 let poolAmountKey = (pool + "_asset_balance")
290290 let userAddress = toString(i.caller)
291291 let userPoolAmountKey = (((pool + "_") + userAddress) + "_asset_balance")
292292 let dAppAssetAddress = getDAppAssetAddress(pool)
293293 let liquidutyAssetAddress = getLiquidutyAssetAddress(pool)
294294 let poolAmount = getIntegerValue(this, poolAmountKey)
295295 let amountWithoutFee = ((amount - fraction(amount, 1, platformFee, HALFUP)) - fraction(amount, 1, controllerFee, HALFUP))
296296 let newPoolAmount = (poolAmount - amountWithoutFee)
297297 let fee = (amount - amountWithoutFee)
298298 [Burn(fromBase58String(dAppAssetAddress), amountWithoutFee), ScriptTransfer(i.caller, amountWithoutFee, fromBase58String(liquidutyAssetAddress)), ScriptTransfer(govermanceAddress, fee, fromBase58String(liquidutyAssetAddress)), IntegerEntry(poolAmountKey, newPoolAmount)]
299299 }
300300 }
301301
302302
303303
304304 @Callable(i)
305305 func claimReward (pool) = {
306306 let userAddress = toString(i.caller)
307307 let userRewardKey = (((pool + "_") + userAddress) + "_current_reward")
308308 let userReward = match getInteger(userRewardKey) {
309309 case int: Int =>
310310 int
311311 case nothing =>
312312 throw("You have not any reward in this pool")
313313 }
314314 let dAppAssetAddress = getDAppAssetAddress(pool)
315315 let liquidutyAssetAddress = getLiquidutyAssetAddress(pool)
316316 [Burn(fromBase58String(dAppAssetAddress), userReward), ScriptTransfer(i.caller, userReward, fromBase58String(liquidutyAssetAddress)), IntegerEntry(userRewardKey, 0)]
317317 }
318318
319319
320320
321321 @Callable(i)
322322 func poolActivating (pools,statuses) = if (containsElement([adminPubKey1, adminPubKey2, adminPubKey3], i.callerPublicKey))
323323 then {
324324 func generatePoolActiveKeys (accumulated,pool) = {
325325 let poolIndex = value(indexOf(pools, pool))
326326 let status = statuses[poolIndex]
327327 BooleanEntry((pool + "_active"), status) :: accumulated
328328 }
329329
330330 let poolActiveKeys = {
331331 let $l = pools
332332 let $s = size($l)
333333 let $acc0 = nil
334334 func $f0_1 ($a,$i) = if (($i >= $s))
335335 then $a
336336 else generatePoolActiveKeys($a, $l[$i])
337337
338338 func $f0_2 ($a,$i) = if (($i >= $s))
339339 then $a
340340 else throw("List size exceeds 100")
341341
342342 $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)
343343 }
344344 poolActiveKeys
345345 }
346346 else throw("Only admin can call this function")
347347
348348
349349 @Verifier(b6)
350350 func b7 () = sigVerify(b6.bodyBytes, b6.proofs[0], b6.senderPublicKey)
351351

github/deemru/w8io/169f3d6 
71.29 ms