tx · 7S6EB3RJGmAzc5cu2TXopRtXVoa2xaMgzhMaxdRRpnEB

3NARWzNaChSw8Mpf8CZYavL4QWQvk3KUU8b:  -0.01400000 Waves

2019.08.20 00:27 [638585] smart account 3NARWzNaChSw8Mpf8CZYavL4QWQvk3KUU8b > SELF 0.00000000 Waves

{ "type": 13, "id": "7S6EB3RJGmAzc5cu2TXopRtXVoa2xaMgzhMaxdRRpnEB", "fee": 1400000, "feeAssetId": null, "timestamp": 1566250068016, "version": 1, "sender": "3NARWzNaChSw8Mpf8CZYavL4QWQvk3KUU8b", "senderPublicKey": "848RkjzRcJfyWuhGbq8NUFoLMpeDW8NbKu36H3SouHzF", "proofs": [ "hPDHzmSaLvr7k5uXEf6HxuzUiumB9gtvvE3Q2kcnGBAYiupnVnhYEesXMEEDfi5pu5zdVz9vrLkpSd71rgVT9z9" ], "script": "base64:AAIDAAAAAAAAAAAAAAAFAAAAAAp3YXZlc1Rva2VuBQAAAAR1bml0AQAAAAlwYXltZW50T2YAAAABAAAAA2tleQkAASwAAAACAgAAAAtwYXltZW50X29mXwUAAAADa2V5AQAAAAhzdGF0dXNPZgAAAAEAAAADa2V5CQABLAAAAAICAAAACnN0YXR1c19vZl8FAAAAA2tleQAAAAAFb3duZXIJAQAAAAdBZGRyZXNzAAAAAQEAAAAaAVTg86BxmqbXn0VCYdClvCRxLh2SvKgdo1wBAAAAEGlzUGF5bWVudFBlbmRpbmcAAAABAAAAA2tleQQAAAAHJG1hdGNoMAkABB0AAAACBQAAAAR0aGlzCQEAAAAIc3RhdHVzT2YAAAABBQAAAANrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAABcwUAAAAHJG1hdGNoMAkAAAAAAAACBQAAAAFzAgAAAAdwZW5kaW5nBwAAAAQAAAABaQEAAAAQc2V0V2FpdFRvUGF5bWVudAAAAAIAAAADa2V5AAAAB3BheW1lbnQJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAAAhzdGF0dXNPZgAAAAEFAAAAA2tleQIAAAAHcGVuZGluZwkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAACXBheW1lbnRPZgAAAAEFAAAAA2tleQUAAAAHcGF5bWVudAUAAAADbmlsAAAAAWkBAAAAA3BheQAAAAEAAAADa2V5AwkBAAAAEGlzUGF5bWVudFBlbmRpbmcAAAABBQAAAANrZXkEAAAAByRtYXRjaDAIBQAAAAFpAAAAB3BheW1lbnQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAD0F0dGFjaGVkUGF5bWVudAQAAAABYQUAAAAHJG1hdGNoMAMJAAAAAAAAAggFAAAAAWEAAAAHYXNzZXRJZAUAAAAKd2F2ZXNUb2tlbgQAAAAFZGF0YXMJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAAAhzdGF0dXNPZgAAAAEFAAAAA2tleQIAAAAEcGFpZAUAAAADbmlsBAAAAAdwYXltZW50CQEAAAAHZXh0cmFjdAAAAAEJAAQaAAAAAgUAAAAEdGhpcwkBAAAACXBheW1lbnRPZgAAAAEFAAAAA2tleQkBAAAADFNjcmlwdFJlc3VsdAAAAAIFAAAABWRhdGFzCQEAAAALVHJhbnNmZXJTZXQAAAABCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMFAAAABW93bmVyBQAAAAdwYXltZW50BQAAAAp3YXZlc1Rva2VuBQAAAANuaWwJAAACAAAAAQkAASwAAAACAgAAABhjYW4gb25seSBXQVZFUywgYnV0IGdvdCAJAAJYAAAAAQkBAAAABXZhbHVlAAAAAQgFAAAAAWEAAAAHYXNzZXRJZAkAAAIAAAABAgAAACdwYXltZW50IGluIGFzc2V0VG9rZW5zIG11c3QgYmUgYXR0YWNoZWQJAAACAAAAAQIAAAAoT3JkZXIgYWxyZWFkeSBoYXMgYmVlbiBwYXllZCBvciByZWplY3RlZAAAAAFpAQAAAAZyZWplY3QAAAABAAAAA2tleQMJAQAAABBpc1BheW1lbnRQZW5kaW5nAAAAAQUAAAADa2V5CQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAIc3RhdHVzT2YAAAABBQAAAANrZXkCAAAACHJlamVjdGVkBQAAAANuaWwJAAACAAAAAQIAAAAoT3JkZXIgYWxyZWFkeSBoYXMgYmVlbiBwYXllZCBvciByZWplY3RlZAAAAAFpAQAAAAh0cmFuc2ZlcgAAAAIAAAAKYWRkcmVzc1N0cgAAAAdwYXltZW50BAAAAAckbWF0Y2gwCAUAAAABaQAAAAdwYXltZW50AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAA9BdHRhY2hlZFBheW1lbnQEAAAAAWEFAAAAByRtYXRjaDADCQAAAAAAAAIIBQAAAAFhAAAAB2Fzc2V0SWQFAAAACndhdmVzVG9rZW4EAAAAByRtYXRjaDEJAQAAABFhZGRyZXNzRnJvbVN0cmluZwAAAAEFAAAACmFkZHJlc3NTdHIDCQAAAQAAAAIFAAAAByRtYXRjaDECAAAAB0FkZHJlc3MEAAAAB2FkZHJlc3MFAAAAByRtYXRjaDEJAQAAAAtUcmFuc2ZlclNldAAAAAEJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwUAAAAHYWRkcmVzcwUAAAAHcGF5bWVudAUAAAAKd2F2ZXNUb2tlbgUAAAADbmlsCQAAAgAAAAECAAAAD2ludmFsaW4gYWRkcmVzcwkAAAIAAAABCQABLAAAAAICAAAAGGNhbiBvbmx5IFdBVkVTLCBidXQgZ290IAkAAlgAAAABCQEAAAAFdmFsdWUAAAABCAUAAAABYQAAAAdhc3NldElkCQAAAgAAAAECAAAAJ3BheW1lbnQgaW4gYXNzZXRUb2tlbnMgbXVzdCBiZSBhdHRhY2hlZAAAAABMbmT3", "chainId": 84, "height": 638585, "spentComplexity": 0 } View: original | compacted Prev: DjvNYJZfyVgzGAzF9UMbZBmFCryP4LunBVUDPq2heewU Next: 97jvZ2KG5rthzD4w6oKonTTm75CFscADpgyvmK72as3f Diff:
OldNewDifferences
99 func statusOf (key) = ("status_of_" + key)
1010
1111
12-let owner = value(addressFromStringValue("3NARWzNaChSw8Mpf8CZYavL4QWQvk3KUU8b"))
12+let owner = Address(base58'3NARWzNaChSw8Mpf8CZYavL4QWQvk3KUU8b')
1313
1414 func isPaymentPending (key) = match getString(this, statusOf(key)) {
1515 case s: String =>
3131 if ((a.assetId == wavesToken))
3232 then {
3333 let datas = WriteSet([DataEntry(statusOf(key), "paid")])
34- let payment = getIntegerValue(this, paymentOf(key))
34+ let payment = extract(getInteger(this, paymentOf(key)))
3535 ScriptResult(datas, TransferSet([ScriptTransfer(owner, payment, wavesToken)]))
3636 }
3737 else throw(("can only WAVES, but got " + toBase58String(value(a.assetId))))
4848 else throw("Order already has been payed or rejected")
4949
5050
51+
52+@Callable(i)
53+func transfer (addressStr,payment) = match i.payment {
54+ case a: AttachedPayment =>
55+ if ((a.assetId == wavesToken))
56+ then match addressFromString(addressStr) {
57+ case address: Address =>
58+ TransferSet([ScriptTransfer(address, payment, wavesToken)])
59+ case _ =>
60+ throw("invalin address")
61+ }
62+ else throw(("can only WAVES, but got " + toBase58String(value(a.assetId))))
63+ case _ =>
64+ throw("payment in assetTokens must be attached")
65+}
66+
67+
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let wavesToken = unit
55
66 func paymentOf (key) = ("payment_of_" + key)
77
88
99 func statusOf (key) = ("status_of_" + key)
1010
1111
12-let owner = value(addressFromStringValue("3NARWzNaChSw8Mpf8CZYavL4QWQvk3KUU8b"))
12+let owner = Address(base58'3NARWzNaChSw8Mpf8CZYavL4QWQvk3KUU8b')
1313
1414 func isPaymentPending (key) = match getString(this, statusOf(key)) {
1515 case s: String =>
1616 (s == "pending")
1717 case _ =>
1818 false
1919 }
2020
2121
2222 @Callable(i)
2323 func setWaitToPayment (key,payment) = WriteSet([DataEntry(statusOf(key), "pending"), DataEntry(paymentOf(key), payment)])
2424
2525
2626
2727 @Callable(i)
2828 func pay (key) = if (isPaymentPending(key))
2929 then match i.payment {
3030 case a: AttachedPayment =>
3131 if ((a.assetId == wavesToken))
3232 then {
3333 let datas = WriteSet([DataEntry(statusOf(key), "paid")])
34- let payment = getIntegerValue(this, paymentOf(key))
34+ let payment = extract(getInteger(this, paymentOf(key)))
3535 ScriptResult(datas, TransferSet([ScriptTransfer(owner, payment, wavesToken)]))
3636 }
3737 else throw(("can only WAVES, but got " + toBase58String(value(a.assetId))))
3838 case _ =>
3939 throw("payment in assetTokens must be attached")
4040 }
4141 else throw("Order already has been payed or rejected")
4242
4343
4444
4545 @Callable(i)
4646 func reject (key) = if (isPaymentPending(key))
4747 then WriteSet([DataEntry(statusOf(key), "rejected")])
4848 else throw("Order already has been payed or rejected")
4949
5050
51+
52+@Callable(i)
53+func transfer (addressStr,payment) = match i.payment {
54+ case a: AttachedPayment =>
55+ if ((a.assetId == wavesToken))
56+ then match addressFromString(addressStr) {
57+ case address: Address =>
58+ TransferSet([ScriptTransfer(address, payment, wavesToken)])
59+ case _ =>
60+ throw("invalin address")
61+ }
62+ else throw(("can only WAVES, but got " + toBase58String(value(a.assetId))))
63+ case _ =>
64+ throw("payment in assetTokens must be attached")
65+}
66+
67+

github/deemru/w8io/3ef1775 
46.50 ms