@metadaoproject/futarchy 0.4.0-alpha.13 → 0.4.0-alpha.14
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/dist/v0.3/AmmClient.d.ts +246 -0
- package/dist/v0.3/AmmClient.js +271 -0
- package/dist/v0.3/AmmClient.js.map +1 -0
- package/dist/v0.3/AutocratClient.d.ts +234 -0
- package/dist/v0.3/AutocratClient.js +268 -0
- package/dist/v0.3/AutocratClient.js.map +1 -0
- package/dist/v0.3/ConditionalVaultClient.d.ts +281 -0
- package/dist/v0.3/ConditionalVaultClient.js +149 -0
- package/dist/v0.3/ConditionalVaultClient.js.map +1 -0
- package/dist/v0.3/constants.d.ts +9 -0
- package/dist/v0.3/constants.js +10 -0
- package/dist/v0.3/constants.js.map +1 -0
- package/dist/v0.3/index.d.ts +6 -0
- package/dist/v0.3/index.js +7 -0
- package/dist/v0.3/index.js.map +1 -0
- package/dist/v0.3/types/amm.d.ts +542 -0
- package/dist/v0.3/types/amm.js +542 -0
- package/dist/v0.3/types/amm.js.map +1 -0
- package/dist/v0.3/types/autocrat.d.ts +632 -0
- package/dist/v0.3/types/autocrat.js +632 -0
- package/dist/v0.3/types/autocrat.js.map +1 -0
- package/dist/v0.3/types/conditional_vault.d.ts +448 -0
- package/dist/v0.3/types/conditional_vault.js +448 -0
- package/dist/v0.3/types/conditional_vault.js.map +1 -0
- package/dist/v0.3/types/index.d.ts +21 -0
- package/dist/v0.3/types/index.js +4 -0
- package/dist/v0.3/types/index.js.map +1 -0
- package/dist/v0.3/types/utils.d.ts +3 -0
- package/dist/v0.3/types/utils.js +2 -0
- package/dist/v0.3/types/utils.js.map +1 -0
- package/dist/v0.3/utils/cu.d.ts +10 -0
- package/dist/v0.3/utils/cu.js +11 -0
- package/dist/v0.3/utils/cu.js.map +1 -0
- package/dist/v0.3/utils/filters.d.ts +3 -0
- package/dist/v0.3/utils/filters.js +14 -0
- package/dist/v0.3/utils/filters.js.map +1 -0
- package/dist/v0.3/utils/index.d.ts +16 -0
- package/dist/v0.3/utils/index.js +30 -0
- package/dist/v0.3/utils/index.js.map +1 -0
- package/dist/v0.3/utils/instruction.d.ts +4 -0
- package/dist/v0.3/utils/instruction.js +10 -0
- package/dist/v0.3/utils/instruction.js.map +1 -0
- package/dist/v0.3/utils/metadata.d.ts +4 -0
- package/dist/v0.3/utils/metadata.js +26 -0
- package/dist/v0.3/utils/metadata.js.map +1 -0
- package/dist/v0.3/utils/pda.d.ts +10 -0
- package/dist/v0.3/utils/pda.js +47 -0
- package/dist/v0.3/utils/pda.js.map +1 -0
- package/dist/v0.3/utils/priceMath.d.ts +12 -0
- package/dist/v0.3/utils/priceMath.js +52 -0
- package/dist/v0.3/utils/priceMath.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { PublicKey } from "@solana/web3.js";
|
|
2
|
+
import BN from "bn.js";
|
|
3
|
+
export declare const getVaultAddr: (programId: PublicKey, settlementAuthority: PublicKey, underlyingTokenMint: PublicKey) => [PublicKey, number];
|
|
4
|
+
export declare const getVaultFinalizeMintAddr: (programId: PublicKey, vault: PublicKey) => [PublicKey, number];
|
|
5
|
+
export declare const getMetadataAddr: (mint: PublicKey) => [PublicKey, number];
|
|
6
|
+
export declare const getVaultRevertMintAddr: (programId: PublicKey, vault: PublicKey) => [PublicKey, number];
|
|
7
|
+
export declare const getDaoTreasuryAddr: (programId: PublicKey, dao: PublicKey) => [PublicKey, number];
|
|
8
|
+
export declare const getProposalAddr: (programId: PublicKey, proposer: PublicKey, nonce: BN) => [PublicKey, number];
|
|
9
|
+
export declare const getAmmAddr: (programId: PublicKey, baseMint: PublicKey, quoteMint: PublicKey) => [PublicKey, number];
|
|
10
|
+
export declare const getAmmLpMintAddr: (programId: PublicKey, amm: PublicKey) => [PublicKey, number];
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { PublicKey } from "@solana/web3.js";
|
|
2
|
+
import { utils } from "@coral-xyz/anchor";
|
|
3
|
+
import { MPL_TOKEN_METADATA_PROGRAM_ID } from "../constants.js";
|
|
4
|
+
export const getVaultAddr = (programId, settlementAuthority, underlyingTokenMint) => {
|
|
5
|
+
return PublicKey.findProgramAddressSync([
|
|
6
|
+
utils.bytes.utf8.encode("conditional_vault"),
|
|
7
|
+
settlementAuthority.toBuffer(),
|
|
8
|
+
underlyingTokenMint.toBuffer(),
|
|
9
|
+
], programId);
|
|
10
|
+
};
|
|
11
|
+
export const getVaultFinalizeMintAddr = (programId, vault) => {
|
|
12
|
+
return getVaultMintAddr(programId, vault, "conditional_on_finalize_mint");
|
|
13
|
+
};
|
|
14
|
+
export const getMetadataAddr = (mint) => {
|
|
15
|
+
return PublicKey.findProgramAddressSync([
|
|
16
|
+
utils.bytes.utf8.encode("metadata"),
|
|
17
|
+
MPL_TOKEN_METADATA_PROGRAM_ID.toBuffer(),
|
|
18
|
+
mint.toBuffer(),
|
|
19
|
+
], MPL_TOKEN_METADATA_PROGRAM_ID);
|
|
20
|
+
};
|
|
21
|
+
export const getVaultRevertMintAddr = (programId, vault) => {
|
|
22
|
+
return getVaultMintAddr(programId, vault, "conditional_on_revert_mint");
|
|
23
|
+
};
|
|
24
|
+
const getVaultMintAddr = (programId, vault, seed) => {
|
|
25
|
+
return PublicKey.findProgramAddressSync([utils.bytes.utf8.encode(seed), vault.toBuffer()], programId);
|
|
26
|
+
};
|
|
27
|
+
export const getDaoTreasuryAddr = (programId, dao) => {
|
|
28
|
+
return PublicKey.findProgramAddressSync([dao.toBuffer()], programId);
|
|
29
|
+
};
|
|
30
|
+
export const getProposalAddr = (programId, proposer, nonce) => {
|
|
31
|
+
return PublicKey.findProgramAddressSync([
|
|
32
|
+
utils.bytes.utf8.encode("proposal"),
|
|
33
|
+
proposer.toBuffer(),
|
|
34
|
+
nonce.toArrayLike(Buffer, "le", 8),
|
|
35
|
+
], programId);
|
|
36
|
+
};
|
|
37
|
+
export const getAmmAddr = (programId, baseMint, quoteMint) => {
|
|
38
|
+
return PublicKey.findProgramAddressSync([
|
|
39
|
+
utils.bytes.utf8.encode("amm__"),
|
|
40
|
+
baseMint.toBuffer(),
|
|
41
|
+
quoteMint.toBuffer(),
|
|
42
|
+
], programId);
|
|
43
|
+
};
|
|
44
|
+
export const getAmmLpMintAddr = (programId, amm) => {
|
|
45
|
+
return PublicKey.findProgramAddressSync([utils.bytes.utf8.encode("amm_lp_mint"), amm.toBuffer()], programId);
|
|
46
|
+
};
|
|
47
|
+
//# sourceMappingURL=pda.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pda.js","sourceRoot":"","sources":["../../../src/v0.3/utils/pda.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import BN from "bn.js";
|
|
2
|
+
export declare class PriceMath {
|
|
3
|
+
static getAmmPriceFromReserves(baseReserves: BN, quoteReserves: BN): BN;
|
|
4
|
+
static getChainAmount(humanAmount: number, decimals: number): BN;
|
|
5
|
+
static getHumanAmount(chainAmount: BN, decimals: number): number;
|
|
6
|
+
static getHumanPrice(ammPrice: BN, baseDecimals: number, quoteDecimals: number): number;
|
|
7
|
+
static getAmmPrice(humanPrice: number, baseDecimals: number, quoteDecimals: number): BN;
|
|
8
|
+
static getAmmPrices(baseDecimals: number, quoteDecimals: number, ...prices: number[]): BN[];
|
|
9
|
+
static scale(number: number, decimals: number): BN;
|
|
10
|
+
static addSlippage(chainAmount: BN, slippageBps: BN): BN;
|
|
11
|
+
static subtractSlippage(chainAmount: BN, slippageBps: BN): BN;
|
|
12
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import BN from "bn.js";
|
|
2
|
+
const BN_TEN = new BN(10);
|
|
3
|
+
const PRICE_SCALE = BN_TEN.pow(new BN(12));
|
|
4
|
+
const PRICE_SCALE_NUMBER = 1e12;
|
|
5
|
+
export class PriceMath {
|
|
6
|
+
static getAmmPriceFromReserves(baseReserves, quoteReserves) {
|
|
7
|
+
return quoteReserves.mul(PRICE_SCALE).div(baseReserves);
|
|
8
|
+
}
|
|
9
|
+
static getChainAmount(humanAmount, decimals) {
|
|
10
|
+
// you have to do it this weird way because BN can't be constructed with
|
|
11
|
+
// numbers larger than 2**50
|
|
12
|
+
const [integerPart, fractionalPart = ""] = humanAmount
|
|
13
|
+
.toString()
|
|
14
|
+
.split(".");
|
|
15
|
+
return new BN(integerPart + fractionalPart)
|
|
16
|
+
.mul(new BN(10).pow(new BN(decimals)))
|
|
17
|
+
.div(new BN(10).pow(new BN(fractionalPart.length)));
|
|
18
|
+
}
|
|
19
|
+
static getHumanAmount(chainAmount, decimals) {
|
|
20
|
+
return chainAmount.toNumber() / 10 ** decimals;
|
|
21
|
+
}
|
|
22
|
+
static getHumanPrice(ammPrice, baseDecimals, quoteDecimals) {
|
|
23
|
+
let decimalScalar = BN_TEN.pow(new BN(quoteDecimals - baseDecimals).abs());
|
|
24
|
+
let price1e12 = quoteDecimals > baseDecimals
|
|
25
|
+
? ammPrice.div(decimalScalar)
|
|
26
|
+
: ammPrice.mul(decimalScalar);
|
|
27
|
+
return price1e12.toNumber() / 1e12;
|
|
28
|
+
}
|
|
29
|
+
static getAmmPrice(humanPrice, baseDecimals, quoteDecimals) {
|
|
30
|
+
let price1e12 = new BN(humanPrice * PRICE_SCALE_NUMBER);
|
|
31
|
+
let decimalScalar = BN_TEN.pow(new BN(quoteDecimals - baseDecimals).abs());
|
|
32
|
+
let scaledPrice = quoteDecimals > baseDecimals
|
|
33
|
+
? price1e12.mul(decimalScalar)
|
|
34
|
+
: price1e12.div(decimalScalar);
|
|
35
|
+
return scaledPrice;
|
|
36
|
+
}
|
|
37
|
+
static getAmmPrices(baseDecimals, quoteDecimals, ...prices) {
|
|
38
|
+
// Map through each price, scaling it using the scalePrice method
|
|
39
|
+
return prices.map((price) => this.getAmmPrice(price, baseDecimals, quoteDecimals));
|
|
40
|
+
}
|
|
41
|
+
static scale(number, decimals) {
|
|
42
|
+
return new BN(number * 10 ** decimals);
|
|
43
|
+
// return new BN(number).mul(new BN(10).pow(new BN(decimals)));
|
|
44
|
+
}
|
|
45
|
+
static addSlippage(chainAmount, slippageBps) {
|
|
46
|
+
return chainAmount.mul(slippageBps.addn(10_000)).divn(10_000);
|
|
47
|
+
}
|
|
48
|
+
static subtractSlippage(chainAmount, slippageBps) {
|
|
49
|
+
return chainAmount.mul(new BN(10_000).sub(slippageBps)).divn(10_000);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=priceMath.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"priceMath.js","sourceRoot":"","sources":["../../../src/v0.3/utils/priceMath.ts"],"names":[],"mappings":"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"}
|