tx · BRbp6BPth9MxRvtSUV4DbvrgSoSxGURgccJWViMhbCh4

3N8WDKbqGox5Eky326PHHT7rUyrby5MXdmb:  -0.01000000 Waves

2022.05.11 16:32 [2047071] smart account 3N8WDKbqGox5Eky326PHHT7rUyrby5MXdmb > SELF 0.00000000 Waves

{ "type": 13, "id": "BRbp6BPth9MxRvtSUV4DbvrgSoSxGURgccJWViMhbCh4", "fee": 1000000, "feeAssetId": null, "timestamp": 1652275947333, "version": 2, "chainId": 84, "sender": "3N8WDKbqGox5Eky326PHHT7rUyrby5MXdmb", "senderPublicKey": "FWSsBbeCwLVkekWhvNKtX6JkrZiruRybKKVuiS3F4bqN", "proofs": [ "58AfczV29Pv35762zGN66pcJPzcggRUsvRqhUyUbRYBQ4dLPfePhEXfF36HcXZgRJsiefJNa1K2ZzxtaECwj9dma" ], "script": "base64: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CQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAdhZGRyZXNzAgAAAAFfCQEAAAANZ2V0QXNzZXRJZEtleQAAAAIFAAAABHR4SWQFAAAACWFzc2V0VHlwZQIAAAADX2ZoAQAAABRnZXRCdWlsZGluZ1N0YXR1c0tleQAAAAMAAAAHYWRkcmVzcwAAAAR0eElkAAAACWFzc2V0VHlwZQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgUAAAAHYWRkcmVzcwIAAAABXwkBAAAADWdldEFzc2V0SWRLZXkAAAACBQAAAAR0eElkBQAAAAlhc3NldFR5cGUCAAAAB19zdGF0dXMBAAAADmdldFRyZWFzdXJ5S2V5AAAAAQAAAAhuYXRpb25pZAkAASwAAAACBQAAAAhuYXRpb25pZAIAAAAJX1RyZWFzdXJ5AQAAAApjaGVja0FkbWluAAAAAQAAAAZjYWxsZXIDAwMJAAAAAAAAAgUAAAAGY2FsbGVyBQAAAAxhZG1pbkFkZHJlc3MGCQAAAAAAAAIFAAAABmNhbGxlcgUAAAAEdGhpcwYJAAAAAAAAAggFAAAABmNhbGxlcgAAAAVieXRlcwUAAAAObmF0aW9uc0FkZHJlc3MGCQAAAAAAAAIIBQAAAAZjYWxsZXIAAAAFYnl0ZXMFAAAAD3RyZWFzdXJ5QWRkcmVzcwEAAAATaW50ZXJuYWxGaW5pc2hCdWlsZAAAAAUAAAAGY2FsbGVyAAAACGFzc2V0U3RyAAAACGFzc2V0S2V5AAAAEUJ1aWxkaW5nU3RhdHVzS2V5AAAAD2ZpbmlzaEhlaWdodEtleQQAAAAUYnVpbGRpbmdGaW5pc2hIZWlnaHQJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAABHRoaXMFAAAAD2ZpbmlzaEhlaWdodEtleQMJAABmAAAAAgUAAAAUYnVpbGRpbmdGaW5pc2hIZWlnaHQFAAAABmhlaWdodAkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAHUJ1aWxkaW5nIGlzIG5vdCBmaW5pc2hlZCB5ZXQgCQABpAAAAAEJAABlAAAAAgUAAAAUYnVpbGRpbmdGaW5pc2hIZWlnaHQFAAAABmhlaWdodAIAAAAnIGJsb2NrcyByZW1haW5pbmcsIGl0IHdpbGwgdGFrZSBhcm91bmQgCQABpAAAAAEJAABlAAAAAgUAAAAUYnVpbGRpbmdGaW5pc2hIZWlnaHQFAAAABmhlaWdodAIAAAAIIG1pbnV0ZXMEAAAAA2lkeAkBAAAABXZhbHVlAAAAAQkABE8AAAACBQAAAAZBc3NldHMFAAAACGFzc2V0U3RyBAAAAAphc3NldFBvd2VyCQABkQAAAAIFAAAAC2Fzc2V0c1Bvd2VyBQAAAANpZHgEAAAACmFzc2V0Q29pbnMJAAGRAAAAAgUAAAAKYXNzZXRzQ29zdAUAAAADaWR4BAAAAAdyZWZDYWxsCQAD/AAAAAQJAQAAAAdBZGRyZXNzAAAAAQUAAAAPdHJlYXN1cnlBZGRyZXNzAgAAAANQYXkJAARMAAAAAgUAAAAGY2FsbGVyCQAETAAAAAIFAAAACmFzc2V0Q29pbnMFAAAAA25pbAUAAAADbmlsAwkAAAAAAAACBQAAAAdyZWZDYWxsBQAAAAdyZWZDYWxsAwkAAGYAAAACBQAAAAphc3NldFBvd2VyAAAAAAAAAAAABAAAAAxjdXJyZW50UG93ZXIJAQAAABRuYXRpb25zVHJ5R2V0SW50ZWdlcgAAAAEJAAEsAAAAAgUAAAAGY2FsbGVyAgAAAAZfUG93ZXIEAAAAAnB3CQAD/AAAAAQJAQAAAAdBZGRyZXNzAAAAAQUAAAAObmF0aW9uc0FkZHJlc3MCAAAADHNldFVzZXJQb3dlcgkABEwAAAACBQAAAAZjYWxsZXIJAARMAAAAAgkAAGQAAAACBQAAAAxjdXJyZW50UG93ZXIFAAAACmFzc2V0UG93ZXIFAAAAA25pbAUAAAADbmlsAwkAAAAAAAACBQAAAAJwdwUAAAACcHcJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAACGFzc2V0S2V5BQAAAAphc3NldENvaW5zCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEFAAAAEUJ1aWxkaW5nU3RhdHVzS2V5CQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEFAAAAD2ZpbmlzaEhlaWdodEtleQUAAAADbmlsCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAIYXNzZXRLZXkFAAAACmFzc2V0Q29pbnMJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQUAAAARQnVpbGRpbmdTdGF0dXNLZXkJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQUAAAAPZmluaXNoSGVpZ2h0S2V5BQAAAANuaWwJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQAAAA9jaGVja0Fzc2V0T3duZXIAAAACAAAABmNhbGxlcgAAAAhhc3NldEtleQQAAAAKYXNzZXRPd25lcgkBAAAADHRyeUdldFN0cmluZwAAAAEJAAEsAAAAAgUAAAAIYXNzZXRLZXkCAAAABl9Pd25lcgkAAAAAAAACBQAAAAphc3NldE93bmVyCQAEJQAAAAEFAAAABmNhbGxlcgEAAAAVaXNOYXRpb25SZXNlcnZlZEFzc2V0AAAAAQAAAAxzdHJBc3NldFR5cGUDCQAAAAAAAAIFAAAADHN0ckFzc2V0VHlwZQIAAAAHU2V0dGxlcgYJAAAAAAAAAgUAAAAMc3RyQXNzZXRUeXBlAgAAAAhFeHBsb3JlcgAAAAYAAAABaQEAAAAKU3RhcnRCdWlsZAAAAAIAAAAMc3RyQXNzZXRUeXBlAAAACU5hdGlvbktleQMJAQAAAAEhAAAAAQkBAAAAD2NvbnRhaW5zRWxlbWVudAAAAAIFAAAABkFzc2V0cwUAAAAMc3RyQXNzZXRUeXBlCQAAAgAAAAECAAAAJ1RoaXMgYXNzZXQgaXMgbm90IGFtYW5nZWQgYnkgdGhlIHN5c3RlbQQAAAADaW5kCQEAAAAFdmFsdWUAAAABCQAETwAAAAIFAAAABkFzc2V0cwUAAAAMc3RyQXNzZXRUeXBlBAAAABBkZWxheUZvckJ1aWxkaW5nCQABkQAAAAIFAAAAC2Fzc2V0c0RlbGF5BQAAAANpbmQEAAAADmFzc2V0QnVpbGRDb3N0CQABkQAAAAIFAAAACmFzc2V0c0Nvc3QFAAAAA2luZAMJAQAAABVpc05hdGlvblJlc2VydmVkQXNzZXQAAAABBQAAAAxzdHJBc3NldFR5cGUDAwkBAAAAASEAAAABCQEAAAAPY2hlY2tBc3NldE93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AAAAAwkABCUAAAABCAUAAAABaQAAAAxvcmlnaW5DYWxsZXIIBQAAAAFpAAAADXRyYW5zYWN0aW9uSWQFAAAADHN0ckFzc2V0VHlwZQUAAAAMQnVpbGRTdGFydGVkCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAABBnZXRBc3NldE93bmVyS2V5AAAAAggFAAAAAWkAAAANdHJhbnNhY3Rpb25JZAUAAAAMc3RyQXNzZXRUeXBlCQAEJQAAAAEIBQAAAAFpAAAADG9yaWdpbkNhbGxlcgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAAGmdldEJ1aWxkaW5nRmluaXNoSGVpZ2h0S2V5AAAAAwkABCUAAAABCAUAAAABaQAAAAxvcmlnaW5DYWxsZXIIBQAAAAFpAAAADXRyYW5zYWN0aW9uSWQFAAAADHN0ckFzc2V0VHlwZQkAAGQAAAACBQAAAAZoZWlnaHQFAAAAEGRlbGF5Rm9yQnVpbGRpbmcFAAAAA25pbAkAAAIAAAABAgAAABdJbmNvcnJlY3QgaW52b2tlIHJlc3VsdAAAAAFpAQAAAAtGaW5pc2hCdWlsZAAAAAMAAAAHdHhJZFN0cgAAAAhhc3NldFN0cgAAAAlOYXRpb25LZXkEAAAABHR4SWQJAAJZAAAAAQUAAAAHdHhJZFN0cgQAAAARQnVpbGRpbmdTdGF0dXNLZXkJAQAAABRnZXRCdWlsZGluZ1N0YXR1c0tleQAAAAMJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyBQAAAAR0eElkBQAAAAhhc3NldFN0cgQAAAAPZmluaXNoSGVpZ2h0S2V5CQEAAAAaZ2V0QnVpbGRpbmdGaW5pc2hIZWlnaHRLZXkAAAADCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgUAAAAEdHhJZAUAAAAIYXNzZXRTdHIEAAAACGFzc2V0S2V5CQEAAAANZ2V0QXNzZXRJZEtleQAAAAIFAAAABHR4SWQFAAAACGFzc2V0U3RyBAAAAAphc3NldE93bmVyCQEAAAAMdHJ5R2V0U3RyaW5nAAAAAQkBAAAAEGdldEFzc2V0T3duZXJLZXkAAAACBQAAAAR0eElkBQAAAAhhc3NldFN0cgMJAQAAABVpc05hdGlvblJlc2VydmVkQXNzZXQAAAABBQAAAAhhc3NldFN0cgMDCQEAAAABIQAAAAEJAQAAAA9jaGVja0Fzc2V0T3duZXIAAAACCAUAAAABaQAAAAZjYWxsZXIFAAAACU5hdGlvbktleQkBAAAAASEAAAABCQEAAAAKY2hlY2tBZG1pbgAAAAEIBQAAAAFpAAAABmNhbGxlcgcJAAACAAAAAQIAAAAwWW91IGFyZSBub3QgYXV0aG9yaXplZCB0byBwZXJmb3JtIHRoaXMgb3BlcmF0aW9uCQEAAAATaW50ZXJuYWxGaW5pc2hCdWlsZAAAAAUFAAAACU5hdGlvbktleQUAAAAIYXNzZXRTdHIFAAAACGFzc2V0S2V5BQAAABFCdWlsZGluZ1N0YXR1c0tleQUAAAAPZmluaXNoSGVpZ2h0S2V5AwkBAAAAAiE9AAAAAgUAAAAKYXNzZXRPd25lcgkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIJAAACAAAAAQkAASwAAAACAgAAACFZb3UgY2Fubm90IGNsYWltIG90aGVyJ3MgcGxheWVycyAFAAAACGFzc2V0U3RyBAAAABBidWlsZGluZ1R4U3RhdHVzCQEAAAAMdHJ5R2V0U3RyaW5nAAAAAQUAAAARQnVpbGRpbmdTdGF0dXNLZXkDCQAAAAAAAAIFAAAAEGJ1aWxkaW5nVHhTdGF0dXMCAAAAAAkAAAIAAAABAgAAACRObyBwZW5kaW5nIG9wZXJhdGlvbnMgZm9yIHRoaXMgYXNzZXQJAQAAABNpbnRlcm5hbEZpbmlzaEJ1aWxkAAAABQkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIFAAAACGFzc2V0U3RyBQAAAAhhc3NldEtleQUAAAARQnVpbGRpbmdTdGF0dXNLZXkFAAAAD2ZpbmlzaEhlaWdodEtleQAAAAFpAQAAABF0cmFuc2Zlck93bmVyc2hpcAAAAAMAAAAHYXNzZXRJZAAAAAhuZXdPd25lcgAAAAxzdHJBc3NldFR5cGUDCQEAAAABIQAAAAEJAQAAAApjaGVja0FkbWluAAAAAQgFAAAAAWkAAAAGY2FsbGVyCQAAAgAAAAECAAAAKU9ubHkgdGhlIGFkbWluIGNhbiBwZXJmb3JtIHRoaXMgb3BlcmF0aW9uBAAAAAhvbGRPd25lcgkBAAAADHRyeUdl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", "height": 2047071, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 4W3xtbVdcV5UVKjcPwGATnA8SsBry968uSD5VTTVDc8a Next: BBHrZLFur5Q2ufDu1G6bTecDmkt2XRdzT4qrsgwhv1Qp Diff:
OldNewDifferences
130130 then throw("The nation hasn't enough funds")
131131 else {
132132 let d = invoke(Address(treasuryAddress), "decreaseNationWallet", [NationKey, assetBuildCost], nil)
133- let pw = invoke(Address(treasuryAddress), "arbitraryAddCoins", [NationKey, assetBuildCost], nil)
134- match pw {
133+ match d {
135134 case r: Int =>
135+ let pw = invoke(Address(treasuryAddress), "arbitraryAddCoins", [NationKey, assetBuildCost], nil)
136+ match pw {
137+ case b: Int =>
136138 [StringEntry(getBuildingStatusKey(toString(i.originCaller), i.transactionId, strAssetType), BuildStarted), StringEntry(getAssetOwnerKey(i.transactionId, strAssetType), NationKey), IntegerEntry(getBuildingFinishHeightKey(toString(i.originCaller), i.transactionId, strAssetType), (height + delayForBuilding))]
139+ case _ =>
140+ throw("Error Depositing nation funds")
141+ }
137142 case _ =>
138- throw("Incorrect invoke result")
143+ throw("Error Depositing nation funds")
139144 }
140145 }
141146 }
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let shinywggid = base58'AFQS5E4ELtxex3iANtWtUU2V2oWJZSo8VVnK8z3VFmqf'
55
66 let treasuryAddress = base58'3MyDGEoKp1gF4LSRknk9vSuDEyrwuYXcQEQ'
77
88 let nationsAddress = base58'3MvyzDtzWWV5MZ1GP8JfQhhQqiGU4Nbifdy'
99
1010 let adminAddress = addressFromStringValue("3MpNtiPSRSq6NnaQYk38BfWSzZcgAYTyrQ9")
1111
1212 let BuildStarted = "BUILD_STARTED"
1313
1414 let BuildFinished = "BUILD_FINISHED"
1515
1616 let Assets = ["Nation", "City", "Barrack", "Barn", "Warrior", "Settler", "Explorer"]
1717
1818 let assetsCost = [0, 1000000000, 5000000000, 5000000000, 500000000, 10000000000, 100000000]
1919
2020 let assetsDelay = [0, 4, 4, 4, 2, 2, 2]
2121
2222 let assetsPower = [0, 1000, 500, 500, 0, 0, 0]
2323
2424 func treasuryTryGetInteger (key) = match getInteger(Address(treasuryAddress), key) {
2525 case b: Int =>
2626 b
2727 case _ =>
2828 0
2929 }
3030
3131
3232 func nationsTryGetInteger (key) = match getInteger(Address(nationsAddress), key) {
3333 case b: Int =>
3434 b
3535 case _ =>
3636 0
3737 }
3838
3939
4040 func tryGetString (key) = match getString(this, key) {
4141 case b: String =>
4242 b
4343 case _ =>
4444 ""
4545 }
4646
4747
4848 func tryGetInteger (key) = match getInteger(this, key) {
4949 case b: Int =>
5050 b
5151 case _ =>
5252 0
5353 }
5454
5555
5656 func getAssetIdKey (txId,assetType) = ((assetType + "_") + toBase58String(txId))
5757
5858
5959 func getAssetOwnerKey (txId,assetType) = (getAssetIdKey(txId, assetType) + "_Owner")
6060
6161
6262 func getBuildingFinishHeightKey (address,txId,assetType) = (((address + "_") + getAssetIdKey(txId, assetType)) + "_fh")
6363
6464
6565 func getBuildingStatusKey (address,txId,assetType) = (((address + "_") + getAssetIdKey(txId, assetType)) + "_status")
6666
6767
6868 func getTreasuryKey (nationid) = (nationid + "_Treasury")
6969
7070
7171 func checkAdmin (caller) = if (if (if ((caller == adminAddress))
7272 then true
7373 else (caller == this))
7474 then true
7575 else (caller.bytes == nationsAddress))
7676 then true
7777 else (caller.bytes == treasuryAddress)
7878
7979
8080 func internalFinishBuild (caller,assetStr,assetKey,BuildingStatusKey,finishHeightKey) = {
8181 let buildingFinishHeight = getIntegerValue(this, finishHeightKey)
8282 if ((buildingFinishHeight > height))
8383 then throw((((("Building is not finished yet " + toString((buildingFinishHeight - height))) + " blocks remaining, it will take around ") + toString((buildingFinishHeight - height))) + " minutes"))
8484 else {
8585 let idx = value(indexOf(Assets, assetStr))
8686 let assetPower = assetsPower[idx]
8787 let assetCoins = assetsCost[idx]
8888 let refCall = invoke(Address(treasuryAddress), "Pay", [caller, assetCoins], nil)
8989 if ((refCall == refCall))
9090 then if ((assetPower > 0))
9191 then {
9292 let currentPower = nationsTryGetInteger((caller + "_Power"))
9393 let pw = invoke(Address(nationsAddress), "setUserPower", [caller, (currentPower + assetPower)], nil)
9494 if ((pw == pw))
9595 then [IntegerEntry(assetKey, assetCoins), DeleteEntry(BuildingStatusKey), DeleteEntry(finishHeightKey)]
9696 else throw("Strict value is not equal to itself.")
9797 }
9898 else [IntegerEntry(assetKey, assetCoins), DeleteEntry(BuildingStatusKey), DeleteEntry(finishHeightKey)]
9999 else throw("Strict value is not equal to itself.")
100100 }
101101 }
102102
103103
104104 func checkAssetOwner (caller,assetKey) = {
105105 let assetOwner = tryGetString((assetKey + "_Owner"))
106106 (assetOwner == toString(caller))
107107 }
108108
109109
110110 func isNationReservedAsset (strAssetType) = if ((strAssetType == "Settler"))
111111 then true
112112 else (strAssetType == "Explorer")
113113
114114
115115 @Callable(i)
116116 func StartBuild (strAssetType,NationKey) = if (!(containsElement(Assets, strAssetType)))
117117 then throw("This asset is not amanged by the system")
118118 else {
119119 let ind = value(indexOf(Assets, strAssetType))
120120 let delayForBuilding = assetsDelay[ind]
121121 let assetBuildCost = assetsCost[ind]
122122 if (isNationReservedAsset(strAssetType))
123123 then if (if (!(checkAssetOwner(i.caller, NationKey)))
124124 then !(checkAdmin(i.caller))
125125 else false)
126126 then throw("You are not authorized to perform this operation")
127127 else {
128128 let nationsheg = treasuryTryGetInteger(getTreasuryKey(NationKey))
129129 if ((assetBuildCost > nationsheg))
130130 then throw("The nation hasn't enough funds")
131131 else {
132132 let d = invoke(Address(treasuryAddress), "decreaseNationWallet", [NationKey, assetBuildCost], nil)
133- let pw = invoke(Address(treasuryAddress), "arbitraryAddCoins", [NationKey, assetBuildCost], nil)
134- match pw {
133+ match d {
135134 case r: Int =>
135+ let pw = invoke(Address(treasuryAddress), "arbitraryAddCoins", [NationKey, assetBuildCost], nil)
136+ match pw {
137+ case b: Int =>
136138 [StringEntry(getBuildingStatusKey(toString(i.originCaller), i.transactionId, strAssetType), BuildStarted), StringEntry(getAssetOwnerKey(i.transactionId, strAssetType), NationKey), IntegerEntry(getBuildingFinishHeightKey(toString(i.originCaller), i.transactionId, strAssetType), (height + delayForBuilding))]
139+ case _ =>
140+ throw("Error Depositing nation funds")
141+ }
137142 case _ =>
138- throw("Incorrect invoke result")
143+ throw("Error Depositing nation funds")
139144 }
140145 }
141146 }
142147 else {
143148 let amountIn = value(i.payments[0].amount)
144149 if ((assetBuildCost > amountIn))
145150 then throw(("You provided less $heg than the needed cost for building this " + strAssetType))
146151 else if ((i.payments[0].assetId != shinywggid))
147152 then throw("Only $HEG payments allowed")
148153 else {
149154 let pw = invoke(Address(treasuryAddress), "Deposit", nil, i.payments)
150155 match pw {
151156 case r: Int =>
152157 [StringEntry(getBuildingStatusKey(toString(i.originCaller), i.transactionId, strAssetType), BuildStarted), StringEntry(getAssetOwnerKey(i.transactionId, strAssetType), toString(i.originCaller)), IntegerEntry(getBuildingFinishHeightKey(toString(i.originCaller), i.transactionId, strAssetType), (height + delayForBuilding))]
153158 case _ =>
154159 throw("Incorrect invoke result")
155160 }
156161 }
157162 }
158163 }
159164
160165
161166
162167 @Callable(i)
163168 func FinishBuild (txIdStr,assetStr,NationKey) = {
164169 let txId = fromBase58String(txIdStr)
165170 let BuildingStatusKey = getBuildingStatusKey(toString(i.caller), txId, assetStr)
166171 let finishHeightKey = getBuildingFinishHeightKey(toString(i.caller), txId, assetStr)
167172 let assetKey = getAssetIdKey(txId, assetStr)
168173 let assetOwner = tryGetString(getAssetOwnerKey(txId, assetStr))
169174 if (isNationReservedAsset(assetStr))
170175 then if (if (!(checkAssetOwner(i.caller, NationKey)))
171176 then !(checkAdmin(i.caller))
172177 else false)
173178 then throw("You are not authorized to perform this operation")
174179 else internalFinishBuild(NationKey, assetStr, assetKey, BuildingStatusKey, finishHeightKey)
175180 else if ((assetOwner != toString(i.caller)))
176181 then throw(("You cannot claim other's players " + assetStr))
177182 else {
178183 let buildingTxStatus = tryGetString(BuildingStatusKey)
179184 if ((buildingTxStatus == ""))
180185 then throw("No pending operations for this asset")
181186 else internalFinishBuild(toString(i.caller), assetStr, assetKey, BuildingStatusKey, finishHeightKey)
182187 }
183188 }
184189
185190
186191
187192 @Callable(i)
188193 func transferOwnership (assetId,newOwner,strAssetType) = if (!(checkAdmin(i.caller)))
189194 then throw("Only the admin can perform this operation")
190195 else {
191196 let oldOwner = tryGetString((assetId + "_Owner"))
192197 let currentPower = nationsTryGetInteger((oldOwner + "_Power"))
193198 let assetPower = assetsPower[value(indexOf(Assets, strAssetType))]
194199 let pw = invoke(Address(nationsAddress), "setUserPower", [oldOwner, (currentPower - assetPower)], nil)
195200 if ((pw == pw))
196201 then if ((pw != (currentPower - assetPower)))
197202 then throw("Incorrect invoke result")
198203 else {
199204 let newcurrentPower = nationsTryGetInteger((newOwner + "_Power"))
200205 let pw2 = invoke(Address(nationsAddress), "setUserPower", [newOwner, (newcurrentPower + assetPower)], nil)
201206 if ((pw2 == pw2))
202207 then match pw2 {
203208 case r: Int =>
204209 [StringEntry((assetId + "_Owner"), newOwner)]
205210 case _ =>
206211 throw("Incorrect invoke result")
207212 }
208213 else throw("Strict value is not equal to itself.")
209214 }
210215 else throw("Strict value is not equal to itself.")
211216 }
212217
213218
214219
215220 @Callable(i)
216221 func destroyAssetAndTransfer (assetId,toAddress,strAssetType) = if (!(checkAdmin(i.caller)))
217222 then throw("Only the admin can perform this operation")
218223 else {
219224 let oldOwner = tryGetString((assetId + "_Owner"))
220225 let assetCoins = tryGetInteger(assetId)
221226 let refCall = invoke(Address(treasuryAddress), "arbitraryAddCoins", [toAddress, assetCoins], nil)
222227 if ((refCall == refCall))
223228 then {
224229 let currentPower = nationsTryGetInteger((oldOwner + "_Power"))
225230 let assetPower = assetsPower[value(indexOf(Assets, strAssetType))]
226231 let pw = invoke(Address(nationsAddress), "setUserPower", [toString(i.caller), (currentPower - assetPower)], nil)
227232 if ((pw == pw))
228233 then match pw {
229234 case r: Int =>
230235 [DeleteEntry(assetId)]
231236 case _ =>
232237 throw("Incorrect invoke result")
233238 }
234239 else throw("Strict value is not equal to itself.")
235240 }
236241 else throw("Strict value is not equal to itself.")
237242 }
238243
239244
240245
241246 @Callable(i)
242247 func destroyAssetFromUser (assetId,strAssetType) = if (!(checkAssetOwner(i.caller, assetId)))
243248 then throw("You don't own this asset")
244249 else {
245250 let assetCoins = tryGetInteger(assetId)
246251 let currentPower = nationsTryGetInteger((toString(i.caller) + "_Power"))
247252 let assetPower = assetsPower[value(indexOf(Assets, strAssetType))]
248253 let pw = invoke(Address(nationsAddress), "setUserPower", [toString(i.caller), (currentPower - assetPower)], nil)
249254 if ((pw == pw))
250255 then match pw {
251256 case r: Int =>
252257 [DeleteEntry(assetId), ScriptTransfer(i.caller, assetCoins, shinywggid)]
253258 case _ =>
254259 throw("Incorrect invoke result")
255260 }
256261 else throw("Strict value is not equal to itself.")
257262 }
258263
259264
260265
261266 @Callable(i)
262267 func setNationOwner (nationKey,newOwner) = if (checkAdmin(i.caller))
263268 then $Tuple2([StringEntry((nationKey + "_Owner"), newOwner)], true)
264269 else {
265270 let currentOwner = tryGetString((nationKey + "_Owner"))
266271 if ((currentOwner != toString(i.caller)))
267272 then throw("You are not the nation owner")
268273 else [StringEntry((nationKey + "_Owner"), newOwner)]
269274 }
270275
271276

github/deemru/w8io/169f3d6 
74.80 ms