@agoric/fast-usdc 0.1.1-dev-db6d589.0 → 0.1.1-dev-47470c7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +17 -91
- package/package.json +9 -9
- package/src/constants.js +2 -2
package/README.md
CHANGED
|
@@ -1,101 +1,27 @@
|
|
|
1
1
|
# Fast USDC
|
|
2
2
|
|
|
3
|
-
Development package for the Fast USDC product.
|
|
4
|
-
|
|
3
|
+
Development package for the Fast USDC product. Here in agoric-sdk as a
|
|
4
|
+
convenience for integration testing and iterating on the SDK affordances
|
|
5
|
+
required for the product.
|
|
5
6
|
|
|
6
7
|
# Factoring
|
|
7
8
|
|
|
8
|
-
This package is meant to contain all the code for the Fast USDC product.
|
|
9
|
+
This package is meant to contain all the code for the Fast USDC product.
|
|
10
|
+
However, there are some constraints:
|
|
9
11
|
|
|
10
|
-
- a3p integration tests are in the `a3p-integration` top-level package, separate
|
|
11
|
-
|
|
12
|
-
- the
|
|
12
|
+
- a3p integration tests are in the `a3p-integration` top-level package, separate
|
|
13
|
+
from this workspace
|
|
14
|
+
- the proposal builders are in `@agoric/builders` to work with the
|
|
15
|
+
a3p-integration `build:submissions` script
|
|
16
|
+
- the RunUtils tests are in `@aglocal/boot` to test running them atop a fresh
|
|
17
|
+
bootstrapped environment
|
|
13
18
|
|
|
14
19
|
Over time we can update our tooling to decouple this more from the `packages` directory.
|
|
15
20
|
|
|
16
|
-
1. Make a3p-integration `build:submissions` script work with arbitrary builder
|
|
17
|
-
|
|
18
|
-
|
|
21
|
+
1. Make a3p-integration `build:submissions` script work with arbitrary builder
|
|
22
|
+
paths, allowing this to be above `@agoric/builders` in the package graph
|
|
23
|
+
2. Export bootstrap testing utilities from `@aglocal/boot`, allowing this to be
|
|
24
|
+
above `@aglocal/boot` in the package graph
|
|
25
|
+
3. Update CI to support packages that aren't under `packages/`, eg. a top-level
|
|
26
|
+
`dapps` directory
|
|
19
27
|
4. Move this package out of agoric-sdk
|
|
20
|
-
|
|
21
|
-
# Transaction feed
|
|
22
|
-
|
|
23
|
-
## Oracles interface
|
|
24
|
-
|
|
25
|
-
Oracles run off-chain and interact with the contract via an Agoric smart wallet bridge.
|
|
26
|
-
```mermaid
|
|
27
|
-
sequenceDiagram
|
|
28
|
-
title Becoming an oracle operator
|
|
29
|
-
participant OW as Operator N<br/>Smart Wallet
|
|
30
|
-
participant FUC as Fast USDC<br/>Contract Exo
|
|
31
|
-
participant CE as Core Eval
|
|
32
|
-
|
|
33
|
-
CE->>FUC: makeOperatorInvitation()
|
|
34
|
-
FUC-->>CE: operatorInvitation
|
|
35
|
-
CE->>+OW: deposit(operatorInvitation)
|
|
36
|
-
|
|
37
|
-
Note left of FUC: Off-chain wallet accepts the operator invitation
|
|
38
|
-
|
|
39
|
-
OW->>+FUC: offer(operatorInvitation)
|
|
40
|
-
FUC-->>OW: operator invitationMakers: {SubmitEvidence}
|
|
41
|
-
|
|
42
|
-
Note left of FUC: Off-chain watcher detects evidence
|
|
43
|
-
OW->>+FUC: offer(SubmitEvidence, evidence)
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
```mermaid
|
|
47
|
-
sequenceDiagram
|
|
48
|
-
title Receiving evidence
|
|
49
|
-
participant W as Operator N<br/>Smart Wallet
|
|
50
|
-
participant A as Operator N<br/>Admin Oexo
|
|
51
|
-
participant TF as Transaction<br/>Feed
|
|
52
|
-
|
|
53
|
-
W->>A: offer(SubmitEvidence, evidence)
|
|
54
|
-
|
|
55
|
-
Note left of A: Once 3 operators push the same…
|
|
56
|
-
|
|
57
|
-
A->>TF: notify(evidence)
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
# Status Manager
|
|
61
|
-
|
|
62
|
-
### Pending Advance State Diagram
|
|
63
|
-
|
|
64
|
-
*Transactions are qualified by the OCW and EventFeed before arriving to the Advancer.*
|
|
65
|
-
|
|
66
|
-
```mermaid
|
|
67
|
-
stateDiagram-v2
|
|
68
|
-
[*] --> Observed: observe()
|
|
69
|
-
[*] --> Advancing: advancing()
|
|
70
|
-
|
|
71
|
-
Advancing --> Advanced: advanceOutcome(...true)
|
|
72
|
-
Advancing --> AdvanceFailed: advanceOutcome(...false)
|
|
73
|
-
|
|
74
|
-
Observed --> [*]: dequeueStatus()
|
|
75
|
-
Advanced --> [*]: dequeueStatus()
|
|
76
|
-
AdvanceFailed --> [*]: dequeueStatus()
|
|
77
|
-
|
|
78
|
-
note right of [*]
|
|
79
|
-
After dequeueStatus():
|
|
80
|
-
Transaction is removed
|
|
81
|
-
from pendingTxs store.
|
|
82
|
-
Settler will .disburse()
|
|
83
|
-
or .forward()
|
|
84
|
-
end note
|
|
85
|
-
```
|
|
86
|
-
|
|
87
|
-
### Complete state diagram (starting from Transaction Feed into Advancer)
|
|
88
|
-
|
|
89
|
-
```mermaid
|
|
90
|
-
stateDiagram-v2
|
|
91
|
-
Observed --> AdvanceSkipped : Risks identified
|
|
92
|
-
Observed --> Advancing : No risks, can advance
|
|
93
|
-
Observed --> Forwarding : No risks, Mint deposited before advance
|
|
94
|
-
Forwarding --> Forwarded
|
|
95
|
-
Advancing --> Advanced
|
|
96
|
-
Advanced --> Disbursed
|
|
97
|
-
AdvanceSkipped --> Forwarding : Mint deposited
|
|
98
|
-
AdvanceFailed --> Forwarding : Mint deposited
|
|
99
|
-
Advancing --> AdvanceFailed
|
|
100
|
-
Forwarding --> ForwardFailed
|
|
101
|
-
```
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agoric/fast-usdc",
|
|
3
|
-
"version": "0.1.1-dev-
|
|
3
|
+
"version": "0.1.1-dev-47470c7.0+47470c7",
|
|
4
4
|
"description": "CLI and library for Fast USDC product",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"files": [
|
|
@@ -29,13 +29,13 @@
|
|
|
29
29
|
"ts-blank-space": "^0.4.4"
|
|
30
30
|
},
|
|
31
31
|
"dependencies": {
|
|
32
|
-
"@agoric/client-utils": "0.1.1-dev-
|
|
33
|
-
"@agoric/cosmic-proto": "0.4.1-dev-
|
|
34
|
-
"@agoric/ertp": "0.16.3-dev-
|
|
35
|
-
"@agoric/internal": "0.3.3-dev-
|
|
36
|
-
"@agoric/notifier": "0.6.3-dev-
|
|
37
|
-
"@agoric/orchestration": "0.1.1-dev-
|
|
38
|
-
"@agoric/zoe": "0.26.3-dev-
|
|
32
|
+
"@agoric/client-utils": "0.1.1-dev-47470c7.0+47470c7",
|
|
33
|
+
"@agoric/cosmic-proto": "0.4.1-dev-47470c7.0+47470c7",
|
|
34
|
+
"@agoric/ertp": "0.16.3-dev-47470c7.0+47470c7",
|
|
35
|
+
"@agoric/internal": "0.3.3-dev-47470c7.0+47470c7",
|
|
36
|
+
"@agoric/notifier": "0.6.3-dev-47470c7.0+47470c7",
|
|
37
|
+
"@agoric/orchestration": "0.1.1-dev-47470c7.0+47470c7",
|
|
38
|
+
"@agoric/zoe": "0.26.3-dev-47470c7.0+47470c7",
|
|
39
39
|
"@cosmjs/proto-signing": "^0.33.0",
|
|
40
40
|
"@cosmjs/stargate": "^0.33.0",
|
|
41
41
|
"@endo/base64": "^1.0.9",
|
|
@@ -75,5 +75,5 @@
|
|
|
75
75
|
"publishConfig": {
|
|
76
76
|
"access": "public"
|
|
77
77
|
},
|
|
78
|
-
"gitHead": "
|
|
78
|
+
"gitHead": "47470c7d3999c1222677244ed29ce6fc60c7766f"
|
|
79
79
|
}
|
package/src/constants.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Status values for FastUSDC.
|
|
2
|
+
* Status values for FastUSDC. Includes states for advancing and settling.
|
|
3
3
|
*
|
|
4
4
|
* @enum {(typeof TxStatus)[keyof typeof TxStatus]}
|
|
5
5
|
*/
|
|
@@ -31,7 +31,7 @@ export const TerminalTxStatus = {
|
|
|
31
31
|
};
|
|
32
32
|
|
|
33
33
|
/**
|
|
34
|
-
* Status values for the StatusManager.
|
|
34
|
+
* Status values for the StatusManager while an advance is being processed.
|
|
35
35
|
*
|
|
36
36
|
* @enum {(typeof PendingTxStatus)[keyof typeof PendingTxStatus]}
|
|
37
37
|
*/
|