Transfers view
UTXO view
Obyte.org
Unit Legend
- not on main chain, not stable
- main chain, not stable
- bad unit
- not on main chain, stable/confirmed/final
- main chain, stable/confirmed/final
- not on main chain, selected
- main chain, selected
Close
Close
Unit ID
nuyKhcQO9iRN5xAYuIQiwiICVtcICcdPhBovBnBGMX4=
Received
23.10.2019 06:38:24
Confirmation delay (full node)
5 minutes 58 seconds
Confirmation delay (light node)
7 minutes 54 seconds
Authors
DPYEPM34AUBLZFLCJKKGSJ3R34373IUA
Children
fMUvlpa4cl3mBEvNkgMmco0e6nuxFNeHS3WdnxKEEWo=
Parents
ixqy3/SdIcwxyEoEbSXe+wrwwh7EKkjMrLsxmvbxb3Q=
Messages
Definition
Address:
FMIIK2B7HJZRDFEH4YM6DVSE5BTTBKKX
Definition:
[ "autonomous agent", { "init": "{ $provider = "HFNBIQTUNVMRM7PDP6NT2QRKLR62FOGR" ; $processor = "Z5OZYHRGUSNIHUVBQIAMV7XQNDZKPQKE" ; $fee = var[ "fee" ] otherwise 21000 ; // Obot by
[email protected]
// Get paid for doing complex computation on your computer or on your own, think Lambda function for Obyte // The perfect function is one that takes little input data or a link to a big data set, then do complex or private computation // real world examples are science data analysis like SETI or WCG // usage: // 1) function caller calls this AA with { "args" : '<value or json>' } and pays processing fee to get { "job" : <job number> } // 2) processor computes and send back to this AA { "job" : <job number> , "result" : <value or json> } // 3) provider only gets the processing fee when the result is sent back to caller by this AA // 4) result verification is up to the function caller, perhaps using simple technique like compare results from multiple Obots // setup: // set $provider address and fee above // the provider runs a headless wallet $processor address which listens for jobs from this AA // // For this array sorting Obot: // caller sends { "args" : "[ 3 , 4 , 1 , 2 ]" } with 21000 bytes and gets response { "job" : 1 } // wait for result { "job" : 1 , "result" : "[ 1 , 2 , 3 , 4 ]" } as a data payload ( trigger data for an AA ) // and as a response ( for another headless wallet ) $txfee = 1000 ; }", "messages": { "cases": [ { "if": "{ trigger.address == $provider AND trigger.data.fee }", "messages": [ { "app": "state", "state": "{ var[ "fee" ] = trigger.data.fee ; }" } ] }, { "if": "{ trigger.output[[asset=base]] < $fee }", "messages": [ { "app": "data", "payload": { "reject": "{ "provider request fee of " || $fee }" } }, { "app": "payment", "payload": { "asset": "base", "outputs": [ { "address": "{ trigger.address }", "amount": "{ trigger.output[[asset=base]] }" } ] } } ] }, { "if": "{ trigger.address == $processor AND trigger.data.job AND trigger.data.result }", "init": "{ $job = trigger.data.job || "" ; }", "messages": [ { "app": "data", "payload": { "job": "{ $job }", "result": "{ trigger.data.result }", "round": "{ var[ "round_" || $job ] }" } }, { "app": "payment", "payload": { "asset": "base", "outputs": [ { "address": "{ $provider }", "amount": "{ var[ $job ] }" }, { "address": "{ var[ "caller_" || $job ] }", "amount": "{ $txfee }" } ] } }, { "app": "state", "state": "{ if( ! var[ $job ] ) bounce( "there is no such job " || $job ) ; // clear job var[ $job ] = false ; var[ "caller_" || $job ] = false ; var[ "round_" || $job ] = false ; // duplicate payload as response response[ "job" ] = $job ; response[ "result" ] = trigger.data.result ; response[ "round" ] = var[ "round_" || $job ] ; }" } ] }, { "messages": [ { "app": "payment", "payload": { "asset": "base", "outputs": [ { "address": "{ $processor }", "amount": 10000 } ] } }, { "app": "state", "state": "{ var[ "job" ] += 1 ; $newjob = var[ "job" ] || "" ; var[ $newjob ] = trigger.output[[asset=base]] - ( 3 * $txfee ) ; // save current fee var[ "caller_" || $newjob ] = trigger.address ; // store caller to send result later var[ "round_" || $newjob ] = trigger.data.round ; // store round from obotic // send job to listening Obot headless wallet response[ "job" ] = $newjob ; //response[ "args" ] = "[ 3 , 4 , 1 , 2 ]" ; // example response[ "args" ] = trigger.data.args ; // possible to have no args response[ "round" ] = trigger.data.round ; // obotic specific }" } ] } ] } } ]
Witnesses
2FF7PSL7FYXVU5UIQHCVDTTPUOOG75GX
2GPBEZTAXKWEXMWCTGZALIZDNWS5B3V7
4H2AMKF6YO2IWJ5MYWJS3N7Y2YU2T4Z5
DFVODTYGTS3ILVOQ5MFKJIERH6LGKELP
ERMF7V2RLCPABMX5AMNGUQBAH4CD5TK4
F4KHJUCLJKY4JV7M5F754LAJX4EB7M4N
IOF6PTBDTLSTBS5NWHUSD7I2NHK3BQ2T
O4K4QILG6VPGTYLRAI2RGYRFJZ7N2Q2O
OPNUXBRSSQQGHKQNEPD2GLWQYEUY5XLD
PA4QK46276MJJD5DBOLIBMYKNNXMUVDP
RJDYXC4YQ4AZKFYTJVCR5GQJF5J6KPRI
WELOXP3EOA75JWNO6S5ZJHOO3EYFKPIR
Technical information
Fees:
3,738
bytes
(353 headers, 3385 payload)
Level:
1116792
Witnessed level:
1116785
Last ball unit:
TY+q0iCY3brTjZgZKnaexwwulNrl1/eQz150R7C6N4o=
Main chain index:
1115551
Latest included mc index:
1115550
Status:
stable/confirmed/final