tx · 9YxJx32Fgsv53QMc3eLJmd9Y2Wx4iaRTnW3DBB1oKgTF

3MxXA443AARoS3rQ9RNdPeBur74yBTCTyxJ:  -0.03400000 Waves

2023.07.11 18:46 [2661441] smart account 3MxXA443AARoS3rQ9RNdPeBur74yBTCTyxJ > SELF 0.00000000 Waves

{ "type": 13, "id": "9YxJx32Fgsv53QMc3eLJmd9Y2Wx4iaRTnW3DBB1oKgTF", "fee": 3400000, "feeAssetId": null, "timestamp": 1689090380279, "version": 2, "chainId": 84, "sender": "3MxXA443AARoS3rQ9RNdPeBur74yBTCTyxJ", "senderPublicKey": "Dhf95pPhxwKtWsqgf6tyeDW2xpQA7TvM8nTwbwgqKjkd", "proofs": [ "8C5iNMt8NA4J7QkrSV5KFf2txcj9zWzaJJ2N1RAEsJpQ6PkVgMA1jQjqpp5mMizEc8M4WSZecZuqG56PFuU9FtH" ], "script": "base64:BgJsCAISAwoBCBIDCgEIEgMKAQgSAwoBCBIDCgEIEgMKAQgSAwoBCBIDCgEIEgMKAQgSAwoBCBIDCgEIEgMKAQgSAwoBCBIDCgEIEgMKAQgSAwoBCBIDCgEIEgMKAQgSBAoCCAgSAwoBCBIDCgEIGwATa19pbnN1cmFuY2VfYWRkcmVzcwITa19pbnN1cmFuY2VfYWRkcmVzcwAPa192YXVsdF9hZGRyZXNzAg9rX3ZhdWx0X2FkZHJlc3MAD2tfYWRtaW5fYWRkcmVzcwIPa19hZG1pbl9hZGRyZXNzAA1rX3F1b3RlX2Fzc2V0Ag1rX3F1b3RlX2Fzc2V0AA5rX3Jld2FyZF9hc3NldAIOa19yZXdhcmRfYXNzZXQADmtfc3dhcF9hZGRyZXNzAg5rX3N3YXBfYWRkcmVzcwARa19zdGFraW5nX2FkZHJlc3MCEWtfc3Rha2luZ19hZGRyZXNzABFrX2Zhcm1pbmdfYWRkcmVzcwIRa19mYXJtaW5nX2FkZHJlc3MAEGtfcHJpemVzX2FkZHJlc3MCEGtfcHJpemVzX2FkZHJlc3MAFWtfaG91c2VrZWVwZXJfYWRkcmVzcwIVa19ob3VzZWtlZXBlcl9hZGRyZXNzAAVrX2FtbQIFa19hbW0ACmtfYW1tX2RhdGECCmtfYW1tX2RhdGEAEmtfZ292ZXJuYW5jZV9hc3NldAILa19nb3ZfYXNzZXQAD2tfbWluZXJfYWRkcmVzcwIPa19taW5lcl9hZGRyZXNzABBrX29yZGVyc19hZGRyZXNzAhBrX29yZGVyc19hZGRyZXNzABJrX3JlZmVycmFsX2FkZHJlc3MCEmtfcmVmZXJyYWxfYWRkcmVzcwARa19tYW5hZ2VyX2FkZHJlc3MCEWtfbWFuYWdlcl9hZGRyZXNzABVrX25mdF9tYW5hZ2VyX2FkZHJlc3MCFWtfbmZ0X21hbmFnZXJfYWRkcmVzcwAHa19jaGlsZAIHa19jaGlsZAAIa19vcmFjbGUCCGtfb3JhY2xlAA5rX3Nwb3RfYWRkcmVzcwIOa19zcG90X2FkZHJlc3MBDnRvQ29tcG9zaXRlS2V5AgRfa2V5CF9hZGRyZXNzCQCsAgIJAKwCAgUEX2tleQIBXwUIX2FkZHJlc3MBEWdldEFkZHJlc3NJZlZhbGlkAQdhZGRyZXNzCQClCAEJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBBQdhZGRyZXNzCQCsAgIJAKwCAgINQ2FuJ3QgcGFyc2UgIgUHYWRkcmVzcwIMIiBhcyBhZGRyZXNzAQlpc05vQWRtaW4ACQAAAgkAnQgCBQR0aGlzBQ9rX2FkbWluX2FkZHJlc3MFBHVuaXQBBWFkbWluAAkBEUBleHRyTmF0aXZlKDEwNjIpAQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFBHRoaXMFD2tfYWRtaW5fYWRkcmVzcwIRQWRtaW4gbm90IGRlZmluZWQBEGlzTm9BZG1pbk9yQWRtaW4BAWkDAwMJAQlpc05vQWRtaW4ACQAAAggFAWkGY2FsbGVyBQR0aGlzBwYJAAACCAUBaQZjYWxsZXIJAQVhZG1pbgAFBHVuaXQJAAIBAi5Pbmx5IHRoZSBBZG1pbiBpdHNlbGYgY2FuIGludm9rZSB0aGlzIGZ1bmN0aW9uAQdpc0FkbWluAQFpAwkAAAIIBQFpBmNhbGxlcgkBBWFkbWluAAUEdW5pdAkAAgECLk9ubHkgdGhlIEFkbWluIGl0c2VsZiBjYW4gaW52b2tlIHRoaXMgZnVuY3Rpb24VAWkBCHNldEFkbWluAQ1fYWRtaW5BZGRyZXNzCQELdmFsdWVPckVsc2UCCQEQaXNOb0FkbWluT3JBZG1pbgEFAWkEB2FkZHJlc3MJARFAZXh0ck5hdGl2ZSgxMDYyKQEFDV9hZG1pbkFkZHJlc3MDCQAAAgUHYWRkcmVzcwUHYWRkcmVzcwkAzAgCCQELU3RyaW5nRW50cnkCBQ9rX2FkbWluX2FkZHJlc3MJAKUIAQUHYWRkcmVzcwUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBEHNldEluc3VyYW5jZUZ1bmQBDl9pbnN1cmFuY2VGdW5kCQELdmFsdWVPckVsc2UCCQEHaXNBZG1pbgEFAWkEB2FkZHJlc3MJARFnZXRBZGRyZXNzSWZWYWxpZAEFDl9pbnN1cmFuY2VGdW5kAwkAAAIFB2FkZHJlc3MFB2FkZHJlc3MJAMwIAgkBC1N0cmluZ0VudHJ5AgUTa19pbnN1cmFuY2VfYWRkcmVzcwUHYWRkcmVzcwUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBEXNldExpcXVpZGl0eU1pbmVyAQ9fbGlxdWlkaXR5TWluZXIJAQt2YWx1ZU9yRWxzZQIJAQdpc0FkbWluAQUBaQQHYWRkcmVzcwkBEWdldEFkZHJlc3NJZlZhbGlkAQUPX2xpcXVpZGl0eU1pbmVyAwkAAAIFB2FkZHJlc3MFB2FkZHJlc3MJAMwIAgkBC1N0cmluZ0VudHJ5AgUPa19taW5lcl9hZGRyZXNzBQdhZGRyZXNzBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEJc2V0T3JkZXJzAQdfb3JkZXJzCQELdmFsdWVPckVsc2UCCQEHaXNBZG1pbgEFAWkEB2FkZHJlc3MJARFnZXRBZGRyZXNzSWZWYWxpZAEFB19vcmRlcnMDCQAAAgUHYWRkcmVzcwUHYWRkcmVzcwkAzAgCCQELU3RyaW5nRW50cnkCBRBrX29yZGVyc19hZGRyZXNzBQdhZGRyZXNzBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQELc2V0UmVmZXJyYWwBCV9yZWZlcnJhbAkBC3ZhbHVlT3JFbHNlAgkBB2lzQWRtaW4BBQFpBAdhZGRyZXNzCQERZ2V0QWRkcmVzc0lmVmFsaWQBBQlfcmVmZXJyYWwDCQAAAgUHYWRkcmVzcwUHYWRkcmVzcwkAzAgCCQELU3RyaW5nRW50cnkCBRJrX3JlZmVycmFsX2FkZHJlc3MFB2FkZHJlc3MFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQpzZXRGYXJtaW5nAQhfZmFybWluZwkBC3ZhbHVlT3JFbHNlAgkBB2lzQWRtaW4BBQFpBAdhZGRyZXNzCQERZ2V0QWRkcmVzc0lmVmFsaWQBBQhfZmFybWluZwMJAAACBQdhZGRyZXNzBQdhZGRyZXNzCQDMCAIJAQtTdHJpbmdFbnRyeQIFEWtfZmFybWluZ19hZGRyZXNzBQdhZGRyZXNzBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEKc2V0TWFuYWdlcgEIX21hbmFnZXIJAQt2YWx1ZU9yRWxzZQIJAQdpc0FkbWluAQUBaQQHYWRkcmVzcwkBEWdldEFkZHJlc3NJZlZhbGlkAQUIX21hbmFnZXIDCQAAAgUHYWRkcmVzcwUHYWRkcmVzcwkAzAgCCQELU3RyaW5nRW50cnkCBRFrX21hbmFnZXJfYWRkcmVzcwUHYWRkcmVzcwUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBDnNldEhvdXNla2VlcGVyAQxfaG91c2VrZWVwZXIJAQt2YWx1ZU9yRWxzZQIJAQdpc0FkbWluAQUBaQQHYWRkcmVzcwkBEWdldEFkZHJlc3NJZlZhbGlkAQUMX2hvdXNla2VlcGVyAwkAAAIFB2FkZHJlc3MFB2FkZHJlc3MJAMwIAgkBC1N0cmluZ0VudHJ5AgUVa19ob3VzZWtlZXBlcl9hZGRyZXNzBQdhZGRyZXNzBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEJc2V0UHJpemVzAQdfcHJpemVzCQELdmFsdWVPckVsc2UCCQEHaXNBZG1pbgEFAWkEB2FkZHJlc3MJARFnZXRBZGRyZXNzSWZWYWxpZAEFB19wcml6ZXMDCQAAAgUHYWRkcmVzcwUHYWRkcmVzcwkAzAgCCQELU3RyaW5nRW50cnkCBRBrX3ByaXplc19hZGRyZXNzBQdhZGRyZXNzBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQENc2V0TmZ0TWFuYWdlcgELX25mdE1hbmFnZXIJAQt2YWx1ZU9yRWxzZQIJAQdpc0FkbWluAQUBaQQHYWRkcmVzcwkBEWdldEFkZHJlc3NJZlZhbGlkAQULX25mdE1hbmFnZXIDCQAAAgUHYWRkcmVzcwUHYWRkcmVzcwkAzAgCCQELU3RyaW5nRW50cnkCBRVrX25mdF9tYW5hZ2VyX2FkZHJlc3MFB2FkZHJlc3MFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQdzZXRTd2FwAQVfc3dhcAkBC3ZhbHVlT3JFbHNlAgkBB2lzQWRtaW4BBQFpBAdhZGRyZXNzCQERZ2V0QWRkcmVzc0lmVmFsaWQBBQVfc3dhcAMJAAACBQdhZGRyZXNzBQdhZGRyZXNzCQDMCAIJAQtTdHJpbmdFbnRyeQIFDmtfc3dhcF9hZGRyZXNzBQdhZGRyZXNzBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQENc2V0UXVvdGVBc3NldAEIX2Fzc2V0SWQJAQt2YWx1ZU9yRWxzZQIJAQdpc0FkbWluAQUBaQkAzAgCCQELU3RyaW5nRW50cnkCBQ1rX3F1b3RlX2Fzc2V0BQhfYXNzZXRJZAUDbmlsAWkBDnNldFJld2FyZEFzc2V0AQhfYXNzZXRJZAkBC3ZhbHVlT3JFbHNlAgkBB2lzQWRtaW4BBQFpCQDMCAIJAQtTdHJpbmdFbnRyeQIFDmtfcmV3YXJkX2Fzc2V0BQhfYXNzZXRJZAUDbmlsAWkBEXNldFN0YWtpbmdBZGRyZXNzAQ9fc3Rha2luZ0FkZHJlc3MJAQt2YWx1ZU9yRWxzZQIJAQdpc0FkbWluAQUBaQQOc3Rha2luZ0FkZHJlc3MJARFnZXRBZGRyZXNzSWZWYWxpZAEFD19zdGFraW5nQWRkcmVzcwMJAAACBQ5zdGFraW5nQWRkcmVzcwUOc3Rha2luZ0FkZHJlc3MJAMwIAgkBC1N0cmluZ0VudHJ5AgURa19zdGFraW5nX2FkZHJlc3MFD19zdGFraW5nQWRkcmVzcwUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBDnNldFNwb3RBZGRyZXNzAQxfc3BvdEFkZHJlc3MJAQt2YWx1ZU9yRWxzZQIJAQdpc0FkbWluAQUBaQQOc3Rha2luZ0FkZHJlc3MJARFnZXRBZGRyZXNzSWZWYWxpZAEFDF9zcG90QWRkcmVzcwMJAAACBQ5zdGFraW5nQWRkcmVzcwUOc3Rha2luZ0FkZHJlc3MJAMwIAgkBC1N0cmluZ0VudHJ5AgUOa19zcG90X2FkZHJlc3MFDF9zcG90QWRkcmVzcwUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBD3NldFZhdWx0QWRkcmVzcwENX3ZhdWx0QWRkcmVzcwkBC3ZhbHVlT3JFbHNlAgkBB2lzQWRtaW4BBQFpBA9leGNoYW5nZUFkZHJlc3MJARFnZXRBZGRyZXNzSWZWYWxpZAEFDV92YXVsdEFkZHJlc3MDCQAAAgUPZXhjaGFuZ2VBZGRyZXNzBQ9leGNoYW5nZUFkZHJlc3MJAMwIAgkBC1N0cmluZ0VudHJ5AgUPa192YXVsdF9hZGRyZXNzBQ1fdmF1bHRBZGRyZXNzBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEQc2V0T3JhY2xlQWRkcmVzcwEOX29yYWNsZUFkZHJlc3MJAQt2YWx1ZU9yRWxzZQIJAQdpc0FkbWluAQUBaQQNb3JhY2xlQWRkcmVzcwkBEWdldEFkZHJlc3NJZlZhbGlkAQUOX29yYWNsZUFkZHJlc3MDCQAAAgUNb3JhY2xlQWRkcmVzcwUNb3JhY2xlQWRkcmVzcwkAzAgCCQELU3RyaW5nRW50cnkCBQhrX29yYWNsZQUOX29yYWNsZUFkZHJlc3MFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQhhZGRDaGlsZAENX2NoaWxkQWRkcmVzcwkBC3ZhbHVlT3JFbHNlAgkBB2lzQWRtaW4BBQFpBAxjaGlsZEFkZHJlc3MJARFnZXRBZGRyZXNzSWZWYWxpZAEFDV9jaGlsZEFkZHJlc3MJAMwIAgkBDEJvb2xlYW5FbnRyeQIJAQ50b0NvbXBvc2l0ZUtleQIFB2tfY2hpbGQFDV9jaGlsZEFkZHJlc3MGBQNuaWwBaQEGYWRkQW1tAgtfYW1tQWRkcmVzcwVfZGF0YQkBC3ZhbHVlT3JFbHNlAgkBB2lzQWRtaW4BBQFpBAphbW1BZGRyZXNzCQERZ2V0QWRkcmVzc0lmVmFsaWQBBQtfYW1tQWRkcmVzcwkAzAgCCQEMQm9vbGVhbkVudHJ5AgkBDnRvQ29tcG9zaXRlS2V5AgUFa19hbW0FC19hbW1BZGRyZXNzBgkAzAgCCQELU3RyaW5nRW50cnkCCQEOdG9Db21wb3NpdGVLZXkCBQprX2FtbV9kYXRhBQtfYW1tQWRkcmVzcwUFX2RhdGEFA25pbAFpAQlyZW1vdmVBbW0BC19hbW1BZGRyZXNzCQELdmFsdWVPckVsc2UCCQEHaXNBZG1pbgEFAWkJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBDnRvQ29tcG9zaXRlS2V5AgUFa19hbW0FC19hbW1BZGRyZXNzCQDMCAIJAQtEZWxldGVFbnRyeQEJAQ50b0NvbXBvc2l0ZUtleQIFCmtfYW1tX2RhdGEFC19hbW1BZGRyZXNzBQNuaWwBaQESc2V0R292ZXJuYW5jZUFzc2V0AQhfYXNzZXRJZAkBC3ZhbHVlT3JFbHNlAgkBB2lzQWRtaW4BBQFpBAphc3NldEJ5dGVzCQDZBAEFCF9hc3NldElkBAckbWF0Y2gwCQDsBwEFCmFzc2V0Qnl0ZXMDCQABAgUHJG1hdGNoMAIFQXNzZXQEBWFzc2V0BQckbWF0Y2gwAwkBAiE9AggFBWFzc2V0CGRlY2ltYWxzAAgJAAIBAiNJbnZhbGlkIGFzc2V0IGRlY2ltYWxzLCBzaG91bGQgYmUgOAkAzAgCCQELU3RyaW5nRW50cnkCBRJrX2dvdmVybmFuY2VfYXNzZXQFCF9hc3NldElkBQNuaWwJAAIBAhBDYW4ndCBmaW5kIGFzc2V0AQJ0eAEGdmVyaWZ5AAQHJG1hdGNoMAkAnQgCBQR0aGlzBQ9rX2FkbWluX2FkZHJlc3MDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAh2ZXJpZmllcgUHJG1hdGNoMAkBC3ZhbHVlT3JFbHNlAgkAmwgCCQERQGV4dHJOYXRpdmUoMTA2MikBBQh2ZXJpZmllcgkArAICCQCsAgIJAKwCAgIHc3RhdHVzXwkApQgBBQR0aGlzAgFfCQDYBAEIBQJ0eAJpZAcJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAAIBQJ0eA9zZW5kZXJQdWJsaWNLZXlvXlXm", "height": 2661441, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: n43xyWpJ3vpvP2ytYaiYF1dBTMjo3E3RXk5p8wCoHJw Next: none Diff:
OldNewDifferences
246246
247247
248248 @Callable(i)
249-func removeAmm (_ammAddress) = valueOrElse(isAdmin(i), [DeleteEntry(toCompositeKey(k_amm, _ammAddress))])
249+func removeAmm (_ammAddress) = valueOrElse(isAdmin(i), [DeleteEntry(toCompositeKey(k_amm, _ammAddress)), DeleteEntry(toCompositeKey(k_amm_data, _ammAddress))])
250250
251251
252252
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_vault_address = "k_vault_address"
77
88 let k_admin_address = "k_admin_address"
99
1010 let k_quote_asset = "k_quote_asset"
1111
1212 let k_reward_asset = "k_reward_asset"
1313
1414 let k_swap_address = "k_swap_address"
1515
1616 let k_staking_address = "k_staking_address"
1717
1818 let k_farming_address = "k_farming_address"
1919
2020 let k_prizes_address = "k_prizes_address"
2121
2222 let k_housekeeper_address = "k_housekeeper_address"
2323
2424 let k_amm = "k_amm"
2525
2626 let k_amm_data = "k_amm_data"
2727
2828 let k_governance_asset = "k_gov_asset"
2929
3030 let k_miner_address = "k_miner_address"
3131
3232 let k_orders_address = "k_orders_address"
3333
3434 let k_referral_address = "k_referral_address"
3535
3636 let k_manager_address = "k_manager_address"
3737
3838 let k_nft_manager_address = "k_nft_manager_address"
3939
4040 let k_child = "k_child"
4141
4242 let k_oracle = "k_oracle"
4343
4444 let k_spot_address = "k_spot_address"
4545
4646 func toCompositeKey (_key,_address) = ((_key + "_") + _address)
4747
4848
4949 func getAddressIfValid (address) = toString(valueOrErrorMessage(addressFromString(address), (("Can't parse \"" + address) + "\" as address")))
5050
5151
5252 func isNoAdmin () = (getString(this, k_admin_address) == unit)
5353
5454
5555 func admin () = addressFromStringValue(valueOrErrorMessage(getString(this, k_admin_address), "Admin not defined"))
5656
5757
5858 func isNoAdminOrAdmin (i) = if (if (if (isNoAdmin())
5959 then (i.caller == this)
6060 else false)
6161 then true
6262 else (i.caller == admin()))
6363 then unit
6464 else throw("Only the Admin itself can invoke this function")
6565
6666
6767 func isAdmin (i) = if ((i.caller == admin()))
6868 then unit
6969 else throw("Only the Admin itself can invoke this function")
7070
7171
7272 @Callable(i)
7373 func setAdmin (_adminAddress) = valueOrElse(isNoAdminOrAdmin(i), {
7474 let address = addressFromStringValue(_adminAddress)
7575 if ((address == address))
7676 then [StringEntry(k_admin_address, toString(address))]
7777 else throw("Strict value is not equal to itself.")
7878 })
7979
8080
8181
8282 @Callable(i)
8383 func setInsuranceFund (_insuranceFund) = valueOrElse(isAdmin(i), {
8484 let address = getAddressIfValid(_insuranceFund)
8585 if ((address == address))
8686 then [StringEntry(k_insurance_address, address)]
8787 else throw("Strict value is not equal to itself.")
8888 })
8989
9090
9191
9292 @Callable(i)
9393 func setLiquidityMiner (_liquidityMiner) = valueOrElse(isAdmin(i), {
9494 let address = getAddressIfValid(_liquidityMiner)
9595 if ((address == address))
9696 then [StringEntry(k_miner_address, address)]
9797 else throw("Strict value is not equal to itself.")
9898 })
9999
100100
101101
102102 @Callable(i)
103103 func setOrders (_orders) = valueOrElse(isAdmin(i), {
104104 let address = getAddressIfValid(_orders)
105105 if ((address == address))
106106 then [StringEntry(k_orders_address, address)]
107107 else throw("Strict value is not equal to itself.")
108108 })
109109
110110
111111
112112 @Callable(i)
113113 func setReferral (_referral) = valueOrElse(isAdmin(i), {
114114 let address = getAddressIfValid(_referral)
115115 if ((address == address))
116116 then [StringEntry(k_referral_address, address)]
117117 else throw("Strict value is not equal to itself.")
118118 })
119119
120120
121121
122122 @Callable(i)
123123 func setFarming (_farming) = valueOrElse(isAdmin(i), {
124124 let address = getAddressIfValid(_farming)
125125 if ((address == address))
126126 then [StringEntry(k_farming_address, address)]
127127 else throw("Strict value is not equal to itself.")
128128 })
129129
130130
131131
132132 @Callable(i)
133133 func setManager (_manager) = valueOrElse(isAdmin(i), {
134134 let address = getAddressIfValid(_manager)
135135 if ((address == address))
136136 then [StringEntry(k_manager_address, address)]
137137 else throw("Strict value is not equal to itself.")
138138 })
139139
140140
141141
142142 @Callable(i)
143143 func setHousekeeper (_housekeeper) = valueOrElse(isAdmin(i), {
144144 let address = getAddressIfValid(_housekeeper)
145145 if ((address == address))
146146 then [StringEntry(k_housekeeper_address, address)]
147147 else throw("Strict value is not equal to itself.")
148148 })
149149
150150
151151
152152 @Callable(i)
153153 func setPrizes (_prizes) = valueOrElse(isAdmin(i), {
154154 let address = getAddressIfValid(_prizes)
155155 if ((address == address))
156156 then [StringEntry(k_prizes_address, address)]
157157 else throw("Strict value is not equal to itself.")
158158 })
159159
160160
161161
162162 @Callable(i)
163163 func setNftManager (_nftManager) = valueOrElse(isAdmin(i), {
164164 let address = getAddressIfValid(_nftManager)
165165 if ((address == address))
166166 then [StringEntry(k_nft_manager_address, address)]
167167 else throw("Strict value is not equal to itself.")
168168 })
169169
170170
171171
172172 @Callable(i)
173173 func setSwap (_swap) = valueOrElse(isAdmin(i), {
174174 let address = getAddressIfValid(_swap)
175175 if ((address == address))
176176 then [StringEntry(k_swap_address, address)]
177177 else throw("Strict value is not equal to itself.")
178178 })
179179
180180
181181
182182 @Callable(i)
183183 func setQuoteAsset (_assetId) = valueOrElse(isAdmin(i), [StringEntry(k_quote_asset, _assetId)])
184184
185185
186186
187187 @Callable(i)
188188 func setRewardAsset (_assetId) = valueOrElse(isAdmin(i), [StringEntry(k_reward_asset, _assetId)])
189189
190190
191191
192192 @Callable(i)
193193 func setStakingAddress (_stakingAddress) = valueOrElse(isAdmin(i), {
194194 let stakingAddress = getAddressIfValid(_stakingAddress)
195195 if ((stakingAddress == stakingAddress))
196196 then [StringEntry(k_staking_address, _stakingAddress)]
197197 else throw("Strict value is not equal to itself.")
198198 })
199199
200200
201201
202202 @Callable(i)
203203 func setSpotAddress (_spotAddress) = valueOrElse(isAdmin(i), {
204204 let stakingAddress = getAddressIfValid(_spotAddress)
205205 if ((stakingAddress == stakingAddress))
206206 then [StringEntry(k_spot_address, _spotAddress)]
207207 else throw("Strict value is not equal to itself.")
208208 })
209209
210210
211211
212212 @Callable(i)
213213 func setVaultAddress (_vaultAddress) = valueOrElse(isAdmin(i), {
214214 let exchangeAddress = getAddressIfValid(_vaultAddress)
215215 if ((exchangeAddress == exchangeAddress))
216216 then [StringEntry(k_vault_address, _vaultAddress)]
217217 else throw("Strict value is not equal to itself.")
218218 })
219219
220220
221221
222222 @Callable(i)
223223 func setOracleAddress (_oracleAddress) = valueOrElse(isAdmin(i), {
224224 let oracleAddress = getAddressIfValid(_oracleAddress)
225225 if ((oracleAddress == oracleAddress))
226226 then [StringEntry(k_oracle, _oracleAddress)]
227227 else throw("Strict value is not equal to itself.")
228228 })
229229
230230
231231
232232 @Callable(i)
233233 func addChild (_childAddress) = valueOrElse(isAdmin(i), {
234234 let childAddress = getAddressIfValid(_childAddress)
235235 [BooleanEntry(toCompositeKey(k_child, _childAddress), true)]
236236 })
237237
238238
239239
240240 @Callable(i)
241241 func addAmm (_ammAddress,_data) = valueOrElse(isAdmin(i), {
242242 let ammAddress = getAddressIfValid(_ammAddress)
243243 [BooleanEntry(toCompositeKey(k_amm, _ammAddress), true), StringEntry(toCompositeKey(k_amm_data, _ammAddress), _data)]
244244 })
245245
246246
247247
248248 @Callable(i)
249-func removeAmm (_ammAddress) = valueOrElse(isAdmin(i), [DeleteEntry(toCompositeKey(k_amm, _ammAddress))])
249+func removeAmm (_ammAddress) = valueOrElse(isAdmin(i), [DeleteEntry(toCompositeKey(k_amm, _ammAddress)), DeleteEntry(toCompositeKey(k_amm_data, _ammAddress))])
250250
251251
252252
253253 @Callable(i)
254254 func setGovernanceAsset (_assetId) = valueOrElse(isAdmin(i), {
255255 let assetBytes = fromBase58String(_assetId)
256256 match assetInfo(assetBytes) {
257257 case asset: Asset =>
258258 if ((asset.decimals != 8))
259259 then throw("Invalid asset decimals, should be 8")
260260 else [StringEntry(k_governance_asset, _assetId)]
261261 case _ =>
262262 throw("Can't find asset")
263263 }
264264 })
265265
266266
267267 @Verifier(tx)
268268 func verify () = match getString(this, k_admin_address) {
269269 case verifier: String =>
270270 valueOrElse(getBoolean(addressFromStringValue(verifier), ((("status_" + toString(this)) + "_") + toBase58String(tx.id))), false)
271271 case _ =>
272272 sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
273273 }
274274

github/deemru/w8io/169f3d6 
36.03 ms