@intent-engine/core 0.1.42 → 0.1.44
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/generated/client/accounts/config.d.ts +4 -0
- package/dist/generated/client/accounts/config.js +5 -1
- package/dist/generated/client/accounts/config.js.map +1 -1
- package/dist/generated/client/accounts/intent.d.ts +6 -2
- package/dist/generated/client/accounts/intent.js +8 -4
- package/dist/generated/client/accounts/intent.js.map +1 -1
- package/dist/generated/client/accounts/mintCap.d.ts +6 -0
- package/dist/generated/client/accounts/mintCap.js +8 -2
- package/dist/generated/client/accounts/mintCap.js.map +1 -1
- package/dist/generated/client/accounts/profile.d.ts +2 -2
- package/dist/generated/client/accounts/profile.js +2 -2
- package/dist/generated/client/accounts/profile.js.map +1 -1
- package/dist/generated/client/accounts/standby.d.ts +2 -0
- package/dist/generated/client/accounts/standby.js +4 -2
- package/dist/generated/client/accounts/standby.js.map +1 -1
- package/dist/generated/client/errors/intentEngine.d.ts +25 -1
- package/dist/generated/client/errors/intentEngine.js +36 -0
- package/dist/generated/client/errors/intentEngine.js.map +1 -1
- package/dist/generated/client/events/accountMigrated.d.ts +38 -0
- package/dist/generated/client/events/accountMigrated.js +50 -0
- package/dist/generated/client/events/accountMigrated.js.map +1 -0
- package/dist/generated/client/events/committeeFloorSet.d.ts +26 -0
- package/dist/generated/client/events/committeeFloorSet.js +38 -0
- package/dist/generated/client/events/committeeFloorSet.js.map +1 -0
- package/dist/generated/client/events/index.d.ts +3 -0
- package/dist/generated/client/events/index.js +3 -0
- package/dist/generated/client/events/index.js.map +1 -1
- package/dist/generated/client/events/legacyClosed.d.ts +30 -0
- package/dist/generated/client/events/legacyClosed.js +42 -0
- package/dist/generated/client/events/legacyClosed.js.map +1 -0
- package/dist/generated/client/events/mintCapSet.d.ts +4 -0
- package/dist/generated/client/events/mintCapSet.js +4 -0
- package/dist/generated/client/events/mintCapSet.js.map +1 -1
- package/dist/generated/client/events/profileSet.d.ts +1 -0
- package/dist/generated/client/events/profileSet.js +2 -0
- package/dist/generated/client/events/profileSet.js.map +1 -1
- package/dist/generated/client/instructions/beginFill.d.ts +13 -9
- package/dist/generated/client/instructions/beginFill.js +15 -2
- package/dist/generated/client/instructions/beginFill.js.map +1 -1
- package/dist/generated/client/instructions/cancelIntent.d.ts +13 -9
- package/dist/generated/client/instructions/cancelIntent.js +15 -2
- package/dist/generated/client/instructions/cancelIntent.js.map +1 -1
- package/dist/generated/client/instructions/claimJob.d.ts +13 -9
- package/dist/generated/client/instructions/claimJob.js +15 -2
- package/dist/generated/client/instructions/claimJob.js.map +1 -1
- package/dist/generated/client/instructions/closeIntent.d.ts +13 -9
- package/dist/generated/client/instructions/closeIntent.js +21 -2
- package/dist/generated/client/instructions/closeIntent.js.map +1 -1
- package/dist/generated/client/instructions/closeLegacy.d.ts +61 -0
- package/dist/generated/client/instructions/closeLegacy.js +113 -0
- package/dist/generated/client/instructions/closeLegacy.js.map +1 -0
- package/dist/generated/client/instructions/createIntent.d.ts +14 -10
- package/dist/generated/client/instructions/createIntent.js +15 -2
- package/dist/generated/client/instructions/createIntent.js.map +1 -1
- package/dist/generated/client/instructions/createIntentSigned.d.ts +14 -10
- package/dist/generated/client/instructions/createIntentSigned.js +15 -2
- package/dist/generated/client/instructions/createIntentSigned.js.map +1 -1
- package/dist/generated/client/instructions/expireIntent.d.ts +13 -9
- package/dist/generated/client/instructions/expireIntent.js +21 -2
- package/dist/generated/client/instructions/expireIntent.js.map +1 -1
- package/dist/generated/client/instructions/fillAttested.d.ts +13 -9
- package/dist/generated/client/instructions/fillAttested.js +15 -2
- package/dist/generated/client/instructions/fillAttested.js.map +1 -1
- package/dist/generated/client/instructions/fillAttestedCommittee.d.ts +13 -9
- package/dist/generated/client/instructions/fillAttestedCommittee.js +15 -2
- package/dist/generated/client/instructions/fillAttestedCommittee.js.map +1 -1
- package/dist/generated/client/instructions/fillAttestedSplit.d.ts +13 -9
- package/dist/generated/client/instructions/fillAttestedSplit.js +15 -2
- package/dist/generated/client/instructions/fillAttestedSplit.js.map +1 -1
- package/dist/generated/client/instructions/fillAttestedSplitCommittee.d.ts +13 -9
- package/dist/generated/client/instructions/fillAttestedSplitCommittee.js +15 -2
- package/dist/generated/client/instructions/fillAttestedSplitCommittee.js.map +1 -1
- package/dist/generated/client/instructions/fillIntent.d.ts +13 -9
- package/dist/generated/client/instructions/fillIntent.js +15 -2
- package/dist/generated/client/instructions/fillIntent.js.map +1 -1
- package/dist/generated/client/instructions/index.d.ts +3 -0
- package/dist/generated/client/instructions/index.js +3 -0
- package/dist/generated/client/instructions/index.js.map +1 -1
- package/dist/generated/client/instructions/migrate.d.ts +52 -0
- package/dist/generated/client/instructions/migrate.js +109 -0
- package/dist/generated/client/instructions/migrate.js.map +1 -0
- package/dist/generated/client/instructions/setCommitteeFloor.d.ts +53 -0
- package/dist/generated/client/instructions/setCommitteeFloor.js +96 -0
- package/dist/generated/client/instructions/setCommitteeFloor.js.map +1 -0
- package/dist/generated/client/instructions/setMintCap.d.ts +4 -0
- package/dist/generated/client/instructions/setMintCap.js +2 -0
- package/dist/generated/client/instructions/setMintCap.js.map +1 -1
- package/dist/generated/client/instructions/standBy.d.ts +13 -9
- package/dist/generated/client/instructions/standBy.js +15 -2
- package/dist/generated/client/instructions/standBy.js.map +1 -1
- package/dist/generated/client/programs/intentEngine.d.ts +158 -137
- package/dist/generated/client/programs/intentEngine.js +194 -137
- package/dist/generated/client/programs/intentEngine.js.map +1 -1
- package/dist/generated/client/types/profileFields.d.ts +1 -0
- package/dist/generated/client/types/profileFields.js +2 -0
- package/dist/generated/client/types/profileFields.js.map +1 -1
- package/dist/src/claims.d.ts +2 -2
- package/dist/src/claims.js +1 -1
- package/dist/src/claims.js.map +1 -1
- package/dist/src/committee-floors.d.ts +21 -0
- package/dist/src/committee-floors.js +27 -0
- package/dist/src/committee-floors.js.map +1 -0
- package/dist/src/committee.d.ts +4 -4
- package/dist/src/committee.js +14 -17
- package/dist/src/committee.js.map +1 -1
- package/dist/src/encryption-key.d.ts +28 -0
- package/dist/src/encryption-key.js +94 -0
- package/dist/src/encryption-key.js.map +1 -0
- package/dist/src/events.d.ts +4 -1
- package/dist/src/events.js +5 -1
- package/dist/src/events.js.map +1 -1
- package/dist/src/fee.js +11 -4
- package/dist/src/fee.js.map +1 -1
- package/dist/src/fill-builders.d.ts +7 -5
- package/dist/src/fill-builders.js +4 -0
- package/dist/src/fill-builders.js.map +1 -1
- package/dist/src/index.d.ts +4 -0
- package/dist/src/index.js +4 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/intent-builders.d.ts +8 -6
- package/dist/src/intent-builders.js +6 -1
- package/dist/src/intent-builders.js.map +1 -1
- package/dist/src/memo.d.ts +7 -1
- package/dist/src/memo.js +18 -4
- package/dist/src/memo.js.map +1 -1
- package/dist/src/migrate.d.ts +25 -0
- package/dist/src/migrate.js +46 -0
- package/dist/src/migrate.js.map +1 -0
- package/dist/src/mint-caps.d.ts +5 -1
- package/dist/src/mint-caps.js +13 -2
- package/dist/src/mint-caps.js.map +1 -1
- package/dist/src/profile.d.ts +2 -0
- package/dist/src/profile.js +13 -4
- package/dist/src/profile.js.map +1 -1
- package/dist/src/sealed-delivery.d.ts +54 -10
- package/dist/src/sealed-delivery.js +183 -55
- package/dist/src/sealed-delivery.js.map +1 -1
- package/dist/src/sealed.d.ts +1 -0
- package/dist/src/sealed.js +2 -2
- package/dist/src/sealed.js.map +1 -1
- package/dist/src/sig.d.ts +17 -4
- package/dist/src/sig.js +80 -10
- package/dist/src/sig.js.map +1 -1
- package/dist/src/state.d.ts +3 -3
- package/dist/src/state.js +3 -3
- package/dist/src/versions.d.ts +56 -0
- package/dist/src/versions.js +126 -0
- package/dist/src/versions.js.map +1 -0
- package/generated/idl.json +567 -6
- package/package.json +2 -1
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { getBeginFillInstructionAsync, getEndFillInstruction, getFillAttestedCommitteeInstructionAsync, getFillAttestedInstructionAsync, getFillAttestedSplitCommitteeInstructionAsync, getFillAttestedSplitInstructionAsync, getFillIntentInstructionAsync, } from "../generated/client/index.js";
|
|
2
2
|
import { agentAccount, events, fillExt, INSTRUCTIONS_SYSVAR_ADDRESS, intentOf, mandateAccounts, partnerAccount, } from "./builder-accounts.js";
|
|
3
3
|
import { MAX_SPLIT_RECIPIENTS } from "./bounty.js";
|
|
4
|
+
import { capAccount } from "./mint-caps.js";
|
|
4
5
|
import { findAssociatedTokenAddress } from "./pdas.js";
|
|
5
6
|
export async function buildFillIntent(input) {
|
|
6
7
|
const feeTo = input.feeRecipient === undefined
|
|
@@ -24,6 +25,7 @@ export async function buildFillIntent(input) {
|
|
|
24
25
|
outputTokenProgram: input.outputTokenProgram,
|
|
25
26
|
...(await mandateAccounts(input)),
|
|
26
27
|
...(await agentAccount(input)),
|
|
28
|
+
...(await capAccount(input.inputMint, input.capped)),
|
|
27
29
|
amountIn: input.amountIn,
|
|
28
30
|
amountOut: input.amountOut,
|
|
29
31
|
maxFeeBps: input.maxFeeBps,
|
|
@@ -50,6 +52,7 @@ async function attestedAccounts(input) {
|
|
|
50
52
|
instructions: INSTRUCTIONS_SYSVAR_ADDRESS,
|
|
51
53
|
...(input.claims === undefined ? {} : { claims: input.claims }),
|
|
52
54
|
...(input.stakeTo === undefined ? {} : { stakeTo: input.stakeTo }),
|
|
55
|
+
...(await capAccount(input.inputMint, input.capped)),
|
|
53
56
|
amountIn: input.amountIn,
|
|
54
57
|
result: input.result,
|
|
55
58
|
maxFeeBps: input.maxFeeBps,
|
|
@@ -129,6 +132,7 @@ export async function buildFlashFill(input) {
|
|
|
129
132
|
instructions: INSTRUCTIONS_SYSVAR_ADDRESS,
|
|
130
133
|
...(await mandateAccounts(input)),
|
|
131
134
|
...(await agentAccount(input)),
|
|
135
|
+
...(await capAccount(input.inputMint, input.capped)),
|
|
132
136
|
amountIn: input.amountIn,
|
|
133
137
|
endIndex,
|
|
134
138
|
maxFeeBps: input.maxFeeBps,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fill-builders.js","sourceRoot":"","sources":["../../src/fill-builders.ts"],"names":[],"mappings":"AACA,OAAO,EACL,4BAA4B,EAC5B,qBAAqB,EACrB,wCAAwC,EACxC,+BAA+B,EAC/B,6CAA6C,EAC7C,oCAAoC,EACpC,6BAA6B,GAC9B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,YAAY,EACZ,MAAM,EACN,OAAO,EACP,2BAA2B,EAC3B,QAAQ,EACR,eAAe,EACf,cAAc,GACf,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,0BAA0B,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"fill-builders.js","sourceRoot":"","sources":["../../src/fill-builders.ts"],"names":[],"mappings":"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"}
|
package/dist/src/index.d.ts
CHANGED
|
@@ -16,11 +16,15 @@ export * from "./manifest.js";
|
|
|
16
16
|
export * from "./math.js";
|
|
17
17
|
export * from "./memo.js";
|
|
18
18
|
export * from "./mint-caps.js";
|
|
19
|
+
export * from "./committee-floors.js";
|
|
20
|
+
export * from "./migrate.js";
|
|
19
21
|
export * from "./mints.js";
|
|
20
22
|
export * from "./pdas.js";
|
|
21
23
|
export * from "./profile.js";
|
|
22
24
|
export * from "./sealed.js";
|
|
23
25
|
export * from "./sealed-delivery.js";
|
|
26
|
+
export * from "./encryption-key.js";
|
|
24
27
|
export * from "./sig.js";
|
|
25
28
|
export * from "./state.js";
|
|
26
29
|
export * from "./validate.js";
|
|
30
|
+
export * from "./versions.js";
|
package/dist/src/index.js
CHANGED
|
@@ -16,12 +16,16 @@ export * from "./manifest.js";
|
|
|
16
16
|
export * from "./math.js";
|
|
17
17
|
export * from "./memo.js";
|
|
18
18
|
export * from "./mint-caps.js";
|
|
19
|
+
export * from "./committee-floors.js";
|
|
20
|
+
export * from "./migrate.js";
|
|
19
21
|
export * from "./mints.js";
|
|
20
22
|
export * from "./pdas.js";
|
|
21
23
|
export * from "./profile.js";
|
|
22
24
|
export * from "./sealed.js";
|
|
23
25
|
export * from "./sealed-delivery.js";
|
|
26
|
+
export * from "./encryption-key.js";
|
|
24
27
|
export * from "./sig.js";
|
|
25
28
|
export * from "./state.js";
|
|
26
29
|
export * from "./validate.js";
|
|
30
|
+
export * from "./versions.js";
|
|
27
31
|
//# sourceMappingURL=index.js.map
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0BAA0B,CAAC;AACzC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0BAA0B,CAAC;AACzC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC"}
|
|
@@ -20,13 +20,15 @@ export type CreateIntentSpec = {
|
|
|
20
20
|
receiver?: Address;
|
|
21
21
|
receiverAuthority?: Address;
|
|
22
22
|
mintCap?: Address;
|
|
23
|
+
committee?: Address;
|
|
23
24
|
};
|
|
24
|
-
export declare function buildCreateIntent(input: CreateIntentSpec): Promise<import("../generated/client/index.js").CreateIntentInstruction<Address<"GHFB9q4fhhqRyCoycoivdxMhFkp1aLHJk5VvroUsgrJU">, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, "GHFB9q4fhhqRyCoycoivdxMhFkp1aLHJk5VvroUsgrJU", []>>;
|
|
25
|
+
export declare function buildCreateIntent(input: CreateIntentSpec): Promise<import("../generated/client/index.js").CreateIntentInstruction<Address<"GHFB9q4fhhqRyCoycoivdxMhFkp1aLHJk5VvroUsgrJU">, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, "GHFB9q4fhhqRyCoycoivdxMhFkp1aLHJk5VvroUsgrJU", []>>;
|
|
25
26
|
type IntentRef = {
|
|
26
27
|
owner: Address;
|
|
27
28
|
nonce: bigint;
|
|
28
29
|
inputMint: Address;
|
|
29
30
|
tokenProgram: Address;
|
|
31
|
+
capped?: bigint;
|
|
30
32
|
};
|
|
31
33
|
export declare function buildCancelIntent(input: Omit<IntentRef, "owner"> & {
|
|
32
34
|
owner: TransactionSigner;
|
|
@@ -36,12 +38,12 @@ export declare function buildCancelIntent(input: Omit<IntentRef, "owner"> & {
|
|
|
36
38
|
board: Address;
|
|
37
39
|
stakeTo: Address | null;
|
|
38
40
|
};
|
|
39
|
-
}): Promise<import("../generated/client/index.js").CancelIntentInstruction<Address<"GHFB9q4fhhqRyCoycoivdxMhFkp1aLHJk5VvroUsgrJU">, string, string, string, string, string, string, string, string, string, "GHFB9q4fhhqRyCoycoivdxMhFkp1aLHJk5VvroUsgrJU", []>>;
|
|
41
|
+
}): Promise<import("../generated/client/index.js").CancelIntentInstruction<Address<"GHFB9q4fhhqRyCoycoivdxMhFkp1aLHJk5VvroUsgrJU">, string, string, string, string, string, string, string, string, string, string, "GHFB9q4fhhqRyCoycoivdxMhFkp1aLHJk5VvroUsgrJU", []>>;
|
|
40
42
|
export declare function buildExpireIntent(input: IntentRef & {
|
|
41
43
|
cranker: TransactionSigner;
|
|
42
44
|
refundTo?: Address;
|
|
43
45
|
ext?: Uint8Array;
|
|
44
|
-
}): Promise<import("../generated/client/index.js").ExpireIntentInstruction<Address<"GHFB9q4fhhqRyCoycoivdxMhFkp1aLHJk5VvroUsgrJU">, string, string, string, string, string, string, string, string, "GHFB9q4fhhqRyCoycoivdxMhFkp1aLHJk5VvroUsgrJU", []>>;
|
|
46
|
+
}): Promise<import("../generated/client/index.js").ExpireIntentInstruction<Address<"GHFB9q4fhhqRyCoycoivdxMhFkp1aLHJk5VvroUsgrJU">, string, string, string, string, string, string, string, string, string, "GHFB9q4fhhqRyCoycoivdxMhFkp1aLHJk5VvroUsgrJU", []>>;
|
|
45
47
|
export declare function buildCloseIntent(input: IntentRef & {
|
|
46
48
|
cranker: TransactionSigner;
|
|
47
49
|
rentPayer?: Address;
|
|
@@ -50,7 +52,7 @@ export declare function buildCloseIntent(input: IntentRef & {
|
|
|
50
52
|
};
|
|
51
53
|
refundTo?: Address;
|
|
52
54
|
ext?: Uint8Array;
|
|
53
|
-
}): Promise<import("../generated/client/index.js").CloseIntentInstruction<Address<"GHFB9q4fhhqRyCoycoivdxMhFkp1aLHJk5VvroUsgrJU">, string, string, string, string, string, string, string, string, string, string, "GHFB9q4fhhqRyCoycoivdxMhFkp1aLHJk5VvroUsgrJU", []>>;
|
|
55
|
+
}): Promise<import("../generated/client/index.js").CloseIntentInstruction<Address<"GHFB9q4fhhqRyCoycoivdxMhFkp1aLHJk5VvroUsgrJU">, string, string, string, string, string, string, string, string, string, string, string, "GHFB9q4fhhqRyCoycoivdxMhFkp1aLHJk5VvroUsgrJU", []>>;
|
|
54
56
|
export type CreateIntentSignedSpec = Omit<CreateIntentSpec, "owner"> & {
|
|
55
57
|
payer: TransactionSigner;
|
|
56
58
|
owner: Address;
|
|
@@ -58,8 +60,8 @@ export type CreateIntentSignedSpec = Omit<CreateIntentSpec, "owner"> & {
|
|
|
58
60
|
relayerFee?: bigint;
|
|
59
61
|
relayerFeeAccount?: Address;
|
|
60
62
|
};
|
|
61
|
-
export declare function buildCreateIntentSigned(input: CreateIntentSignedSpec): Promise<import("../generated/client/index.js").CreateIntentSignedInstruction<Address<"GHFB9q4fhhqRyCoycoivdxMhFkp1aLHJk5VvroUsgrJU">, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, "Sysvar1nstructions1111111111111111111111111", string, string, "GHFB9q4fhhqRyCoycoivdxMhFkp1aLHJk5VvroUsgrJU", []>>;
|
|
62
|
-
export type CreateIntentByAgentSpec = Omit<CreateIntentSpec, "owner" | "treasury" | "receiverAuthority"> & {
|
|
63
|
+
export declare function buildCreateIntentSigned(input: CreateIntentSignedSpec): Promise<import("../generated/client/index.js").CreateIntentSignedInstruction<Address<"GHFB9q4fhhqRyCoycoivdxMhFkp1aLHJk5VvroUsgrJU">, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, "Sysvar1nstructions1111111111111111111111111", string, string, string, "GHFB9q4fhhqRyCoycoivdxMhFkp1aLHJk5VvroUsgrJU", []>>;
|
|
64
|
+
export type CreateIntentByAgentSpec = Omit<CreateIntentSpec, "owner" | "treasury" | "receiverAuthority" | "committee"> & {
|
|
63
65
|
agent: TransactionSigner;
|
|
64
66
|
owner: Address;
|
|
65
67
|
mandateId: bigint;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { findDelegatePda, getCancelIntentInstructionAsync, getCloseIntentInstructionAsync, getCreateIntentInstructionAsync, getCreateIntentByAgentInstructionAsync, getCreateIntentSignedInstructionAsync, getExpireIntentInstructionAsync, } from "../generated/client/index.js";
|
|
2
2
|
import { createArgs, events, INSTRUCTIONS_SYSVAR_ADDRESS, intentOf, settleExt } from "./builder-accounts.js";
|
|
3
|
-
import { mintCapSlot, withMintCap } from "./mint-caps.js";
|
|
3
|
+
import { capAccount, mintCapSlot, withMintCap } from "./mint-caps.js";
|
|
4
4
|
import { findAssociatedTokenAddress, findMandatePda } from "./pdas.js";
|
|
5
5
|
export async function buildCreateIntent(input) {
|
|
6
6
|
const owner = input.owner.address;
|
|
@@ -29,6 +29,7 @@ export async function buildCreateIntent(input) {
|
|
|
29
29
|
inputTokenProgram: input.inputTokenProgram,
|
|
30
30
|
outputTokenProgram: input.outputTokenProgram,
|
|
31
31
|
args,
|
|
32
|
+
...(input.committee === undefined ? {} : { committee: input.committee }),
|
|
32
33
|
mintCap: mintCapSlot(input.mintCap),
|
|
33
34
|
...(await events()),
|
|
34
35
|
});
|
|
@@ -51,6 +52,7 @@ export async function buildCancelIntent(input) {
|
|
|
51
52
|
refundTo: input.refundTo ?? (await canonicalRefund(ref)),
|
|
52
53
|
tokenProgram: input.tokenProgram,
|
|
53
54
|
...(input.claims === undefined ? {} : { claims: input.claims.board, ...(input.claims.stakeTo === null ? {} : { stakeTo: input.claims.stakeTo }) }),
|
|
55
|
+
...(await capAccount(input.inputMint, input.capped)),
|
|
54
56
|
ext,
|
|
55
57
|
...(await events()),
|
|
56
58
|
});
|
|
@@ -64,6 +66,7 @@ export async function buildExpireIntent(input) {
|
|
|
64
66
|
refundTo: input.refundTo ?? (await canonicalRefund(input)),
|
|
65
67
|
canonicalRefund: await canonicalRefund(input),
|
|
66
68
|
tokenProgram: input.tokenProgram,
|
|
69
|
+
...(await capAccount(input.inputMint, input.capped)),
|
|
67
70
|
ext,
|
|
68
71
|
...(await events()),
|
|
69
72
|
});
|
|
@@ -79,6 +82,7 @@ export async function buildCloseIntent(input) {
|
|
|
79
82
|
owner: input.owner,
|
|
80
83
|
rentPayer: input.rentPayer ?? input.intent?.rentPayer ?? input.owner,
|
|
81
84
|
tokenProgram: input.tokenProgram,
|
|
85
|
+
...(await capAccount(input.inputMint, input.capped)),
|
|
82
86
|
ext,
|
|
83
87
|
...(await events()),
|
|
84
88
|
});
|
|
@@ -124,6 +128,7 @@ export async function buildCreateIntentSigned(input) {
|
|
|
124
128
|
args,
|
|
125
129
|
submitBy: input.submitBy,
|
|
126
130
|
relayerFee,
|
|
131
|
+
...(input.committee === undefined ? {} : { committee: input.committee }),
|
|
127
132
|
mintCap: mintCapSlot(input.mintCap),
|
|
128
133
|
...(await events()),
|
|
129
134
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"intent-builders.js","sourceRoot":"","sources":["../../src/intent-builders.ts"],"names":[],"mappings":"AACA,OAAO,EACL,eAAe,EACf,+BAA+B,EAC/B,8BAA8B,EAC9B,+BAA+B,EAC/B,sCAAsC,EACtC,qCAAqC,EACrC,+BAA+B,GAChC,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,2BAA2B,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAG7G,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"intent-builders.js","sourceRoot":"","sources":["../../src/intent-builders.ts"],"names":[],"mappings":"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"}
|
package/dist/src/memo.d.ts
CHANGED
|
@@ -4,9 +4,14 @@ export declare const RELEASE_MEMO_PREFIX = "delivery sha256:";
|
|
|
4
4
|
export declare const FEEDBACK_MEMO_PREFIX = "solive-feedback:";
|
|
5
5
|
export declare const MAX_FEEDBACK_SCORE = 100;
|
|
6
6
|
export declare const MAX_MEMO_URL = 200;
|
|
7
|
+
export declare const RELEASE_SALT_MARK = " salt:";
|
|
7
8
|
export type SpecMemo = {
|
|
8
9
|
url: string;
|
|
9
10
|
};
|
|
11
|
+
export type ReleaseRecord = {
|
|
12
|
+
sha256: string;
|
|
13
|
+
salt?: string;
|
|
14
|
+
};
|
|
10
15
|
export type FeedbackMemo = {
|
|
11
16
|
intent: Address;
|
|
12
17
|
score: number;
|
|
@@ -18,7 +23,8 @@ export declare function isLegacyMemoUrl(url: string): boolean;
|
|
|
18
23
|
export declare function isSha256Hex(text: string): boolean;
|
|
19
24
|
export declare function specMemo(url: string): string;
|
|
20
25
|
export declare function parseSpecMemo(text: string): SpecMemo | null;
|
|
21
|
-
export declare function releaseMemo(sha256: string): string;
|
|
26
|
+
export declare function releaseMemo(sha256: string, salt?: string): string;
|
|
27
|
+
export declare function parseRelease(text: string): ReleaseRecord | null;
|
|
22
28
|
export declare function parseReleaseMemo(text: string): string | null;
|
|
23
29
|
export declare function feedbackMemo({ intent, score, note }: FeedbackMemo): string;
|
|
24
30
|
export declare function parseFeedbackMemo(text: string): FeedbackMemo | null;
|
package/dist/src/memo.js
CHANGED
|
@@ -5,6 +5,8 @@ export const RELEASE_MEMO_PREFIX = "delivery sha256:";
|
|
|
5
5
|
export const FEEDBACK_MEMO_PREFIX = `${PRODUCT_SLUG}-feedback:`;
|
|
6
6
|
export const MAX_FEEDBACK_SCORE = 100;
|
|
7
7
|
export const MAX_MEMO_URL = 200;
|
|
8
|
+
export const RELEASE_SALT_MARK = " salt:";
|
|
9
|
+
const RELEASE_SALT = /^[0-9a-f]{32}$/;
|
|
8
10
|
export const MEMO_URL_RULE = `an https url of at most ${MAX_MEMO_URL} printable characters without spaces or backslashes, or http on localhost, 127.0.0.1 or [::1], in canonical form: lowercase scheme and host, no default port, no . or .. path segments, a / path before any ? or #, and characters percent-encoded as new URL() would`;
|
|
9
11
|
const PRINTABLE = /^[!-~]+$/;
|
|
10
12
|
const SHA256 = /^[0-9a-f]{64}$/;
|
|
@@ -52,15 +54,27 @@ export function parseSpecMemo(text) {
|
|
|
52
54
|
const url = text.slice(SPEC_MEMO_PREFIX.length);
|
|
53
55
|
return isLegacyMemoUrl(url) ? { url } : null;
|
|
54
56
|
}
|
|
55
|
-
export function releaseMemo(sha256) {
|
|
57
|
+
export function releaseMemo(sha256, salt) {
|
|
56
58
|
if (!isSha256Hex(sha256)) {
|
|
57
59
|
throw new RangeError("a release records a sha256 of 64 lowercase hex digits");
|
|
58
60
|
}
|
|
59
|
-
|
|
61
|
+
if (salt !== undefined && !RELEASE_SALT.test(salt)) {
|
|
62
|
+
throw new RangeError("a release records its payee's salt as 32 lowercase hex digits");
|
|
63
|
+
}
|
|
64
|
+
return `${RELEASE_MEMO_PREFIX}${sha256}${salt === undefined ? "" : `${RELEASE_SALT_MARK}${salt}`}`;
|
|
65
|
+
}
|
|
66
|
+
export function parseRelease(text) {
|
|
67
|
+
if (!text.startsWith(RELEASE_MEMO_PREFIX)) {
|
|
68
|
+
return null;
|
|
69
|
+
}
|
|
70
|
+
const [sha256 = "", salt, ...rest] = text.slice(RELEASE_MEMO_PREFIX.length).split(RELEASE_SALT_MARK);
|
|
71
|
+
if (rest.length > 0 || !isSha256Hex(sha256) || (salt !== undefined && !RELEASE_SALT.test(salt))) {
|
|
72
|
+
return null;
|
|
73
|
+
}
|
|
74
|
+
return salt === undefined ? { sha256 } : { sha256, salt };
|
|
60
75
|
}
|
|
61
76
|
export function parseReleaseMemo(text) {
|
|
62
|
-
|
|
63
|
-
return text.startsWith(RELEASE_MEMO_PREFIX) && isSha256Hex(sha256) ? sha256 : null;
|
|
77
|
+
return parseRelease(text)?.sha256 ?? null;
|
|
64
78
|
}
|
|
65
79
|
const SCORE = /^(0|[1-9][0-9]{0,2})$/;
|
|
66
80
|
export function feedbackMemo({ intent, score, note }) {
|
package/dist/src/memo.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memo.js","sourceRoot":"","sources":["../../src/memo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,SAAS,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAExD,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,YAAY,QAAQ,CAAC;AACxD,MAAM,CAAC,MAAM,mBAAmB,GAAG,kBAAkB,CAAC;AACtD,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,YAAY,YAAY,CAAC;AAChE,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,CAAC;AACtC,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"memo.js","sourceRoot":"","sources":["../../src/memo.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { Address, ReadonlyUint8Array, TransactionSigner } from "@solana/kit";
|
|
2
|
+
import { type AccountLayout } from "./versions.js";
|
|
3
|
+
export declare const LEGACY_CONFIG_SPACE = 216;
|
|
4
|
+
export declare const LEGACY_BOARD_SPACE = 168;
|
|
5
|
+
export declare const FIRST_VERSION = 1;
|
|
6
|
+
export declare const UNVERSIONED = 0;
|
|
7
|
+
export type OutdatedLayout = {
|
|
8
|
+
discriminator: ReadonlyUint8Array;
|
|
9
|
+
space: number;
|
|
10
|
+
version: number;
|
|
11
|
+
};
|
|
12
|
+
export declare const OUTDATED_LAYOUTS: readonly OutdatedLayout[];
|
|
13
|
+
export type Migration = {
|
|
14
|
+
layout: AccountLayout;
|
|
15
|
+
from: OutdatedLayout;
|
|
16
|
+
};
|
|
17
|
+
export declare function migrationOf(data: ReadonlyUint8Array): Migration | null;
|
|
18
|
+
export declare function isConfigAccount(data: ReadonlyUint8Array): boolean;
|
|
19
|
+
type MigrateInput = {
|
|
20
|
+
payer: TransactionSigner;
|
|
21
|
+
account: Address;
|
|
22
|
+
config?: Address;
|
|
23
|
+
};
|
|
24
|
+
export declare function buildMigrate(input: MigrateInput): Promise<import("../generated/client/index.js").MigrateInstruction<Address<"GHFB9q4fhhqRyCoycoivdxMhFkp1aLHJk5VvroUsgrJU">, string, string, string, string, string, "GHFB9q4fhhqRyCoycoivdxMhFkp1aLHJk5VvroUsgrJU", []>>;
|
|
25
|
+
export {};
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { CLAIM_BOARD_DISCRIMINATOR, COMMITTEE_DISCRIMINATOR, CONFIG_DISCRIMINATOR, getClaimBoardSize, getCommitteeSize, getConfigSize, getIntentSize, getMandateSize, getMigrateInstruction, getMintCapSize, getProfileSize, getStandbySize, getUserStateSize, INTENT_DISCRIMINATOR, MANDATE_DISCRIMINATOR, MINT_CAP_DISCRIMINATOR, PROFILE_DISCRIMINATOR, STANDBY_DISCRIMINATOR, USER_STATE_DISCRIMINATOR, } from "../generated/client/index.js";
|
|
2
|
+
import { events } from "./builder-accounts.js";
|
|
3
|
+
import { storedVersion } from "./versions.js";
|
|
4
|
+
export const LEGACY_CONFIG_SPACE = 216;
|
|
5
|
+
export const LEGACY_BOARD_SPACE = 168;
|
|
6
|
+
export const FIRST_VERSION = 1;
|
|
7
|
+
export const UNVERSIONED = 0;
|
|
8
|
+
const outdated = (discriminator, space, version = FIRST_VERSION) => ({
|
|
9
|
+
discriminator,
|
|
10
|
+
space,
|
|
11
|
+
version,
|
|
12
|
+
});
|
|
13
|
+
export const OUTDATED_LAYOUTS = [
|
|
14
|
+
outdated(CONFIG_DISCRIMINATOR, LEGACY_CONFIG_SPACE),
|
|
15
|
+
outdated(CONFIG_DISCRIMINATOR, getConfigSize()),
|
|
16
|
+
outdated(USER_STATE_DISCRIMINATOR, getUserStateSize()),
|
|
17
|
+
outdated(INTENT_DISCRIMINATOR, getIntentSize()),
|
|
18
|
+
outdated(MANDATE_DISCRIMINATOR, getMandateSize()),
|
|
19
|
+
outdated(MINT_CAP_DISCRIMINATOR, getMintCapSize()),
|
|
20
|
+
outdated(COMMITTEE_DISCRIMINATOR, getCommitteeSize()),
|
|
21
|
+
outdated(CLAIM_BOARD_DISCRIMINATOR, LEGACY_BOARD_SPACE),
|
|
22
|
+
outdated(CLAIM_BOARD_DISCRIMINATOR, getClaimBoardSize()),
|
|
23
|
+
outdated(STANDBY_DISCRIMINATOR, getStandbySize(), UNVERSIONED),
|
|
24
|
+
outdated(PROFILE_DISCRIMINATOR, getProfileSize()),
|
|
25
|
+
];
|
|
26
|
+
const sameBytes = (a, b) => a.length === b.length && a.every((byte, i) => byte === b[i]);
|
|
27
|
+
export function migrationOf(data) {
|
|
28
|
+
const stored = storedVersion(data);
|
|
29
|
+
if (stored === null) {
|
|
30
|
+
return null;
|
|
31
|
+
}
|
|
32
|
+
const from = OUTDATED_LAYOUTS.find((o) => sameBytes(o.discriminator, stored.layout.discriminator) && o.space === data.length && o.version === stored.version);
|
|
33
|
+
return from === undefined ? null : { layout: stored.layout, from };
|
|
34
|
+
}
|
|
35
|
+
export function isConfigAccount(data) {
|
|
36
|
+
return CONFIG_DISCRIMINATOR.every((b, i) => data[i] === b);
|
|
37
|
+
}
|
|
38
|
+
export async function buildMigrate(input) {
|
|
39
|
+
return getMigrateInstruction({
|
|
40
|
+
payer: input.payer,
|
|
41
|
+
account: input.account,
|
|
42
|
+
...(input.config === undefined ? {} : { config: input.config }),
|
|
43
|
+
...(await events()),
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=migrate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrate.js","sourceRoot":"","sources":["../../src/migrate.ts"],"names":[],"mappings":"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"}
|
package/dist/src/mint-caps.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { type Address, type Instruction, type TransactionSigner } from "@solana/kit";
|
|
2
2
|
import { type MintCap } from "../generated/client/index.js";
|
|
3
|
-
export declare const MINT_CAP_VERSION = 1;
|
|
4
3
|
export declare const MIN_CAP_WINDOW_SECS = 60;
|
|
5
4
|
export declare function isMintCapData(data: Uint8Array): boolean;
|
|
6
5
|
export declare function decodeMintCapData(data: Uint8Array): MintCap;
|
|
@@ -15,10 +14,12 @@ export type MintCapLimits = {
|
|
|
15
14
|
maxPerOrder: bigint;
|
|
16
15
|
windowCap: bigint;
|
|
17
16
|
windowSecs: number;
|
|
17
|
+
totalLimit?: bigint;
|
|
18
18
|
};
|
|
19
19
|
export declare function checkMintCapLimits(limits: MintCapLimits): MintCapLimits;
|
|
20
20
|
export declare function findMintCapAddress(mint: Address): Promise<Address>;
|
|
21
21
|
export declare function buildSetMintCap(input: MintCapLimits & {
|
|
22
|
+
totalLimit: bigint;
|
|
22
23
|
admin: TransactionSigner;
|
|
23
24
|
payer?: TransactionSigner;
|
|
24
25
|
mint: Address;
|
|
@@ -27,5 +28,8 @@ export declare function buildSetCapsRequired(input: {
|
|
|
27
28
|
admin: TransactionSigner;
|
|
28
29
|
required: boolean;
|
|
29
30
|
}): Promise<import("../generated/client/index.js").SetCapsRequiredInstruction<Address<"GHFB9q4fhhqRyCoycoivdxMhFkp1aLHJk5VvroUsgrJU">, string, string, string, "GHFB9q4fhhqRyCoycoivdxMhFkp1aLHJk5VvroUsgrJU", []>>;
|
|
31
|
+
export declare function capAccount(inputMint: Address, capped: bigint | undefined): Promise<{
|
|
32
|
+
mintCap?: Address;
|
|
33
|
+
}>;
|
|
30
34
|
export declare function mintCapSlot(mintCap: Address | undefined): Address;
|
|
31
35
|
export declare function withMintCap<T extends Instruction>(ix: T, mintCap: Address | undefined): T;
|
package/dist/src/mint-caps.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { AccountRole, getAddressEncoder, getProgramDerivedAddress, } from "@solana/kit";
|
|
2
2
|
import { getMintCapDecoder, getMintCapSize, getSetCapsRequiredInstruction, getSetMintCapInstructionAsync, INTENT_ENGINE_PROGRAM_ADDRESS, MINT_CAP_DISCRIMINATOR, } from "../generated/client/index.js";
|
|
3
3
|
import { events } from "./builder-accounts.js";
|
|
4
|
-
|
|
4
|
+
import { U64_MAX } from "./math.js";
|
|
5
|
+
import { checkAccountVersion } from "./versions.js";
|
|
5
6
|
export const MIN_CAP_WINDOW_SECS = 60;
|
|
6
7
|
export function isMintCapData(data) {
|
|
7
8
|
return data.length >= getMintCapSize() && MINT_CAP_DISCRIMINATOR.every((b, i) => data[i] === b);
|
|
@@ -10,7 +11,7 @@ export function decodeMintCapData(data) {
|
|
|
10
11
|
if (!isMintCapData(data)) {
|
|
11
12
|
throw new RangeError("not a mint cap account");
|
|
12
13
|
}
|
|
13
|
-
return getMintCapDecoder().decode(data);
|
|
14
|
+
return getMintCapDecoder().decode(checkAccountVersion(data));
|
|
14
15
|
}
|
|
15
16
|
export function capWindow(cap, now) {
|
|
16
17
|
const ends = cap.windowStart + BigInt(cap.windowSecs);
|
|
@@ -33,6 +34,9 @@ export function checkMintCapLimits(limits) {
|
|
|
33
34
|
if (!Number.isInteger(limits.windowSecs) || limits.windowSecs < MIN_CAP_WINDOW_SECS || limits.windowSecs > 0xffff_ffff) {
|
|
34
35
|
throw new RangeError(`the window must last ${MIN_CAP_WINDOW_SECS} to 4294967295 seconds`);
|
|
35
36
|
}
|
|
37
|
+
if (limits.totalLimit !== undefined && (limits.totalLimit < 0n || limits.totalLimit > U64_MAX)) {
|
|
38
|
+
throw new RangeError("the total limit must be zero, meaning none, or a raw amount");
|
|
39
|
+
}
|
|
36
40
|
return limits;
|
|
37
41
|
}
|
|
38
42
|
export async function findMintCapAddress(mint) {
|
|
@@ -43,6 +47,9 @@ export async function findMintCapAddress(mint) {
|
|
|
43
47
|
return address;
|
|
44
48
|
}
|
|
45
49
|
export async function buildSetMintCap(input) {
|
|
50
|
+
if (typeof input.totalLimit !== "bigint") {
|
|
51
|
+
throw new RangeError("name the total limit: zero for none, or the current one to keep it");
|
|
52
|
+
}
|
|
46
53
|
const limits = checkMintCapLimits(input);
|
|
47
54
|
return getSetMintCapInstructionAsync({
|
|
48
55
|
admin: input.admin,
|
|
@@ -51,12 +58,16 @@ export async function buildSetMintCap(input) {
|
|
|
51
58
|
maxPerOrder: limits.maxPerOrder,
|
|
52
59
|
windowCap: limits.windowCap,
|
|
53
60
|
windowSecs: limits.windowSecs,
|
|
61
|
+
totalLimit: input.totalLimit,
|
|
54
62
|
...(await events()),
|
|
55
63
|
});
|
|
56
64
|
}
|
|
57
65
|
export async function buildSetCapsRequired(input) {
|
|
58
66
|
return getSetCapsRequiredInstruction({ admin: input.admin, required: input.required, ...(await events()) });
|
|
59
67
|
}
|
|
68
|
+
export async function capAccount(inputMint, capped) {
|
|
69
|
+
return capped === undefined || capped === 0n ? {} : { mintCap: await findMintCapAddress(inputMint) };
|
|
70
|
+
}
|
|
60
71
|
const MINT_CAP_FROM_END = 3;
|
|
61
72
|
export function mintCapSlot(mintCap) {
|
|
62
73
|
return mintCap ?? INTENT_ENGINE_PROGRAM_ADDRESS;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mint-caps.js","sourceRoot":"","sources":["../../src/mint-caps.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,WAAW,EACX,iBAAiB,EACjB,wBAAwB,GAGzB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,6BAA6B,EAC7B,6BAA6B,EAC7B,6BAA6B,EAC7B,sBAAsB,GAEvB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"mint-caps.js","sourceRoot":"","sources":["../../src/mint-caps.ts"],"names":[],"mappings":"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"}
|
package/dist/src/profile.d.ts
CHANGED
|
@@ -7,6 +7,7 @@ export type ProfileInput = {
|
|
|
7
7
|
endpoint: string;
|
|
8
8
|
docUrl?: string;
|
|
9
9
|
docSha256?: string;
|
|
10
|
+
encryptionKey?: string;
|
|
10
11
|
};
|
|
11
12
|
export type ProfileView = {
|
|
12
13
|
wallet: Address;
|
|
@@ -14,6 +15,7 @@ export type ProfileView = {
|
|
|
14
15
|
endpoint: string;
|
|
15
16
|
docUrl: string | null;
|
|
16
17
|
docSha256: string | null;
|
|
18
|
+
encryptionKey: string | null;
|
|
17
19
|
updatedAt: bigint;
|
|
18
20
|
};
|
|
19
21
|
export declare function checkProfile(input: ProfileInput): ProfileInput;
|
package/dist/src/profile.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { getBase16Decoder, getBase16Encoder } from "@solana/kit";
|
|
2
2
|
import { findProfilePda, getCloseProfileInstructionAsync, getCreateProfileInstructionAsync, getProfileDecoder, getProfileSize, getUpdateProfileInstructionAsync, PROFILE_DISCRIMINATOR, } from "../generated/client/index.js";
|
|
3
3
|
import { events } from "./builder-accounts.js";
|
|
4
|
+
import { ENCRYPTION_KEY_BYTES, encryptionKeyText, isEncryptionKeyText, parseEncryptionKey } from "./encryption-key.js";
|
|
4
5
|
import { IntentCoreError } from "./errors.js";
|
|
6
|
+
import { checkAccountVersion } from "./versions.js";
|
|
5
7
|
export const PROFILE_MAX_SKILLS = 8;
|
|
6
8
|
export const PROFILE_SKILL_LEN = 16;
|
|
7
9
|
export const PROFILE_MAX_URL_LEN = 128;
|
|
@@ -11,7 +13,7 @@ const SHA256 = /^[0-9a-f]{64}$/;
|
|
|
11
13
|
const ZERO_HASH = "0".repeat(64);
|
|
12
14
|
const validUrl = (text) => text.length <= PROFILE_MAX_URL_LEN && URL_BODY.test(text);
|
|
13
15
|
export function checkProfile(input) {
|
|
14
|
-
const { skills, endpoint, docUrl, docSha256 } = input;
|
|
16
|
+
const { skills, endpoint, docUrl, docSha256, encryptionKey } = input;
|
|
15
17
|
const hash = docSha256?.toLowerCase();
|
|
16
18
|
const skillsValid = skills.length >= 1 &&
|
|
17
19
|
skills.length <= PROFILE_MAX_SKILLS &&
|
|
@@ -20,10 +22,15 @@ export function checkProfile(input) {
|
|
|
20
22
|
const docValid = (docUrl === undefined) === (hash === undefined) &&
|
|
21
23
|
(docUrl === undefined || validUrl(docUrl)) &&
|
|
22
24
|
(hash === undefined || (SHA256.test(hash) && hash !== ZERO_HASH));
|
|
23
|
-
if (!skillsValid || !validUrl(endpoint) || !docValid) {
|
|
25
|
+
if (!skillsValid || !validUrl(endpoint) || !docValid || (encryptionKey !== undefined && !isEncryptionKeyText(encryptionKey))) {
|
|
24
26
|
throw new IntentCoreError("ProfileInvalid");
|
|
25
27
|
}
|
|
26
|
-
return {
|
|
28
|
+
return {
|
|
29
|
+
skills: [...skills],
|
|
30
|
+
endpoint,
|
|
31
|
+
...(docUrl === undefined || hash === undefined ? {} : { docUrl, docSha256: hash }),
|
|
32
|
+
...(encryptionKey === undefined ? {} : { encryptionKey }),
|
|
33
|
+
};
|
|
27
34
|
}
|
|
28
35
|
function fieldsOf(input) {
|
|
29
36
|
const checked = checkProfile(input);
|
|
@@ -32,6 +39,7 @@ function fieldsOf(input) {
|
|
|
32
39
|
endpoint: checked.endpoint,
|
|
33
40
|
docUrl: checked.docUrl ?? "",
|
|
34
41
|
docHash: checked.docSha256 === undefined ? new Uint8Array(32) : getBase16Encoder().encode(checked.docSha256),
|
|
42
|
+
encryptionKey: checked.encryptionKey === undefined ? new Uint8Array(ENCRYPTION_KEY_BYTES) : parseEncryptionKey(checked.encryptionKey),
|
|
35
43
|
};
|
|
36
44
|
}
|
|
37
45
|
export async function profileAddress(wallet) {
|
|
@@ -56,7 +64,7 @@ export function profileView(data) {
|
|
|
56
64
|
if (data.length < getProfileSize() || !PROFILE_DISCRIMINATOR.every((b, i) => data[i] === b)) {
|
|
57
65
|
throw new RangeError("the data is not a profile account");
|
|
58
66
|
}
|
|
59
|
-
const stored = getProfileDecoder().decode(data);
|
|
67
|
+
const stored = getProfileDecoder().decode(checkAccountVersion(data));
|
|
60
68
|
const docUrl = ascii(stored.docUrl);
|
|
61
69
|
const docSha256 = getBase16Decoder().decode(stored.docHash).toLowerCase();
|
|
62
70
|
return {
|
|
@@ -65,6 +73,7 @@ export function profileView(data) {
|
|
|
65
73
|
endpoint: ascii(stored.endpoint),
|
|
66
74
|
docUrl: docUrl === "" ? null : docUrl,
|
|
67
75
|
docSha256: docSha256 === ZERO_HASH ? null : docSha256,
|
|
76
|
+
encryptionKey: stored.encryptionKey.some((b) => b !== 0) ? encryptionKeyText(Uint8Array.from(stored.encryptionKey)) : null,
|
|
68
77
|
updatedAt: stored.updatedAt,
|
|
69
78
|
};
|
|
70
79
|
}
|
package/dist/src/profile.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profile.js","sourceRoot":"","sources":["../../src/profile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,gBAAgB,EAAE,gBAAgB,EAAmD,MAAM,aAAa,CAAC;AAChI,OAAO,EACL,cAAc,EACd,+BAA+B,EAC/B,gCAAgC,EAChC,iBAAiB,EACjB,cAAc,EACd,gCAAgC,EAChC,qBAAqB,GACtB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"profile.js","sourceRoot":"","sources":["../../src/profile.ts"],"names":[],"mappings":"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"}
|