tx · Atujbkv7E2XksrY1XPzZ2U3C5VrLfbh4EGrAjzoTCvbM

3MxXA443AARoS3rQ9RNdPeBur74yBTCTyxJ:  -0.03400000 Waves

2022.11.10 12:48 [2310894] smart account 3MxXA443AARoS3rQ9RNdPeBur74yBTCTyxJ > SELF 0.00000000 Waves

{ "type": 13, "id": "Atujbkv7E2XksrY1XPzZ2U3C5VrLfbh4EGrAjzoTCvbM", "fee": 3400000, "feeAssetId": null, "timestamp": 1668073799879, "version": 2, "chainId": 84, "sender": "3MxXA443AARoS3rQ9RNdPeBur74yBTCTyxJ", "senderPublicKey": "Dhf95pPhxwKtWsqgf6tyeDW2xpQA7TvM8nTwbwgqKjkd", "proofs": [ "B6bgQCu9kzp8ALY21AoQWTvgsK6AUDT8HmWmQaZ2nj2h2tgNiXLDLREnKAGZF1BJKgEpr3mwvU5JVNi39v8pMDT" ], "script": "base64:BgJZCAISAwoBCBIDCgEIEgMKAQgSAwoBCBIDCgEIEgMKAQgSAwoBCBIDCgEIEgMKAQgSAwoBCBIECgIICBIDCgEIEgMKAQgSAwoBCBIECgIICBIDCgEIEgMKAQgaABNrX2luc3VyYW5jZV9hZGRyZXNzAhNrX2luc3VyYW5jZV9hZGRyZXNzAA9rX2FkbWluX2FkZHJlc3MCD2tfYWRtaW5fYWRkcmVzcwASa19hZG1pbl9wdWJsaWNfa2V5AhJrX2FkbWluX3B1YmxpY19rZXkADWtfcXVvdGVfYXNzZXQCDWtfcXVvdGVfYXNzZXQAD2tfcXVvdGVfc3Rha2luZwIPa19xdW90ZV9zdGFraW5nABFrX3N0YWtpbmdfYWRkcmVzcwIRa19zdGFraW5nX2FkZHJlc3MAEWtfZmFybWluZ19hZGRyZXNzAhFrX2Zhcm1pbmdfYWRkcmVzcwAQa19wcml6ZXNfYWRkcmVzcwIQa19wcml6ZXNfYWRkcmVzcwAVa19ob3VzZWtlZXBlcl9hZGRyZXNzAhVrX2hvdXNla2VlcGVyX2FkZHJlc3MABWtfYW1tAgVrX2FtbQAKa19hbW1fZGF0YQIKa19hbW1fZGF0YQASa19nb3Zlcm5hbmNlX2Fzc2V0AgtrX2dvdl9hc3NldAAPa19taW5lcl9hZGRyZXNzAg9rX21pbmVyX2FkZHJlc3MAEGtfb3JkZXJzX2FkZHJlc3MCEGtfb3JkZXJzX2FkZHJlc3MAEmtfcmVmZXJyYWxfYWRkcmVzcwISa19yZWZlcnJhbF9hZGRyZXNzABFrX21hbmFnZXJfYWRkcmVzcwIRa19tYW5hZ2VyX2FkZHJlc3MAFWtfbmZ0X21hbmFnZXJfYWRkcmVzcwIVa19uZnRfbWFuYWdlcl9hZGRyZXNzABRrX2NvbGxhdGVyYWxfYWRkcmVzcwIUa19jb2xsYXRlcmFsX2FkZHJlc3MAEmtfZXhjaGFuZ2VfYWRkcmVzcwISa19leGNoYW5nZV9hZGRyZXNzAQ50b0NvbXBvc2l0ZUtleQIEX2tleQhfYWRkcmVzcwkArAICCQCsAgIFBF9rZXkCAV8FCF9hZGRyZXNzARFnZXRBZGRyZXNzSWZWYWxpZAEHYWRkcmVzcwkApQgBCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQUHYWRkcmVzcwkArAICCQCsAgICDUNhbid0IHBhcnNlICIFB2FkZHJlc3MCDCIgYXMgYWRkcmVzcwEOYWRtaW5QdWJsaWNLZXkACQERQGV4dHJOYXRpdmUoMTA1MykCBQR0aGlzBRJrX2FkbWluX3B1YmxpY19rZXkBCWlzTm9BZG1pbgAJAAACCQCdCAIFBHRoaXMFD2tfYWRtaW5fYWRkcmVzcwUEdW5pdAEFYWRtaW4ACQERQGV4dHJOYXRpdmUoMTA2MikBCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUEdGhpcwUPa19hZG1pbl9hZGRyZXNzAhFBZG1pbiBub3QgZGVmaW5lZAEQaXNOb0FkbWluT3JBZG1pbgEBaQMDCQEJaXNOb0FkbWluAAYJAAACCAUBaQZjYWxsZXIJAQVhZG1pbgAFBHVuaXQJAAIBAi5Pbmx5IHRoZSBBZG1pbiBpdHNlbGYgY2FuIGludm9rZSB0aGlzIGZ1bmN0aW9uAQdpc0FkbWluAQFpAwkAAAIIBQFpBmNhbGxlcgkBBWFkbWluAAUEdW5pdAkAAgECLk9ubHkgdGhlIEFkbWluIGl0c2VsZiBjYW4gaW52b2tlIHRoaXMgZnVuY3Rpb24RAWkBCHNldEFkbWluAQ9fYWRtaW5QdWJsaWNLZXkJAQt2YWx1ZU9yRWxzZQIJARBpc05vQWRtaW5PckFkbWluAQUBaQQFYnl0ZXMJANkEAQUPX2FkbWluUHVibGljS2V5BAdhZGRyZXNzCQCnCAEFBWJ5dGVzCQDMCAIJAQtTdHJpbmdFbnRyeQIFD2tfYWRtaW5fYWRkcmVzcwkApQgBBQdhZGRyZXNzCQDMCAIJAQtTdHJpbmdFbnRyeQIFEmtfYWRtaW5fcHVibGljX2tleQUPX2FkbWluUHVibGljS2V5BQNuaWwBaQEQc2V0SW5zdXJhbmNlRnVuZAEOX2luc3VyYW5jZUZ1bmQJAQt2YWx1ZU9yRWxzZQIJAQdpc0FkbWluAQUBaQQHYWRkcmVzcwkBEWdldEFkZHJlc3NJZlZhbGlkAQUOX2luc3VyYW5jZUZ1bmQJAMwIAgkBC1N0cmluZ0VudHJ5AgUTa19pbnN1cmFuY2VfYWRkcmVzcwUHYWRkcmVzcwUDbmlsAWkBEXNldExpcXVpZGl0eU1pbmVyAQ9fbGlxdWlkaXR5TWluZXIJAQt2YWx1ZU9yRWxzZQIJAQdpc0FkbWluAQUBaQQHYWRkcmVzcwkBEWdldEFkZHJlc3NJZlZhbGlkAQUPX2xpcXVpZGl0eU1pbmVyCQDMCAIJAQtTdHJpbmdFbnRyeQIFD2tfbWluZXJfYWRkcmVzcwUHYWRkcmVzcwUDbmlsAWkBCXNldE9yZGVycwEHX29yZGVycwkBC3ZhbHVlT3JFbHNlAgkBB2lzQWRtaW4BBQFpBAdhZGRyZXNzCQERZ2V0QWRkcmVzc0lmVmFsaWQBBQdfb3JkZXJzCQDMCAIJAQtTdHJpbmdFbnRyeQIFEGtfb3JkZXJzX2FkZHJlc3MFB2FkZHJlc3MFA25pbAFpAQtzZXRSZWZlcnJhbAEJX3JlZmVycmFsCQELdmFsdWVPckVsc2UCCQEHaXNBZG1pbgEFAWkEB2FkZHJlc3MJARFnZXRBZGRyZXNzSWZWYWxpZAEFCV9yZWZlcnJhbAkAzAgCCQELU3RyaW5nRW50cnkCBRJrX3JlZmVycmFsX2FkZHJlc3MFB2FkZHJlc3MFA25pbAFpAQpzZXRGYXJtaW5nAQhfZmFybWluZwkBC3ZhbHVlT3JFbHNlAgkBB2lzQWRtaW4BBQFpBAdhZGRyZXNzCQERZ2V0QWRkcmVzc0lmVmFsaWQBBQhfZmFybWluZwkAzAgCCQELU3RyaW5nRW50cnkCBRFrX2Zhcm1pbmdfYWRkcmVzcwUHYWRkcmVzcwUDbmlsAWkBCnNldE1hbmFnZXIBCF9tYW5hZ2VyCQELdmFsdWVPckVsc2UCCQEHaXNBZG1pbgEFAWkEB2FkZHJlc3MJARFnZXRBZGRyZXNzSWZWYWxpZAEFCF9tYW5hZ2VyCQDMCAIJAQtTdHJpbmdFbnRyeQIFEWtfbWFuYWdlcl9hZGRyZXNzBQdhZGRyZXNzBQNuaWwBaQEOc2V0SG91c2VrZWVwZXIBDF9ob3VzZWtlZXBlcgkBC3ZhbHVlT3JFbHNlAgkBB2lzQWRtaW4BBQFpBAdhZGRyZXNzCQERZ2V0QWRkcmVzc0lmVmFsaWQBBQxfaG91c2VrZWVwZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgUVa19ob3VzZWtlZXBlcl9hZGRyZXNzBQdhZGRyZXNzBQNuaWwBaQEJc2V0UHJpemVzAQdfcHJpemVzCQELdmFsdWVPckVsc2UCCQEHaXNBZG1pbgEFAWkEB2FkZHJlc3MJARFnZXRBZGRyZXNzSWZWYWxpZAEFB19wcml6ZXMJAMwIAgkBC1N0cmluZ0VudHJ5AgUQa19wcml6ZXNfYWRkcmVzcwUHYWRkcmVzcwUDbmlsAWkBDXNldE5mdE1hbmFnZXIBC19uZnRNYW5hZ2VyCQELdmFsdWVPckVsc2UCCQEHaXNBZG1pbgEFAWkEB2FkZHJlc3MJARFnZXRBZGRyZXNzSWZWYWxpZAEFC19uZnRNYW5hZ2VyCQDMCAIJAQtTdHJpbmdFbnRyeQIFFWtfbmZ0X21hbmFnZXJfYWRkcmVzcwUHYWRkcmVzcwUDbmlsAWkBDXNldFF1b3RlQXNzZXQCCF9hc3NldElkD19zdGFraW5nQWRkcmVzcwkBC3ZhbHVlT3JFbHNlAgkBB2lzQWRtaW4BBQFpBA5zdGFraW5nQWRkcmVzcwkBEWdldEFkZHJlc3NJZlZhbGlkAQUPX3N0YWtpbmdBZGRyZXNzCQDMCAIJAQtTdHJpbmdFbnRyeQIFDWtfcXVvdGVfYXNzZXQFCF9hc3NldElkCQDMCAIJAQtTdHJpbmdFbnRyeQIFD2tfcXVvdGVfc3Rha2luZwUPX3N0YWtpbmdBZGRyZXNzBQNuaWwBaQERc2V0U3Rha2luZ0FkZHJlc3MBD19zdGFraW5nQWRkcmVzcwkBC3ZhbHVlT3JFbHNlAgkBB2lzQWRtaW4BBQFpBA5zdGFraW5nQWRkcmVzcwkBEWdldEFkZHJlc3NJZlZhbGlkAQUPX3N0YWtpbmdBZGRyZXNzCQDMCAIJAQtTdHJpbmdFbnRyeQIFEWtfc3Rha2luZ19hZGRyZXNzBQ9fc3Rha2luZ0FkZHJlc3MFA25pbAFpARRzZXRDb2xsYXRlcmFsQWRkcmVzcwESX2NvbGxhdGVyYWxBZGRyZXNzCQELdmFsdWVPckVsc2UCCQEHaXNBZG1pbgEFAWkEEWNvbGxhdGVyYWxBZGRyZXNzCQERZ2V0QWRkcmVzc0lmVmFsaWQBBRJfY29sbGF0ZXJhbEFkZHJlc3MJAMwIAgkBC1N0cmluZ0VudHJ5AgUUa19jb2xsYXRlcmFsX2FkZHJlc3MFEl9jb2xsYXRlcmFsQWRkcmVzcwUDbmlsAWkBEnNldEV4Y2hhbmdlQWRkcmVzcwEQX2V4Y2hhbmdlQWRkcmVzcwkBC3ZhbHVlT3JFbHNlAgkBB2lzQWRtaW4BBQFpBA9leGNoYW5nZUFkZHJlc3MJARFnZXRBZGRyZXNzSWZWYWxpZAEFEF9leGNoYW5nZUFkZHJlc3MJAMwIAgkBC1N0cmluZ0VudHJ5AgUSa19leGNoYW5nZV9hZGRyZXNzBRBfZXhjaGFuZ2VBZGRyZXNzBQNuaWwBaQEGYWRkQW1tAgtfYW1tQWRkcmVzcwVfZGF0YQkBC3ZhbHVlT3JFbHNlAgkBB2lzQWRtaW4BBQFpBAphbW1BZGRyZXNzCQERZ2V0QWRkcmVzc0lmVmFsaWQBBQtfYW1tQWRkcmVzcwkAzAgCCQEMQm9vbGVhbkVudHJ5AgkBDnRvQ29tcG9zaXRlS2V5AgUFa19hbW0FC19hbW1BZGRyZXNzBgkAzAgCCQELU3RyaW5nRW50cnkCCQEOdG9Db21wb3NpdGVLZXkCBQprX2FtbV9kYXRhBQtfYW1tQWRkcmVzcwUFX2RhdGEFA25pbAFpAQlyZW1vdmVBbW0BC19hbW1BZGRyZXNzCQELdmFsdWVPckVsc2UCCQEHaXNBZG1pbgEFAWkJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBDnRvQ29tcG9zaXRlS2V5AgUFa19hbW0FC19hbW1BZGRyZXNzBQNuaWwBaQESc2V0R292ZXJuYW5jZUFzc2V0AQhfYXNzZXRJZAkBC3ZhbHVlT3JFbHNlAgkBB2lzQWRtaW4BBQFpBAphc3NldEJ5dGVzCQDZBAEFCF9hc3NldElkBAckbWF0Y2gwCQDsBwEFCmFzc2V0Qnl0ZXMDCQABAgUHJG1hdGNoMAIFQXNzZXQEBWFzc2V0BQckbWF0Y2gwAwkBAiE9AggFBWFzc2V0CGRlY2ltYWxzAAgJAAIBAiNJbnZhbGlkIGFzc2V0IGRlY2ltYWxzLCBzaG91bGQgYmUgOAkAzAgCCQELU3RyaW5nRW50cnkCBRJrX2dvdmVybmFuY2VfYXNzZXQFCF9hc3NldElkBQNuaWwJAAIBAhBDYW4ndCBmaW5kIGFzc2V0AQJ0eAEGdmVyaWZ5AAkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAAkA2QQBCQEOYWRtaW5QdWJsaWNLZXkA+JaTYg==", "height": 2310894, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 74ZhAmfi8xk6M8z9Gv8fQfDwQCGo2nYy6BjWwbCHoMUu Next: FR9hkoL5DYtMkN9PmCmvHF2wymRKksghPECaUoje9zQS Diff:
OldNewDifferences
1515
1616 let k_farming_address = "k_farming_address"
1717
18+let k_prizes_address = "k_prizes_address"
19+
1820 let k_housekeeper_address = "k_housekeeper_address"
1921
2022 let k_amm = "k_amm"
3032 let k_referral_address = "k_referral_address"
3133
3234 let k_manager_address = "k_manager_address"
35+
36+let k_nft_manager_address = "k_nft_manager_address"
37+
38+let k_collateral_address = "k_collateral_address"
39+
40+let k_exchange_address = "k_exchange_address"
3341
3442 func toCompositeKey (_key,_address) = ((_key + "_") + _address)
3543
124132
125133
126134 @Callable(i)
135+func setPrizes (_prizes) = valueOrElse(isAdmin(i), {
136+ let address = getAddressIfValid(_prizes)
137+[StringEntry(k_prizes_address, address)]
138+ })
139+
140+
141+
142+@Callable(i)
143+func setNftManager (_nftManager) = valueOrElse(isAdmin(i), {
144+ let address = getAddressIfValid(_nftManager)
145+[StringEntry(k_nft_manager_address, address)]
146+ })
147+
148+
149+
150+@Callable(i)
127151 func setQuoteAsset (_assetId,_stakingAddress) = valueOrElse(isAdmin(i), {
128152 let stakingAddress = getAddressIfValid(_stakingAddress)
129153 [StringEntry(k_quote_asset, _assetId), StringEntry(k_quote_staking, _stakingAddress)]
135159 func setStakingAddress (_stakingAddress) = valueOrElse(isAdmin(i), {
136160 let stakingAddress = getAddressIfValid(_stakingAddress)
137161 [StringEntry(k_staking_address, _stakingAddress)]
162+ })
163+
164+
165+
166+@Callable(i)
167+func setCollateralAddress (_collateralAddress) = valueOrElse(isAdmin(i), {
168+ let collateralAddress = getAddressIfValid(_collateralAddress)
169+[StringEntry(k_collateral_address, _collateralAddress)]
170+ })
171+
172+
173+
174+@Callable(i)
175+func setExchangeAddress (_exchangeAddress) = valueOrElse(isAdmin(i), {
176+ let exchangeAddress = getAddressIfValid(_exchangeAddress)
177+[StringEntry(k_exchange_address, _exchangeAddress)]
138178 })
139179
140180
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let k_insurance_address = "k_insurance_address"
55
66 let k_admin_address = "k_admin_address"
77
88 let k_admin_public_key = "k_admin_public_key"
99
1010 let k_quote_asset = "k_quote_asset"
1111
1212 let k_quote_staking = "k_quote_staking"
1313
1414 let k_staking_address = "k_staking_address"
1515
1616 let k_farming_address = "k_farming_address"
1717
18+let k_prizes_address = "k_prizes_address"
19+
1820 let k_housekeeper_address = "k_housekeeper_address"
1921
2022 let k_amm = "k_amm"
2123
2224 let k_amm_data = "k_amm_data"
2325
2426 let k_governance_asset = "k_gov_asset"
2527
2628 let k_miner_address = "k_miner_address"
2729
2830 let k_orders_address = "k_orders_address"
2931
3032 let k_referral_address = "k_referral_address"
3133
3234 let k_manager_address = "k_manager_address"
35+
36+let k_nft_manager_address = "k_nft_manager_address"
37+
38+let k_collateral_address = "k_collateral_address"
39+
40+let k_exchange_address = "k_exchange_address"
3341
3442 func toCompositeKey (_key,_address) = ((_key + "_") + _address)
3543
3644
3745 func getAddressIfValid (address) = toString(valueOrErrorMessage(addressFromString(address), (("Can't parse \"" + address) + "\" as address")))
3846
3947
4048 func adminPublicKey () = getStringValue(this, k_admin_public_key)
4149
4250
4351 func isNoAdmin () = (getString(this, k_admin_address) == unit)
4452
4553
4654 func admin () = addressFromStringValue(valueOrErrorMessage(getString(this, k_admin_address), "Admin not defined"))
4755
4856
4957 func isNoAdminOrAdmin (i) = if (if (isNoAdmin())
5058 then true
5159 else (i.caller == admin()))
5260 then unit
5361 else throw("Only the Admin itself can invoke this function")
5462
5563
5664 func isAdmin (i) = if ((i.caller == admin()))
5765 then unit
5866 else throw("Only the Admin itself can invoke this function")
5967
6068
6169 @Callable(i)
6270 func setAdmin (_adminPublicKey) = valueOrElse(isNoAdminOrAdmin(i), {
6371 let bytes = fromBase58String(_adminPublicKey)
6472 let address = addressFromPublicKey(bytes)
6573 [StringEntry(k_admin_address, toString(address)), StringEntry(k_admin_public_key, _adminPublicKey)]
6674 })
6775
6876
6977
7078 @Callable(i)
7179 func setInsuranceFund (_insuranceFund) = valueOrElse(isAdmin(i), {
7280 let address = getAddressIfValid(_insuranceFund)
7381 [StringEntry(k_insurance_address, address)]
7482 })
7583
7684
7785
7886 @Callable(i)
7987 func setLiquidityMiner (_liquidityMiner) = valueOrElse(isAdmin(i), {
8088 let address = getAddressIfValid(_liquidityMiner)
8189 [StringEntry(k_miner_address, address)]
8290 })
8391
8492
8593
8694 @Callable(i)
8795 func setOrders (_orders) = valueOrElse(isAdmin(i), {
8896 let address = getAddressIfValid(_orders)
8997 [StringEntry(k_orders_address, address)]
9098 })
9199
92100
93101
94102 @Callable(i)
95103 func setReferral (_referral) = valueOrElse(isAdmin(i), {
96104 let address = getAddressIfValid(_referral)
97105 [StringEntry(k_referral_address, address)]
98106 })
99107
100108
101109
102110 @Callable(i)
103111 func setFarming (_farming) = valueOrElse(isAdmin(i), {
104112 let address = getAddressIfValid(_farming)
105113 [StringEntry(k_farming_address, address)]
106114 })
107115
108116
109117
110118 @Callable(i)
111119 func setManager (_manager) = valueOrElse(isAdmin(i), {
112120 let address = getAddressIfValid(_manager)
113121 [StringEntry(k_manager_address, address)]
114122 })
115123
116124
117125
118126 @Callable(i)
119127 func setHousekeeper (_housekeeper) = valueOrElse(isAdmin(i), {
120128 let address = getAddressIfValid(_housekeeper)
121129 [StringEntry(k_housekeeper_address, address)]
122130 })
123131
124132
125133
126134 @Callable(i)
135+func setPrizes (_prizes) = valueOrElse(isAdmin(i), {
136+ let address = getAddressIfValid(_prizes)
137+[StringEntry(k_prizes_address, address)]
138+ })
139+
140+
141+
142+@Callable(i)
143+func setNftManager (_nftManager) = valueOrElse(isAdmin(i), {
144+ let address = getAddressIfValid(_nftManager)
145+[StringEntry(k_nft_manager_address, address)]
146+ })
147+
148+
149+
150+@Callable(i)
127151 func setQuoteAsset (_assetId,_stakingAddress) = valueOrElse(isAdmin(i), {
128152 let stakingAddress = getAddressIfValid(_stakingAddress)
129153 [StringEntry(k_quote_asset, _assetId), StringEntry(k_quote_staking, _stakingAddress)]
130154 })
131155
132156
133157
134158 @Callable(i)
135159 func setStakingAddress (_stakingAddress) = valueOrElse(isAdmin(i), {
136160 let stakingAddress = getAddressIfValid(_stakingAddress)
137161 [StringEntry(k_staking_address, _stakingAddress)]
162+ })
163+
164+
165+
166+@Callable(i)
167+func setCollateralAddress (_collateralAddress) = valueOrElse(isAdmin(i), {
168+ let collateralAddress = getAddressIfValid(_collateralAddress)
169+[StringEntry(k_collateral_address, _collateralAddress)]
170+ })
171+
172+
173+
174+@Callable(i)
175+func setExchangeAddress (_exchangeAddress) = valueOrElse(isAdmin(i), {
176+ let exchangeAddress = getAddressIfValid(_exchangeAddress)
177+[StringEntry(k_exchange_address, _exchangeAddress)]
138178 })
139179
140180
141181
142182 @Callable(i)
143183 func addAmm (_ammAddress,_data) = valueOrElse(isAdmin(i), {
144184 let ammAddress = getAddressIfValid(_ammAddress)
145185 [BooleanEntry(toCompositeKey(k_amm, _ammAddress), true), StringEntry(toCompositeKey(k_amm_data, _ammAddress), _data)]
146186 })
147187
148188
149189
150190 @Callable(i)
151191 func removeAmm (_ammAddress) = valueOrElse(isAdmin(i), [DeleteEntry(toCompositeKey(k_amm, _ammAddress))])
152192
153193
154194
155195 @Callable(i)
156196 func setGovernanceAsset (_assetId) = valueOrElse(isAdmin(i), {
157197 let assetBytes = fromBase58String(_assetId)
158198 match assetInfo(assetBytes) {
159199 case asset: Asset =>
160200 if ((asset.decimals != 8))
161201 then throw("Invalid asset decimals, should be 8")
162202 else [StringEntry(k_governance_asset, _assetId)]
163203 case _ =>
164204 throw("Can't find asset")
165205 }
166206 })
167207
168208
169209 @Verifier(tx)
170210 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], fromBase58String(adminPublicKey()))
171211

github/deemru/w8io/026f985 
31.88 ms