-
-
Save jhbertra/2537036687ac003a4cb1597b4af77f3b to your computer and use it in GitHub Desktop.
| { | |
| "contract": { | |
| "timeout": 1655663503000, | |
| "timeout_continuation": "close", | |
| "when": [ | |
| { | |
| "case": { | |
| "deposits": 12000000, | |
| "into_account": { | |
| "address": "addr_test1vq9prvx8ufwutkwxx9cmmuuajaqmjqwujqlp9d8pvg6gupczgtm9j" | |
| }, | |
| "of_token": { | |
| "currency_symbol": "", | |
| "token_name": "" | |
| }, | |
| "party": { | |
| "address": "addr_test1vq9prvx8ufwutkwxx9cmmuuajaqmjqwujqlp9d8pvg6gupczgtm9j" | |
| } | |
| }, | |
| "merkleized_then": "30032ba38696e2a2c9f0f37fef7fa8cc7e2063ed4511420939be0ecfa95c0587" | |
| } | |
| ] | |
| }, | |
| "continuations": { | |
| "30032ba38696e2a2c9f0f37fef7fa8cc7e2063ed4511420939be0ecfa95c0587": "https://gist.githubusercontent.com/jhbertra/2537036687ac003a4cb1597b4af77f3b/raw/34b9c0725b3ee49aa85c859d2ccfdeaf49a96cd6/30032ba38696e2a2c9f0f37fef7fa8cc7e2063ed4511420939be0ecfa95c0587.json" | |
| } | |
| } |
| { | |
| "contract": { | |
| "timeout": 1655663504000, | |
| "timeout_continuation": "close", | |
| "when": [ | |
| { | |
| "case": { | |
| "notify_if": true | |
| }, | |
| "merkleized_then": "f9232556d1ec9d7bb7d767468336985f350fd3bdeb3360c10f38e620cc8b200c" | |
| } | |
| ] | |
| }, | |
| "continuations": { | |
| "f9232556d1ec9d7bb7d767468336985f350fd3bdeb3360c10f38e620cc8b200c": "https://gist.githubusercontent.com/jhbertra/2537036687ac003a4cb1597b4af77f3b/raw/b426969d33167b27eb87647c8cde1e16de7788a5/f9232556d1ec9d7bb7d767468336985f350fd3bdeb3360c10f38e620cc8b200c.json" | |
| } | |
| } |
| { | |
| "contract": { | |
| "from_account": { | |
| "address": "addr_test1vq9prvx8ufwutkwxx9cmmuuajaqmjqwujqlp9d8pvg6gupczgtm9j" | |
| }, | |
| "pay": 5000000, | |
| "then": { | |
| "timeout": 1655663505000, | |
| "timeout_continuation": "close", | |
| "when": [ | |
| { | |
| "case": { | |
| "notify_if": true | |
| }, | |
| "then": "close" | |
| } | |
| ] | |
| }, | |
| "to": { | |
| "party": { | |
| "address": "addr_test1vq9prvx8ufwutkwxx9cmmuuajaqmjqwujqlp9d8pvg6gupczgtm9j" | |
| } | |
| }, | |
| "token": { | |
| "currency_symbol": "", | |
| "token_name": "" | |
| } | |
| }, | |
| "continuations": {} | |
| } |
Step 3 - Create contract via runtime
When we have a metadata standard for the creation transaction, it would be nice if it included a pointer to this index of all continuations.
Step 1 - Merkleizing the contract
We need to not assume that a contract will ever exist in an unmerkleized form. Some realistic contracts would be many GB of JSON if they were unmerkleized. I don't believe this proposed design assumes an unmerkleized instantiation, but I just wanted to highlight this issue.
Step 1 - Merkleizing the contract
We need to not assume that a contract will ever exist in an unmerkleized form. Some realistic contracts would be many GB of JSON if they were unmerkleized. I don't believe this proposed design assumes an unmerkleized instantiation, but I just wanted to highlight this issue.
That is a good point - and yes in this proposal, since Merkleization happens outside the Runtime, in some sense, it doesn't matter how this happens.
I don't think that the inconvenience of loading two files justifies imposing a URI convention. The original proposal makes no assumption about URIs other than that they can be dereferenced. However, we may want to tag the URI convention with a version number so that we can someday have more sophisticated continuation management. I'm not sure where the version tag would go, however.