-
Notifications
You must be signed in to change notification settings - Fork 212
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Publish amm pool list subscription to chain storage #5400
Conversation
40bd0cc
to
f560d77
Compare
e0599e0
to
bbbd125
Compare
f560d77
to
f96d995
Compare
f96d995
to
108ca5f
Compare
5d2f833
to
e9c23d6
Compare
f182c61
to
f22b8f8
Compare
e9c23d6
to
d91b130
Compare
f6b57c5
to
bab943c
Compare
75a67e4
to
98abc72
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
fun stuff!
just a few tweaks to consider
} = makeSubscriptionKit(); | ||
const { storageNode, marshaller } = privateArgs; | ||
const metricsStorageNode = | ||
storageNode && E(storageNode).getChildNode('metrics'); // TODO: magic string |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
maybe change the "TODO: magic string" comment to a justification: 'metrics' is derived from getMetrics
which is already part of the public API. I suppose it's still feasible to make a manifest constant.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I left this TODO intact, for a later date.
98abc72
to
89f59e8
Compare
@@ -5,11 +5,6 @@ inputs: | |||
node-version: | |||
description: 'The version of Node.js to use' | |||
required: true | |||
cache-built: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This was needed for the deployment test job which couldn't use the build cache because it runs on a different linux environment, so the native modules would not match. The default value of true
should have made it no impact on any other job. I need to understand why you claim it affected other jobs.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'll create a new PR to distinguish the cache key without an explicit toggle.
fac70e7
to
f9894f6
Compare
Objectionable change was removed from this PR.
top level metrics only: amm.metrics
f9894f6
to
affccab
Compare
t.fail(`unexpected finish with state ${state}`); | ||
}, | ||
fail: reason => { | ||
t.is(reason.message, 'sync propagates'); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@michaelfig question: how does the code calling observeIteration
differentiate between a failure in the iterator and an error thrown from its own listener?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not currently possible. The right behaviour would be: if you install a fail
handler, it will only be called if the iterator publishes a failure. Listener throws should only be reflected by rejecting the outermost promise, and not call the fail
handler.
refs: #4398
refs: #5386
Description
Created new
makeStoredSubscription
to produce aStoredSubscription<T>
(a subscription with Merkle tree query information). Passed astorageNode
andmarshaller
from bootstrap to the AMM contract for a newStoredSubscription<{ XYK: Brand[] }>
.Drive by:
iterationObserver
s to terminate the iterationmakeScaledPriceAuthority
to query its underlying authority just-in-timeSecurity Considerations
Documentation Considerations
Testing Considerations
Here's a demo: