tx · 7t2Vamk4e2H7z63HUMy2u8CyfzM9MrZ5szFMUjqaXsPG

3NA73oUXjqp7SpudXWV1yMFuKm9awPbqsVz:  -0.00600000 Waves

2022.10.04 12:26 [2257409] smart account 3NA73oUXjqp7SpudXWV1yMFuKm9awPbqsVz > SELF 0.00000000 Waves

{ "type": 13, "id": "7t2Vamk4e2H7z63HUMy2u8CyfzM9MrZ5szFMUjqaXsPG", "fee": 600000, "feeAssetId": null, "timestamp": 1664875602000, "version": 2, "chainId": 84, "sender": "3NA73oUXjqp7SpudXWV1yMFuKm9awPbqsVz", "senderPublicKey": "2mHW72YTfnxJ1M8WsdUQjgpp3a2SUbt9mbAiePGiuJok", "proofs": [ "2Fi4KLPf8T6rHpAzsb471ZvfSJ3xxfvNAoRBpo5jJicMYnADE326GhuKxQapVt7UsoYcwkYCinQBdbdB6Azsh6W8" ], "script": "base64:AAIFAAAAAAAAABIIAhIECgIIARIDCgEIEgMKAQgAAAAVAQAAABBnZXRTdHJpbmdPclRocm93AAAAAgAAAAdhZGRyZXNzAAAAA2tleQkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEHQAAAAIFAAAAB2FkZHJlc3MFAAAAA2tleQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAMQ2FuJ3QgcmVhZCAnBQAAAANrZXkCAAAADScgYXQgYWRkcmVzcyAJAAQlAAAAAQUAAAAHYWRkcmVzcwEAAAARZ2V0SW50ZWdlck9yVGhyb3cAAAACAAAAB2FkZHJlc3MAAAADa2V5CQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQaAAAAAgUAAAAHYWRkcmVzcwUAAAADa2V5CQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAxDYW4ndCByZWFkICcFAAAAA2tleQIAAAANJyBhdCBhZGRyZXNzIAkABCUAAAABBQAAAAdhZGRyZXNzAQAAABNwYXJzZUFkZHJlc3NPclRocm93AAAAAQAAAAxtYXliZUFkZHJlc3MJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABCYAAAABBQAAAAxtYXliZUFkZHJlc3MJAAEsAAAAAgkAASwAAAACAgAAABpDYW4ndCBwYXJzZSBhZGRyZXNzIGZyb20gJwUAAAAMbWF5YmVBZGRyZXNzAgAAAAEnAQAAAAprZXlfZW50aXR5AAAAAwAAAARuYW1lAAAAAnBrAAAACHByb3BlcnR5CQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIFAAAABG5hbWUCAAAAAV8FAAAAAnBrAgAAAAFfBQAAAAhwcm9wZXJ0eQEAAAAOa2V5X1Rva2VuX25hbWUAAAABAAAAB3Rva2VuSWQJAQAAAAprZXlfZW50aXR5AAAAAwIAAAAFVG9rZW4FAAAAB3Rva2VuSWQCAAAABG5hbWUBAAAADmtleV9OYW1lX3Rva2VuAAAAAQAAAARuYW1lCQEAAAAKa2V5X2VudGl0eQAAAAMCAAAABE5hbWUFAAAABG5hbWUCAAAABXRva2VuAQAAAA5rZXlfTmFtZV9vd25lcgAAAAEAAAAEbmFtZQkBAAAACmtleV9lbnRpdHkAAAADAgAAAAROYW1lBQAAAARuYW1lAgAAAAVvd25lcgEAAAASa2V5X05hbWVfZXhwaXJlc0F0AAAAAQAAAARuYW1lCQEAAAAKa2V5X2VudGl0eQAAAAMCAAAABE5hbWUFAAAABG5hbWUCAAAACWV4cGlyZXNBdAEAAAASa2V5X05hbWVfY3JlYXRlZEF0AAAAAQAAAARuYW1lCQEAAAAKa2V5X2VudGl0eQAAAAMCAAAABE5hbWUFAAAABG5hbWUCAAAACWNyZWF0ZWRBdAEAAAAOa2V5X093bmVyX25hbWUAAAABAAAAB2FkZHJlc3MJAQAAAAprZXlfZW50aXR5AAAAAwIAAAAFT3duZXIFAAAAB2FkZHJlc3MCAAAABG5hbWUAAAAAEmtleV9hdWN0aW9uQWRkcmVzcwIAAAAOYXVjdGlvbkFkZHJlc3MAAAAAGmtleV9uYW1lRXhwaXJhdGlvbkludGVydmFsAgAAABZuYW1lRXhwaXJhdGlvbkludGVydmFsAAAAABRrZXlfbWF4QXV0aG9yaXplZEZlZQIAAAAQbWF4QXV0aG9yaXplZEZlZQAAAAARYXVjdGlvbkFkZHJlc3NTdHIJAQAAABBnZXRTdHJpbmdPclRocm93AAAAAgUAAAAEdGhpcwUAAAASa2V5X2F1Y3Rpb25BZGRyZXNzAAAAAA5hdWN0aW9uQWRkcmVzcwkBAAAAE3BhcnNlQWRkcmVzc09yVGhyb3cAAAABBQAAABFhdWN0aW9uQWRkcmVzc1N0cgAAAAAWbmFtZUV4cGlyYXRpb25JbnRlcnZhbAkBAAAAEWdldEludGVnZXJPclRocm93AAAAAgUAAAAEdGhpcwUAAAAaa2V5X25hbWVFeHBpcmF0aW9uSW50ZXJ2YWwAAAAAEG1heEF1dGhvcml6ZWRGZWUJAQAAABFnZXRJbnRlZ2VyT3JUaHJvdwAAAAIFAAAABHRoaXMFAAAAFGtleV9tYXhBdXRob3JpemVkRmVlAQAAAAV3aG9JcwAAAAEAAAAEbmFtZQQAAAAJZXhwaXJlc0F0CQEAAAARZ2V0SW50ZWdlck9yVGhyb3cAAAACBQAAAAR0aGlzCQEAAAASa2V5X05hbWVfZXhwaXJlc0F0AAAAAQUAAAAEbmFtZQQAAAAFdG9rZW4JAQAAABBnZXRTdHJpbmdPclRocm93AAAAAgUAAAAEdGhpcwkBAAAADmtleV9OYW1lX3Rva2VuAAAAAQUAAAAEbmFtZQQAAAAFb3duZXIJAQAAABBnZXRTdHJpbmdPclRocm93AAAAAgUAAAAEdGhpcwkBAAAADmtleV9OYW1lX293bmVyAAAAAQUAAAAEbmFtZQkABRUAAAADBQAAAAVvd25lcgUAAAAJZXhwaXJlc0F0BQAAAAV0b2tlbgEAAAARaXNSZWdpc3RlcmVkVG9rZW4AAAABAAAAB3Rva2VuSWQJAQAAAAlpc0RlZmluZWQAAAABCQAEHQAAAAIFAAAABHRoaXMJAQAAAA5rZXlfVG9rZW5fbmFtZQAAAAEFAAAAB3Rva2VuSWQBAAAAEGlzUmVnaXN0ZXJlZE5hbWUAAAABAAAABG5hbWUJAQAAAAlpc0RlZmluZWQAAAABCQAEHQAAAAIFAAAABHRoaXMJAQAAAA5rZXlfTmFtZV90b2tlbgAAAAEFAAAABG5hbWUBAAAADWlzRXhwaXJlZE5hbWUAAAABAAAABG5hbWUEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkBAAAAEmtleV9OYW1lX2V4cGlyZXNBdAAAAAEFAAAABG5hbWUDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAAJZXhwaXJlc0F0BQAAAAckbWF0Y2gwCQAAZgAAAAIFAAAACWV4cGlyZXNBdAgFAAAACWxhc3RCbG9jawAAAAl0aW1lc3RhbXAHAAAAAwAAAANpbnYBAAAABGluaXQAAAACAAAADmF1Y3Rpb25BZGRyZXNzAAAAFm5hbWVFeHBpcmF0aW9uSW50ZXJ2YWwDCQEAAAACIT0AAAACCAUAAAADaW52AAAABmNhbGxlcgUAAAAEdGhpcwkAAAIAAAABAgAAABFQZXJtaXNzaW9uIGRlbmllZAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACBQAAABJrZXlfYXVjdGlvbkFkZHJlc3MFAAAADmF1Y3Rpb25BZGRyZXNzCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAABprZXlfbmFtZUV4cGlyYXRpb25JbnRlcnZhbAUAAAAWbmFtZUV4cGlyYXRpb25JbnRlcnZhbAUAAAADbmlsAAAAA2ludgEAAAARcmVnaXN0ZXJPd25lcnNoaXAAAAABAAAABG5hbWUEAAAABmNhbGxlcggFAAAAA2ludgAAAAZjYWxsZXIEAAAACWNhbGxlclN0cgkABCUAAAABBQAAAAZjYWxsZXIEAAAACyR0MDI4MzYzMDkxBAAAAAckbWF0Y2gwCQAD/AAAAAQFAAAADmF1Y3Rpb25BZGRyZXNzAgAAAA1nZXRXaW5uZXJJbmZvCQAETAAAAAIFAAAABG5hbWUFAAAAA25pbAUAAAADbmlsAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAABUoSW50LCBTdHJpbmcsIFN0cmluZykEAAAACndpbm5lckluZm8FAAAAByRtYXRjaDAFAAAACndpbm5lckluZm8JAAACAAAAAQIAAAAfVW5leHBlY3RlZCBnZXRXaW5uZXJJbmZvIHJlc3VsdAQAAAAPd2lubmVyQXVjdGlvbklkCAUAAAALJHQwMjgzNjMwOTEAAAACXzEEAAAADXdpbm5lckFkZHJlc3MIBQAAAAskdDAyODM2MzA5MQAAAAJfMgQAAAAKd2lubmVySGFzaAgFAAAACyR0MDI4MzYzMDkxAAAAAl8zAwkBAAAAAiE9AAAAAgUAAAAJY2FsbGVyU3RyBQAAAA13aW5uZXJBZGRyZXNzCQAAAgAAAAEJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAD1dpbm5lciBhZGRyZXNzIAUAAAANd2lubmVyQWRkcmVzcwIAAAAhZG9lc24ndCBtYXRjaCB3aXRoIGNhbGxlciBhZGRyZXNzBQAAAAljYWxsZXJTdHIDAwkBAAAAEGlzUmVnaXN0ZXJlZE5hbWUAAAABBQAAAARuYW1lCQEAAAABIQAAAAEJAQAAAA1pc0V4cGlyZWROYW1lAAAAAQUAAAAEbmFtZQcJAAACAAAAAQIAAAATTmFtZSBhbHJlYWR5IGluIHVzZQQAAAAOaXNzdWVOYW1lVG9rZW4JAARCAAAABQMJAABmAAAAAgkAATEAAAABBQAAAARuYW1lAAAAAAAAAAAQCQABLAAAAAIJAAEvAAAAAgUAAAAEbmFtZQAAAAAAAAAADwIAAAABfgkAAS8AAAACBQAAAARuYW1lAAAAAAAAAAAQBQAAAARuYW1lAAAAAAAAAAABAAAAAAAAAAAABwQAAAAHdG9rZW5JZAkABDgAAAABBQAAAA5pc3N1ZU5hbWVUb2tlbgQAAAAIdG9rZW5TdHIJAAJYAAAAAQUAAAAHdG9rZW5JZAQAAAAQaXNzdWVBbmRSZWdpc3RlcgkABEwAAAACBQAAAA5pc3N1ZU5hbWVUb2tlbgkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAOa2V5X05hbWVfdG9rZW4AAAABBQAAAARuYW1lBQAAAAh0b2tlblN0cgkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAOa2V5X1Rva2VuX25hbWUAAAABBQAAAAh0b2tlblN0cgUAAAAEbmFtZQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAAEmtleV9OYW1lX2NyZWF0ZWRBdAAAAAEFAAAABG5hbWUIBQAAAAlsYXN0QmxvY2sAAAAJdGltZXN0YW1wCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAASa2V5X05hbWVfZXhwaXJlc0F0AAAAAQUAAAAEbmFtZQkAAGQAAAACCAUAAAAJbGFzdEJsb2NrAAAACXRpbWVzdGFtcAUAAAAWbmFtZUV4cGlyYXRpb25JbnRlcnZhbAUAAAADbmlsBAAAABdzZXRPd25lcnNoaXBBbmRUcmFuc2ZlcgkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAOa2V5X05hbWVfb3duZXIAAAABBQAAAARuYW1lBQAAAAljYWxsZXJTdHIJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwUAAAAGY2FsbGVyAAAAAAAAAAABBQAAAAd0b2tlbklkBQAAAANuaWwJAAROAAAAAgUAAAAQaXNzdWVBbmRSZWdpc3RlcgUAAAAXc2V0T3duZXJzaGlwQW5kVHJhbnNmZXIAAAADaW52AQAAABBhcHByb3ZlT3duZXJzaGlwAAAAAQAAAARuYW1lBAAAAAZjYWxsZXIIBQAAAANpbnYAAAAGY2FsbGVyBAAAAAljYWxsZXJTdHIJAAQlAAAAAQUAAAAGY2FsbGVyBAAAAAVvd25lcgkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEHQAAAAIFAAAABHRoaXMJAQAAAA5rZXlfTmFtZV9vd25lcgAAAAEFAAAABG5hbWUCAAAAFE93bmVyIGlzIG5vdCBkZWZpbmVkBAAAAAh0b2tlblN0cgkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEHQAAAAIFAAAABHRoaXMJAQAAAA5rZXlfTmFtZV90b2tlbgAAAAEFAAAABG5hbWUCAAAAIE5vIHRva2VuIGlzIGlzc3VlZCBmb3IgdGhpcyBuYW1lBAAAAAd0b2tlbklkCQACWQAAAAEFAAAACHRva2VuU3RyBAAAAAV0b2tlbgQAAAAHJG1hdGNoMAkAA+wAAAABBQAAAAd0b2tlbklkAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAVBc3NldAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQkAAAIAAAABAgAAABBDYW4ndCBmaW5kIGFzc2V0AwkAAAAAAAACBQAAAAljYWxsZXJTdHIFAAAABW93bmVyCQAAAgAAAAECAAAAGVlvdSBhbHJlYWR5IG93biB0aGlzIG5hbWUDCQEAAAABIQAAAAEJAQAAABBpc1JlZ2lzdGVyZWROYW1lAAAAAQUAAAAEbmFtZQkAAAIAAAABAgAAABZOYW1lIGlzIG5vdCByZWdpc3RlcmVkAwkBAAAADWlzRXhwaXJlZE5hbWUAAAABBQAAAARuYW1lCQAAAgAAAAECAAAAI1RoZSBwZXJpb2Qgb2Ygb3duZXJzaGlwIGhhcyBleHBpcmVkAwkAAAAAAAACCQAD8AAAAAIFAAAABmNhbGxlcgUAAAAHdG9rZW5JZAAAAAAAAAAAAAkAAAIAAAABAgAAABxZb3UgZG9uJ3QgaGF2ZSBhIG5hbWVkIHRva2VuCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAAA5rZXlfTmFtZV9vd25lcgAAAAEFAAAABG5hbWUFAAAACWNhbGxlclN0cgUAAAADbmlsAAAAACKB5hE=", "height": 2257409, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: EtPCdmPULL5vQxS7jpsWzCfXux5pPPicckTUJ33httnm Next: BjiEgx7v1bhLqrqYGr3brGLg5w2yUMxdbvMWZzd6oj9C Diff:
OldNewDifferences
7878 func registerOwnership (name) = {
7979 let caller = inv.caller
8080 let callerStr = toString(caller)
81- let $t027863041 = match invoke(auctionAddress, "getWinnerInfo", [name], nil) {
81+ let $t028363091 = match invoke(auctionAddress, "getWinnerInfo", [name], nil) {
8282 case winnerInfo: (Int, String, String) =>
8383 winnerInfo
8484 case _ =>
8585 throw("Unexpected getWinnerInfo result")
8686 }
87- let winnerAuctionId = $t027863041._1
88- let winnerAddress = $t027863041._2
89- let winnerHash = $t027863041._3
87+ let winnerAuctionId = $t028363091._1
88+ let winnerAddress = $t028363091._2
89+ let winnerHash = $t028363091._3
9090 if ((callerStr != winnerAddress))
9191 then throw(((("Winner address " + winnerAddress) + "doesn't match with caller address") + callerStr))
9292 else if (if (isRegisteredName(name))
101101 let tokenStr = toBase58String(tokenId)
102102 let issueAndRegister = [issueNameToken, StringEntry(key_Name_token(name), tokenStr), StringEntry(key_Token_name(tokenStr), name), IntegerEntry(key_Name_createdAt(name), lastBlock.timestamp), IntegerEntry(key_Name_expiresAt(name), (lastBlock.timestamp + nameExpirationInterval))]
103103 let setOwnershipAndTransfer = [StringEntry(key_Name_owner(name), callerStr), ScriptTransfer(caller, 1, tokenId)]
104- let finalizeOrigin = invoke(auctionAddress, "finalizeOrigin", [name], nil)
105- if ((finalizeOrigin == finalizeOrigin))
106- then (issueAndRegister ++ setOwnershipAndTransfer)
107- else throw("Strict value is not equal to itself.")
104+ (issueAndRegister ++ setOwnershipAndTransfer)
108105 }
109106 }
110107
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 func getStringOrThrow (address,key) = valueOrErrorMessage(getString(address, key), ((("Can't read '" + key) + "' at address ") + toString(address)))
55
66
77 func getIntegerOrThrow (address,key) = valueOrErrorMessage(getInteger(address, key), ((("Can't read '" + key) + "' at address ") + toString(address)))
88
99
1010 func parseAddressOrThrow (maybeAddress) = valueOrErrorMessage(addressFromString(maybeAddress), (("Can't parse address from '" + maybeAddress) + "'"))
1111
1212
1313 func key_entity (name,pk,property) = ((((name + "_") + pk) + "_") + property)
1414
1515
1616 func key_Token_name (tokenId) = key_entity("Token", tokenId, "name")
1717
1818
1919 func key_Name_token (name) = key_entity("Name", name, "token")
2020
2121
2222 func key_Name_owner (name) = key_entity("Name", name, "owner")
2323
2424
2525 func key_Name_expiresAt (name) = key_entity("Name", name, "expiresAt")
2626
2727
2828 func key_Name_createdAt (name) = key_entity("Name", name, "createdAt")
2929
3030
3131 func key_Owner_name (address) = key_entity("Owner", address, "name")
3232
3333
3434 let key_auctionAddress = "auctionAddress"
3535
3636 let key_nameExpirationInterval = "nameExpirationInterval"
3737
3838 let key_maxAuthorizedFee = "maxAuthorizedFee"
3939
4040 let auctionAddressStr = getStringOrThrow(this, key_auctionAddress)
4141
4242 let auctionAddress = parseAddressOrThrow(auctionAddressStr)
4343
4444 let nameExpirationInterval = getIntegerOrThrow(this, key_nameExpirationInterval)
4545
4646 let maxAuthorizedFee = getIntegerOrThrow(this, key_maxAuthorizedFee)
4747
4848 func whoIs (name) = {
4949 let expiresAt = getIntegerOrThrow(this, key_Name_expiresAt(name))
5050 let token = getStringOrThrow(this, key_Name_token(name))
5151 let owner = getStringOrThrow(this, key_Name_owner(name))
5252 $Tuple3(owner, expiresAt, token)
5353 }
5454
5555
5656 func isRegisteredToken (tokenId) = isDefined(getString(this, key_Token_name(tokenId)))
5757
5858
5959 func isRegisteredName (name) = isDefined(getString(this, key_Name_token(name)))
6060
6161
6262 func isExpiredName (name) = match getInteger(this, key_Name_expiresAt(name)) {
6363 case expiresAt: Int =>
6464 (expiresAt > lastBlock.timestamp)
6565 case _ =>
6666 false
6767 }
6868
6969
7070 @Callable(inv)
7171 func init (auctionAddress,nameExpirationInterval) = if ((inv.caller != this))
7272 then throw("Permission denied")
7373 else [StringEntry(key_auctionAddress, auctionAddress), IntegerEntry(key_nameExpirationInterval, nameExpirationInterval)]
7474
7575
7676
7777 @Callable(inv)
7878 func registerOwnership (name) = {
7979 let caller = inv.caller
8080 let callerStr = toString(caller)
81- let $t027863041 = match invoke(auctionAddress, "getWinnerInfo", [name], nil) {
81+ let $t028363091 = match invoke(auctionAddress, "getWinnerInfo", [name], nil) {
8282 case winnerInfo: (Int, String, String) =>
8383 winnerInfo
8484 case _ =>
8585 throw("Unexpected getWinnerInfo result")
8686 }
87- let winnerAuctionId = $t027863041._1
88- let winnerAddress = $t027863041._2
89- let winnerHash = $t027863041._3
87+ let winnerAuctionId = $t028363091._1
88+ let winnerAddress = $t028363091._2
89+ let winnerHash = $t028363091._3
9090 if ((callerStr != winnerAddress))
9191 then throw(((("Winner address " + winnerAddress) + "doesn't match with caller address") + callerStr))
9292 else if (if (isRegisteredName(name))
9393 then !(isExpiredName(name))
9494 else false)
9595 then throw("Name already in use")
9696 else {
9797 let issueNameToken = Issue(if ((size(name) > 16))
9898 then (take(name, 15) + "~")
9999 else take(name, 16), name, 1, 0, false)
100100 let tokenId = calculateAssetId(issueNameToken)
101101 let tokenStr = toBase58String(tokenId)
102102 let issueAndRegister = [issueNameToken, StringEntry(key_Name_token(name), tokenStr), StringEntry(key_Token_name(tokenStr), name), IntegerEntry(key_Name_createdAt(name), lastBlock.timestamp), IntegerEntry(key_Name_expiresAt(name), (lastBlock.timestamp + nameExpirationInterval))]
103103 let setOwnershipAndTransfer = [StringEntry(key_Name_owner(name), callerStr), ScriptTransfer(caller, 1, tokenId)]
104- let finalizeOrigin = invoke(auctionAddress, "finalizeOrigin", [name], nil)
105- if ((finalizeOrigin == finalizeOrigin))
106- then (issueAndRegister ++ setOwnershipAndTransfer)
107- else throw("Strict value is not equal to itself.")
104+ (issueAndRegister ++ setOwnershipAndTransfer)
108105 }
109106 }
110107
111108
112109
113110 @Callable(inv)
114111 func approveOwnership (name) = {
115112 let caller = inv.caller
116113 let callerStr = toString(caller)
117114 let owner = valueOrErrorMessage(getString(this, key_Name_owner(name)), "Owner is not defined")
118115 let tokenStr = valueOrErrorMessage(getString(this, key_Name_token(name)), "No token is issued for this name")
119116 let tokenId = fromBase58String(tokenStr)
120117 let token = match assetInfo(tokenId) {
121118 case a: Asset =>
122119 a
123120 case _ =>
124121 throw("Can't find asset")
125122 }
126123 if ((callerStr == owner))
127124 then throw("You already own this name")
128125 else if (!(isRegisteredName(name)))
129126 then throw("Name is not registered")
130127 else if (isExpiredName(name))
131128 then throw("The period of ownership has expired")
132129 else if ((assetBalance(caller, tokenId) == 0))
133130 then throw("You don't have a named token")
134131 else [StringEntry(key_Name_owner(name), callerStr)]
135132 }
136133
137134

github/deemru/w8io/873ac7e 
64.92 ms