@agoric/inter-protocol 0.13.2-dev-65d3f14.0 → 0.13.2-pismo-dev-12e97f1.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/bundles/bundle-amm-meta.js +168 -188
- package/bundles/bundle-amm.js +1 -1
- package/bundles/bundle-feeDistributor-meta.js +92 -92
- package/bundles/bundle-feeDistributor.js +1 -1
- package/bundles/bundle-interchainPool-meta.js +174 -190
- package/bundles/bundle-interchainPool.js +1 -1
- package/bundles/bundle-liquidateIncrementally-meta.js +149 -109
- package/bundles/bundle-liquidateIncrementally.js +1 -1
- package/bundles/bundle-liquidateMinimum-meta.js +149 -109
- package/bundles/bundle-liquidateMinimum.js +1 -1
- package/bundles/bundle-psm-meta.js +148 -168
- package/bundles/bundle-psm.js +1 -1
- package/bundles/bundle-psmCharter-meta.js +418 -0
- package/bundles/bundle-psmCharter.js +1 -0
- package/bundles/bundle-reserve-meta.js +176 -192
- package/bundles/bundle-reserve.js +1 -1
- package/bundles/bundle-scaledPriceAuthority-meta.js +173 -133
- package/bundles/bundle-scaledPriceAuthority.js +1 -1
- package/bundles/bundle-stakeFactory-meta.js +186 -206
- package/bundles/bundle-stakeFactory.js +1 -1
- package/bundles/bundle-vaultFactory-meta.js +197 -217
- package/bundles/bundle-vaultFactory.js +1 -1
- package/package.json +23 -25
- package/scripts/add-collateral-core.js +3 -52
- package/scripts/add-initial-liquidity.js +1 -0
- package/scripts/build-bundles.js +1 -4
- package/scripts/deploy-contracts.js +1 -0
- package/scripts/init-core.js +9 -11
- package/scripts/invite-committee-core.js +1 -0
- package/scripts/manual-price-feed.js +1 -1
- package/scripts/price-feed-core.js +2 -2
- package/src/collect.js +2 -0
- package/src/collectFees.js +4 -3
- package/src/contractSupport.js +27 -13
- package/src/econCommitteeCharter.js +80 -110
- package/src/feeDistributor.js +8 -6
- package/src/interchainPool.js +8 -7
- package/src/interest-math.js +2 -0
- package/src/interest.js +10 -6
- package/src/makeTracer.js +0 -5
- package/src/my-lien.js +7 -3
- package/src/proposals/addAssetToVault.js +5 -3
- package/src/proposals/committee-proposal.js +42 -112
- package/src/proposals/core-proposal.js +30 -17
- package/src/proposals/demoIssuers.js +16 -17
- package/src/proposals/econ-behaviors.js +115 -156
- package/src/proposals/price-feed-proposal.js +6 -118
- package/src/proposals/sim-behaviors.js +1 -0
- package/src/proposals/startEconCommittee.js +2 -1
- package/src/proposals/startPSM.js +117 -77
- package/src/proposals/utils.js +12 -23
- package/src/psm/psm.js +55 -37
- package/src/psm/psmCharter.js +139 -0
- package/src/reserve/assetReserve.js +35 -28
- package/src/reserve/params.js +2 -0
- package/src/stakeFactory/attestation.js +9 -4
- package/src/stakeFactory/attestationTool.js +1 -0
- package/src/stakeFactory/params.js +1 -0
- package/src/stakeFactory/stakeFactory.js +1 -1
- package/src/stakeFactory/stakeFactoryKit.js +20 -13
- package/src/stakeFactory/stakeFactoryManager.js +3 -2
- package/src/vaultFactory/burn.js +1 -0
- package/src/vaultFactory/liquidateIncrementally.js +8 -5
- package/src/vaultFactory/liquidateMinimum.js +6 -2
- package/src/vaultFactory/liquidation.js +2 -2
- package/src/vaultFactory/orderedVaultStore.js +1 -0
- package/src/vaultFactory/params.js +12 -7
- package/src/vaultFactory/prioritizedVaults.js +1 -0
- package/src/vaultFactory/storeUtils.js +1 -0
- package/src/vaultFactory/types.js +2 -0
- package/src/vaultFactory/vault.js +40 -26
- package/src/vaultFactory/vaultDirector.js +18 -15
- package/src/vaultFactory/vaultFactory.js +20 -19
- package/src/vaultFactory/vaultHolder.js +3 -4
- package/src/vaultFactory/vaultKit.js +1 -0
- package/src/vaultFactory/vaultManager.js +10 -7
- package/src/vpool-xyk-amm/addLiquidity.js +4 -3
- package/src/vpool-xyk-amm/addPool.js +20 -23
- package/src/vpool-xyk-amm/constantProduct/calcFees.js +12 -6
- package/src/vpool-xyk-amm/constantProduct/calcSwapPrices.js +2 -0
- package/src/vpool-xyk-amm/constantProduct/core.js +24 -16
- package/src/vpool-xyk-amm/constantProduct/defaults.js +2 -0
- package/src/vpool-xyk-amm/constantProduct/getXY.js +6 -2
- package/src/vpool-xyk-amm/constantProduct/internal-types.js +14 -12
- package/src/vpool-xyk-amm/constantProduct/invariants.js +8 -4
- package/src/vpool-xyk-amm/constantProduct/swap.js +19 -17
- package/src/vpool-xyk-amm/constantProduct/types.js +2 -0
- package/src/vpool-xyk-amm/doublePool.js +14 -20
- package/src/vpool-xyk-amm/estimate.js +2 -0
- package/src/vpool-xyk-amm/multipoolMarketMaker.js +5 -3
- package/src/vpool-xyk-amm/params.js +2 -0
- package/src/vpool-xyk-amm/pool.js +14 -16
- package/src/vpool-xyk-amm/priceAuthority.js +3 -1
- package/src/vpool-xyk-amm/removeLiquidity.js +2 -0
- package/src/vpool-xyk-amm/singlePool.js +14 -29
- package/src/vpool-xyk-amm/swap.js +1 -0
- package/src/vpool-xyk-amm/types.js +12 -10
- package/bundles/bundle-econCommitteeCharter-meta.js +0 -418
- package/bundles/bundle-econCommitteeCharter.js +0 -1
- package/scripts/start-local-chain-boot.js +0 -96
- package/scripts/start-local-chain-config.json +0 -83
- package/scripts/start-local-chain.sh +0 -69
- package/src/psm/README.md +0 -71
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
/** @file Boot script for demoing oracles. Builds upon boot-psm to be used in integration tests. */
|
|
2
|
-
|
|
3
|
-
import { buildRootObject as buildPsmRootObject } from '@agoric/vats/src/core/boot-psm.js';
|
|
4
|
-
import { CHAIN_BOOTSTRAP_MANIFEST } from '@agoric/vats/src/core/manifest.js';
|
|
5
|
-
import * as utils from '@agoric/vats/src/core/utils.js';
|
|
6
|
-
import { E, Far } from '@endo/far';
|
|
7
|
-
import {
|
|
8
|
-
PRICE_FEEDS_MANIFEST,
|
|
9
|
-
startPriceFeeds,
|
|
10
|
-
} from '../src/proposals/price-feed-proposal.js';
|
|
11
|
-
|
|
12
|
-
/** @typedef {import('@agoric/inter-protocol/src/proposals/econ-behaviors.js').EconomyBootstrapSpace} EconomyBootstrapSpace */
|
|
13
|
-
|
|
14
|
-
/** @param {BootstrapSpace & { devices: { vatAdmin: any }, vatPowers: { D: DProxy }, }} powers */
|
|
15
|
-
const installPriceAggregatorContract = async ({
|
|
16
|
-
vatPowers: { D },
|
|
17
|
-
devices: { vatAdmin },
|
|
18
|
-
consume: { zoe },
|
|
19
|
-
installation: {
|
|
20
|
-
produce: { priceAggregator },
|
|
21
|
-
},
|
|
22
|
-
}) => {
|
|
23
|
-
// Copied from installBootContracts:
|
|
24
|
-
|
|
25
|
-
// This really wants to be E(vatAdminSvc).getBundleIDByName, but it's
|
|
26
|
-
// good enough to do D(vatAdmin).getBundleIDByName
|
|
27
|
-
const bundleCap = D(vatAdmin).getNamedBundleCap('priceAggregator');
|
|
28
|
-
|
|
29
|
-
const bundle = D(bundleCap).getBundle();
|
|
30
|
-
// TODO (#4374) this should be E(zoe).installBundleID(bundleID);
|
|
31
|
-
const installation = E(zoe).install(bundle);
|
|
32
|
-
priceAggregator.resolve(installation);
|
|
33
|
-
};
|
|
34
|
-
|
|
35
|
-
/**
|
|
36
|
-
* Build root object of the PSM-only bootstrap vat.
|
|
37
|
-
*
|
|
38
|
-
* @param {{
|
|
39
|
-
* D: DProxy
|
|
40
|
-
* logger?: (msg: string) => void
|
|
41
|
-
* }} vatPowers
|
|
42
|
-
* @param {{
|
|
43
|
-
* economicCommitteeAddresses: Record<string, string>,
|
|
44
|
-
* demoOracleAddresses?: string[],
|
|
45
|
-
* anchorAssets: { denom: string, keyword?: string }[],
|
|
46
|
-
* }} vatParameters
|
|
47
|
-
*/
|
|
48
|
-
export const buildRootObject = (vatPowers, vatParameters) => {
|
|
49
|
-
const psmRootObject = buildPsmRootObject(vatPowers, vatParameters);
|
|
50
|
-
|
|
51
|
-
const { produce, consume, ...spaces } = psmRootObject.getPromiseSpace();
|
|
52
|
-
|
|
53
|
-
const { demoOracleAddresses } = vatParameters;
|
|
54
|
-
|
|
55
|
-
const runBootstrapParts = async (vats, devices) => {
|
|
56
|
-
const allPowers = harden({
|
|
57
|
-
vatPowers,
|
|
58
|
-
vatParameters,
|
|
59
|
-
vats,
|
|
60
|
-
devices,
|
|
61
|
-
produce,
|
|
62
|
-
consume,
|
|
63
|
-
...spaces,
|
|
64
|
-
});
|
|
65
|
-
const manifest = {
|
|
66
|
-
...CHAIN_BOOTSTRAP_MANIFEST,
|
|
67
|
-
...PRICE_FEEDS_MANIFEST,
|
|
68
|
-
};
|
|
69
|
-
/** @param {string} name */
|
|
70
|
-
const powersFor = name => {
|
|
71
|
-
const permit = manifest[name];
|
|
72
|
-
assert(permit, `missing permit for ${name}`);
|
|
73
|
-
return utils.extractPowers(permit, allPowers);
|
|
74
|
-
};
|
|
75
|
-
|
|
76
|
-
console.log('awaiting startPriceFeeds');
|
|
77
|
-
await Promise.all([
|
|
78
|
-
psmRootObject.bootstrap(vats, devices),
|
|
79
|
-
installPriceAggregatorContract(powersFor('installBootContracts')),
|
|
80
|
-
startPriceFeeds(powersFor('startPriceFeeds'), {
|
|
81
|
-
options: { demoOracleAddresses },
|
|
82
|
-
}),
|
|
83
|
-
]);
|
|
84
|
-
};
|
|
85
|
-
|
|
86
|
-
return Far('bootstrap', {
|
|
87
|
-
bootstrap: (vats, devices) => {
|
|
88
|
-
return runBootstrapParts(vats, devices).catch(e => {
|
|
89
|
-
console.error('BOOTSTRAP FAILED:', e);
|
|
90
|
-
throw e;
|
|
91
|
-
});
|
|
92
|
-
},
|
|
93
|
-
});
|
|
94
|
-
};
|
|
95
|
-
|
|
96
|
-
harden({ buildRootObject });
|
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"bootstrap": "bootstrap",
|
|
3
|
-
"defaultReapInterval": 1000,
|
|
4
|
-
"snapshotInterval": 1000,
|
|
5
|
-
"vats": {
|
|
6
|
-
"bootstrap": {
|
|
7
|
-
"sourceSpec": "@agoric/inter-protocol/scripts/start-local-chain-boot.js",
|
|
8
|
-
"parameters": {
|
|
9
|
-
"anchorAssets": [
|
|
10
|
-
{
|
|
11
|
-
"keyword": "USDC_axl",
|
|
12
|
-
"proposedName": "USD Coin",
|
|
13
|
-
"decimalPlaces": 6,
|
|
14
|
-
"denom": "ibc/usdc1234"
|
|
15
|
-
},
|
|
16
|
-
{
|
|
17
|
-
"keyword": "AUSD",
|
|
18
|
-
"proposedName": "Anchor USD",
|
|
19
|
-
"decimalPlaces": 6,
|
|
20
|
-
"denom": "ibc/toyellie"
|
|
21
|
-
}
|
|
22
|
-
],
|
|
23
|
-
"economicCommitteeAddresses": {
|
|
24
|
-
"voter": "agoric1ersatz"
|
|
25
|
-
},
|
|
26
|
-
"demoOracleAddresses": [
|
|
27
|
-
"agoric1ersatz"
|
|
28
|
-
]
|
|
29
|
-
},
|
|
30
|
-
"creationOptions": {
|
|
31
|
-
"critical": true
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
},
|
|
35
|
-
"bundles": {
|
|
36
|
-
"walletFactory": {
|
|
37
|
-
"sourceSpec": "@agoric/smart-wallet/src/walletFactory.js"
|
|
38
|
-
},
|
|
39
|
-
"provisionPool": {
|
|
40
|
-
"sourceSpec": "@agoric/vats/src/provisionPool.js"
|
|
41
|
-
},
|
|
42
|
-
"committee": {
|
|
43
|
-
"sourceSpec": "@agoric/governance/src/committee.js"
|
|
44
|
-
},
|
|
45
|
-
"contractGovernor": {
|
|
46
|
-
"sourceSpec": "@agoric/governance/src/contractGovernor.js"
|
|
47
|
-
},
|
|
48
|
-
"binaryVoteCounter": {
|
|
49
|
-
"sourceSpec": "@agoric/governance/src/binaryVoteCounter.js"
|
|
50
|
-
},
|
|
51
|
-
"psm": {
|
|
52
|
-
"sourceSpec": "@agoric/inter-protocol/src/psm/psm.js"
|
|
53
|
-
},
|
|
54
|
-
"econCommitteeCharter": {
|
|
55
|
-
"sourceSpec": "@agoric/inter-protocol/src/econCommitteeCharter.js"
|
|
56
|
-
},
|
|
57
|
-
"priceAggregator": {
|
|
58
|
-
"sourceSpec": "@agoric/zoe/src/contracts/priceAggregator.js"
|
|
59
|
-
},
|
|
60
|
-
"bank": {
|
|
61
|
-
"sourceSpec": "@agoric/vats/src/vat-bank.js"
|
|
62
|
-
},
|
|
63
|
-
"centralSupply": {
|
|
64
|
-
"sourceSpec": "@agoric/vats/src/centralSupply.js"
|
|
65
|
-
},
|
|
66
|
-
"mintHolder": {
|
|
67
|
-
"sourceSpec": "@agoric/vats/src/mintHolder.js"
|
|
68
|
-
},
|
|
69
|
-
"board": {
|
|
70
|
-
"sourceSpec": "@agoric/vats/src/vat-board.js"
|
|
71
|
-
},
|
|
72
|
-
"chainStorage": {
|
|
73
|
-
"sourceSpec": "@agoric/vats/src/vat-chainStorage.js"
|
|
74
|
-
},
|
|
75
|
-
"zcf": {
|
|
76
|
-
"sourceSpec": "@agoric/zoe/contractFacet.js"
|
|
77
|
-
},
|
|
78
|
-
"zoe": {
|
|
79
|
-
"sourceSpec": "@agoric/vats/src/vat-zoe.js"
|
|
80
|
-
}
|
|
81
|
-
},
|
|
82
|
-
"defaultManagerType": "xs-worker"
|
|
83
|
-
}
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
|
|
3
|
-
# run an Archive node to keep all history https://docs.desmos.network/fullnode/overview/
|
|
4
|
-
# (the Makefile passes this to agd start)
|
|
5
|
-
export AGC_START_ARGS="--pruning=nothing"
|
|
6
|
-
|
|
7
|
-
# TODO make cross-platform https://stackoverflow.com/questions/52670836/standard-log-locations-for-a-cross-platform-application
|
|
8
|
-
mkdir -p ~/Library/Logs/Agoric
|
|
9
|
-
CHAIN_LOG=~/Library/Logs/Agoric/local-chain.log
|
|
10
|
-
touch "$CHAIN_LOG" || exit 1
|
|
11
|
-
open -a /System/Applications/Utilities/Console.app $CHAIN_LOG
|
|
12
|
-
|
|
13
|
-
# ugly way to get SDK path regardless of cwd
|
|
14
|
-
SDK=$(readlink -f "$(dirname -- "$(readlink -f -- "$0")")/../../..")
|
|
15
|
-
|
|
16
|
-
# Basically the psm config, plus priceAggregator and a different sourceSpec
|
|
17
|
-
export CHAIN_BOOTSTRAP_VAT_CONFIG="$SDK/packages/inter-protocol/scripts/start-local-chain-config.json"
|
|
18
|
-
|
|
19
|
-
WALLET=$1
|
|
20
|
-
|
|
21
|
-
if [ -z "$WALLET" ]; then
|
|
22
|
-
echo "USAGE: $0 wallet-key"
|
|
23
|
-
echo "You can reference by name: agd keys list"
|
|
24
|
-
exit 1
|
|
25
|
-
fi
|
|
26
|
-
|
|
27
|
-
WALLET_BECH32=$(agd keys show "$WALLET" --output json | jq -r .address)
|
|
28
|
-
|
|
29
|
-
# xxx this would be more robust using `jq`
|
|
30
|
-
# grant econ governance
|
|
31
|
-
sed -i '' "s/\"voter\":.*/\"voter\": \"$WALLET_BECH32\"/" "$CHAIN_BOOTSTRAP_VAT_CONFIG"
|
|
32
|
-
# grant same key the priviledge of operating the demo oracle
|
|
33
|
-
# NB this assumes the current value, so won't update any others
|
|
34
|
-
sed -i '' "s/agoric1ersatz/$WALLET_BECH32/" "$CHAIN_BOOTSTRAP_VAT_CONFIG"
|
|
35
|
-
|
|
36
|
-
echo CHAIN_LOG $CHAIN_LOG
|
|
37
|
-
echo SDK "$SDK"
|
|
38
|
-
echo WALLET "$WALLET"
|
|
39
|
-
echo WALLET_BECH32 "$WALLET_BECH32"
|
|
40
|
-
|
|
41
|
-
cd "$SDK"/packages/cosmic-swingset || exit 1
|
|
42
|
-
|
|
43
|
-
echo "Logs written to $CHAIN_LOG"
|
|
44
|
-
# setup can be skipped if you know its up to date
|
|
45
|
-
make scenario2-setup >>$CHAIN_LOG 2>&1
|
|
46
|
-
|
|
47
|
-
# TODO detect it's already running, indicate when it started and offer to restart
|
|
48
|
-
# e.g. killall node xsnap-worker
|
|
49
|
-
echo "Starting the chain..."
|
|
50
|
-
# disable pruning to keep all history https://docs.desmos.network/fullnode/overview/
|
|
51
|
-
make AGC_START_ARGS="--pruning=nothing" scenario2-run-chain >>$CHAIN_LOG 2>&1 &
|
|
52
|
-
make wait-for-cosmos
|
|
53
|
-
|
|
54
|
-
echo "Funding the pool..."
|
|
55
|
-
make fund-provision-pool
|
|
56
|
-
|
|
57
|
-
echo "Funding your wallet account..."
|
|
58
|
-
# After `fund-provision-pool` there is 900 IST remaining for other account funding.
|
|
59
|
-
# A wallet can be tested with 20 BLD for provisioning wallet and 20 USDC for psm trading
|
|
60
|
-
make ACCT_ADDR="$WALLET_BECH32" FUNDS=20000000ubld,20000000ibc/usdc1234 fund-acct
|
|
61
|
-
agd query bank balances "$WALLET_BECH32" | grep ubld || exit 1
|
|
62
|
-
|
|
63
|
-
echo "Provisioning your smart wallet..."
|
|
64
|
-
agoric wallet provision --spend --account "$WALLET"
|
|
65
|
-
echo "waiting for blocks"
|
|
66
|
-
sleep 15
|
|
67
|
-
# verify
|
|
68
|
-
agoric wallet list
|
|
69
|
-
agoric wallet show --from "$WALLET"
|
package/src/psm/README.md
DELETED
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
# Parity Stability Module
|
|
2
|
-
|
|
3
|
-
The Parity Stability Module supports efficiently minting/burning a stable token
|
|
4
|
-
at a specified fixed ratio to a reference stable token, which thereby acts as an
|
|
5
|
-
anchor to provide additional stability. For flexible economic policies, the fee
|
|
6
|
-
percentage for trading into and out of the stable token are specified
|
|
7
|
-
separately.
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
## Usage
|
|
11
|
-
|
|
12
|
-
See the [Smart Wallet integration test](/packages/smart-wallet/test/test-psm-integration.js) for how it's used.
|
|
13
|
-
|
|
14
|
-
End users can make swap offers in the CLI or GUI.
|
|
15
|
-
|
|
16
|
-
### CLI
|
|
17
|
-
|
|
18
|
-
See [psm.js command file](/packages/agoric-cli/src/commands/psm.js) and its [integration test script](/packages/agoric-cli/scripts/).
|
|
19
|
-
|
|
20
|
-
```mermaid
|
|
21
|
-
sequenceDiagram
|
|
22
|
-
|
|
23
|
-
actor user
|
|
24
|
-
|
|
25
|
-
participant cli as Dapp PSM
|
|
26
|
-
participant disk
|
|
27
|
-
participant B as Cosmos / Swingset <br/> bridge
|
|
28
|
-
participant C as smart-wallet<br/>contract
|
|
29
|
-
participant PSM as PSM<br/>contract
|
|
30
|
-
|
|
31
|
-
user ->> cli: create a swap offer
|
|
32
|
-
user -->> disk: write offer data
|
|
33
|
-
user ->> cli: sign and send swap offer
|
|
34
|
-
disk -->> cli: read offer data
|
|
35
|
-
cli ->> B: spending transaction
|
|
36
|
-
B ->> C: unpack ocap data
|
|
37
|
-
C ->> PSM: route offer
|
|
38
|
-
```
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
### GUI
|
|
42
|
-
|
|
43
|
-
The GUI is in https://github.com/Agoric/dapp-psm
|
|
44
|
-
|
|
45
|
-
It introduces another layer of communication (between the dapp and Wallet UI):
|
|
46
|
-
|
|
47
|
-
```mermaid
|
|
48
|
-
sequenceDiagram
|
|
49
|
-
|
|
50
|
-
actor user
|
|
51
|
-
|
|
52
|
-
participant dapp as Dapp PSM
|
|
53
|
-
participant ls as localStorage
|
|
54
|
-
participant ui as Wallet UI
|
|
55
|
-
participant Keplr
|
|
56
|
-
participant B as Cosmos / Swingset <br/> bridge
|
|
57
|
-
participant C as smart-wallet<br/>contract
|
|
58
|
-
participant PSM as PSM<br/>contract
|
|
59
|
-
|
|
60
|
-
user ->> dapp: configure offer and click
|
|
61
|
-
dapp ->> ls: write offer record
|
|
62
|
-
ls ->> ui: notify offer record
|
|
63
|
-
ui ->> user: display offer for signing
|
|
64
|
-
user ->> ui: click Approve
|
|
65
|
-
ui ->> Keplr: request signing
|
|
66
|
-
Keplr ->> user: pop-up transaction
|
|
67
|
-
user ->> Keplr: click to sign
|
|
68
|
-
Keplr ->> B: spending transaction
|
|
69
|
-
B ->> C: unpack ocap data
|
|
70
|
-
C ->> PSM: route offer
|
|
71
|
-
```
|