@bench.games/conviction-markets 0.1.3 → 0.1.4
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/instructions/buyMarketShares.d.ts.map +1 -1
- package/dist/instructions/buyMarketShares.js +15 -8
- package/dist/instructions/buyMarketShares.js.map +1 -1
- package/dist/instructions/claimVoteTokens.d.ts.map +1 -1
- package/dist/instructions/claimVoteTokens.js +9 -7
- package/dist/instructions/claimVoteTokens.js.map +1 -1
- package/dist/instructions/createMarket.d.ts.map +1 -1
- package/dist/instructions/createMarket.js +9 -7
- package/dist/instructions/createMarket.js.map +1 -1
- package/dist/instructions/initVoteTokenAccount.d.ts.map +1 -1
- package/dist/instructions/initVoteTokenAccount.js +9 -7
- package/dist/instructions/initVoteTokenAccount.js.map +1 -1
- package/dist/instructions/mintVoteTokens.d.ts.map +1 -1
- package/dist/instructions/mintVoteTokens.js +9 -7
- package/dist/instructions/mintVoteTokens.js.map +1 -1
- package/dist/instructions/revealShares.d.ts.map +1 -1
- package/dist/instructions/revealShares.js +11 -8
- package/dist/instructions/revealShares.js.map +1 -1
- package/dist/utils/encryption.d.ts +9 -5
- package/dist/utils/encryption.d.ts.map +1 -1
- package/dist/utils/encryption.js +13 -8
- package/dist/utils/encryption.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buyMarketShares.d.ts","sourceRoot":"","sources":["../../src/instructions/buyMarketShares.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,EAAE,EAAE,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"buyMarketShares.d.ts","sourceRoot":"","sources":["../../src/instructions/buyMarketShares.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,EAAE,EAAE,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAqB9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAI9C;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,yBAAyB;IACzB,MAAM,EAAE,SAAS,CAAC;IAClB,2CAA2C;IAC3C,iBAAiB,EAAE,aAAa,CAAC;IACjC,kCAAkC;IAClC,MAAM,EAAE,SAAS,CAAC;IAClB,+DAA+D;IAC/D,MAAM,EAAE,MAAM,GAAG,EAAE,CAAC;IACpB,6DAA6D;IAC7D,cAAc,EAAE,MAAM,CAAC;IACvB,kEAAkE;IAClE,4BAA4B,CAAC,EAAE,UAAU,CAAC;IAC1C,mDAAmD;IACnD,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,mCAAmC;IACnC,WAAW,EAAE,WAAW,CAAC;IACzB,+BAA+B;IAC/B,eAAe,EAAE,SAAS,CAAC;IAC3B,gEAAgE;IAChE,iBAAiB,EAAE,EAAE,CAAC;CACvB;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,eAAe,CACnC,QAAQ,EAAE,cAAc,EACxB,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,qBAAqB,CAAC,CAqFhC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Program } from "@coral-xyz/anchor";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { getCompDefAccOffset, getMXEAccAddress, getMempoolAccAddress, getExecutingPoolAccAddress, getComputationAccAddress, getCompDefAccAddress, getMXEPublicKey, } from "@arcium-hq/client";
|
|
3
|
+
import { PROGRAM_ID, COMP_DEF_OFFSETS } from "../constants";
|
|
4
|
+
import { deriveShareAccountPda, generateComputationOffset, generateNonce, nonceToU128, createEncryptionContext, encryptBuySharesInput, ARCIUM_CLUSTER_OFFSET, getClusterAddress, } from "../utils";
|
|
4
5
|
import IDL from "../idl/conviction_market.json";
|
|
5
6
|
/**
|
|
6
7
|
* Builds a transaction to buy market shares with encrypted input
|
|
@@ -17,6 +18,12 @@ import IDL from "../idl/conviction_market.json";
|
|
|
17
18
|
export async function buyMarketShares(provider, params) {
|
|
18
19
|
const programId = params.programId ?? PROGRAM_ID;
|
|
19
20
|
const program = new Program(IDL, provider);
|
|
21
|
+
const clusterAccount = getClusterAddress();
|
|
22
|
+
// Get MXE public key for encryption
|
|
23
|
+
const mxePublicKey = await getMXEPublicKey(provider, programId);
|
|
24
|
+
if (!mxePublicKey) {
|
|
25
|
+
throw new Error("Failed to fetch MXE public key");
|
|
26
|
+
}
|
|
20
27
|
// Derive share account
|
|
21
28
|
const [shareAccountPda] = deriveShareAccountPda(params.signer, params.market, programId);
|
|
22
29
|
// Auto-generate computation offset and nonces
|
|
@@ -26,7 +33,7 @@ export async function buyMarketShares(provider, params) {
|
|
|
26
33
|
const disclosureNonce = generateNonce();
|
|
27
34
|
const disclosureNonceBN = nonceToU128(disclosureNonce);
|
|
28
35
|
// Create encryption context and encrypt inputs
|
|
29
|
-
const encryptionContext = createEncryptionContext(params.userX25519Keypair);
|
|
36
|
+
const encryptionContext = createEncryptionContext(params.userX25519Keypair, mxePublicKey);
|
|
30
37
|
const amountBigInt = typeof params.amount === "number"
|
|
31
38
|
? BigInt(params.amount)
|
|
32
39
|
: BigInt(params.amount.toString());
|
|
@@ -38,11 +45,11 @@ export async function buyMarketShares(provider, params) {
|
|
|
38
45
|
.accountsPartial({
|
|
39
46
|
market: params.market,
|
|
40
47
|
computationAccount: getComputationAccAddress(ARCIUM_CLUSTER_OFFSET, computationOffset),
|
|
41
|
-
clusterAccount
|
|
42
|
-
mxeAccount:
|
|
43
|
-
mempoolAccount:
|
|
44
|
-
executingPool:
|
|
45
|
-
compDefAccount:
|
|
48
|
+
clusterAccount,
|
|
49
|
+
mxeAccount: getMXEAccAddress(programId),
|
|
50
|
+
mempoolAccount: getMempoolAccAddress(ARCIUM_CLUSTER_OFFSET),
|
|
51
|
+
executingPool: getExecutingPoolAccAddress(ARCIUM_CLUSTER_OFFSET),
|
|
52
|
+
compDefAccount: getCompDefAccAddress(programId, Buffer.from(getCompDefAccOffset(COMP_DEF_OFFSETS.BUY_CONVICTION_MARKET_SHARES)).readUInt32LE()),
|
|
46
53
|
})
|
|
47
54
|
.transaction();
|
|
48
55
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buyMarketShares.js","sourceRoot":"","sources":["../../src/instructions/buyMarketShares.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAA2B,MAAM,mBAAmB,CAAC;AAErE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"buyMarketShares.js","sourceRoot":"","sources":["../../src/instructions/buyMarketShares.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAA2B,MAAM,mBAAmB,CAAC;AAErE,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,oBAAoB,EACpB,0BAA0B,EAC1B,wBAAwB,EACxB,oBAAoB,EACpB,eAAe,GAChB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,EACL,qBAAqB,EACrB,yBAAyB,EACzB,aAAa,EACb,WAAW,EACX,uBAAuB,EACvB,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB,GAClB,MAAM,UAAU,CAAC;AAElB,OAAO,GAAG,MAAM,+BAA+B,CAAC;AAmChD;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,QAAwB,EACxB,MAA6B;IAE7B,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,UAAU,CAAC;IACjD,MAAM,OAAO,GAAG,IAAI,OAAO,CACzB,GAAuB,EACvB,QAAQ,CACoB,CAAC;IAE/B,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAC;IAE3C,oCAAoC;IACpC,MAAM,YAAY,GAAG,MAAM,eAAe,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAChE,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;IACpD,CAAC;IAED,uBAAuB;IACvB,MAAM,CAAC,eAAe,CAAC,GAAG,qBAAqB,CAC7C,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,MAAM,EACb,SAAS,CACV,CAAC;IAEF,8CAA8C;IAC9C,MAAM,iBAAiB,GAAG,yBAAyB,EAAE,CAAC;IACtD,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC;IACnC,MAAM,YAAY,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;IAC7C,MAAM,eAAe,GAAG,aAAa,EAAE,CAAC;IACxC,MAAM,iBAAiB,GAAG,WAAW,CAAC,eAAe,CAAC,CAAC;IAEvD,+CAA+C;IAC/C,MAAM,iBAAiB,GAAG,uBAAuB,CAC/C,MAAM,CAAC,iBAAiB,EACxB,YAAY,CACb,CAAC;IAEF,MAAM,YAAY,GAChB,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ;QAC/B,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;QACvB,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IAEvC,MAAM,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,GAAG,qBAAqB,CAC1E,iBAAiB,EACjB,YAAY,EACZ,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,EAC7B,UAAU,CACX,CAAC;IAEF,wDAAwD;IACxD,MAAM,sBAAsB,GAC1B,MAAM,CAAC,4BAA4B,IAAI,MAAM,CAAC,iBAAiB,CAAC,SAAS,CAAC;IAE5E,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,OAAO;SACtC,eAAe,CACd,iBAAiB,EACjB,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAC5B,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,EACpC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAC9C,YAAY,EACZ,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,EAClC,iBAAiB,CAClB;SACA,eAAe,CAAC;QACf,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,kBAAkB,EAAE,wBAAwB,CAC1C,qBAAqB,EACrB,iBAAiB,CAClB;QACD,cAAc;QACd,UAAU,EAAE,gBAAgB,CAAC,SAAS,CAAC;QACvC,cAAc,EAAE,oBAAoB,CAAC,qBAAqB,CAAC;QAC3D,aAAa,EAAE,0BAA0B,CAAC,qBAAqB,CAAC;QAChE,cAAc,EAAE,oBAAoB,CAClC,SAAS,EACT,MAAM,CAAC,IAAI,CACT,mBAAmB,CAAC,gBAAgB,CAAC,4BAA4B,CAAC,CACnE,CAAC,YAAY,EAAE,CACjB;KACF,CAAC;SACD,WAAW,EAAE,CAAC;IAEjB,OAAO;QACL,WAAW;QACX,eAAe;QACf,iBAAiB;KAClB,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claimVoteTokens.d.ts","sourceRoot":"","sources":["../../src/instructions/claimVoteTokens.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,EAAE,EAAE,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAAiB,KAAK,SAAS,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"claimVoteTokens.d.ts","sourceRoot":"","sources":["../../src/instructions/claimVoteTokens.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,EAAE,EAAE,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAAiB,KAAK,SAAS,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAgB7E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAI9C;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,0CAA0C;IAC1C,MAAM,EAAE,SAAS,CAAC;IAClB,2CAA2C;IAC3C,iBAAiB,EAAE,aAAa,CAAC;IACjC,oCAAoC;IACpC,MAAM,EAAE,MAAM,GAAG,EAAE,CAAC;IACpB,mDAAmD;IACnD,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,mCAAmC;IACnC,WAAW,EAAE,WAAW,CAAC;IACzB,oCAAoC;IACpC,mBAAmB,EAAE,SAAS,CAAC;IAC/B,gEAAgE;IAChE,iBAAiB,EAAE,EAAE,CAAC;CACvB;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,eAAe,CACnC,QAAQ,EAAE,cAAc,EACxB,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,qBAAqB,CAAC,CAsDhC"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { Program, BN } from "@coral-xyz/anchor";
|
|
2
2
|
import { SystemProgram } from "@solana/web3.js";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
3
|
+
import { getCompDefAccOffset, getMXEAccAddress, getMempoolAccAddress, getExecutingPoolAccAddress, getComputationAccAddress, getCompDefAccAddress, } from "@arcium-hq/client";
|
|
4
|
+
import { PROGRAM_ID, COMP_DEF_OFFSETS } from "../constants";
|
|
5
|
+
import { deriveVoteTokenAccountPda, generateComputationOffset, ARCIUM_CLUSTER_OFFSET, getClusterAddress, } from "../utils";
|
|
5
6
|
import IDL from "../idl/conviction_market.json";
|
|
6
7
|
/**
|
|
7
8
|
* Builds a transaction to claim (sell) vote tokens for SOL
|
|
@@ -17,6 +18,7 @@ import IDL from "../idl/conviction_market.json";
|
|
|
17
18
|
export async function claimVoteTokens(provider, params) {
|
|
18
19
|
const programId = params.programId ?? PROGRAM_ID;
|
|
19
20
|
const program = new Program(IDL, provider);
|
|
21
|
+
const clusterAccount = getClusterAddress();
|
|
20
22
|
// Derive vote token account PDA
|
|
21
23
|
const [voteTokenAccountPda] = deriveVoteTokenAccountPda(params.signer, programId);
|
|
22
24
|
// Auto-generate computation offset
|
|
@@ -29,11 +31,11 @@ export async function claimVoteTokens(provider, params) {
|
|
|
29
31
|
signer: params.signer,
|
|
30
32
|
voteTokenAccount: voteTokenAccountPda,
|
|
31
33
|
computationAccount: getComputationAccAddress(ARCIUM_CLUSTER_OFFSET, computationOffset),
|
|
32
|
-
clusterAccount
|
|
33
|
-
mxeAccount:
|
|
34
|
-
mempoolAccount:
|
|
35
|
-
executingPool:
|
|
36
|
-
compDefAccount:
|
|
34
|
+
clusterAccount,
|
|
35
|
+
mxeAccount: getMXEAccAddress(programId),
|
|
36
|
+
mempoolAccount: getMempoolAccAddress(ARCIUM_CLUSTER_OFFSET),
|
|
37
|
+
executingPool: getExecutingPoolAccAddress(ARCIUM_CLUSTER_OFFSET),
|
|
38
|
+
compDefAccount: getCompDefAccAddress(programId, Buffer.from(getCompDefAccOffset(COMP_DEF_OFFSETS.CLAIM_VOTE_TOKENS)).readUInt32LE()),
|
|
37
39
|
systemProgram: SystemProgram.programId,
|
|
38
40
|
})
|
|
39
41
|
.transaction();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claimVoteTokens.js","sourceRoot":"","sources":["../../src/instructions/claimVoteTokens.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,EAAE,EAAuB,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAAE,aAAa,EAA+B,MAAM,iBAAiB,CAAC;AAC7E,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"claimVoteTokens.js","sourceRoot":"","sources":["../../src/instructions/claimVoteTokens.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,EAAE,EAAuB,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAAE,aAAa,EAA+B,MAAM,iBAAiB,CAAC;AAC7E,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,oBAAoB,EACpB,0BAA0B,EAC1B,wBAAwB,EACxB,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,EACL,yBAAyB,EACzB,yBAAyB,EACzB,qBAAqB,EACrB,iBAAiB,GAClB,MAAM,UAAU,CAAC;AAElB,OAAO,GAAG,MAAM,+BAA+B,CAAC;AA6BhD;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,QAAwB,EACxB,MAA6B;IAE7B,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,UAAU,CAAC;IACjD,MAAM,OAAO,GAAG,IAAI,OAAO,CACzB,GAAuB,EACvB,QAAQ,CACoB,CAAC;IAE/B,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAC;IAE3C,gCAAgC;IAChC,MAAM,CAAC,mBAAmB,CAAC,GAAG,yBAAyB,CACrD,MAAM,CAAC,MAAM,EACb,SAAS,CACV,CAAC;IAEF,mCAAmC;IACnC,MAAM,iBAAiB,GAAG,yBAAyB,EAAE,CAAC;IAEtD,uBAAuB;IACvB,MAAM,QAAQ,GACZ,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;IAE5E,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,OAAO;SACtC,eAAe,CACd,iBAAiB,EACjB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAC9C,QAAQ,CACT;SACA,eAAe,CAAC;QACf,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,gBAAgB,EAAE,mBAAmB;QACrC,kBAAkB,EAAE,wBAAwB,CAC1C,qBAAqB,EACrB,iBAAiB,CAClB;QACD,cAAc;QACd,UAAU,EAAE,gBAAgB,CAAC,SAAS,CAAC;QACvC,cAAc,EAAE,oBAAoB,CAAC,qBAAqB,CAAC;QAC3D,aAAa,EAAE,0BAA0B,CAAC,qBAAqB,CAAC;QAChE,cAAc,EAAE,oBAAoB,CAClC,SAAS,EACT,MAAM,CAAC,IAAI,CACT,mBAAmB,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,CACxD,CAAC,YAAY,EAAE,CACjB;QACD,aAAa,EAAE,aAAa,CAAC,SAAS;KACvC,CAAC;SACD,WAAW,EAAE,CAAC;IAEjB,OAAO;QACL,WAAW;QACX,mBAAmB;QACnB,iBAAiB;KAClB,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createMarket.d.ts","sourceRoot":"","sources":["../../src/instructions/createMarket.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,EAAE,EAAE,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAAiB,KAAK,SAAS,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"createMarket.d.ts","sourceRoot":"","sources":["../../src/instructions/createMarket.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,EAAE,EAAE,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAAiB,KAAK,SAAS,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAqB7E;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,iDAAiD;IACjD,OAAO,EAAE,SAAS,CAAC;IACnB,0BAA0B;IAC1B,WAAW,EAAE,MAAM,GAAG,EAAE,CAAC;IACzB,wCAAwC;IACxC,UAAU,EAAE,MAAM,CAAC;IACnB,4CAA4C;IAC5C,SAAS,EAAE,MAAM,GAAG,EAAE,CAAC;IACvB,0CAA0C;IAC1C,cAAc,EAAE,MAAM,GAAG,EAAE,CAAC;IAC5B,4CAA4C;IAC5C,WAAW,EAAE,MAAM,GAAG,EAAE,CAAC;IACzB,2CAA2C;IAC3C,YAAY,EAAE,MAAM,GAAG,EAAE,CAAC;IAC1B,wDAAwD;IACxD,eAAe,CAAC,EAAE,SAAS,CAAC;IAC5B,mDAAmD;IACnD,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,mCAAmC;IACnC,WAAW,EAAE,WAAW,CAAC;IACzB,gCAAgC;IAChC,SAAS,EAAE,SAAS,CAAC;IACrB,gEAAgE;IAChE,iBAAiB,EAAE,EAAE,CAAC;CACvB;AAED;;;;;;;;;GASG;AACH,wBAAsB,YAAY,CAChC,QAAQ,EAAE,cAAc,EACxB,MAAM,EAAE,kBAAkB,GACzB,OAAO,CAAC,kBAAkB,CAAC,CAiF7B"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { Program, BN } from "@coral-xyz/anchor";
|
|
2
2
|
import { SystemProgram } from "@solana/web3.js";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
3
|
+
import { getCompDefAccOffset, getMXEAccAddress, getMempoolAccAddress, getExecutingPoolAccAddress, getComputationAccAddress, getCompDefAccAddress, } from "@arcium-hq/client";
|
|
4
|
+
import { PROGRAM_ID, COMP_DEF_OFFSETS } from "../constants";
|
|
5
|
+
import { deriveMarketPda, generateComputationOffset, generateNonce, nonceToU128, ARCIUM_CLUSTER_OFFSET, getClusterAddress, } from "../utils";
|
|
5
6
|
import IDL from "../idl/conviction_market.json";
|
|
6
7
|
/**
|
|
7
8
|
* Builds a transaction to create a new conviction market with encrypted state
|
|
@@ -16,6 +17,7 @@ import IDL from "../idl/conviction_market.json";
|
|
|
16
17
|
export async function createMarket(provider, params) {
|
|
17
18
|
const programId = params.programId ?? PROGRAM_ID;
|
|
18
19
|
const program = new Program(IDL, provider);
|
|
20
|
+
const clusterAccount = getClusterAddress();
|
|
19
21
|
// Convert parameters to BN
|
|
20
22
|
const marketIndexBN = typeof params.marketIndex === "number"
|
|
21
23
|
? new BN(params.marketIndex)
|
|
@@ -44,11 +46,11 @@ export async function createMarket(provider, params) {
|
|
|
44
46
|
creator: params.creator,
|
|
45
47
|
market: marketPda,
|
|
46
48
|
computationAccount: getComputationAccAddress(ARCIUM_CLUSTER_OFFSET, computationOffset),
|
|
47
|
-
clusterAccount
|
|
48
|
-
mxeAccount:
|
|
49
|
-
mempoolAccount:
|
|
50
|
-
executingPool:
|
|
51
|
-
compDefAccount:
|
|
49
|
+
clusterAccount,
|
|
50
|
+
mxeAccount: getMXEAccAddress(programId),
|
|
51
|
+
mempoolAccount: getMempoolAccAddress(ARCIUM_CLUSTER_OFFSET),
|
|
52
|
+
executingPool: getExecutingPoolAccAddress(ARCIUM_CLUSTER_OFFSET),
|
|
53
|
+
compDefAccount: getCompDefAccAddress(programId, Buffer.from(getCompDefAccOffset(COMP_DEF_OFFSETS.INIT_MARKET_SHARES)).readUInt32LE()),
|
|
52
54
|
systemProgram: SystemProgram.programId,
|
|
53
55
|
})
|
|
54
56
|
.transaction();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createMarket.js","sourceRoot":"","sources":["../../src/instructions/createMarket.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,EAAE,EAAuB,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAAE,aAAa,EAA+B,MAAM,iBAAiB,CAAC;AAC7E,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"createMarket.js","sourceRoot":"","sources":["../../src/instructions/createMarket.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"initVoteTokenAccount.d.ts","sourceRoot":"","sources":["../../src/instructions/initVoteTokenAccount.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,EAAE,EAAE,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAAiB,KAAK,SAAS,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"initVoteTokenAccount.d.ts","sourceRoot":"","sources":["../../src/instructions/initVoteTokenAccount.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,EAAE,EAAE,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAAiB,KAAK,SAAS,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAkB7E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAI9C;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,2CAA2C;IAC3C,MAAM,EAAE,SAAS,CAAC;IAClB,2CAA2C;IAC3C,iBAAiB,EAAE,aAAa,CAAC;IACjC,mDAAmD;IACnD,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,mCAAmC;IACnC,WAAW,EAAE,WAAW,CAAC;IACzB,4CAA4C;IAC5C,mBAAmB,EAAE,SAAS,CAAC;IAC/B,gEAAgE;IAChE,iBAAiB,EAAE,EAAE,CAAC;CACvB;AAED;;;;;;;;;GASG;AACH,wBAAsB,oBAAoB,CACxC,QAAQ,EAAE,cAAc,EACxB,MAAM,EAAE,0BAA0B,GACjC,OAAO,CAAC,0BAA0B,CAAC,CAoDrC"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { Program } from "@coral-xyz/anchor";
|
|
2
2
|
import { SystemProgram } from "@solana/web3.js";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
3
|
+
import { getCompDefAccOffset, getMXEAccAddress, getMempoolAccAddress, getExecutingPoolAccAddress, getComputationAccAddress, getCompDefAccAddress, } from "@arcium-hq/client";
|
|
4
|
+
import { PROGRAM_ID, COMP_DEF_OFFSETS } from "../constants";
|
|
5
|
+
import { deriveVoteTokenAccountPda, generateComputationOffset, generateNonce, nonceToU128, ARCIUM_CLUSTER_OFFSET, getClusterAddress, } from "../utils";
|
|
5
6
|
import IDL from "../idl/conviction_market.json";
|
|
6
7
|
/**
|
|
7
8
|
* Builds a transaction to initialize a vote token account via encrypted computation
|
|
@@ -16,6 +17,7 @@ import IDL from "../idl/conviction_market.json";
|
|
|
16
17
|
export async function initVoteTokenAccount(provider, params) {
|
|
17
18
|
const programId = params.programId ?? PROGRAM_ID;
|
|
18
19
|
const program = new Program(IDL, provider);
|
|
20
|
+
const clusterAccount = getClusterAddress();
|
|
19
21
|
// Derive vote token account PDA
|
|
20
22
|
const [voteTokenAccountPda] = deriveVoteTokenAccountPda(params.signer, programId);
|
|
21
23
|
// Auto-generate computation offset and nonce
|
|
@@ -28,11 +30,11 @@ export async function initVoteTokenAccount(provider, params) {
|
|
|
28
30
|
signer: params.signer,
|
|
29
31
|
voteTokenAccount: voteTokenAccountPda,
|
|
30
32
|
computationAccount: getComputationAccAddress(ARCIUM_CLUSTER_OFFSET, computationOffset),
|
|
31
|
-
clusterAccount
|
|
32
|
-
mxeAccount:
|
|
33
|
-
mempoolAccount:
|
|
34
|
-
executingPool:
|
|
35
|
-
compDefAccount:
|
|
33
|
+
clusterAccount,
|
|
34
|
+
mxeAccount: getMXEAccAddress(programId),
|
|
35
|
+
mempoolAccount: getMempoolAccAddress(ARCIUM_CLUSTER_OFFSET),
|
|
36
|
+
executingPool: getExecutingPoolAccAddress(ARCIUM_CLUSTER_OFFSET),
|
|
37
|
+
compDefAccount: getCompDefAccAddress(programId, Buffer.from(getCompDefAccOffset(COMP_DEF_OFFSETS.INIT_VOTE_TOKEN_ACCOUNT)).readUInt32LE()),
|
|
36
38
|
systemProgram: SystemProgram.programId,
|
|
37
39
|
})
|
|
38
40
|
.transaction();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"initVoteTokenAccount.js","sourceRoot":"","sources":["../../src/instructions/initVoteTokenAccount.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAA2B,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAAE,aAAa,EAA+B,MAAM,iBAAiB,CAAC;AAC7E,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"initVoteTokenAccount.js","sourceRoot":"","sources":["../../src/instructions/initVoteTokenAccount.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAA2B,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAAE,aAAa,EAA+B,MAAM,iBAAiB,CAAC;AAC7E,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,oBAAoB,EACpB,0BAA0B,EAC1B,wBAAwB,EACxB,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,EACL,yBAAyB,EACzB,yBAAyB,EACzB,aAAa,EACb,WAAW,EACX,qBAAqB,EACrB,iBAAiB,GAClB,MAAM,UAAU,CAAC;AAElB,OAAO,GAAG,MAAM,+BAA+B,CAAC;AA2BhD;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,QAAwB,EACxB,MAAkC;IAElC,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,UAAU,CAAC;IACjD,MAAM,OAAO,GAAG,IAAI,OAAO,CACzB,GAAuB,EACvB,QAAQ,CACoB,CAAC;IAE/B,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAC;IAE3C,gCAAgC;IAChC,MAAM,CAAC,mBAAmB,CAAC,GAAG,yBAAyB,CACrD,MAAM,CAAC,MAAM,EACb,SAAS,CACV,CAAC;IAEF,6CAA6C;IAC7C,MAAM,iBAAiB,GAAG,yBAAyB,EAAE,CAAC;IACtD,MAAM,KAAK,GAAG,aAAa,EAAE,CAAC;IAC9B,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IAEnC,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,OAAO;SACtC,oBAAoB,CACnB,iBAAiB,EACjB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAC9C,OAAO,CACR;SACA,eAAe,CAAC;QACf,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,gBAAgB,EAAE,mBAAmB;QACrC,kBAAkB,EAAE,wBAAwB,CAC1C,qBAAqB,EACrB,iBAAiB,CAClB;QACD,cAAc;QACd,UAAU,EAAE,gBAAgB,CAAC,SAAS,CAAC;QACvC,cAAc,EAAE,oBAAoB,CAAC,qBAAqB,CAAC;QAC3D,aAAa,EAAE,0BAA0B,CAAC,qBAAqB,CAAC;QAChE,cAAc,EAAE,oBAAoB,CAClC,SAAS,EACT,MAAM,CAAC,IAAI,CACT,mBAAmB,CAAC,gBAAgB,CAAC,uBAAuB,CAAC,CAC9D,CAAC,YAAY,EAAE,CACjB;QACD,aAAa,EAAE,aAAa,CAAC,SAAS;KACvC,CAAC;SACD,WAAW,EAAE,CAAC;IAEjB,OAAO;QACL,WAAW;QACX,mBAAmB;QACnB,iBAAiB;KAClB,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mintVoteTokens.d.ts","sourceRoot":"","sources":["../../src/instructions/mintVoteTokens.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,EAAE,EAAE,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAAiB,KAAK,SAAS,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"mintVoteTokens.d.ts","sourceRoot":"","sources":["../../src/instructions/mintVoteTokens.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,EAAE,EAAE,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAAiB,KAAK,SAAS,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAgB7E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAI9C;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,qCAAqC;IACrC,MAAM,EAAE,SAAS,CAAC;IAClB,2CAA2C;IAC3C,iBAAiB,EAAE,aAAa,CAAC;IACjC,oCAAoC;IACpC,MAAM,EAAE,MAAM,GAAG,EAAE,CAAC;IACpB,mDAAmD;IACnD,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,mCAAmC;IACnC,WAAW,EAAE,WAAW,CAAC;IACzB,oCAAoC;IACpC,mBAAmB,EAAE,SAAS,CAAC;IAC/B,gEAAgE;IAChE,iBAAiB,EAAE,EAAE,CAAC;CACvB;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,cAAc,CAClC,QAAQ,EAAE,cAAc,EACxB,MAAM,EAAE,oBAAoB,GAC3B,OAAO,CAAC,oBAAoB,CAAC,CAsD/B"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { Program, BN } from "@coral-xyz/anchor";
|
|
2
2
|
import { SystemProgram } from "@solana/web3.js";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
3
|
+
import { getCompDefAccOffset, getMXEAccAddress, getMempoolAccAddress, getExecutingPoolAccAddress, getComputationAccAddress, getCompDefAccAddress, } from "@arcium-hq/client";
|
|
4
|
+
import { PROGRAM_ID, COMP_DEF_OFFSETS } from "../constants";
|
|
5
|
+
import { deriveVoteTokenAccountPda, generateComputationOffset, ARCIUM_CLUSTER_OFFSET, getClusterAddress, } from "../utils";
|
|
5
6
|
import IDL from "../idl/conviction_market.json";
|
|
6
7
|
/**
|
|
7
8
|
* Builds a transaction to mint vote tokens by paying SOL
|
|
@@ -17,6 +18,7 @@ import IDL from "../idl/conviction_market.json";
|
|
|
17
18
|
export async function mintVoteTokens(provider, params) {
|
|
18
19
|
const programId = params.programId ?? PROGRAM_ID;
|
|
19
20
|
const program = new Program(IDL, provider);
|
|
21
|
+
const clusterAccount = getClusterAddress();
|
|
20
22
|
// Derive vote token account PDA
|
|
21
23
|
const [voteTokenAccountPda] = deriveVoteTokenAccountPda(params.signer, programId);
|
|
22
24
|
// Auto-generate computation offset
|
|
@@ -29,11 +31,11 @@ export async function mintVoteTokens(provider, params) {
|
|
|
29
31
|
signer: params.signer,
|
|
30
32
|
voteTokenAccount: voteTokenAccountPda,
|
|
31
33
|
computationAccount: getComputationAccAddress(ARCIUM_CLUSTER_OFFSET, computationOffset),
|
|
32
|
-
clusterAccount
|
|
33
|
-
mxeAccount:
|
|
34
|
-
mempoolAccount:
|
|
35
|
-
executingPool:
|
|
36
|
-
compDefAccount:
|
|
34
|
+
clusterAccount,
|
|
35
|
+
mxeAccount: getMXEAccAddress(programId),
|
|
36
|
+
mempoolAccount: getMempoolAccAddress(ARCIUM_CLUSTER_OFFSET),
|
|
37
|
+
executingPool: getExecutingPoolAccAddress(ARCIUM_CLUSTER_OFFSET),
|
|
38
|
+
compDefAccount: getCompDefAccAddress(programId, Buffer.from(getCompDefAccOffset(COMP_DEF_OFFSETS.BUY_VOTE_TOKENS)).readUInt32LE()),
|
|
37
39
|
systemProgram: SystemProgram.programId,
|
|
38
40
|
})
|
|
39
41
|
.transaction();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mintVoteTokens.js","sourceRoot":"","sources":["../../src/instructions/mintVoteTokens.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,EAAE,EAAuB,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAAE,aAAa,EAA+B,MAAM,iBAAiB,CAAC;AAC7E,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"mintVoteTokens.js","sourceRoot":"","sources":["../../src/instructions/mintVoteTokens.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,EAAE,EAAuB,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAAE,aAAa,EAA+B,MAAM,iBAAiB,CAAC;AAC7E,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,oBAAoB,EACpB,0BAA0B,EAC1B,wBAAwB,EACxB,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,EACL,yBAAyB,EACzB,yBAAyB,EACzB,qBAAqB,EACrB,iBAAiB,GAClB,MAAM,UAAU,CAAC;AAElB,OAAO,GAAG,MAAM,+BAA+B,CAAC;AA6BhD;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,QAAwB,EACxB,MAA4B;IAE5B,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,UAAU,CAAC;IACjD,MAAM,OAAO,GAAG,IAAI,OAAO,CACzB,GAAuB,EACvB,QAAQ,CACoB,CAAC;IAE/B,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAC;IAE3C,gCAAgC;IAChC,MAAM,CAAC,mBAAmB,CAAC,GAAG,yBAAyB,CACrD,MAAM,CAAC,MAAM,EACb,SAAS,CACV,CAAC;IAEF,mCAAmC;IACnC,MAAM,iBAAiB,GAAG,yBAAyB,EAAE,CAAC;IAEtD,uBAAuB;IACvB,MAAM,QAAQ,GACZ,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;IAE5E,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,OAAO;SACtC,cAAc,CACb,iBAAiB,EACjB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAC9C,QAAQ,CACT;SACA,eAAe,CAAC;QACf,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,gBAAgB,EAAE,mBAAmB;QACrC,kBAAkB,EAAE,wBAAwB,CAC1C,qBAAqB,EACrB,iBAAiB,CAClB;QACD,cAAc;QACd,UAAU,EAAE,gBAAgB,CAAC,SAAS,CAAC;QACvC,cAAc,EAAE,oBAAoB,CAAC,qBAAqB,CAAC;QAC3D,aAAa,EAAE,0BAA0B,CAAC,qBAAqB,CAAC;QAChE,cAAc,EAAE,oBAAoB,CAClC,SAAS,EACT,MAAM,CAAC,IAAI,CACT,mBAAmB,CAAC,gBAAgB,CAAC,eAAe,CAAC,CACtD,CAAC,YAAY,EAAE,CACjB;QACD,aAAa,EAAE,aAAa,CAAC,SAAS;KACvC,CAAC;SACD,WAAW,EAAE,CAAC;IAEjB,OAAO;QACL,WAAW;QACX,mBAAmB;QACnB,iBAAiB;KAClB,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"revealShares.d.ts","sourceRoot":"","sources":["../../src/instructions/revealShares.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,EAAE,EAAE,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"revealShares.d.ts","sourceRoot":"","sources":["../../src/instructions/revealShares.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,EAAE,EAAE,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAiB9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAI9C;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,8CAA8C;IAC9C,MAAM,EAAE,SAAS,CAAC;IAClB,2CAA2C;IAC3C,KAAK,EAAE,SAAS,CAAC;IACjB,iBAAiB;IACjB,MAAM,EAAE,SAAS,CAAC;IAClB,4CAA4C;IAC5C,kBAAkB,EAAE,aAAa,CAAC;IAClC,mDAAmD;IACnD,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,mCAAmC;IACnC,WAAW,EAAE,WAAW,CAAC;IACzB,+BAA+B;IAC/B,eAAe,EAAE,SAAS,CAAC;IAC3B,gEAAgE;IAChE,iBAAiB,EAAE,EAAE,CAAC;CACvB;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,YAAY,CAChC,QAAQ,EAAE,cAAc,EACxB,MAAM,EAAE,kBAAkB,GACzB,OAAO,CAAC,kBAAkB,CAAC,CAqD7B"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Program } from "@coral-xyz/anchor";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { getCompDefAccOffset, getMXEAccAddress, getMempoolAccAddress, getExecutingPoolAccAddress, getComputationAccAddress, getCompDefAccAddress, } from "@arcium-hq/client";
|
|
3
|
+
import { PROGRAM_ID, COMP_DEF_OFFSETS } from "../constants";
|
|
4
|
+
import { deriveVoteTokenAccountPda, deriveShareAccountPda, generateComputationOffset, ARCIUM_CLUSTER_OFFSET, getClusterAddress, } from "../utils";
|
|
4
5
|
import IDL from "../idl/conviction_market.json";
|
|
5
6
|
/**
|
|
6
7
|
* Builds a transaction to reveal a user's encrypted shares after staking ends
|
|
@@ -17,7 +18,9 @@ import IDL from "../idl/conviction_market.json";
|
|
|
17
18
|
export async function revealShares(provider, params) {
|
|
18
19
|
const programId = params.programId ?? PROGRAM_ID;
|
|
19
20
|
const program = new Program(IDL, provider);
|
|
20
|
-
|
|
21
|
+
const clusterAccount = getClusterAddress();
|
|
22
|
+
// Derive accounts
|
|
23
|
+
const [voteTokenAccountPda] = deriveVoteTokenAccountPda(params.owner, programId);
|
|
21
24
|
const [shareAccountPda] = deriveShareAccountPda(params.owner, params.market, programId);
|
|
22
25
|
// Auto-generate computation offset
|
|
23
26
|
const computationOffset = generateComputationOffset();
|
|
@@ -27,11 +30,11 @@ export async function revealShares(provider, params) {
|
|
|
27
30
|
owner: params.owner,
|
|
28
31
|
market: params.market,
|
|
29
32
|
computationAccount: getComputationAccAddress(ARCIUM_CLUSTER_OFFSET, computationOffset),
|
|
30
|
-
clusterAccount
|
|
31
|
-
mxeAccount:
|
|
32
|
-
mempoolAccount:
|
|
33
|
-
executingPool:
|
|
34
|
-
compDefAccount:
|
|
33
|
+
clusterAccount,
|
|
34
|
+
mxeAccount: getMXEAccAddress(programId),
|
|
35
|
+
mempoolAccount: getMempoolAccAddress(ARCIUM_CLUSTER_OFFSET),
|
|
36
|
+
executingPool: getExecutingPoolAccAddress(ARCIUM_CLUSTER_OFFSET),
|
|
37
|
+
compDefAccount: getCompDefAccAddress(programId, Buffer.from(getCompDefAccOffset(COMP_DEF_OFFSETS.REVEAL_SHARES)).readUInt32LE()),
|
|
35
38
|
})
|
|
36
39
|
.transaction();
|
|
37
40
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"revealShares.js","sourceRoot":"","sources":["../../src/instructions/revealShares.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAA2B,MAAM,mBAAmB,CAAC;AAErE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"revealShares.js","sourceRoot":"","sources":["../../src/instructions/revealShares.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAA2B,MAAM,mBAAmB,CAAC;AAErE,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,oBAAoB,EACpB,0BAA0B,EAC1B,wBAAwB,EACxB,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,yBAAyB,EACzB,qBAAqB,EACrB,iBAAiB,GAClB,MAAM,UAAU,CAAC;AAElB,OAAO,GAAG,MAAM,+BAA+B,CAAC;AA+BhD;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,QAAwB,EACxB,MAA0B;IAE1B,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,UAAU,CAAC;IACjD,MAAM,OAAO,GAAG,IAAI,OAAO,CACzB,GAAuB,EACvB,QAAQ,CACoB,CAAC;IAE/B,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAC;IAE3C,kBAAkB;IAClB,MAAM,CAAC,mBAAmB,CAAC,GAAG,yBAAyB,CACrD,MAAM,CAAC,KAAK,EACZ,SAAS,CACV,CAAC;IACF,MAAM,CAAC,eAAe,CAAC,GAAG,qBAAqB,CAC7C,MAAM,CAAC,KAAK,EACZ,MAAM,CAAC,MAAM,EACb,SAAS,CACV,CAAC;IAEF,mCAAmC;IACnC,MAAM,iBAAiB,GAAG,yBAAyB,EAAE,CAAC;IAEtD,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,OAAO;SACtC,YAAY,CACX,iBAAiB,EACjB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAChD;SACA,eAAe,CAAC;QACf,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,kBAAkB,EAAE,wBAAwB,CAC1C,qBAAqB,EACrB,iBAAiB,CAClB;QACD,cAAc;QACd,UAAU,EAAE,gBAAgB,CAAC,SAAS,CAAC;QACvC,cAAc,EAAE,oBAAoB,CAAC,qBAAqB,CAAC;QAC3D,aAAa,EAAE,0BAA0B,CAAC,qBAAqB,CAAC;QAChE,cAAc,EAAE,oBAAoB,CAClC,SAAS,EACT,MAAM,CAAC,IAAI,CACT,mBAAmB,CAAC,gBAAgB,CAAC,aAAa,CAAC,CACpD,CAAC,YAAY,EAAE,CACjB;KACF,CAAC;SACD,WAAW,EAAE,CAAC;IAEjB,OAAO;QACL,WAAW;QACX,eAAe;QACf,iBAAiB;KAClB,CAAC;AACJ,CAAC"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { RescueCipher } from "@arcium-hq/client";
|
|
2
|
+
import type { AnchorProvider } from "@coral-xyz/anchor";
|
|
3
|
+
import type { PublicKey } from "@solana/web3.js";
|
|
2
4
|
import type { X25519Keypair } from "../types";
|
|
3
5
|
/**
|
|
4
6
|
* Encryption context for working with encrypted data
|
|
@@ -10,11 +12,13 @@ export interface EncryptionContext {
|
|
|
10
12
|
x25519Keypair: X25519Keypair;
|
|
11
13
|
}
|
|
12
14
|
/**
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
+
* Fetches the MXE public key from the on-chain program
|
|
16
|
+
*
|
|
17
|
+
* @param provider - Anchor provider
|
|
18
|
+
* @param programId - Program ID
|
|
15
19
|
* @returns The MXE's X25519 public key
|
|
16
20
|
*/
|
|
17
|
-
export declare function fetchMXEPublicKey(): Uint8Array
|
|
21
|
+
export declare function fetchMXEPublicKey(provider: AnchorProvider, programId: PublicKey): Promise<Uint8Array>;
|
|
18
22
|
/**
|
|
19
23
|
* Creates an encryption context for a user
|
|
20
24
|
*
|
|
@@ -22,10 +26,10 @@ export declare function fetchMXEPublicKey(): Uint8Array;
|
|
|
22
26
|
* for encryption/decryption operations.
|
|
23
27
|
*
|
|
24
28
|
* @param x25519Keypair - User's X25519 keypair
|
|
25
|
-
* @param mxePublicKey - MXE's public key (
|
|
29
|
+
* @param mxePublicKey - MXE's public key (fetch with fetchMXEPublicKey)
|
|
26
30
|
* @returns Encryption context with cipher
|
|
27
31
|
*/
|
|
28
|
-
export declare function createEncryptionContext(x25519Keypair: X25519Keypair, mxePublicKey
|
|
32
|
+
export declare function createEncryptionContext(x25519Keypair: X25519Keypair, mxePublicKey: Uint8Array): EncryptionContext;
|
|
29
33
|
/**
|
|
30
34
|
* Encrypts values for buying market shares
|
|
31
35
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"encryption.d.ts","sourceRoot":"","sources":["../../src/utils/encryption.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,YAAY,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"encryption.d.ts","sourceRoot":"","sources":["../../src/utils/encryption.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,YAAY,EAAmB,MAAM,mBAAmB,CAAC;AAC1E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,8CAA8C;IAC9C,MAAM,EAAE,YAAY,CAAC;IACrB,4BAA4B;IAC5B,aAAa,EAAE,aAAa,CAAC;CAC9B;AAED;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,cAAc,EACxB,SAAS,EAAE,SAAS,GACnB,OAAO,CAAC,UAAU,CAAC,CAMrB;AAED;;;;;;;;;GASG;AACH,wBAAgB,uBAAuB,CACrC,aAAa,EAAE,aAAa,EAC5B,YAAY,EAAE,UAAU,GACvB,iBAAiB,CAWnB;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,iBAAiB,EAC1B,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,MAAM,EACtB,KAAK,EAAE,UAAU,GAChB;IACD,gBAAgB,EAAE,UAAU,CAAC;IAC7B,wBAAwB,EAAE,UAAU,CAAC;CACtC,CAWA"}
|
package/dist/utils/encryption.js
CHANGED
|
@@ -1,12 +1,17 @@
|
|
|
1
|
-
import { x25519, RescueCipher } from "@arcium-hq/client";
|
|
2
|
-
import { MXE_X25519_PUBKEY } from "./arcium";
|
|
1
|
+
import { x25519, RescueCipher, getMXEPublicKey } from "@arcium-hq/client";
|
|
3
2
|
/**
|
|
4
|
-
*
|
|
5
|
-
*
|
|
3
|
+
* Fetches the MXE public key from the on-chain program
|
|
4
|
+
*
|
|
5
|
+
* @param provider - Anchor provider
|
|
6
|
+
* @param programId - Program ID
|
|
6
7
|
* @returns The MXE's X25519 public key
|
|
7
8
|
*/
|
|
8
|
-
export function fetchMXEPublicKey() {
|
|
9
|
-
|
|
9
|
+
export async function fetchMXEPublicKey(provider, programId) {
|
|
10
|
+
const key = await getMXEPublicKey(provider, programId);
|
|
11
|
+
if (!key) {
|
|
12
|
+
throw new Error("Failed to fetch MXE public key");
|
|
13
|
+
}
|
|
14
|
+
return key;
|
|
10
15
|
}
|
|
11
16
|
/**
|
|
12
17
|
* Creates an encryption context for a user
|
|
@@ -15,10 +20,10 @@ export function fetchMXEPublicKey() {
|
|
|
15
20
|
* for encryption/decryption operations.
|
|
16
21
|
*
|
|
17
22
|
* @param x25519Keypair - User's X25519 keypair
|
|
18
|
-
* @param mxePublicKey - MXE's public key (
|
|
23
|
+
* @param mxePublicKey - MXE's public key (fetch with fetchMXEPublicKey)
|
|
19
24
|
* @returns Encryption context with cipher
|
|
20
25
|
*/
|
|
21
|
-
export function createEncryptionContext(x25519Keypair, mxePublicKey
|
|
26
|
+
export function createEncryptionContext(x25519Keypair, mxePublicKey) {
|
|
22
27
|
const sharedSecret = x25519.getSharedSecret(x25519Keypair.secretKey, mxePublicKey);
|
|
23
28
|
const cipher = new RescueCipher(sharedSecret);
|
|
24
29
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"encryption.js","sourceRoot":"","sources":["../../src/utils/encryption.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"encryption.js","sourceRoot":"","sources":["../../src/utils/encryption.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAe1E;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,QAAwB,EACxB,SAAoB;IAEpB,MAAM,GAAG,GAAG,MAAM,eAAe,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IACvD,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;IACpD,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,uBAAuB,CACrC,aAA4B,EAC5B,YAAwB;IAExB,MAAM,YAAY,GAAG,MAAM,CAAC,eAAe,CACzC,aAAa,CAAC,SAAS,EACvB,YAAY,CACb,CAAC;IACF,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,YAAY,CAAC,CAAC;IAE9C,OAAO;QACL,MAAM;QACN,aAAa;KACd,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,qBAAqB,CACnC,OAA0B,EAC1B,MAAc,EACd,cAAsB,EACtB,KAAiB;IAKjB,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,cAAc,CAAC,EAAE,KAAK,CAAC,CAAC;IAE5E,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACvC,CAAC;IAED,OAAO;QACL,gBAAgB,EAAE,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QAChD,wBAAwB,EAAE,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;KACzD,CAAC;AACJ,CAAC"}
|