phygital-token-sdk 0.1.0
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/__tests__/card-instance.test.d.ts +2 -0
- package/dist/__tests__/card-instance.test.d.ts.map +1 -0
- package/dist/__tests__/card-instance.test.js +38 -0
- package/dist/__tests__/card-instance.test.js.map +1 -0
- package/dist/__tests__/crypto-parity.test.d.ts +2 -0
- package/dist/__tests__/crypto-parity.test.d.ts.map +1 -0
- package/dist/__tests__/crypto-parity.test.js +60 -0
- package/dist/__tests__/crypto-parity.test.js.map +1 -0
- package/dist/__tests__/low-s-normalization.test.d.ts +2 -0
- package/dist/__tests__/low-s-normalization.test.d.ts.map +1 -0
- package/dist/__tests__/low-s-normalization.test.js +44 -0
- package/dist/__tests__/low-s-normalization.test.js.map +1 -0
- package/dist/__tests__/metadata-limits.test.d.ts +2 -0
- package/dist/__tests__/metadata-limits.test.d.ts.map +1 -0
- package/dist/__tests__/metadata-limits.test.js +33 -0
- package/dist/__tests__/metadata-limits.test.js.map +1 -0
- package/dist/consts.d.ts +19 -0
- package/dist/consts.d.ts.map +1 -0
- package/dist/consts.js +19 -0
- package/dist/consts.js.map +1 -0
- package/dist/generated/accounts/asset.d.ts +28 -0
- package/dist/generated/accounts/asset.d.ts.map +1 -0
- package/dist/generated/accounts/asset.js +52 -0
- package/dist/generated/accounts/asset.js.map +1 -0
- package/dist/generated/accounts/cardInstance.d.ts +35 -0
- package/dist/generated/accounts/cardInstance.d.ts.map +1 -0
- package/dist/generated/accounts/cardInstance.js +61 -0
- package/dist/generated/accounts/cardInstance.js.map +1 -0
- package/dist/generated/accounts/domainConfig.d.ts +28 -0
- package/dist/generated/accounts/domainConfig.d.ts.map +1 -0
- package/dist/generated/accounts/domainConfig.js +58 -0
- package/dist/generated/accounts/domainConfig.js.map +1 -0
- package/dist/generated/accounts/index.d.ts +3 -0
- package/dist/generated/accounts/index.d.ts.map +1 -0
- package/dist/generated/accounts/index.js +3 -0
- package/dist/generated/accounts/index.js.map +1 -0
- package/dist/generated/errors/index.d.ts +2 -0
- package/dist/generated/errors/index.d.ts.map +1 -0
- package/dist/generated/errors/index.js +2 -0
- package/dist/generated/errors/index.js.map +1 -0
- package/dist/generated/errors/phygitalNfts.d.ts +62 -0
- package/dist/generated/errors/phygitalNfts.d.ts.map +1 -0
- package/dist/generated/errors/phygitalNfts.js +87 -0
- package/dist/generated/errors/phygitalNfts.js.map +1 -0
- package/dist/generated/errors/phygitalToken.d.ts +34 -0
- package/dist/generated/errors/phygitalToken.d.ts.map +1 -0
- package/dist/generated/errors/phygitalToken.js +59 -0
- package/dist/generated/errors/phygitalToken.js.map +1 -0
- package/dist/generated/index.d.ts +7 -0
- package/dist/generated/index.d.ts.map +1 -0
- package/dist/generated/index.js +7 -0
- package/dist/generated/index.js.map +1 -0
- package/dist/generated/instructions/createCollectionMint.d.ts +108 -0
- package/dist/generated/instructions/createCollectionMint.d.ts.map +1 -0
- package/dist/generated/instructions/createCollectionMint.js +175 -0
- package/dist/generated/instructions/createCollectionMint.js.map +1 -0
- package/dist/generated/instructions/createDesignMint.d.ts +97 -0
- package/dist/generated/instructions/createDesignMint.d.ts.map +1 -0
- package/dist/generated/instructions/createDesignMint.js +164 -0
- package/dist/generated/instructions/createDesignMint.js.map +1 -0
- package/dist/generated/instructions/createDomainConfig.d.ts +46 -0
- package/dist/generated/instructions/createDomainConfig.d.ts.map +1 -0
- package/dist/generated/instructions/createDomainConfig.js +83 -0
- package/dist/generated/instructions/createDomainConfig.js.map +1 -0
- package/dist/generated/instructions/createGroupToken.d.ts +94 -0
- package/dist/generated/instructions/createGroupToken.d.ts.map +1 -0
- package/dist/generated/instructions/createGroupToken.js +150 -0
- package/dist/generated/instructions/createGroupToken.js.map +1 -0
- package/dist/generated/instructions/createMint.d.ts +77 -0
- package/dist/generated/instructions/createMint.d.ts.map +1 -0
- package/dist/generated/instructions/createMint.js +149 -0
- package/dist/generated/instructions/createMint.js.map +1 -0
- package/dist/generated/instructions/createToken.d.ts +88 -0
- package/dist/generated/instructions/createToken.d.ts.map +1 -0
- package/dist/generated/instructions/createToken.js +182 -0
- package/dist/generated/instructions/createToken.js.map +1 -0
- package/dist/generated/instructions/editDomainConfig.d.ts +50 -0
- package/dist/generated/instructions/editDomainConfig.d.ts.map +1 -0
- package/dist/generated/instructions/editDomainConfig.js +90 -0
- package/dist/generated/instructions/editDomainConfig.js.map +1 -0
- package/dist/generated/instructions/executeTransfer.d.ts +109 -0
- package/dist/generated/instructions/executeTransfer.d.ts.map +1 -0
- package/dist/generated/instructions/executeTransfer.js +243 -0
- package/dist/generated/instructions/executeTransfer.js.map +1 -0
- package/dist/generated/instructions/index.d.ts +7 -0
- package/dist/generated/instructions/index.d.ts.map +1 -0
- package/dist/generated/instructions/index.js +7 -0
- package/dist/generated/instructions/index.js.map +1 -0
- package/dist/generated/instructions/mintToken.d.ts +78 -0
- package/dist/generated/instructions/mintToken.d.ts.map +1 -0
- package/dist/generated/instructions/mintToken.js +167 -0
- package/dist/generated/instructions/mintToken.js.map +1 -0
- package/dist/generated/instructions/setLockState.d.ts +37 -0
- package/dist/generated/instructions/setLockState.d.ts.map +1 -0
- package/dist/generated/instructions/setLockState.js +62 -0
- package/dist/generated/instructions/setLockState.js.map +1 -0
- package/dist/generated/instructions/setTransferConfig.d.ts +88 -0
- package/dist/generated/instructions/setTransferConfig.d.ts.map +1 -0
- package/dist/generated/instructions/setTransferConfig.js +188 -0
- package/dist/generated/instructions/setTransferConfig.js.map +1 -0
- package/dist/generated/instructions/updateCounter.d.ts +45 -0
- package/dist/generated/instructions/updateCounter.d.ts.map +1 -0
- package/dist/generated/instructions/updateCounter.js +84 -0
- package/dist/generated/instructions/updateCounter.js.map +1 -0
- package/dist/generated/instructions/updateDomainConfig.d.ts +43 -0
- package/dist/generated/instructions/updateDomainConfig.d.ts.map +1 -0
- package/dist/generated/instructions/updateDomainConfig.js +81 -0
- package/dist/generated/instructions/updateDomainConfig.js.map +1 -0
- package/dist/generated/pdas/index.d.ts +2 -0
- package/dist/generated/pdas/index.d.ts.map +1 -0
- package/dist/generated/pdas/index.js +2 -0
- package/dist/generated/pdas/index.js.map +1 -0
- package/dist/generated/pdas/programAuthority.d.ts +5 -0
- package/dist/generated/pdas/programAuthority.d.ts.map +1 -0
- package/dist/generated/pdas/programAuthority.js +14 -0
- package/dist/generated/pdas/programAuthority.js.map +1 -0
- package/dist/generated/programs/index.d.ts +2 -0
- package/dist/generated/programs/index.d.ts.map +1 -0
- package/dist/generated/programs/index.js +2 -0
- package/dist/generated/programs/index.js.map +1 -0
- package/dist/generated/programs/phygitalNfts.d.ts +72 -0
- package/dist/generated/programs/phygitalNfts.d.ts.map +1 -0
- package/dist/generated/programs/phygitalNfts.js +136 -0
- package/dist/generated/programs/phygitalNfts.js.map +1 -0
- package/dist/generated/programs/phygitalToken.d.ts +65 -0
- package/dist/generated/programs/phygitalToken.d.ts.map +1 -0
- package/dist/generated/programs/phygitalToken.js +129 -0
- package/dist/generated/programs/phygitalToken.js.map +1 -0
- package/dist/generated/types/index.d.ts +2 -0
- package/dist/generated/types/index.d.ts.map +1 -0
- package/dist/generated/types/index.js +2 -0
- package/dist/generated/types/index.js.map +1 -0
- package/dist/generated/types/secp256r1Pubkey.d.ts +7 -0
- package/dist/generated/types/secp256r1Pubkey.d.ts.map +1 -0
- package/dist/generated/types/secp256r1Pubkey.js +11 -0
- package/dist/generated/types/secp256r1Pubkey.js.map +1 -0
- package/dist/generated/types/secp256r1VerifyArgs.d.ts +27 -0
- package/dist/generated/types/secp256r1VerifyArgs.d.ts.map +1 -0
- package/dist/generated/types/secp256r1VerifyArgs.js +24 -0
- package/dist/generated/types/secp256r1VerifyArgs.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -0
- package/dist/instructions/collection.d.ts +14 -0
- package/dist/instructions/collection.d.ts.map +1 -0
- package/dist/instructions/collection.js +59 -0
- package/dist/instructions/collection.js.map +1 -0
- package/dist/instructions/index.d.ts +2 -0
- package/dist/instructions/index.d.ts.map +1 -0
- package/dist/instructions/index.js +2 -0
- package/dist/instructions/index.js.map +1 -0
- package/dist/instructions/internal/secp256r1Verify.d.ts +29 -0
- package/dist/instructions/internal/secp256r1Verify.d.ts.map +1 -0
- package/dist/instructions/internal/secp256r1Verify.js +132 -0
- package/dist/instructions/internal/secp256r1Verify.js.map +1 -0
- package/dist/instructions/mint.d.ts +33 -0
- package/dist/instructions/mint.d.ts.map +1 -0
- package/dist/instructions/mint.js +74 -0
- package/dist/instructions/mint.js.map +1 -0
- package/dist/instructions/secp256r1Verify.d.ts +29 -0
- package/dist/instructions/secp256r1Verify.d.ts.map +1 -0
- package/dist/instructions/secp256r1Verify.js +132 -0
- package/dist/instructions/secp256r1Verify.js.map +1 -0
- package/dist/instructions/setLockState.d.ts +19 -0
- package/dist/instructions/setLockState.d.ts.map +1 -0
- package/dist/instructions/setLockState.js +17 -0
- package/dist/instructions/setLockState.js.map +1 -0
- package/dist/instructions/setTransferConfig.d.ts +25 -0
- package/dist/instructions/setTransferConfig.d.ts.map +1 -0
- package/dist/instructions/setTransferConfig.js +20 -0
- package/dist/instructions/setTransferConfig.js.map +1 -0
- package/dist/instructions/transfer.d.ts +17 -0
- package/dist/instructions/transfer.d.ts.map +1 -0
- package/dist/instructions/transfer.js +67 -0
- package/dist/instructions/transfer.js.map +1 -0
- package/dist/instructions/updateCounter.d.ts +15 -0
- package/dist/instructions/updateCounter.d.ts.map +1 -0
- package/dist/instructions/updateCounter.js +20 -0
- package/dist/instructions/updateCounter.js.map +1 -0
- package/dist/mint-metadata.d.ts +13 -0
- package/dist/mint-metadata.d.ts.map +1 -0
- package/dist/mint-metadata.js +127 -0
- package/dist/mint-metadata.js.map +1 -0
- package/dist/passkeys/index.d.ts +18 -0
- package/dist/passkeys/index.d.ts.map +1 -0
- package/dist/passkeys/index.js +30 -0
- package/dist/passkeys/index.js.map +1 -0
- package/dist/passkeys/internal.d.ts +15 -0
- package/dist/passkeys/internal.d.ts.map +1 -0
- package/dist/passkeys/internal.js +113 -0
- package/dist/passkeys/internal.js.map +1 -0
- package/dist/secp256r1.d.ts +24 -0
- package/dist/secp256r1.d.ts.map +1 -0
- package/dist/secp256r1.js +38 -0
- package/dist/secp256r1.js.map +1 -0
- package/dist/transfer.d.ts +28 -0
- package/dist/transfer.d.ts.map +1 -0
- package/dist/transfer.js +109 -0
- package/dist/transfer.js.map +1 -0
- package/dist/utils/associatedToken.d.ts +3 -0
- package/dist/utils/associatedToken.d.ts.map +1 -0
- package/dist/utils/associatedToken.js +14 -0
- package/dist/utils/associatedToken.js.map +1 -0
- package/dist/utils/consts.d.ts +8 -0
- package/dist/utils/consts.d.ts.map +1 -0
- package/dist/utils/consts.js +9 -0
- package/dist/utils/consts.js.map +1 -0
- package/dist/utils/encoding.d.ts +3 -0
- package/dist/utils/encoding.d.ts.map +1 -0
- package/dist/utils/encoding.js +14 -0
- package/dist/utils/encoding.js.map +1 -0
- package/dist/utils/metadata.d.ts +48 -0
- package/dist/utils/metadata.d.ts.map +1 -0
- package/dist/utils/metadata.js +110 -0
- package/dist/utils/metadata.js.map +1 -0
- package/dist/utils/passkey/index.d.ts +17 -0
- package/dist/utils/passkey/index.d.ts.map +1 -0
- package/dist/utils/passkey/index.js +21 -0
- package/dist/utils/passkey/index.js.map +1 -0
- package/dist/utils/passkey/internal.d.ts +11 -0
- package/dist/utils/passkey/internal.d.ts.map +1 -0
- package/dist/utils/passkey/internal.js +115 -0
- package/dist/utils/passkey/internal.js.map +1 -0
- package/dist/utils/passkey/secp256r1.d.ts +26 -0
- package/dist/utils/passkey/secp256r1.d.ts.map +1 -0
- package/dist/utils/passkey/secp256r1.js +59 -0
- package/dist/utils/passkey/secp256r1.js.map +1 -0
- package/dist/utils/pdas/asset.d.ts +4 -0
- package/dist/utils/pdas/asset.d.ts.map +1 -0
- package/dist/utils/pdas/asset.js +14 -0
- package/dist/utils/pdas/asset.js.map +1 -0
- package/dist/utils/pdas/domainConfig.d.ts +3 -0
- package/dist/utils/pdas/domainConfig.d.ts.map +1 -0
- package/dist/utils/pdas/domainConfig.js +15 -0
- package/dist/utils/pdas/domainConfig.js.map +1 -0
- package/dist/utils/pdas/index.d.ts +3 -0
- package/dist/utils/pdas/index.d.ts.map +1 -0
- package/dist/utils/pdas/index.js +3 -0
- package/dist/utils/pdas/index.js.map +1 -0
- package/dist/utils/slotHash.d.ts +9 -0
- package/dist/utils/slotHash.d.ts.map +1 -0
- package/dist/utils/slotHash.js +39 -0
- package/dist/utils/slotHash.js.map +1 -0
- package/dist/utils/tokenOwner.d.ts +7 -0
- package/dist/utils/tokenOwner.d.ts.map +1 -0
- package/dist/utils/tokenOwner.js +24 -0
- package/dist/utils/tokenOwner.js.map +1 -0
- package/dist/utils/verify.d.ts +8 -0
- package/dist/utils/verify.d.ts.map +1 -0
- package/dist/utils/verify.js +45 -0
- package/dist/utils/verify.js.map +1 -0
- package/dist/utils.d.ts +10 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +42 -0
- package/dist/utils.js.map +1 -0
- package/package.json +41 -0
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type FixedSizeCodec, type FixedSizeDecoder, type FixedSizeEncoder, type ReadonlyUint8Array } from "@solana/kit";
|
|
2
|
+
export type Secp256r1Pubkey = readonly [ReadonlyUint8Array];
|
|
3
|
+
export type Secp256r1PubkeyArgs = Secp256r1Pubkey;
|
|
4
|
+
export declare function getSecp256r1PubkeyEncoder(): FixedSizeEncoder<Secp256r1PubkeyArgs>;
|
|
5
|
+
export declare function getSecp256r1PubkeyDecoder(): FixedSizeDecoder<Secp256r1Pubkey>;
|
|
6
|
+
export declare function getSecp256r1PubkeyCodec(): FixedSizeCodec<Secp256r1PubkeyArgs, Secp256r1Pubkey>;
|
|
7
|
+
//# sourceMappingURL=secp256r1Pubkey.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secp256r1Pubkey.d.ts","sourceRoot":"","sources":["../../../src/generated/types/secp256r1Pubkey.ts"],"names":[],"mappings":"AAQA,OAAO,EAQL,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACxB,MAAM,aAAa,CAAC;AAErB,MAAM,MAAM,eAAe,GAAG,SAAS,CAAC,kBAAkB,CAAC,CAAC;AAE5D,MAAM,MAAM,mBAAmB,GAAG,eAAe,CAAC;AAElD,wBAAgB,yBAAyB,IAAI,gBAAgB,CAAC,mBAAmB,CAAC,CAEjF;AAED,wBAAgB,yBAAyB,IAAI,gBAAgB,CAAC,eAAe,CAAC,CAE7E;AAED,wBAAgB,uBAAuB,IAAI,cAAc,CACvD,mBAAmB,EACnB,eAAe,CAChB,CAEA"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { combineCodec, fixDecoderSize, fixEncoderSize, getBytesDecoder, getBytesEncoder, getTupleDecoder, getTupleEncoder, } from "@solana/kit";
|
|
2
|
+
export function getSecp256r1PubkeyEncoder() {
|
|
3
|
+
return getTupleEncoder([fixEncoderSize(getBytesEncoder(), 33)]);
|
|
4
|
+
}
|
|
5
|
+
export function getSecp256r1PubkeyDecoder() {
|
|
6
|
+
return getTupleDecoder([fixDecoderSize(getBytesDecoder(), 33)]);
|
|
7
|
+
}
|
|
8
|
+
export function getSecp256r1PubkeyCodec() {
|
|
9
|
+
return combineCodec(getSecp256r1PubkeyEncoder(), getSecp256r1PubkeyDecoder());
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=secp256r1Pubkey.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secp256r1Pubkey.js","sourceRoot":"","sources":["../../../src/generated/types/secp256r1Pubkey.ts"],"names":[],"mappings":"AAQA,OAAO,EACL,YAAY,EACZ,cAAc,EACd,cAAc,EACd,eAAe,EACf,eAAe,EACf,eAAe,EACf,eAAe,GAKhB,MAAM,aAAa,CAAC;AAMrB,MAAM,UAAU,yBAAyB;IACvC,OAAO,eAAe,CAAC,CAAC,cAAc,CAAC,eAAe,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;AAClE,CAAC;AAED,MAAM,UAAU,yBAAyB;IACvC,OAAO,eAAe,CAAC,CAAC,cAAc,CAAC,eAAe,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;AAClE,CAAC;AAED,MAAM,UAAU,uBAAuB;IAIrC,OAAO,YAAY,CAAC,yBAAyB,EAAE,EAAE,yBAAyB,EAAE,CAAC,CAAC;AAChF,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This code was AUTOGENERATED using the Codama library.
|
|
3
|
+
* Please DO NOT EDIT THIS FILE, instead use visitors
|
|
4
|
+
* to add features, then rerun Codama to update it.
|
|
5
|
+
*
|
|
6
|
+
* @see https://github.com/codama-idl/codama
|
|
7
|
+
*/
|
|
8
|
+
import { type FixedSizeCodec, type FixedSizeDecoder, type FixedSizeEncoder } from "@solana/kit";
|
|
9
|
+
/**
|
|
10
|
+
* Arguments for verifying a tap via the dynamic-URL signature.
|
|
11
|
+
*
|
|
12
|
+
* The NFC tag signs a fixed `counter || nonce` message it generates itself; it has
|
|
13
|
+
* no knowledge of the transfer context. All transfer-context binding therefore comes
|
|
14
|
+
* from the program: the signing pubkey is matched to the `card_instance` PDA, and the
|
|
15
|
+
* monotonic `counter` extracted from the signed message provides replay protection.
|
|
16
|
+
*/
|
|
17
|
+
export type Secp256r1VerifyArgs = {
|
|
18
|
+
/** Index of the secp256r1 verify instruction. */
|
|
19
|
+
instructionIndex: number;
|
|
20
|
+
/** Index of the signature within the secp256r1 verify instruction. */
|
|
21
|
+
signedMessageIndex: number;
|
|
22
|
+
};
|
|
23
|
+
export type Secp256r1VerifyArgsArgs = Secp256r1VerifyArgs;
|
|
24
|
+
export declare function getSecp256r1VerifyArgsEncoder(): FixedSizeEncoder<Secp256r1VerifyArgsArgs>;
|
|
25
|
+
export declare function getSecp256r1VerifyArgsDecoder(): FixedSizeDecoder<Secp256r1VerifyArgs>;
|
|
26
|
+
export declare function getSecp256r1VerifyArgsCodec(): FixedSizeCodec<Secp256r1VerifyArgsArgs, Secp256r1VerifyArgs>;
|
|
27
|
+
//# sourceMappingURL=secp256r1VerifyArgs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secp256r1VerifyArgs.d.ts","sourceRoot":"","sources":["../../../src/generated/types/secp256r1VerifyArgs.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAML,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACtB,MAAM,aAAa,CAAC;AAErB;;;;;;;GAOG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAChC,iDAAiD;IACjD,gBAAgB,EAAE,MAAM,CAAC;IACzB,sEAAsE;IACtE,kBAAkB,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG,mBAAmB,CAAC;AAE1D,wBAAgB,6BAA6B,IAAI,gBAAgB,CAAC,uBAAuB,CAAC,CAKzF;AAED,wBAAgB,6BAA6B,IAAI,gBAAgB,CAAC,mBAAmB,CAAC,CAKrF;AAED,wBAAgB,2BAA2B,IAAI,cAAc,CAC3D,uBAAuB,EACvB,mBAAmB,CACpB,CAKA"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This code was AUTOGENERATED using the Codama library.
|
|
3
|
+
* Please DO NOT EDIT THIS FILE, instead use visitors
|
|
4
|
+
* to add features, then rerun Codama to update it.
|
|
5
|
+
*
|
|
6
|
+
* @see https://github.com/codama-idl/codama
|
|
7
|
+
*/
|
|
8
|
+
import { combineCodec, getStructDecoder, getStructEncoder, getU8Decoder, getU8Encoder, } from "@solana/kit";
|
|
9
|
+
export function getSecp256r1VerifyArgsEncoder() {
|
|
10
|
+
return getStructEncoder([
|
|
11
|
+
["instructionIndex", getU8Encoder()],
|
|
12
|
+
["signedMessageIndex", getU8Encoder()],
|
|
13
|
+
]);
|
|
14
|
+
}
|
|
15
|
+
export function getSecp256r1VerifyArgsDecoder() {
|
|
16
|
+
return getStructDecoder([
|
|
17
|
+
["instructionIndex", getU8Decoder()],
|
|
18
|
+
["signedMessageIndex", getU8Decoder()],
|
|
19
|
+
]);
|
|
20
|
+
}
|
|
21
|
+
export function getSecp256r1VerifyArgsCodec() {
|
|
22
|
+
return combineCodec(getSecp256r1VerifyArgsEncoder(), getSecp256r1VerifyArgsDecoder());
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=secp256r1VerifyArgs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secp256r1VerifyArgs.js","sourceRoot":"","sources":["../../../src/generated/types/secp256r1VerifyArgs.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,YAAY,EACZ,YAAY,GAIb,MAAM,aAAa,CAAC;AAmBrB,MAAM,UAAU,6BAA6B;IAC3C,OAAO,gBAAgB,CAAC;QACtB,CAAC,kBAAkB,EAAE,YAAY,EAAE,CAAC;QACpC,CAAC,oBAAoB,EAAE,YAAY,EAAE,CAAC;KACvC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,6BAA6B;IAC3C,OAAO,gBAAgB,CAAC;QACtB,CAAC,kBAAkB,EAAE,YAAY,EAAE,CAAC;QACpC,CAAC,oBAAoB,EAAE,YAAY,EAAE,CAAC;KACvC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,2BAA2B;IAIzC,OAAO,YAAY,CACjB,6BAA6B,EAAE,EAC/B,6BAA6B,EAAE,CAChC,CAAC;AACJ,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { authenticateToken, beginTransfer, completeTransfer, type TransferSession, } from "./instructions/transfer.js";
|
|
2
|
+
export { buildCreateMintInstructions, buildMintTokenInstructions, MAX_METADATA_NAME_LEN, MAX_METADATA_SYMBOL_LEN, MAX_METADATA_URI_LEN, parseSecp256r1Pubkey, validateMetadataFields, type MetadataFields, } from "./instructions/mint.js";
|
|
3
|
+
export { fetchAssetDisplayInfo, type AssetDisplayInfo, type VerifyMetadataCallback, } from "./utils/metadata.js";
|
|
4
|
+
export { verifyLocal, verifyWithServerCheck } from "./utils/verify.js";
|
|
5
|
+
export { findAssetPda, findDomainConfigPda } from "./utils/pdas/index.js";
|
|
6
|
+
export * from "./generated/index.js";
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,gBAAgB,EAChB,KAAK,eAAe,GACrB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EACL,2BAA2B,EAC3B,0BAA0B,EAC1B,qBAAqB,EACrB,uBAAuB,EACvB,oBAAoB,EACpB,oBAAoB,EACpB,sBAAsB,EACtB,KAAK,cAAc,GACpB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,qBAAqB,EACrB,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,GAC5B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAEvE,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE1E,cAAc,sBAAsB,CAAA"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { authenticateToken, beginTransfer, completeTransfer, } from "./instructions/transfer.js";
|
|
2
|
+
export { buildCreateMintInstructions, buildMintTokenInstructions, MAX_METADATA_NAME_LEN, MAX_METADATA_SYMBOL_LEN, MAX_METADATA_URI_LEN, parseSecp256r1Pubkey, validateMetadataFields, } from "./instructions/mint.js";
|
|
3
|
+
export { fetchAssetDisplayInfo, } from "./utils/metadata.js";
|
|
4
|
+
export { verifyLocal, verifyWithServerCheck } from "./utils/verify.js";
|
|
5
|
+
export { findAssetPda, findDomainConfigPda } from "./utils/pdas/index.js";
|
|
6
|
+
export * from "./generated/index.js";
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,gBAAgB,GAEjB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EACL,2BAA2B,EAC3B,0BAA0B,EAC1B,qBAAqB,EACrB,uBAAuB,EACvB,oBAAoB,EACpB,oBAAoB,EACpB,sBAAsB,GAEvB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,qBAAqB,GAGtB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAEvE,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE1E,cAAc,sBAAsB,CAAA"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { type Address, type Instruction, type TransactionSigner } from "@solana/kit";
|
|
2
|
+
import { type MetadataFields } from "./mint";
|
|
3
|
+
type CreateCollectionMintParams = MetadataFields & {
|
|
4
|
+
payer: TransactionSigner;
|
|
5
|
+
authority: TransactionSigner;
|
|
6
|
+
maxSize?: bigint;
|
|
7
|
+
};
|
|
8
|
+
export declare function buildCreateCollectionMintInstructions(input: CreateCollectionMintParams): Promise<{
|
|
9
|
+
instructions: Instruction[];
|
|
10
|
+
groupMint: Address;
|
|
11
|
+
mintSigner: TransactionSigner;
|
|
12
|
+
}>;
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=collection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collection.d.ts","sourceRoot":"","sources":["../../src/instructions/collection.ts"],"names":[],"mappings":"AASA,OAAO,EAEL,KAAK,OAAO,EACZ,KAAK,WAAW,EAChB,KAAK,iBAAiB,EACvB,MAAM,aAAa,CAAC;AAGrB,OAAO,EAA0B,KAAK,cAAc,EAAE,MAAM,QAAQ,CAAC;AAIrE,KAAK,0BAA0B,GAAG,cAAc,GAAG;IACjD,KAAK,EAAE,iBAAiB,CAAC;IACzB,SAAS,EAAE,iBAAiB,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,wBAAsB,qCAAqC,CACzD,KAAK,EAAE,0BAA0B,GAChC,OAAO,CAAC;IACT,YAAY,EAAE,WAAW,EAAE,CAAC;IAC5B,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,iBAAiB,CAAC;CAC/B,CAAC,CAyDD"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { getCreateAccountInstruction } from "@solana-program/system";
|
|
2
|
+
import { TOKEN_2022_PROGRAM_ADDRESS, extension, getInitializeMint2Instruction, getMintSize, getPostInitializeInstructionsForMintExtensions, getPreInitializeInstructionsForMintExtensions, } from "@solana-program/token-2022";
|
|
3
|
+
import { getMinimumBalanceForRentExemption, } from "@solana/kit";
|
|
4
|
+
import { generateKeyPairSigner } from "@solana/signers";
|
|
5
|
+
import { validateMetadataFields } from "./mint.js";
|
|
6
|
+
const DEFAULT_COLLECTION_MAX_SIZE = 2n ** 64n - 1n;
|
|
7
|
+
export async function buildCreateCollectionMintInstructions(input) {
|
|
8
|
+
validateMetadataFields(input);
|
|
9
|
+
const mintSigner = await generateKeyPairSigner();
|
|
10
|
+
const mint = mintSigner.address;
|
|
11
|
+
const authority = input.authority;
|
|
12
|
+
const preExtensions = [
|
|
13
|
+
extension("MetadataPointer", {
|
|
14
|
+
authority: authority.address,
|
|
15
|
+
metadataAddress: mint,
|
|
16
|
+
}),
|
|
17
|
+
extension("GroupPointer", {
|
|
18
|
+
authority: authority.address,
|
|
19
|
+
groupAddress: mint,
|
|
20
|
+
}),
|
|
21
|
+
];
|
|
22
|
+
const postExtensions = [
|
|
23
|
+
extension("TokenGroup", {
|
|
24
|
+
updateAuthority: authority.address,
|
|
25
|
+
mint,
|
|
26
|
+
size: 0n,
|
|
27
|
+
maxSize: input.maxSize ?? DEFAULT_COLLECTION_MAX_SIZE,
|
|
28
|
+
}),
|
|
29
|
+
extension("TokenMetadata", {
|
|
30
|
+
updateAuthority: authority.address,
|
|
31
|
+
mint,
|
|
32
|
+
name: input.name,
|
|
33
|
+
symbol: input.symbol,
|
|
34
|
+
uri: input.uri,
|
|
35
|
+
additionalMetadata: new Map(),
|
|
36
|
+
}),
|
|
37
|
+
];
|
|
38
|
+
const initialSpace = getMintSize(preExtensions);
|
|
39
|
+
const finalSpace = getMintSize([...preExtensions, ...postExtensions]);
|
|
40
|
+
const lamports = getMinimumBalanceForRentExemption(BigInt(finalSpace));
|
|
41
|
+
const instructions = [
|
|
42
|
+
getCreateAccountInstruction({
|
|
43
|
+
payer: input.payer,
|
|
44
|
+
newAccount: mintSigner,
|
|
45
|
+
lamports,
|
|
46
|
+
space: initialSpace,
|
|
47
|
+
programAddress: TOKEN_2022_PROGRAM_ADDRESS,
|
|
48
|
+
}),
|
|
49
|
+
...getPreInitializeInstructionsForMintExtensions(mint, preExtensions),
|
|
50
|
+
getInitializeMint2Instruction({
|
|
51
|
+
mint,
|
|
52
|
+
decimals: 0,
|
|
53
|
+
mintAuthority: authority.address,
|
|
54
|
+
}),
|
|
55
|
+
...getPostInitializeInstructionsForMintExtensions(mint, authority, postExtensions),
|
|
56
|
+
];
|
|
57
|
+
return { instructions, groupMint: mint, mintSigner };
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=collection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collection.js","sourceRoot":"","sources":["../../src/instructions/collection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,EACL,0BAA0B,EAC1B,SAAS,EACT,6BAA6B,EAC7B,WAAW,EACX,8CAA8C,EAC9C,6CAA6C,GAC9C,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,iCAAiC,GAIlC,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAExD,OAAO,EAAE,sBAAsB,EAAuB,MAAM,QAAQ,CAAC;AAErE,MAAM,2BAA2B,GAAG,EAAE,IAAI,GAAG,GAAG,EAAE,CAAC;AAQnD,MAAM,CAAC,KAAK,UAAU,qCAAqC,CACzD,KAAiC;IAMjC,sBAAsB,CAAC,KAAK,CAAC,CAAC;IAE9B,MAAM,UAAU,GAAG,MAAM,qBAAqB,EAAE,CAAC;IACjD,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC;IAChC,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;IAElC,MAAM,aAAa,GAAG;QACpB,SAAS,CAAC,iBAAiB,EAAE;YAC3B,SAAS,EAAE,SAAS,CAAC,OAAO;YAC5B,eAAe,EAAE,IAAI;SACtB,CAAC;QACF,SAAS,CAAC,cAAc,EAAE;YACxB,SAAS,EAAE,SAAS,CAAC,OAAO;YAC5B,YAAY,EAAE,IAAI;SACnB,CAAC;KACH,CAAC;IAEF,MAAM,cAAc,GAAG;QACrB,SAAS,CAAC,YAAY,EAAE;YACtB,eAAe,EAAE,SAAS,CAAC,OAAO;YAClC,IAAI;YACJ,IAAI,EAAE,EAAE;YACR,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,2BAA2B;SACtD,CAAC;QACF,SAAS,CAAC,eAAe,EAAE;YACzB,eAAe,EAAE,SAAS,CAAC,OAAO;YAClC,IAAI;YACJ,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,kBAAkB,EAAE,IAAI,GAAG,EAAE;SAC9B,CAAC;KACH,CAAC;IAEF,MAAM,YAAY,GAAG,WAAW,CAAC,aAAa,CAAC,CAAC;IAChD,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,GAAG,aAAa,EAAE,GAAG,cAAc,CAAC,CAAC,CAAC;IACtE,MAAM,QAAQ,GAAG,iCAAiC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;IAEvE,MAAM,YAAY,GAAkB;QAClC,2BAA2B,CAAC;YAC1B,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,UAAU,EAAE,UAAU;YACtB,QAAQ;YACR,KAAK,EAAE,YAAY;YACnB,cAAc,EAAE,0BAA0B;SAC3C,CAAC;QACF,GAAG,6CAA6C,CAAC,IAAI,EAAE,aAAa,CAAC;QACrE,6BAA6B,CAAC;YAC5B,IAAI;YACJ,QAAQ,EAAE,CAAC;YACX,aAAa,EAAE,SAAS,CAAC,OAAO;SACjC,CAAC;QACF,GAAG,8CAA8C,CAAC,IAAI,EAAE,SAAS,EAAE,cAAc,CAAC;KACnF,CAAC;IAEF,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;AACvD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/instructions/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/instructions/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { type Address, type Codec, type Instruction, type InstructionWithAccounts, type InstructionWithData, type ReadonlyUint8Array } from "@solana/kit";
|
|
2
|
+
import { SECP256R1_PROGRAM_ADDRESS } from "../../utils/consts.js";
|
|
3
|
+
export type Secp256r1VerifyInput = {
|
|
4
|
+
publicKey: ReadonlyUint8Array;
|
|
5
|
+
signature: ReadonlyUint8Array;
|
|
6
|
+
message: ReadonlyUint8Array;
|
|
7
|
+
}[];
|
|
8
|
+
export type Secp256r1VerifyInstruction<TProgram extends string = typeof SECP256R1_PROGRAM_ADDRESS> = Instruction<TProgram> & InstructionWithData<Uint8Array<ArrayBuffer>> & InstructionWithAccounts<[]>;
|
|
9
|
+
export type Secp256r1SignatureOffsetsDataArgs = {
|
|
10
|
+
signatureOffset: number;
|
|
11
|
+
signatureInstructionIndex: number;
|
|
12
|
+
publicKeyOffset: number;
|
|
13
|
+
publicKeyInstructionIndex: number;
|
|
14
|
+
messageDataOffset: number;
|
|
15
|
+
messageDataSize: number;
|
|
16
|
+
messageInstructionIndex: number;
|
|
17
|
+
};
|
|
18
|
+
export type Secp256r1VerifyInstructionData = {
|
|
19
|
+
numSignatures: number;
|
|
20
|
+
padding: number;
|
|
21
|
+
offsets: Secp256r1SignatureOffsetsDataArgs[];
|
|
22
|
+
payload: Secp256r1VerifyInput;
|
|
23
|
+
};
|
|
24
|
+
export type Secp256r1VerifyInstructionDataArgs = Secp256r1VerifyInstructionData;
|
|
25
|
+
export declare function getSecp256r1VerifyInstructionDataCodec(): Codec<Secp256r1VerifyInstructionDataArgs, Secp256r1VerifyInstructionData>;
|
|
26
|
+
export declare function getSecp256r1VerifyInstruction<TProgramAddress extends Address = typeof SECP256R1_PROGRAM_ADDRESS>(input: Secp256r1VerifyInput, config?: {
|
|
27
|
+
programAddress?: TProgramAddress;
|
|
28
|
+
}): Secp256r1VerifyInstruction<TProgramAddress>;
|
|
29
|
+
//# sourceMappingURL=secp256r1Verify.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secp256r1Verify.d.ts","sourceRoot":"","sources":["../../../src/instructions/internal/secp256r1Verify.ts"],"names":[],"mappings":"AAAA,OAAO,EAcL,KAAK,OAAO,EACZ,KAAK,KAAK,EAGV,KAAK,WAAW,EAChB,KAAK,uBAAuB,EAC5B,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACxB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAOlE,MAAM,MAAM,oBAAoB,GAAG;IACjC,SAAS,EAAE,kBAAkB,CAAC;IAC9B,SAAS,EAAE,kBAAkB,CAAC;IAC9B,OAAO,EAAE,kBAAkB,CAAC;CAC7B,EAAE,CAAC;AAEJ,MAAM,MAAM,0BAA0B,CACpC,QAAQ,SAAS,MAAM,GAAG,OAAO,yBAAyB,IACxD,WAAW,CAAC,QAAQ,CAAC,GACvB,mBAAmB,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,GAC5C,uBAAuB,CAAC,EAAE,CAAC,CAAC;AAE9B,MAAM,MAAM,iCAAiC,GAAG;IAC9C,eAAe,EAAE,MAAM,CAAC;IACxB,yBAAyB,EAAE,MAAM,CAAC;IAClC,eAAe,EAAE,MAAM,CAAC;IACxB,yBAAyB,EAAE,MAAM,CAAC;IAClC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,eAAe,EAAE,MAAM,CAAC;IACxB,uBAAuB,EAAE,MAAM,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,8BAA8B,GAAG;IAC3C,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,iCAAiC,EAAE,CAAC;IAC7C,OAAO,EAAE,oBAAoB,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,kCAAkC,GAAG,8BAA8B,CAAC;AA0HhF,wBAAgB,sCAAsC,IAAI,KAAK,CAC7D,kCAAkC,EAClC,8BAA8B,CAC/B,CAKA;AAED,wBAAgB,6BAA6B,CAC3C,eAAe,SAAS,OAAO,GAAG,OAAO,yBAAyB,EAElE,KAAK,EAAE,oBAAoB,EAC3B,MAAM,CAAC,EAAE;IAAE,cAAc,CAAC,EAAE,eAAe,CAAA;CAAE,GAC5C,0BAA0B,CAAC,eAAe,CAAC,CAyC7C"}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
import { combineCodec, createDecoder, createEncoder, fixDecoderSize, fixEncoderSize, getBytesDecoder, getBytesEncoder, getStructDecoder, getStructEncoder, getU16Decoder, getU16Encoder, getU8Decoder, getU8Encoder, } from "@solana/kit";
|
|
2
|
+
import { SECP256R1_PROGRAM_ADDRESS } from "../../utils/consts.js";
|
|
3
|
+
const COMPRESSED_PUBKEY_SERIALIZED_SIZE = 33;
|
|
4
|
+
const SIGNATURE_SERIALIZED_SIZE = 64;
|
|
5
|
+
const SIGNATURE_OFFSETS_SERIALIZED_SIZE = 14;
|
|
6
|
+
const SIGNATURE_OFFSETS_START = 2;
|
|
7
|
+
function getSecp256r1SignatureOffsetsDataEncoder() {
|
|
8
|
+
return getStructEncoder([
|
|
9
|
+
["signatureOffset", getU16Encoder()],
|
|
10
|
+
["signatureInstructionIndex", getU16Encoder()],
|
|
11
|
+
["publicKeyOffset", getU16Encoder()],
|
|
12
|
+
["publicKeyInstructionIndex", getU16Encoder()],
|
|
13
|
+
["messageDataOffset", getU16Encoder()],
|
|
14
|
+
["messageDataSize", getU16Encoder()],
|
|
15
|
+
["messageInstructionIndex", getU16Encoder()],
|
|
16
|
+
]);
|
|
17
|
+
}
|
|
18
|
+
function getSecp256r1SignatureOffsetsDataDecoder() {
|
|
19
|
+
return getStructDecoder([
|
|
20
|
+
["signatureOffset", getU16Decoder()],
|
|
21
|
+
["signatureInstructionIndex", getU16Decoder()],
|
|
22
|
+
["publicKeyOffset", getU16Decoder()],
|
|
23
|
+
["publicKeyInstructionIndex", getU16Decoder()],
|
|
24
|
+
["messageDataOffset", getU16Decoder()],
|
|
25
|
+
["messageDataSize", getU16Decoder()],
|
|
26
|
+
["messageInstructionIndex", getU16Decoder()],
|
|
27
|
+
]);
|
|
28
|
+
}
|
|
29
|
+
function getSecp256r1VerifyInstructionDataEncoder() {
|
|
30
|
+
return createEncoder({
|
|
31
|
+
getSizeFromValue: (value) => {
|
|
32
|
+
const offsetSize = SIGNATURE_OFFSETS_SERIALIZED_SIZE * value.offsets.length;
|
|
33
|
+
const payloadSize = value.payload.reduce((sum, entry) => {
|
|
34
|
+
return (sum +
|
|
35
|
+
COMPRESSED_PUBKEY_SERIALIZED_SIZE +
|
|
36
|
+
SIGNATURE_SERIALIZED_SIZE +
|
|
37
|
+
entry.message.length);
|
|
38
|
+
}, 0);
|
|
39
|
+
return 2 + offsetSize + payloadSize;
|
|
40
|
+
},
|
|
41
|
+
write: (value, bytes, offset = 0) => {
|
|
42
|
+
offset = getU8Encoder().write(value.numSignatures, bytes, offset);
|
|
43
|
+
offset = getU8Encoder().write(value.padding, bytes, offset);
|
|
44
|
+
const offsetEncoder = getSecp256r1SignatureOffsetsDataEncoder();
|
|
45
|
+
for (const offsetEntry of value.offsets) {
|
|
46
|
+
offset = offsetEncoder.write(offsetEntry, bytes, offset);
|
|
47
|
+
}
|
|
48
|
+
for (const entry of value.payload) {
|
|
49
|
+
offset = fixEncoderSize(getBytesEncoder(), COMPRESSED_PUBKEY_SERIALIZED_SIZE).write(entry.publicKey, bytes, offset);
|
|
50
|
+
offset = fixEncoderSize(getBytesEncoder(), SIGNATURE_SERIALIZED_SIZE).write(entry.signature, bytes, offset);
|
|
51
|
+
offset = getBytesEncoder().write(entry.message, bytes, offset);
|
|
52
|
+
}
|
|
53
|
+
return offset;
|
|
54
|
+
},
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
function getSecp256r1VerifyInstructionDataDecoder() {
|
|
58
|
+
return createDecoder({
|
|
59
|
+
read: (bytes, offset = 0) => {
|
|
60
|
+
const numSignatures = getU8Decoder().decode(bytes, offset);
|
|
61
|
+
offset += 1;
|
|
62
|
+
const padding = getU8Decoder().decode(bytes, offset);
|
|
63
|
+
offset += 1;
|
|
64
|
+
const offsets = [];
|
|
65
|
+
const offsetDecoder = getSecp256r1SignatureOffsetsDataDecoder();
|
|
66
|
+
for (let i = 0; i < numSignatures; i += 1) {
|
|
67
|
+
offsets.push(offsetDecoder.decode(bytes, offset));
|
|
68
|
+
offset += SIGNATURE_OFFSETS_SERIALIZED_SIZE;
|
|
69
|
+
}
|
|
70
|
+
const payload = [];
|
|
71
|
+
for (let i = 0; i < numSignatures; i += 1) {
|
|
72
|
+
const publicKey = fixDecoderSize(getBytesDecoder(), COMPRESSED_PUBKEY_SERIALIZED_SIZE).decode(bytes, offset);
|
|
73
|
+
offset += COMPRESSED_PUBKEY_SERIALIZED_SIZE;
|
|
74
|
+
const signature = fixDecoderSize(getBytesDecoder(), SIGNATURE_SERIALIZED_SIZE).decode(bytes, offset);
|
|
75
|
+
offset += SIGNATURE_SERIALIZED_SIZE;
|
|
76
|
+
const messageSize = offsets[i].messageDataSize;
|
|
77
|
+
const message = fixDecoderSize(getBytesDecoder(), messageSize).decode(bytes, offset);
|
|
78
|
+
offset += messageSize;
|
|
79
|
+
payload.push({ publicKey, signature, message });
|
|
80
|
+
}
|
|
81
|
+
return [
|
|
82
|
+
{
|
|
83
|
+
numSignatures,
|
|
84
|
+
padding,
|
|
85
|
+
offsets,
|
|
86
|
+
payload,
|
|
87
|
+
},
|
|
88
|
+
offset,
|
|
89
|
+
];
|
|
90
|
+
},
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
export function getSecp256r1VerifyInstructionDataCodec() {
|
|
94
|
+
return combineCodec(getSecp256r1VerifyInstructionDataEncoder(), getSecp256r1VerifyInstructionDataDecoder());
|
|
95
|
+
}
|
|
96
|
+
export function getSecp256r1VerifyInstruction(input, config) {
|
|
97
|
+
const numSignatures = input.length;
|
|
98
|
+
let currentOffset = SIGNATURE_OFFSETS_START + numSignatures * SIGNATURE_OFFSETS_SERIALIZED_SIZE;
|
|
99
|
+
const offsets = [];
|
|
100
|
+
for (let i = 0; i < numSignatures; i += 1) {
|
|
101
|
+
const { message } = input[i];
|
|
102
|
+
const publicKeyOffset = currentOffset;
|
|
103
|
+
const signatureOffset = publicKeyOffset + COMPRESSED_PUBKEY_SERIALIZED_SIZE;
|
|
104
|
+
const messageDataOffset = signatureOffset + SIGNATURE_SERIALIZED_SIZE;
|
|
105
|
+
offsets.push({
|
|
106
|
+
publicKeyOffset,
|
|
107
|
+
publicKeyInstructionIndex: 0xffff,
|
|
108
|
+
signatureOffset,
|
|
109
|
+
signatureInstructionIndex: 0xffff,
|
|
110
|
+
messageDataOffset,
|
|
111
|
+
messageDataSize: message.length,
|
|
112
|
+
messageInstructionIndex: 0xffff,
|
|
113
|
+
});
|
|
114
|
+
currentOffset +=
|
|
115
|
+
COMPRESSED_PUBKEY_SERIALIZED_SIZE +
|
|
116
|
+
SIGNATURE_SERIALIZED_SIZE +
|
|
117
|
+
message.length;
|
|
118
|
+
}
|
|
119
|
+
const programAddress = config?.programAddress ?? SECP256R1_PROGRAM_ADDRESS;
|
|
120
|
+
const args = {
|
|
121
|
+
numSignatures,
|
|
122
|
+
padding: 0,
|
|
123
|
+
offsets,
|
|
124
|
+
payload: input,
|
|
125
|
+
};
|
|
126
|
+
return {
|
|
127
|
+
accounts: [],
|
|
128
|
+
programAddress,
|
|
129
|
+
data: getSecp256r1VerifyInstructionDataEncoder().encode(args),
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
//# sourceMappingURL=secp256r1Verify.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secp256r1Verify.js","sourceRoot":"","sources":["../../../src/instructions/internal/secp256r1Verify.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { type Address, type Instruction, type TransactionSigner } from "@solana/kit";
|
|
2
|
+
import type { Secp256r1Pubkey } from "../generated/types/secp256r1Pubkey.js";
|
|
3
|
+
export declare const MAX_METADATA_NAME_LEN = 32;
|
|
4
|
+
export declare const MAX_METADATA_SYMBOL_LEN = 10;
|
|
5
|
+
export declare const MAX_METADATA_URI_LEN = 200;
|
|
6
|
+
export type MetadataFields = {
|
|
7
|
+
name: string;
|
|
8
|
+
symbol: string;
|
|
9
|
+
uri: string;
|
|
10
|
+
};
|
|
11
|
+
type CreateMintParams = MetadataFields & {
|
|
12
|
+
payer: TransactionSigner;
|
|
13
|
+
owner: TransactionSigner;
|
|
14
|
+
groupMint: Address;
|
|
15
|
+
groupMintAuthority: TransactionSigner;
|
|
16
|
+
mint: TransactionSigner;
|
|
17
|
+
};
|
|
18
|
+
type MintTokenParams = {
|
|
19
|
+
authority: TransactionSigner;
|
|
20
|
+
mint: Address;
|
|
21
|
+
secp256r1Pubkey: Secp256r1Pubkey;
|
|
22
|
+
lockAssetOnCreate: boolean;
|
|
23
|
+
rpId: string;
|
|
24
|
+
};
|
|
25
|
+
export declare function parseSecp256r1Pubkey(input: Base64URLString): Secp256r1Pubkey;
|
|
26
|
+
export declare function validateMetadataFields(fields: MetadataFields): void;
|
|
27
|
+
export declare function buildCreateMintInstructions(input: CreateMintParams): Promise<{
|
|
28
|
+
instructions: Instruction[];
|
|
29
|
+
mint: Address;
|
|
30
|
+
}>;
|
|
31
|
+
export declare function buildMintTokenInstructions(input: MintTokenParams): Promise<Instruction[]>;
|
|
32
|
+
export {};
|
|
33
|
+
//# sourceMappingURL=mint.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mint.d.ts","sourceRoot":"","sources":["../../src/instructions/mint.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,WAAW,EAChB,KAAK,iBAAiB,EACvB,MAAM,aAAa,CAAC;AAGrB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAQ7E,eAAO,MAAM,qBAAqB,KAAK,CAAC;AACxC,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAC1C,eAAO,MAAM,oBAAoB,MAAM,CAAC;AAExC,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,KAAK,gBAAgB,GAAG,cAAc,GAAG;IACvC,KAAK,EAAE,iBAAiB,CAAC;IACzB,KAAK,EAAE,iBAAiB,CAAC;IACzB,SAAS,EAAE,OAAO,CAAC;IACnB,kBAAkB,EAAE,iBAAiB,CAAC;IAEtC,IAAI,EAAE,iBAAiB,CAAC;CACzB,CAAC;AAEF,KAAK,eAAe,GAAG;IACrB,SAAS,EAAE,iBAAiB,CAAC;IAC7B,IAAI,EAAE,OAAO,CAAC;IACd,eAAe,EAAE,eAAe,CAAC;IACjC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,eAAe,GAAG,eAAe,CAsB5E;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,CAcnE;AAED,wBAAsB,2BAA2B,CAC/C,KAAK,EAAE,gBAAgB,GACtB,OAAO,CAAC;IAAE,YAAY,EAAE,WAAW,EAAE,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC,CAezD;AAED,wBAAsB,0BAA0B,CAC9C,KAAK,EAAE,eAAe,GACrB,OAAO,CAAC,WAAW,EAAE,CAAC,CAqBxB"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import {} from "@solana/kit";
|
|
2
|
+
import { getMintTokenInstructionAsync } from "../generated/instructions/mintToken.js";
|
|
3
|
+
import { findProgramAuthorityPda } from "../generated/pdas/programAuthority.js";
|
|
4
|
+
import { TOKEN_2022_PROGRAM_ADDRESS } from "../utils/consts.js";
|
|
5
|
+
import { findAssociatedTokenAddress } from "../utils/associatedToken.js";
|
|
6
|
+
import { getCreateMintInstructionAsync } from "../generated/instructions/createMint.js";
|
|
7
|
+
import { base64URLStringToBuffer } from "../utils/passkey/internal.js";
|
|
8
|
+
import { findDomainConfigPda } from "../utils/pdas/domainConfig.js";
|
|
9
|
+
import { findAssetPda } from "../utils/pdas/asset.js";
|
|
10
|
+
export const MAX_METADATA_NAME_LEN = 32;
|
|
11
|
+
export const MAX_METADATA_SYMBOL_LEN = 10;
|
|
12
|
+
export const MAX_METADATA_URI_LEN = 200;
|
|
13
|
+
export function parseSecp256r1Pubkey(input) {
|
|
14
|
+
const trimmed = input.trim();
|
|
15
|
+
if (!trimmed) {
|
|
16
|
+
throw new Error("secp256r1 pubkey is required.");
|
|
17
|
+
}
|
|
18
|
+
let bytes;
|
|
19
|
+
try {
|
|
20
|
+
bytes = new Uint8Array(base64URLStringToBuffer(trimmed));
|
|
21
|
+
}
|
|
22
|
+
catch {
|
|
23
|
+
throw new Error("Pubkey must be valid base64url.");
|
|
24
|
+
}
|
|
25
|
+
if (bytes.length !== 33) {
|
|
26
|
+
throw new Error("Pubkey must decode to 33 bytes.");
|
|
27
|
+
}
|
|
28
|
+
if (bytes[0] !== 0x02 && bytes[0] !== 0x03) {
|
|
29
|
+
throw new Error("Pubkey must be compressed (starts with 0x02 or 0x03).");
|
|
30
|
+
}
|
|
31
|
+
return [bytes];
|
|
32
|
+
}
|
|
33
|
+
export function validateMetadataFields(fields) {
|
|
34
|
+
if (fields.name.length > MAX_METADATA_NAME_LEN) {
|
|
35
|
+
throw new Error(`Name must be at most ${MAX_METADATA_NAME_LEN} characters.`);
|
|
36
|
+
}
|
|
37
|
+
if (fields.symbol.length > MAX_METADATA_SYMBOL_LEN) {
|
|
38
|
+
throw new Error(`Symbol must be at most ${MAX_METADATA_SYMBOL_LEN} characters.`);
|
|
39
|
+
}
|
|
40
|
+
if (fields.uri.length > MAX_METADATA_URI_LEN) {
|
|
41
|
+
throw new Error(`URI must be at most ${MAX_METADATA_URI_LEN} characters.`);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
export async function buildCreateMintInstructions(input) {
|
|
45
|
+
validateMetadataFields(input);
|
|
46
|
+
const instruction = await getCreateMintInstructionAsync({
|
|
47
|
+
payer: input.payer,
|
|
48
|
+
owner: input.owner,
|
|
49
|
+
groupMint: input.groupMint,
|
|
50
|
+
groupMintAuthority: input.groupMintAuthority,
|
|
51
|
+
mint: input.mint,
|
|
52
|
+
name: input.name,
|
|
53
|
+
symbol: input.symbol,
|
|
54
|
+
uri: input.uri,
|
|
55
|
+
});
|
|
56
|
+
return { instructions: [instruction], mint: input.mint.address };
|
|
57
|
+
}
|
|
58
|
+
export async function buildMintTokenInstructions(input) {
|
|
59
|
+
const asset = await findAssetPda(input.secp256r1Pubkey);
|
|
60
|
+
const [programAuthority] = await findProgramAuthorityPda();
|
|
61
|
+
const domainConfig = await findDomainConfigPda(input.rpId);
|
|
62
|
+
const programAuthorityTokenAccount = await findAssociatedTokenAddress(programAuthority, input.mint, TOKEN_2022_PROGRAM_ADDRESS);
|
|
63
|
+
const instruction = await getMintTokenInstructionAsync({
|
|
64
|
+
domainConfig,
|
|
65
|
+
authority: input.authority,
|
|
66
|
+
asset,
|
|
67
|
+
mint: input.mint,
|
|
68
|
+
programAuthorityTokenAccount,
|
|
69
|
+
secp256r1Pubkey: input.secp256r1Pubkey,
|
|
70
|
+
lockAssetOnCreate: input.lockAssetOnCreate,
|
|
71
|
+
});
|
|
72
|
+
return [instruction];
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=mint.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mint.js","sourceRoot":"","sources":["../../src/instructions/mint.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { type Address, type Codec, type Instruction, type InstructionWithAccounts, type InstructionWithData, type ReadonlyUint8Array } from "@solana/kit";
|
|
2
|
+
import { SECP256R1_PROGRAM_ADDRESS } from "../consts";
|
|
3
|
+
export type Secp256r1VerifyInput = {
|
|
4
|
+
publicKey: ReadonlyUint8Array;
|
|
5
|
+
signature: ReadonlyUint8Array;
|
|
6
|
+
message: ReadonlyUint8Array;
|
|
7
|
+
}[];
|
|
8
|
+
export type Secp256r1VerifyInstruction<TProgram extends string = typeof SECP256R1_PROGRAM_ADDRESS> = Instruction<TProgram> & InstructionWithData<Uint8Array<ArrayBuffer>> & InstructionWithAccounts<[]>;
|
|
9
|
+
export type Secp256r1SignatureOffsetsDataArgs = {
|
|
10
|
+
signatureOffset: number;
|
|
11
|
+
signatureInstructionIndex: number;
|
|
12
|
+
publicKeyOffset: number;
|
|
13
|
+
publicKeyInstructionIndex: number;
|
|
14
|
+
messageDataOffset: number;
|
|
15
|
+
messageDataSize: number;
|
|
16
|
+
messageInstructionIndex: number;
|
|
17
|
+
};
|
|
18
|
+
export type Secp256r1VerifyInstructionData = {
|
|
19
|
+
numSignatures: number;
|
|
20
|
+
padding: number;
|
|
21
|
+
offsets: Secp256r1SignatureOffsetsDataArgs[];
|
|
22
|
+
payload: Secp256r1VerifyInput;
|
|
23
|
+
};
|
|
24
|
+
export type Secp256r1VerifyInstructionDataArgs = Secp256r1VerifyInstructionData;
|
|
25
|
+
export declare function getSecp256r1VerifyInstructionDataCodec(): Codec<Secp256r1VerifyInstructionDataArgs, Secp256r1VerifyInstructionData>;
|
|
26
|
+
export declare function getSecp256r1VerifyInstruction<TProgramAddress extends Address = typeof SECP256R1_PROGRAM_ADDRESS>(input: Secp256r1VerifyInput, config?: {
|
|
27
|
+
programAddress?: TProgramAddress;
|
|
28
|
+
}): Secp256r1VerifyInstruction<TProgramAddress>;
|
|
29
|
+
//# sourceMappingURL=secp256r1Verify.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secp256r1Verify.d.ts","sourceRoot":"","sources":["../../src/instructions/secp256r1Verify.ts"],"names":[],"mappings":"AAAA,OAAO,EAcL,KAAK,OAAO,EACZ,KAAK,KAAK,EAGV,KAAK,WAAW,EAChB,KAAK,uBAAuB,EAC5B,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACxB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAC;AAOtD,MAAM,MAAM,oBAAoB,GAAG;IACjC,SAAS,EAAE,kBAAkB,CAAC;IAC9B,SAAS,EAAE,kBAAkB,CAAC;IAC9B,OAAO,EAAE,kBAAkB,CAAC;CAC7B,EAAE,CAAC;AAEJ,MAAM,MAAM,0BAA0B,CACpC,QAAQ,SAAS,MAAM,GAAG,OAAO,yBAAyB,IACxD,WAAW,CAAC,QAAQ,CAAC,GACvB,mBAAmB,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,GAC5C,uBAAuB,CAAC,EAAE,CAAC,CAAC;AAE9B,MAAM,MAAM,iCAAiC,GAAG;IAC9C,eAAe,EAAE,MAAM,CAAC;IACxB,yBAAyB,EAAE,MAAM,CAAC;IAClC,eAAe,EAAE,MAAM,CAAC;IACxB,yBAAyB,EAAE,MAAM,CAAC;IAClC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,eAAe,EAAE,MAAM,CAAC;IACxB,uBAAuB,EAAE,MAAM,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,8BAA8B,GAAG;IAC3C,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,iCAAiC,EAAE,CAAC;IAC7C,OAAO,EAAE,oBAAoB,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,kCAAkC,GAAG,8BAA8B,CAAC;AA0HhF,wBAAgB,sCAAsC,IAAI,KAAK,CAC7D,kCAAkC,EAClC,8BAA8B,CAC/B,CAKA;AAED,wBAAgB,6BAA6B,CAC3C,eAAe,SAAS,OAAO,GAAG,OAAO,yBAAyB,EAElE,KAAK,EAAE,oBAAoB,EAC3B,MAAM,CAAC,EAAE;IAAE,cAAc,CAAC,EAAE,eAAe,CAAA;CAAE,GAC5C,0BAA0B,CAAC,eAAe,CAAC,CAyC7C"}
|