@intent-engine/core 0.1.41 → 0.1.43
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/claimBoard.d.ts +4 -0
- package/dist/generated/client/accounts/claimBoard.js +5 -1
- package/dist/generated/client/accounts/claimBoard.js.map +1 -1
- 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/index.d.ts +1 -0
- package/dist/generated/client/accounts/index.js +1 -0
- package/dist/generated/client/accounts/index.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 +42 -0
- package/dist/generated/client/accounts/standby.js +69 -0
- package/dist/generated/client/accounts/standby.js.map +1 -0
- package/dist/generated/client/errors/intentEngine.d.ts +33 -1
- package/dist/generated/client/errors/intentEngine.js +48 -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 +5 -0
- package/dist/generated/client/events/index.js +5 -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/lineLeft.d.ts +30 -0
- package/dist/generated/client/events/lineLeft.js +42 -0
- package/dist/generated/client/events/lineLeft.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/events/stoodBy.d.ts +32 -0
- package/dist/generated/client/events/stoodBy.js +46 -0
- package/dist/generated/client/events/stoodBy.js.map +1 -0
- package/dist/generated/client/instructions/advance.d.ts +79 -0
- package/dist/generated/client/instructions/advance.js +167 -0
- package/dist/generated/client/instructions/advance.js.map +1 -0
- 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/dropClaim.d.ts +29 -9
- package/dist/generated/client/instructions/dropClaim.js +41 -2
- package/dist/generated/client/instructions/dropClaim.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 +6 -0
- package/dist/generated/client/instructions/index.js +6 -0
- package/dist/generated/client/instructions/index.js.map +1 -1
- package/dist/generated/client/instructions/leave.d.ts +68 -0
- package/dist/generated/client/instructions/leave.js +142 -0
- package/dist/generated/client/instructions/leave.js.map +1 -0
- 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 +76 -0
- package/dist/generated/client/instructions/standBy.js +176 -0
- package/dist/generated/client/instructions/standBy.js.map +1 -0
- package/dist/generated/client/pdas/entry.d.ts +15 -0
- package/dist/generated/client/pdas/entry.js +20 -0
- package/dist/generated/client/pdas/entry.js.map +1 -0
- package/dist/generated/client/pdas/index.d.ts +1 -0
- package/dist/generated/client/pdas/index.js +1 -0
- package/dist/generated/client/pdas/index.js.map +1 -1
- package/dist/generated/client/programs/intentEngine.d.ts +190 -146
- package/dist/generated/client/programs/intentEngine.js +259 -146
- 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 +33 -3
- package/dist/src/claims.js +54 -2
- 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/errors.d.ts +1 -1
- package/dist/src/errors.js +3 -0
- package/dist/src/errors.js.map +1 -1
- package/dist/src/events.d.ts +6 -1
- package/dist/src/events.js +7 -1
- package/dist/src/events.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 +996 -45
- package/package.json +2 -1
|
@@ -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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"}
|
|
@@ -1,25 +1,69 @@
|
|
|
1
1
|
import { type Address } from "@solana/kit";
|
|
2
|
-
|
|
3
|
-
export declare const
|
|
4
|
-
export declare const
|
|
5
|
-
export declare const
|
|
2
|
+
import { type DeliveryOpener } from "./encryption-key.js";
|
|
3
|
+
export declare const DELIVERY_MEMO_MARK = "solive-delivery3";
|
|
4
|
+
export declare const DELIVERY_MEMO_PREFIX = "solive-delivery3:";
|
|
5
|
+
export declare const OPENING_MEMO_PREFIX = "solive-delivery3-open:";
|
|
6
|
+
export declare const COMMITMENT_TAG = "solive-delivery-v3";
|
|
7
|
+
export declare const SALT_TAG = "solive-delivery-salt-v3";
|
|
8
|
+
export declare const SALT_CHECK_TAG = "solive-delivery-check-v3";
|
|
9
|
+
export declare const SALT_BYTES = 16;
|
|
10
|
+
export declare const SEALED_URL_VERSION = 3;
|
|
11
|
+
export declare const MAX_DELIVERY_MEMO = 960;
|
|
12
|
+
export declare const MAX_OPENING_MEMO = 960;
|
|
6
13
|
export declare const MAX_SEALED_URL_RECIPIENTS = 8;
|
|
7
|
-
export
|
|
14
|
+
export declare const UNOPENED = "-";
|
|
15
|
+
export type DeliveryMemo = {
|
|
8
16
|
intent: Address;
|
|
9
17
|
commitment: string;
|
|
18
|
+
check: string;
|
|
10
19
|
blob: string;
|
|
11
20
|
};
|
|
12
21
|
export type Commitment = {
|
|
13
22
|
intent: Address;
|
|
14
23
|
worker: Address;
|
|
24
|
+
salt: string;
|
|
15
25
|
sha256: string;
|
|
16
26
|
};
|
|
27
|
+
export type SealedDelivery = {
|
|
28
|
+
salt: string;
|
|
29
|
+
url: string;
|
|
30
|
+
};
|
|
31
|
+
export type JudgeOpening = {
|
|
32
|
+
intent: Address;
|
|
33
|
+
salts: (string | null)[];
|
|
34
|
+
};
|
|
35
|
+
export type SelfOpening = {
|
|
36
|
+
intent: Address;
|
|
37
|
+
announcement: string;
|
|
38
|
+
salt: string;
|
|
39
|
+
};
|
|
40
|
+
export type Opening = JudgeOpening | SelfOpening;
|
|
41
|
+
export type SealedKey = "wallet" | "profile";
|
|
42
|
+
export type SealRecipient = Address | {
|
|
43
|
+
wallet: Address;
|
|
44
|
+
encryptionKey: Uint8Array | null;
|
|
45
|
+
};
|
|
46
|
+
export declare const FINGERPRINT_BYTES = 8;
|
|
47
|
+
export declare const FINGERPRINT_TAG = "solive-delivery-key-v3";
|
|
48
|
+
export declare const MAX_OPENED_SALTS: number;
|
|
49
|
+
export declare const isSaltHex: (text: string) => boolean;
|
|
17
50
|
export declare function maxSealedUrl(recipients: number): number;
|
|
18
51
|
export declare const sealedUrlTooLong: (length: number, recipients: number) => string;
|
|
19
|
-
export declare function
|
|
52
|
+
export declare function saltMessage(intent: Address, sha256: string): Uint8Array<ArrayBuffer>;
|
|
53
|
+
export declare function saltPreimage(signature: Uint8Array): Uint8Array<ArrayBuffer>;
|
|
54
|
+
export declare function saltOfSignature(signature: Uint8Array): Promise<string>;
|
|
55
|
+
export declare function saltCheckPreimage(salt: string): Uint8Array<ArrayBuffer>;
|
|
56
|
+
export declare function saltCheck(salt: string): Promise<string>;
|
|
57
|
+
export declare function commitmentPreimage({ intent, worker, salt, sha256 }: Commitment): Uint8Array<ArrayBuffer>;
|
|
20
58
|
export declare function deliveryCommitment(commitment: Commitment): Promise<string>;
|
|
21
|
-
export declare function
|
|
59
|
+
export declare function keyFingerprint(publicKey: Uint8Array): Promise<string>;
|
|
60
|
+
export declare function sealDelivery({ salt, url }: SealedDelivery, recipients: readonly SealRecipient[], intent: Address): Promise<string>;
|
|
22
61
|
export declare function sealedUrlRecipients(blob: string): number | null;
|
|
23
|
-
export declare function
|
|
24
|
-
export declare function
|
|
25
|
-
export declare function
|
|
62
|
+
export declare function sealedKeys(blob: string): SealedKey[] | null;
|
|
63
|
+
export declare function sealedFingerprints(blob: string): string[] | null;
|
|
64
|
+
export declare function openDelivery(blob: string, opener: DeliveryOpener, intent: Address): Promise<SealedDelivery | null>;
|
|
65
|
+
export declare function deliveryMemo({ intent, commitment, check, blob }: DeliveryMemo): string;
|
|
66
|
+
export declare function parseDeliveryMemo(text: string): DeliveryMemo | null;
|
|
67
|
+
export declare function isSignatureText(text: string): boolean;
|
|
68
|
+
export declare function openingMemo(opening: Opening): string;
|
|
69
|
+
export declare function parseOpeningMemo(text: string): Opening | null;
|