Skip to content

Commit

Permalink
#20 Updated ava to 4.3, cleaned package.json files, made test-stopLos…
Browse files Browse the repository at this point in the history
…s.js and test-boundaryWatcher.js work and partially migrated test-ammLiquidity.js
  • Loading branch information
anilhelvaci committed Sep 9, 2022
1 parent 0b29ead commit a78d34f
Show file tree
Hide file tree
Showing 9 changed files with 190 additions and 180 deletions.
17 changes: 0 additions & 17 deletions _agstate/agoric-servers/package.json

This file was deleted.

58 changes: 24 additions & 34 deletions contract/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,35 +13,33 @@
"lint-fix-jessie": "eslint -c '.eslintrc-jessie.js' --fix '**/*.{js,jsx}'",
"lint-check-jessie": "eslint -c '.eslintrc-jessie.js' '**/*.{js,jsx}'"
},
"devDependencies": {
"eslint": "^7.32.0",
"eslint-config-airbnb-base": "^14.2.0",
"eslint-config-jessie": "^0.0.6",
"eslint-config-prettier": "^6.15.0",
"eslint-plugin-import": "^2.25.3",
"eslint-plugin-prettier": "^4.0.0",
"prettier": "^2.5.1",
"ava": "^3.15.0"
},
"dependencies": {
"@endo/bundle-source": "^2.1.1",
"@agoric/assert": "beta",
"@agoric/ertp": "beta",
"@endo/eventual-send": "^0.14.8",
"@endo/init": "^0.5.37",
"@endo/marshal": "^0.6.3",
"@agoric/notifier": "beta",
"@agoric/store": "beta",
"@endo/far": "0.2.3",
"@agoric/zoe": "beta",
"@endo/promise-kit": "0.2.41",
"@agoric/run-protocol": "0.11.0"
"@agoric/assert": "^0.4.0",
"@agoric/ertp": "^0.14.2",
"@agoric/nat": "^4.1.0",
"@agoric/notifier": "^0.4.0",
"@agoric/store": "^0.7.2",
"@agoric/zoe": "^0.24.0",
"@endo/far": "^0.2.9",
"@endo/nat": "^4.1.18",
"@endo/promise-kit": "^0.2.47",
"@agoric/inter-protocol": "0.11.0"
},
"devDependencies": {
"@agoric/deploy-script-support": "^0.9.0",
"@endo/init": "^0.5.47",
"@fast-check/ava": "^1.0.1",
"ava": "^4.3.1",
"c8": "^7.11.0",
"deep-object-diff": "^1.1.7",
"import-meta-resolve": "^1.1.1"
},
"ava": {
"files": [
"test/**/test-*.js"
"test/test-stopLoss.js"
],
"timeout": "10m"
"timeout": "10m",
"workedThreads": false
},
"keywords": [],
"repository": {
Expand All @@ -54,16 +52,8 @@
"url": "https://github.com/Agoric/agoric/issues"
},
"homepage": "https://github.com/Agoric/agoric#readme",
"eslintConfig": {
"extends": [
"@agoric"
]
},
"prettier": {
"trailingComma": "all",
"singleQuote": true
},
"eslintIgnore": [
"dappConstants.js"
]
}
}
}
44 changes: 37 additions & 7 deletions contract/test/ammLiquidity.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,15 +15,16 @@ import { AmountMath } from '@agoric/ertp';
*/

/**
*
* @param {ERef<ZoeService>} zoe
* @param {GovernedPublicFacet<XYKAMMPublicFacet>} ammPublicFacet
* @param t
* @param {ZoeService} zoe
* @param {XYKAMMPublicFacet} ammPublicFacet
* @param {{ mint: Mint; issuer: Issuer; brand: Brand; displayInfo: DisplayInfo }} secondaryR
* @param {{ mint: Mint; issuer: Issuer; brand: Brand; displayInfo: DisplayInfo }} centralR
* @param {*} liquidityIssuer
* @returns
*/
export const makeLiquidityInvitations = async (
t,
zoe,
ammPublicFacet,
secondaryR,
Expand All @@ -33,8 +34,36 @@ export const makeLiquidityInvitations = async (
const makeCentral = (value) => AmountMath.make(centralR.brand, value * 10n ** BigInt(centralR.displayInfo.decimalPlaces));
const makeSecondary = (value) => AmountMath.make(secondaryR.brand, value * 10n ** BigInt(secondaryR.displayInfo.decimalPlaces));
const liquidityBrand = await E(liquidityIssuer).getBrand();
const liquidityAmounth = (value) =>
AmountMath.make(liquidityBrand, value);

const initPool = async (secondaryValue, centralValue) => {
const addPoolInvitation = E(ammPublicFacet).addPoolInvitation();

const proposal = harden({
give: {
Secondary: makeSecondary(secondaryValue),
Central: makeCentral(centralValue),
},
want: { Liquidity: AmountMath.make(liquidityBrand, 1000n) },
});
const payments = {
Secondary: secondaryR.mint.mintPayment(makeSecondary(secondaryValue)),
Central: centralR.mint.mintPayment(makeCentral(centralValue)),
};

/** @type UserSeat */
const addLiquiditySeat = await E(zoe).offer(
addPoolInvitation,
proposal,
payments,
);
t.is(
await E(addLiquiditySeat).getOfferResult(),
'Added liquidity.',
`Added Secondary and Central Liquidity`,
);

return { seat: addLiquiditySeat, liquidityIssuer };
};

const addLiquidity = async (secondary, central) => {
const addLiquidityInvitation = E(
Expand All @@ -47,7 +76,7 @@ export const makeLiquidityInvitations = async (
const centralPayment = centralR.mint.mintPayment(makeCentral(central));

const proposal = harden({
want: { Liquidity: liquidityAmounth(1000n) },
want: { Liquidity: AmountMath.make(liquidityBrand, 1000n) },
give: {
Secondary: makeSecondary(secondary),
Central: makeCentral(central),
Expand All @@ -72,7 +101,7 @@ export const makeLiquidityInvitations = async (
ammPublicFacet,
).makeRemoveLiquidityInvitation();

const emptyLiquidity = liquidityAmounth(liquidity);
const emptyLiquidity = AmountMath.make(liquidityBrand, liquidity);
const proposal = harden({
give: { Liquidity: emptyLiquidity },
want: {
Expand Down Expand Up @@ -166,6 +195,7 @@ export const makeLiquidityInvitations = async (
};

return harden({
initPool,
addLiquidity,
removeLiquidity,
swapSecondaryForCentral,
Expand Down
33 changes: 25 additions & 8 deletions contract/test/helper.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import { assertPayoutAmount } from '@agoric/zoe/test/zoeTestHelpers.js';
import buildManualTimer from '@agoric/zoe/tools/manualTimer.js';
import { E } from '@endo/far';
import { makeLiquidityInvitations } from './ammLiquidity.js';
import { setupAmmServices, setupStopLoss } from './setup.js';
import { setupStopLoss, setupAmmServices } from './setup.js';
import { getAmountOut } from '@agoric/zoe/src/contractSupport/priceQuote.js';
import { floorMultiplyBy, makeRatio, makeRatioFromAmounts } from '@agoric/zoe/src/contractSupport/ratio.js';

Expand Down Expand Up @@ -42,41 +42,55 @@ export async function startServices(t) {
};
}

/**
* @param t
* @param zoe
* @param {XYKAMMPublicFacet} ammPublicFacet
* @param centralR
* @param secondaryR
* @param kwd
* @param centralInitialValue
* @param secondaryInitialValue
* @returns {Promise<{zoe, secondaryR, payout: *, ammPublicFacet, centralR, liquidityIssuer: *}>}
*/
export async function startAmmPool(
t,
zoe,
ammPublicFacet,
centralR,
secondaryR,
kwd,
centralInitialValue,
secondaryInitialValue,
) {
// Here we are creating a pool with (central - secondary)
const liquidityIssuer = await E(ammPublicFacet).addPool(
const liquidityIssuer = await E(ammPublicFacet).addIssuer(
secondaryR.issuer,
'Amm',
kwd,
);

const { addLiquidity } = await makeLiquidityInvitations(
const { initPool } = await makeLiquidityInvitations(
t,
zoe,
ammPublicFacet,
secondaryR,
centralR,
liquidityIssuer,
);

const payout = await addLiquidity(secondaryInitialValue, centralInitialValue);
await initPool(secondaryInitialValue, centralInitialValue);

return {
zoe,
ammPublicFacet,
secondaryR,
centralR,
liquidityIssuer,
payout,
};
}

export async function addLiquidityToPool(
t,
zoe,
ammPublicFacet,
centralR,
Expand All @@ -86,6 +100,7 @@ export async function addLiquidityToPool(
secondaryValue,
) {
const { addLiquidity } = await makeLiquidityInvitations(
t,
zoe,
ammPublicFacet,
secondaryR,
Expand All @@ -97,6 +112,7 @@ export async function addLiquidityToPool(
}

export async function removeLiquidityToPool(
t,
zoe,
ammPublicFacet,
centralR,
Expand All @@ -106,6 +122,7 @@ export async function removeLiquidityToPool(
liquidityValue,
) {
const { removeLiquidity } = await makeLiquidityInvitations(
t,
zoe,
ammPublicFacet,
secondaryR,
Expand Down Expand Up @@ -271,7 +288,7 @@ export const moveFromCentralPriceUp = async (zoe,
swapSecondaryForCentral,
makeCentral,
makeSecondary,
} = await makeLiquidityInvitations(zoe, ammPublicFacet, secondaryR, centralR, liquidityIssuer);
} = await makeLiquidityInvitations(undefined, zoe, ammPublicFacet, secondaryR, centralR, liquidityIssuer);

const { amountOut } = await E(ammPublicFacet).getInputPrice(makeCentral(1n), makeSecondary(0n));
let inputPriceAmountOut = amountOut;
Expand Down Expand Up @@ -310,7 +327,7 @@ export const moveFromCentralPriceDown = async (zoe,
swapCentralForSecondary,
makeCentral,
makeSecondary,
} = await makeLiquidityInvitations(zoe, ammPublicFacet, secondaryR, centralR, liquidityIssuer);
} = await makeLiquidityInvitations(undefined, zoe, ammPublicFacet, secondaryR, centralR, liquidityIssuer);

const { amountOut } = await E(ammPublicFacet).getInputPrice(makeCentral(1n), makeSecondary(0n));
let inputPriceAmountOut = amountOut;
Expand Down

0 comments on commit a78d34f

Please sign in to comment.