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 @@
|
|
|
1
|
+
{"version":3,"file":"card-instance.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/card-instance.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { address } from "@solana/kit";
|
|
2
|
+
import { describe, expect, it } from "vitest";
|
|
3
|
+
import { fetchCardInstance, getCardInstanceEncoder, CARD_INSTANCE_DISCRIMINATOR, } from "../generated/accounts/cardInstance";
|
|
4
|
+
import { PHYGITAL_NFTS_PROGRAM_ADDRESS } from "../generated/programs/phygitalNfts";
|
|
5
|
+
describe("fetchCardInstance", () => {
|
|
6
|
+
it("decodes owner and design mint from encoded account data", async () => {
|
|
7
|
+
const cardInstance = address("11111111111111111111111111111112");
|
|
8
|
+
const mint = address("11111111111111111111111111111113");
|
|
9
|
+
const owner = address("11111111111111111111111111111114");
|
|
10
|
+
const lastTransferSlot = 42n;
|
|
11
|
+
const body = getCardInstanceEncoder().encode({
|
|
12
|
+
mint,
|
|
13
|
+
owner,
|
|
14
|
+
lastTransferSlot,
|
|
15
|
+
});
|
|
16
|
+
const data = new Uint8Array(body);
|
|
17
|
+
const rpc = {
|
|
18
|
+
getAccountInfo: () => ({
|
|
19
|
+
send: async () => ({
|
|
20
|
+
value: {
|
|
21
|
+
owner: PHYGITAL_NFTS_PROGRAM_ADDRESS,
|
|
22
|
+
data: [Buffer.from(data).toString("base64"), "base64"],
|
|
23
|
+
lamports: 1n,
|
|
24
|
+
executable: false,
|
|
25
|
+
rentEpoch: 0n,
|
|
26
|
+
space: BigInt(data.length),
|
|
27
|
+
},
|
|
28
|
+
}),
|
|
29
|
+
}),
|
|
30
|
+
};
|
|
31
|
+
const parsed = await fetchCardInstance(rpc, cardInstance);
|
|
32
|
+
expect(parsed.data.mint).toBe(mint);
|
|
33
|
+
expect(parsed.data.owner).toBe(owner);
|
|
34
|
+
expect(parsed.data.lastTransferSlot).toBe(lastTransferSlot);
|
|
35
|
+
expect(data.subarray(0, 8)).toEqual(CARD_INSTANCE_DISCRIMINATOR);
|
|
36
|
+
});
|
|
37
|
+
});
|
|
38
|
+
//# sourceMappingURL=card-instance.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"card-instance.test.js","sourceRoot":"","sources":["../../src/__tests__/card-instance.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAA+B,MAAM,aAAa,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,2BAA2B,GAC5B,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAC;AAEnF,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,EAAE,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;QACvE,MAAM,YAAY,GAAG,OAAO,CAAC,kCAAkC,CAAC,CAAC;QACjE,MAAM,IAAI,GAAG,OAAO,CAAC,kCAAkC,CAAC,CAAC;QACzD,MAAM,KAAK,GAAG,OAAO,CAAC,kCAAkC,CAAC,CAAC;QAC1D,MAAM,gBAAgB,GAAG,GAAG,CAAC;QAE7B,MAAM,IAAI,GAAG,sBAAsB,EAAE,CAAC,MAAM,CAAC;YAC3C,IAAI;YACJ,KAAK;YACL,gBAAgB;SACjB,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;QAElC,MAAM,GAAG,GAAG;YACV,cAAc,EAAE,GAAG,EAAE,CAAC,CAAC;gBACrB,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;oBACjB,KAAK,EAAE;wBACL,KAAK,EAAE,6BAA6B;wBACpC,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC;wBACtD,QAAQ,EAAE,EAAE;wBACZ,UAAU,EAAE,KAAK;wBACjB,SAAS,EAAE,EAAE;wBACb,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;qBAC3B;iBACF,CAAC;aACH,CAAC;SAC6B,CAAC;QAElC,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;QAC1D,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACtC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC5D,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC;IACnE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"crypto-parity.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/crypto-parity.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { createHash } from "node:crypto";
|
|
2
|
+
import { getAddressDecoder, getAddressEncoder } from "@solana/kit";
|
|
3
|
+
import { describe, expect, it } from "vitest";
|
|
4
|
+
import { findCardInstancePda } from "../instructions/mint";
|
|
5
|
+
import { buildTransferChallenge, buildTransferMessageHash, } from "../utils/passkey/secp256r1";
|
|
6
|
+
import { TRANSFER_ACTION_BYTES, TOKEN_2022_PROGRAM_ADDRESS } from "../utils/consts";
|
|
7
|
+
function pubkeyFromByte(byte) {
|
|
8
|
+
const bytes = new Uint8Array(32).fill(byte);
|
|
9
|
+
return getAddressDecoder().decode(bytes);
|
|
10
|
+
}
|
|
11
|
+
function sha256(data) {
|
|
12
|
+
return new Uint8Array(createHash("sha256").update(data).digest());
|
|
13
|
+
}
|
|
14
|
+
function concatBytes(...parts) {
|
|
15
|
+
const total = parts.reduce((sum, part) => sum + part.length, 0);
|
|
16
|
+
const out = new Uint8Array(total);
|
|
17
|
+
let offset = 0;
|
|
18
|
+
for (const part of parts) {
|
|
19
|
+
out.set(part, offset);
|
|
20
|
+
offset += part.length;
|
|
21
|
+
}
|
|
22
|
+
return out;
|
|
23
|
+
}
|
|
24
|
+
describe("buildTransferMessageHash", () => {
|
|
25
|
+
it("matches Rust golden vector for fixed pubkeys", async () => {
|
|
26
|
+
const cardInstance = pubkeyFromByte(1);
|
|
27
|
+
const sender = pubkeyFromByte(2);
|
|
28
|
+
const preimage = concatBytes(new Uint8Array(getAddressEncoder().encode(cardInstance)), new Uint8Array(getAddressEncoder().encode(sender)));
|
|
29
|
+
const expected = sha256(preimage);
|
|
30
|
+
const hash = await buildTransferMessageHash({ cardInstance, sender });
|
|
31
|
+
expect(hash).toEqual(expected);
|
|
32
|
+
});
|
|
33
|
+
});
|
|
34
|
+
describe("buildTransferChallenge", () => {
|
|
35
|
+
it("matches Rust challenge layout", async () => {
|
|
36
|
+
const cardInstance = pubkeyFromByte(1);
|
|
37
|
+
const sender = pubkeyFromByte(2);
|
|
38
|
+
const slotHash = new Uint8Array(32).fill(9);
|
|
39
|
+
const messageHash = await buildTransferMessageHash({ cardInstance, sender });
|
|
40
|
+
const expected = sha256(concatBytes(TRANSFER_ACTION_BYTES, new Uint8Array(getAddressEncoder().encode(TOKEN_2022_PROGRAM_ADDRESS)), messageHash, slotHash));
|
|
41
|
+
const challenge = await buildTransferChallenge({
|
|
42
|
+
tokenProgram: TOKEN_2022_PROGRAM_ADDRESS,
|
|
43
|
+
cardInstance,
|
|
44
|
+
sender,
|
|
45
|
+
slotHash,
|
|
46
|
+
});
|
|
47
|
+
expect(challenge).toEqual(expected);
|
|
48
|
+
});
|
|
49
|
+
});
|
|
50
|
+
describe("PDAs", () => {
|
|
51
|
+
it("findCardInstancePda uses x-only secp256r1 seed", async () => {
|
|
52
|
+
const compressed = new Uint8Array(33);
|
|
53
|
+
compressed[0] = 0x02;
|
|
54
|
+
compressed.fill(7, 1);
|
|
55
|
+
const secp256r1Pubkey = [compressed];
|
|
56
|
+
const cardInstance = await findCardInstancePda(secp256r1Pubkey);
|
|
57
|
+
expect(cardInstance).toMatch(/^[1-9A-HJ-NP-Za-km-z]{32,44}$/);
|
|
58
|
+
});
|
|
59
|
+
});
|
|
60
|
+
//# sourceMappingURL=crypto-parity.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"crypto-parity.test.js","sourceRoot":"","sources":["../../src/__tests__/crypto-parity.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"low-s-normalization.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/low-s-normalization.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { p256 } from "@noble/curves/nist.js";
|
|
2
|
+
import { describe, expect, it } from "vitest";
|
|
3
|
+
import { base64URLStringToBuffer, normalizeSignatureToLowS, } from "../utils/passkey/internal";
|
|
4
|
+
import { verifyLocal } from "../utils/verify";
|
|
5
|
+
// Real tap from a card whose secure element emits a high-S signature.
|
|
6
|
+
const TAP = {
|
|
7
|
+
pk: "A9IZOfRZh8Uzm5bizLGzxfAL069sWyICJFYhkKAspkb_",
|
|
8
|
+
c: "0000000015",
|
|
9
|
+
n: "JbCaACihQK8",
|
|
10
|
+
s: "IJDJZ5CMU2FgK_bAPkDLZ3kgM8cI4RhqPcXSN1p7zNb1qxZ-nK6DLGtiUfaGVxE78AppTFPOPA2yrsIzuDYbuQ",
|
|
11
|
+
};
|
|
12
|
+
function sValue(sig) {
|
|
13
|
+
const hex = Array.from(sig.slice(32, 64))
|
|
14
|
+
.map((b) => b.toString(16).padStart(2, "0"))
|
|
15
|
+
.join("");
|
|
16
|
+
return BigInt(`0x${hex}`);
|
|
17
|
+
}
|
|
18
|
+
describe("normalizeSignatureToLowS", () => {
|
|
19
|
+
const halfOrder = p256.Point.CURVE().n >> 1n;
|
|
20
|
+
it("flips a high-S signature into canonical low-S", () => {
|
|
21
|
+
const raw = base64URLStringToBuffer(TAP.s);
|
|
22
|
+
expect(sValue(raw) > halfOrder).toBe(true); // precondition: this tap is high-S
|
|
23
|
+
const normalized = normalizeSignatureToLowS(raw);
|
|
24
|
+
expect(sValue(normalized) <= halfOrder).toBe(true);
|
|
25
|
+
// r is untouched
|
|
26
|
+
expect(normalized.slice(0, 32)).toEqual(raw.slice(0, 32));
|
|
27
|
+
});
|
|
28
|
+
it("is idempotent and leaves an already-low-S signature unchanged", () => {
|
|
29
|
+
const once = normalizeSignatureToLowS(base64URLStringToBuffer(TAP.s));
|
|
30
|
+
expect(normalizeSignatureToLowS(once)).toEqual(once);
|
|
31
|
+
});
|
|
32
|
+
it("rejects non-64-byte input", () => {
|
|
33
|
+
expect(() => normalizeSignatureToLowS(new Uint8Array(63))).toThrow();
|
|
34
|
+
});
|
|
35
|
+
});
|
|
36
|
+
describe("verifyLocal with a high-S card signature", () => {
|
|
37
|
+
it("verifies a genuine tap that emits a high-S signature", () => {
|
|
38
|
+
const params = new URLSearchParams(TAP);
|
|
39
|
+
const result = verifyLocal(params);
|
|
40
|
+
expect(result.isVerified).toBe(true);
|
|
41
|
+
expect(result.counter).toBe(15);
|
|
42
|
+
});
|
|
43
|
+
});
|
|
44
|
+
//# sourceMappingURL=low-s-normalization.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"low-s-normalization.test.js","sourceRoot":"","sources":["../../src/__tests__/low-s-normalization.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EACL,uBAAuB,EACvB,wBAAwB,GACzB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,sEAAsE;AACtE,MAAM,GAAG,GAAG;IACV,EAAE,EAAE,8CAA8C;IAClD,CAAC,EAAE,YAAY;IACf,CAAC,EAAE,aAAa;IAChB,CAAC,EAAE,wFAAwF;CAC5F,CAAC;AAEF,SAAS,MAAM,CAAC,GAAe;IAC7B,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;SACtC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;SAC3C,IAAI,CAAC,EAAE,CAAC,CAAC;IACZ,OAAO,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC;AAC5B,CAAC;AAED,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;IACxC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAE7C,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACvD,MAAM,GAAG,GAAG,uBAAuB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC3C,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,mCAAmC;QAE/E,MAAM,UAAU,GAAG,wBAAwB,CAAC,GAAG,CAAC,CAAC;QACjD,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnD,iBAAiB;QACjB,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+DAA+D,EAAE,GAAG,EAAE;QACvE,MAAM,IAAI,GAAG,wBAAwB,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACtE,MAAM,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACnC,MAAM,CAAC,GAAG,EAAE,CAAC,wBAAwB,CAAC,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IACvE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,0CAA0C,EAAE,GAAG,EAAE;IACxD,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;QAC9D,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,GAAG,CAAC,CAAC;QACxC,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;QACnC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metadata-limits.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/metadata-limits.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { describe, expect, it } from "vitest";
|
|
2
|
+
import { MAX_METADATA_NAME_LEN, MAX_METADATA_SYMBOL_LEN, MAX_METADATA_URI_LEN, validateMetadataFields, } from "../instructions/mint";
|
|
3
|
+
describe("validateMetadataFields", () => {
|
|
4
|
+
it("accepts fields at max length", () => {
|
|
5
|
+
expect(() => validateMetadataFields({
|
|
6
|
+
name: "n".repeat(MAX_METADATA_NAME_LEN),
|
|
7
|
+
symbol: "s".repeat(MAX_METADATA_SYMBOL_LEN),
|
|
8
|
+
uri: "u".repeat(MAX_METADATA_URI_LEN),
|
|
9
|
+
})).not.toThrow();
|
|
10
|
+
});
|
|
11
|
+
it("rejects overlong name", () => {
|
|
12
|
+
expect(() => validateMetadataFields({
|
|
13
|
+
name: "n".repeat(MAX_METADATA_NAME_LEN + 1),
|
|
14
|
+
symbol: "NFT",
|
|
15
|
+
uri: "https://example.com/x.json",
|
|
16
|
+
})).toThrow(/Name must be at most/);
|
|
17
|
+
});
|
|
18
|
+
it("rejects overlong symbol", () => {
|
|
19
|
+
expect(() => validateMetadataFields({
|
|
20
|
+
name: "nft",
|
|
21
|
+
symbol: "s".repeat(MAX_METADATA_SYMBOL_LEN + 1),
|
|
22
|
+
uri: "https://example.com/x.json",
|
|
23
|
+
})).toThrow(/Symbol must be at most/);
|
|
24
|
+
});
|
|
25
|
+
it("rejects overlong uri", () => {
|
|
26
|
+
expect(() => validateMetadataFields({
|
|
27
|
+
name: "nft",
|
|
28
|
+
symbol: "NFT",
|
|
29
|
+
uri: "u".repeat(MAX_METADATA_URI_LEN + 1),
|
|
30
|
+
})).toThrow(/URI must be at most/);
|
|
31
|
+
});
|
|
32
|
+
});
|
|
33
|
+
//# sourceMappingURL=metadata-limits.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metadata-limits.test.js","sourceRoot":"","sources":["../../src/__tests__/metadata-limits.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,sBAAsB,CAAC;AAE9B,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;IACtC,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACtC,MAAM,CAAC,GAAG,EAAE,CACV,sBAAsB,CAAC;YACrB,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,qBAAqB,CAAC;YACvC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,uBAAuB,CAAC;YAC3C,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,oBAAoB,CAAC;SACtC,CAAC,CACH,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uBAAuB,EAAE,GAAG,EAAE;QAC/B,MAAM,CAAC,GAAG,EAAE,CACV,sBAAsB,CAAC;YACrB,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,qBAAqB,GAAG,CAAC,CAAC;YAC3C,MAAM,EAAE,KAAK;YACb,GAAG,EAAE,4BAA4B;SAClC,CAAC,CACH,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACjC,MAAM,CAAC,GAAG,EAAE,CACV,sBAAsB,CAAC;YACrB,IAAI,EAAE,KAAK;YACX,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,uBAAuB,GAAG,CAAC,CAAC;YAC/C,GAAG,EAAE,4BAA4B;SAClC,CAAC,CACH,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sBAAsB,EAAE,GAAG,EAAE;QAC9B,MAAM,CAAC,GAAG,EAAE,CACV,sBAAsB,CAAC;YACrB,IAAI,EAAE,KAAK;YACX,MAAM,EAAE,KAAK;YACb,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,oBAAoB,GAAG,CAAC,CAAC;SAC1C,CAAC,CACH,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/dist/consts.d.ts
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { type Address } from "@solana/kit";
|
|
2
|
+
export declare const RP_ID = "revibase.com";
|
|
3
|
+
export declare const TOKEN_2022_PROGRAM_ADDRESS: Address<"TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb">;
|
|
4
|
+
export declare const SECP256R1_PROGRAM_ADDRESS: Address<"Secp256r1SigVerify1111111111111111111111111">;
|
|
5
|
+
export declare const TRANSFER_HOOK_PROGRAM_ADDRESS: Address<"FCBG7gTThZ9hg4axra4UqWBerBhdjhdBLqxD1jicg84G">;
|
|
6
|
+
export declare const SLOT_HASHES_SYSVAR_ADDRESS: Address<"SysvarS1otHashes111111111111111111111111111">;
|
|
7
|
+
export declare const TRANSFER_ACTION_BYTES: Uint8Array<ArrayBuffer>;
|
|
8
|
+
export declare const METADATA_KEY_DOMAIN_CONFIG = "dc";
|
|
9
|
+
export declare const METADATA_KEY_ROYALTY_OWNER = "ro";
|
|
10
|
+
export declare const METADATA_KEY_SECP256R1 = "s";
|
|
11
|
+
export declare const METADATA_KEY_TRANSFER_PRICE = "p";
|
|
12
|
+
export declare const METADATA_KEY_PAYMENT_TOKEN_MINT = "m";
|
|
13
|
+
export declare const TOKEN_GROUP_MEMBER_EXTENSION_TYPE = 108;
|
|
14
|
+
export declare const TOKEN_METADATA_EXTENSION_TYPE = 19;
|
|
15
|
+
export declare const COMPRESSED_PUBKEY_SIZE = 33;
|
|
16
|
+
export declare const SIGNATURE_SIZE = 64;
|
|
17
|
+
export declare const SIGNATURE_OFFSETS_SIZE = 14;
|
|
18
|
+
export declare const SIGNATURE_OFFSETS_START = 2;
|
|
19
|
+
//# sourceMappingURL=consts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"consts.d.ts","sourceRoot":"","sources":["../src/consts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,KAAK,OAAO,EAAE,MAAM,aAAa,CAAC;AAEpD,eAAO,MAAM,KAAK,iBAAiB,CAAC;AAEpC,eAAO,MAAM,0BAA0B,wDAEtC,CAAC;AAEF,eAAO,MAAM,yBAAyB,wDAErC,CAAC;AAEF,eAAO,MAAM,6BAA6B,yDAEzC,CAAC;AAEF,eAAO,MAAM,0BAA0B,wDAEtC,CAAC;AAEF,eAAO,MAAM,qBAAqB,yBAAuC,CAAC;AAE1E,eAAO,MAAM,0BAA0B,OAAO,CAAC;AAC/C,eAAO,MAAM,0BAA0B,OAAO,CAAC;AAC/C,eAAO,MAAM,sBAAsB,MAAM,CAAC;AAC1C,eAAO,MAAM,2BAA2B,MAAM,CAAC;AAC/C,eAAO,MAAM,+BAA+B,MAAM,CAAC;AAEnD,eAAO,MAAM,iCAAiC,MAAM,CAAC;AACrD,eAAO,MAAM,6BAA6B,KAAK,CAAC;AAEhD,eAAO,MAAM,sBAAsB,KAAK,CAAC;AACzC,eAAO,MAAM,cAAc,KAAK,CAAC;AACjC,eAAO,MAAM,sBAAsB,KAAK,CAAC;AACzC,eAAO,MAAM,uBAAuB,IAAI,CAAC"}
|
package/dist/consts.js
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { address } from "@solana/kit";
|
|
2
|
+
export const RP_ID = "revibase.com";
|
|
3
|
+
export const TOKEN_2022_PROGRAM_ADDRESS = address("TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb");
|
|
4
|
+
export const SECP256R1_PROGRAM_ADDRESS = address("Secp256r1SigVerify1111111111111111111111111");
|
|
5
|
+
export const TRANSFER_HOOK_PROGRAM_ADDRESS = address("FCBG7gTThZ9hg4axra4UqWBerBhdjhdBLqxD1jicg84G");
|
|
6
|
+
export const SLOT_HASHES_SYSVAR_ADDRESS = address("SysvarS1otHashes111111111111111111111111111");
|
|
7
|
+
export const TRANSFER_ACTION_BYTES = new TextEncoder().encode("transfer");
|
|
8
|
+
export const METADATA_KEY_DOMAIN_CONFIG = "dc";
|
|
9
|
+
export const METADATA_KEY_ROYALTY_OWNER = "ro";
|
|
10
|
+
export const METADATA_KEY_SECP256R1 = "s";
|
|
11
|
+
export const METADATA_KEY_TRANSFER_PRICE = "p";
|
|
12
|
+
export const METADATA_KEY_PAYMENT_TOKEN_MINT = "m";
|
|
13
|
+
export const TOKEN_GROUP_MEMBER_EXTENSION_TYPE = 108;
|
|
14
|
+
export const TOKEN_METADATA_EXTENSION_TYPE = 19;
|
|
15
|
+
export const COMPRESSED_PUBKEY_SIZE = 33;
|
|
16
|
+
export const SIGNATURE_SIZE = 64;
|
|
17
|
+
export const SIGNATURE_OFFSETS_SIZE = 14;
|
|
18
|
+
export const SIGNATURE_OFFSETS_START = 2;
|
|
19
|
+
//# sourceMappingURL=consts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"consts.js","sourceRoot":"","sources":["../src/consts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAgB,MAAM,aAAa,CAAC;AAEpD,MAAM,CAAC,MAAM,KAAK,GAAG,cAAc,CAAC;AAEpC,MAAM,CAAC,MAAM,0BAA0B,GAAG,OAAO,CAC/C,6CAA6C,CAC9C,CAAC;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAAG,OAAO,CAC9C,6CAA6C,CAC9C,CAAC;AAEF,MAAM,CAAC,MAAM,6BAA6B,GAAG,OAAO,CAClD,8CAA8C,CAC/C,CAAC;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAAG,OAAO,CAC/C,6CAA6C,CAC9C,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AAE1E,MAAM,CAAC,MAAM,0BAA0B,GAAG,IAAI,CAAC;AAC/C,MAAM,CAAC,MAAM,0BAA0B,GAAG,IAAI,CAAC;AAC/C,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAG,CAAC;AAC1C,MAAM,CAAC,MAAM,2BAA2B,GAAG,GAAG,CAAC;AAC/C,MAAM,CAAC,MAAM,+BAA+B,GAAG,GAAG,CAAC;AAEnD,MAAM,CAAC,MAAM,iCAAiC,GAAG,GAAG,CAAC;AACrD,MAAM,CAAC,MAAM,6BAA6B,GAAG,EAAE,CAAC;AAEhD,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAE,CAAC;AACzC,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,CAAC;AACjC,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAE,CAAC;AACzC,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { fetchEncodedAccount, fetchEncodedAccounts, type Account, type Address, type Codec, type Decoder, type EncodedAccount, type Encoder, type FetchAccountConfig, type FetchAccountsConfig, type MaybeAccount, type MaybeEncodedAccount, type Option, type OptionOrNullable, type ReadonlyUint8Array } from "@solana/kit";
|
|
2
|
+
export declare const ASSET_DISCRIMINATOR: ReadonlyUint8Array;
|
|
3
|
+
export declare function getAssetDiscriminatorBytes(): ReadonlyUint8Array;
|
|
4
|
+
export type Asset = {
|
|
5
|
+
discriminator: ReadonlyUint8Array;
|
|
6
|
+
mint: Address;
|
|
7
|
+
owner: Address;
|
|
8
|
+
domainConfig: Address;
|
|
9
|
+
lastTransferSlot: bigint;
|
|
10
|
+
isLocked: Option<boolean>;
|
|
11
|
+
};
|
|
12
|
+
export type AssetArgs = {
|
|
13
|
+
mint: Address;
|
|
14
|
+
owner: Address;
|
|
15
|
+
domainConfig: Address;
|
|
16
|
+
lastTransferSlot: number | bigint;
|
|
17
|
+
isLocked: OptionOrNullable<boolean>;
|
|
18
|
+
};
|
|
19
|
+
export declare function getAssetEncoder(): Encoder<AssetArgs>;
|
|
20
|
+
export declare function getAssetDecoder(): Decoder<Asset>;
|
|
21
|
+
export declare function getAssetCodec(): Codec<AssetArgs, Asset>;
|
|
22
|
+
export declare function decodeAsset<TAddress extends string = string>(encodedAccount: EncodedAccount<TAddress>): Account<Asset, TAddress>;
|
|
23
|
+
export declare function decodeAsset<TAddress extends string = string>(encodedAccount: MaybeEncodedAccount<TAddress>): MaybeAccount<Asset, TAddress>;
|
|
24
|
+
export declare function fetchAsset<TAddress extends string = string>(rpc: Parameters<typeof fetchEncodedAccount>[0], address: Address<TAddress>, config?: FetchAccountConfig): Promise<Account<Asset, TAddress>>;
|
|
25
|
+
export declare function fetchMaybeAsset<TAddress extends string = string>(rpc: Parameters<typeof fetchEncodedAccount>[0], address: Address<TAddress>, config?: FetchAccountConfig): Promise<MaybeAccount<Asset, TAddress>>;
|
|
26
|
+
export declare function fetchAllAsset(rpc: Parameters<typeof fetchEncodedAccounts>[0], addresses: Array<Address>, config?: FetchAccountsConfig): Promise<Account<Asset>[]>;
|
|
27
|
+
export declare function fetchAllMaybeAsset(rpc: Parameters<typeof fetchEncodedAccounts>[0], addresses: Array<Address>, config?: FetchAccountsConfig): Promise<MaybeAccount<Asset>[]>;
|
|
28
|
+
//# sourceMappingURL=asset.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"asset.d.ts","sourceRoot":"","sources":["../../../src/generated/accounts/asset.ts"],"names":[],"mappings":"AAQA,OAAO,EAKL,mBAAmB,EACnB,oBAAoB,EAgBpB,KAAK,OAAO,EACZ,KAAK,OAAO,EACZ,KAAK,KAAK,EACV,KAAK,OAAO,EACZ,KAAK,cAAc,EACnB,KAAK,OAAO,EACZ,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,YAAY,EACjB,KAAK,mBAAmB,EACxB,KAAK,MAAM,EACX,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACxB,MAAM,aAAa,CAAC;AAErB,eAAO,MAAM,mBAAmB,EAAE,kBAEhC,CAAC;AAEH,wBAAgB,0BAA0B,IAAI,kBAAkB,CAE/D;AAED,MAAM,MAAM,KAAK,GAAG;IAClB,aAAa,EAAE,kBAAkB,CAAC;IAClC,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,OAAO,CAAC;IACf,YAAY,EAAE,OAAO,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,OAAO,CAAC;IACf,YAAY,EAAE,OAAO,CAAC;IACtB,gBAAgB,EAAE,MAAM,GAAG,MAAM,CAAC;IAClC,QAAQ,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC;CACrC,CAAC;AAGF,wBAAgB,eAAe,IAAI,OAAO,CAAC,SAAS,CAAC,CAYpD;AAGD,wBAAgB,eAAe,IAAI,OAAO,CAAC,KAAK,CAAC,CAShD;AAGD,wBAAgB,aAAa,IAAI,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,CAEvD;AAED,wBAAgB,WAAW,CAAC,QAAQ,SAAS,MAAM,GAAG,MAAM,EAC1D,cAAc,EAAE,cAAc,CAAC,QAAQ,CAAC,GACvC,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;AAC5B,wBAAgB,WAAW,CAAC,QAAQ,SAAS,MAAM,GAAG,MAAM,EAC1D,cAAc,EAAE,mBAAmB,CAAC,QAAQ,CAAC,GAC5C,YAAY,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;AAUjC,wBAAsB,UAAU,CAAC,QAAQ,SAAS,MAAM,GAAG,MAAM,EAC/D,GAAG,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC,CAAC,CAAC,EAC9C,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,EAC1B,MAAM,CAAC,EAAE,kBAAkB,GAC1B,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAInC;AAED,wBAAsB,eAAe,CAAC,QAAQ,SAAS,MAAM,GAAG,MAAM,EACpE,GAAG,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC,CAAC,CAAC,EAC9C,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,EAC1B,MAAM,CAAC,EAAE,kBAAkB,GAC1B,OAAO,CAAC,YAAY,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAGxC;AAED,wBAAsB,aAAa,CACjC,GAAG,EAAE,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC,CAAC,CAAC,EAC/C,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,EACzB,MAAM,CAAC,EAAE,mBAAmB,GAC3B,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAI3B;AAED,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC,CAAC,CAAC,EAC/C,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,EACzB,MAAM,CAAC,EAAE,mBAAmB,GAC3B,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,CAGhC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { assertAccountExists, assertAccountsExist, combineCodec, decodeAccount, fetchEncodedAccount, fetchEncodedAccounts, fixDecoderSize, fixEncoderSize, getAddressDecoder, getAddressEncoder, getBooleanDecoder, getBooleanEncoder, getBytesDecoder, getBytesEncoder, getOptionDecoder, getOptionEncoder, getStructDecoder, getStructEncoder, getU64Decoder, getU64Encoder, transformEncoder, } from "@solana/kit";
|
|
2
|
+
export const ASSET_DISCRIMINATOR = new Uint8Array([
|
|
3
|
+
234, 180, 241, 252, 139, 224, 160, 8,
|
|
4
|
+
]);
|
|
5
|
+
export function getAssetDiscriminatorBytes() {
|
|
6
|
+
return fixEncoderSize(getBytesEncoder(), 8).encode(ASSET_DISCRIMINATOR);
|
|
7
|
+
}
|
|
8
|
+
export function getAssetEncoder() {
|
|
9
|
+
return transformEncoder(getStructEncoder([
|
|
10
|
+
["discriminator", fixEncoderSize(getBytesEncoder(), 8)],
|
|
11
|
+
["mint", getAddressEncoder()],
|
|
12
|
+
["owner", getAddressEncoder()],
|
|
13
|
+
["domainConfig", getAddressEncoder()],
|
|
14
|
+
["lastTransferSlot", getU64Encoder()],
|
|
15
|
+
["isLocked", getOptionEncoder(getBooleanEncoder())],
|
|
16
|
+
]), (value) => ({ ...value, discriminator: ASSET_DISCRIMINATOR }));
|
|
17
|
+
}
|
|
18
|
+
export function getAssetDecoder() {
|
|
19
|
+
return getStructDecoder([
|
|
20
|
+
["discriminator", fixDecoderSize(getBytesDecoder(), 8)],
|
|
21
|
+
["mint", getAddressDecoder()],
|
|
22
|
+
["owner", getAddressDecoder()],
|
|
23
|
+
["domainConfig", getAddressDecoder()],
|
|
24
|
+
["lastTransferSlot", getU64Decoder()],
|
|
25
|
+
["isLocked", getOptionDecoder(getBooleanDecoder())],
|
|
26
|
+
]);
|
|
27
|
+
}
|
|
28
|
+
export function getAssetCodec() {
|
|
29
|
+
return combineCodec(getAssetEncoder(), getAssetDecoder());
|
|
30
|
+
}
|
|
31
|
+
export function decodeAsset(encodedAccount) {
|
|
32
|
+
return decodeAccount(encodedAccount, getAssetDecoder());
|
|
33
|
+
}
|
|
34
|
+
export async function fetchAsset(rpc, address, config) {
|
|
35
|
+
const maybeAccount = await fetchMaybeAsset(rpc, address, config);
|
|
36
|
+
assertAccountExists(maybeAccount);
|
|
37
|
+
return maybeAccount;
|
|
38
|
+
}
|
|
39
|
+
export async function fetchMaybeAsset(rpc, address, config) {
|
|
40
|
+
const maybeAccount = await fetchEncodedAccount(rpc, address, config);
|
|
41
|
+
return decodeAsset(maybeAccount);
|
|
42
|
+
}
|
|
43
|
+
export async function fetchAllAsset(rpc, addresses, config) {
|
|
44
|
+
const maybeAccounts = await fetchAllMaybeAsset(rpc, addresses, config);
|
|
45
|
+
assertAccountsExist(maybeAccounts);
|
|
46
|
+
return maybeAccounts;
|
|
47
|
+
}
|
|
48
|
+
export async function fetchAllMaybeAsset(rpc, addresses, config) {
|
|
49
|
+
const maybeAccounts = await fetchEncodedAccounts(rpc, addresses, config);
|
|
50
|
+
return maybeAccounts.map((maybeAccount) => decodeAsset(maybeAccount));
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=asset.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"asset.js","sourceRoot":"","sources":["../../../src/generated/accounts/asset.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
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 { fetchEncodedAccount, fetchEncodedAccounts, type Account, type Address, type EncodedAccount, type FetchAccountConfig, type FetchAccountsConfig, type FixedSizeCodec, type FixedSizeDecoder, type FixedSizeEncoder, type MaybeAccount, type MaybeEncodedAccount, type ReadonlyUint8Array } from "@solana/kit";
|
|
9
|
+
export declare const CARD_INSTANCE_DISCRIMINATOR: ReadonlyUint8Array;
|
|
10
|
+
export declare function getCardInstanceDiscriminatorBytes(): ReadonlyUint8Array;
|
|
11
|
+
export type CardInstance = {
|
|
12
|
+
discriminator: ReadonlyUint8Array;
|
|
13
|
+
mint: Address;
|
|
14
|
+
owner: Address;
|
|
15
|
+
lastTransferSlot: bigint;
|
|
16
|
+
};
|
|
17
|
+
export type CardInstanceArgs = {
|
|
18
|
+
mint: Address;
|
|
19
|
+
owner: Address;
|
|
20
|
+
lastTransferSlot: number | bigint;
|
|
21
|
+
};
|
|
22
|
+
/** Gets the encoder for {@link CardInstanceArgs} account data. */
|
|
23
|
+
export declare function getCardInstanceEncoder(): FixedSizeEncoder<CardInstanceArgs>;
|
|
24
|
+
/** Gets the decoder for {@link CardInstance} account data. */
|
|
25
|
+
export declare function getCardInstanceDecoder(): FixedSizeDecoder<CardInstance>;
|
|
26
|
+
/** Gets the codec for {@link CardInstance} account data. */
|
|
27
|
+
export declare function getCardInstanceCodec(): FixedSizeCodec<CardInstanceArgs, CardInstance>;
|
|
28
|
+
export declare function decodeCardInstance<TAddress extends string = string>(encodedAccount: EncodedAccount<TAddress>): Account<CardInstance, TAddress>;
|
|
29
|
+
export declare function decodeCardInstance<TAddress extends string = string>(encodedAccount: MaybeEncodedAccount<TAddress>): MaybeAccount<CardInstance, TAddress>;
|
|
30
|
+
export declare function fetchCardInstance<TAddress extends string = string>(rpc: Parameters<typeof fetchEncodedAccount>[0], address: Address<TAddress>, config?: FetchAccountConfig): Promise<Account<CardInstance, TAddress>>;
|
|
31
|
+
export declare function fetchMaybeCardInstance<TAddress extends string = string>(rpc: Parameters<typeof fetchEncodedAccount>[0], address: Address<TAddress>, config?: FetchAccountConfig): Promise<MaybeAccount<CardInstance, TAddress>>;
|
|
32
|
+
export declare function fetchAllCardInstance(rpc: Parameters<typeof fetchEncodedAccounts>[0], addresses: Array<Address>, config?: FetchAccountsConfig): Promise<Account<CardInstance>[]>;
|
|
33
|
+
export declare function fetchAllMaybeCardInstance(rpc: Parameters<typeof fetchEncodedAccounts>[0], addresses: Array<Address>, config?: FetchAccountsConfig): Promise<MaybeAccount<CardInstance>[]>;
|
|
34
|
+
export declare function getCardInstanceSize(): number;
|
|
35
|
+
//# sourceMappingURL=cardInstance.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cardInstance.d.ts","sourceRoot":"","sources":["../../../src/generated/accounts/cardInstance.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAKL,mBAAmB,EACnB,oBAAoB,EAYpB,KAAK,OAAO,EACZ,KAAK,OAAO,EACZ,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACxB,MAAM,aAAa,CAAC;AAErB,eAAO,MAAM,2BAA2B,EAAE,kBAExC,CAAC;AAEH,wBAAgB,iCAAiC,IAAI,kBAAkB,CAItE;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,aAAa,EAAE,kBAAkB,CAAC;IAClC,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,OAAO,CAAC;IACf,gBAAgB,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,OAAO,CAAC;IACf,gBAAgB,EAAE,MAAM,GAAG,MAAM,CAAC;CACnC,CAAC;AAEF,kEAAkE;AAClE,wBAAgB,sBAAsB,IAAI,gBAAgB,CAAC,gBAAgB,CAAC,CAU3E;AAED,8DAA8D;AAC9D,wBAAgB,sBAAsB,IAAI,gBAAgB,CAAC,YAAY,CAAC,CAOvE;AAED,4DAA4D;AAC5D,wBAAgB,oBAAoB,IAAI,cAAc,CACpD,gBAAgB,EAChB,YAAY,CACb,CAEA;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,SAAS,MAAM,GAAG,MAAM,EACjE,cAAc,EAAE,cAAc,CAAC,QAAQ,CAAC,GACvC,OAAO,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;AACnC,wBAAgB,kBAAkB,CAAC,QAAQ,SAAS,MAAM,GAAG,MAAM,EACjE,cAAc,EAAE,mBAAmB,CAAC,QAAQ,CAAC,GAC5C,YAAY,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;AAUxC,wBAAsB,iBAAiB,CAAC,QAAQ,SAAS,MAAM,GAAG,MAAM,EACtE,GAAG,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC,CAAC,CAAC,EAC9C,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,EAC1B,MAAM,CAAC,EAAE,kBAAkB,GAC1B,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC,CAI1C;AAED,wBAAsB,sBAAsB,CAAC,QAAQ,SAAS,MAAM,GAAG,MAAM,EAC3E,GAAG,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC,CAAC,CAAC,EAC9C,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,EAC1B,MAAM,CAAC,EAAE,kBAAkB,GAC1B,OAAO,CAAC,YAAY,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC,CAG/C;AAED,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC,CAAC,CAAC,EAC/C,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,EACzB,MAAM,CAAC,EAAE,mBAAmB,GAC3B,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,CAIlC;AAED,wBAAsB,yBAAyB,CAC7C,GAAG,EAAE,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC,CAAC,CAAC,EAC/C,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,EACzB,MAAM,CAAC,EAAE,mBAAmB,GAC3B,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC,EAAE,CAAC,CAGvC;AAED,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C"}
|
|
@@ -0,0 +1,61 @@
|
|
|
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 { assertAccountExists, assertAccountsExist, combineCodec, decodeAccount, fetchEncodedAccount, fetchEncodedAccounts, fixDecoderSize, fixEncoderSize, getAddressDecoder, getAddressEncoder, getBytesDecoder, getBytesEncoder, getStructDecoder, getStructEncoder, getU64Decoder, getU64Encoder, transformEncoder, } from "@solana/kit";
|
|
9
|
+
export const CARD_INSTANCE_DISCRIMINATOR = new Uint8Array([
|
|
10
|
+
250, 165, 184, 218, 79, 217, 254, 165,
|
|
11
|
+
]);
|
|
12
|
+
export function getCardInstanceDiscriminatorBytes() {
|
|
13
|
+
return fixEncoderSize(getBytesEncoder(), 8).encode(CARD_INSTANCE_DISCRIMINATOR);
|
|
14
|
+
}
|
|
15
|
+
/** Gets the encoder for {@link CardInstanceArgs} account data. */
|
|
16
|
+
export function getCardInstanceEncoder() {
|
|
17
|
+
return transformEncoder(getStructEncoder([
|
|
18
|
+
["discriminator", fixEncoderSize(getBytesEncoder(), 8)],
|
|
19
|
+
["mint", getAddressEncoder()],
|
|
20
|
+
["owner", getAddressEncoder()],
|
|
21
|
+
["lastTransferSlot", getU64Encoder()],
|
|
22
|
+
]), (value) => ({ ...value, discriminator: CARD_INSTANCE_DISCRIMINATOR }));
|
|
23
|
+
}
|
|
24
|
+
/** Gets the decoder for {@link CardInstance} account data. */
|
|
25
|
+
export function getCardInstanceDecoder() {
|
|
26
|
+
return getStructDecoder([
|
|
27
|
+
["discriminator", fixDecoderSize(getBytesDecoder(), 8)],
|
|
28
|
+
["mint", getAddressDecoder()],
|
|
29
|
+
["owner", getAddressDecoder()],
|
|
30
|
+
["lastTransferSlot", getU64Decoder()],
|
|
31
|
+
]);
|
|
32
|
+
}
|
|
33
|
+
/** Gets the codec for {@link CardInstance} account data. */
|
|
34
|
+
export function getCardInstanceCodec() {
|
|
35
|
+
return combineCodec(getCardInstanceEncoder(), getCardInstanceDecoder());
|
|
36
|
+
}
|
|
37
|
+
export function decodeCardInstance(encodedAccount) {
|
|
38
|
+
return decodeAccount(encodedAccount, getCardInstanceDecoder());
|
|
39
|
+
}
|
|
40
|
+
export async function fetchCardInstance(rpc, address, config) {
|
|
41
|
+
const maybeAccount = await fetchMaybeCardInstance(rpc, address, config);
|
|
42
|
+
assertAccountExists(maybeAccount);
|
|
43
|
+
return maybeAccount;
|
|
44
|
+
}
|
|
45
|
+
export async function fetchMaybeCardInstance(rpc, address, config) {
|
|
46
|
+
const maybeAccount = await fetchEncodedAccount(rpc, address, config);
|
|
47
|
+
return decodeCardInstance(maybeAccount);
|
|
48
|
+
}
|
|
49
|
+
export async function fetchAllCardInstance(rpc, addresses, config) {
|
|
50
|
+
const maybeAccounts = await fetchAllMaybeCardInstance(rpc, addresses, config);
|
|
51
|
+
assertAccountsExist(maybeAccounts);
|
|
52
|
+
return maybeAccounts;
|
|
53
|
+
}
|
|
54
|
+
export async function fetchAllMaybeCardInstance(rpc, addresses, config) {
|
|
55
|
+
const maybeAccounts = await fetchEncodedAccounts(rpc, addresses, config);
|
|
56
|
+
return maybeAccounts.map((maybeAccount) => decodeCardInstance(maybeAccount));
|
|
57
|
+
}
|
|
58
|
+
export function getCardInstanceSize() {
|
|
59
|
+
return 80;
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=cardInstance.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cardInstance.js","sourceRoot":"","sources":["../../../src/generated/accounts/cardInstance.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { fetchEncodedAccount, fetchEncodedAccounts, type Account, type Address, type Codec, type Decoder, type EncodedAccount, type Encoder, type FetchAccountConfig, type FetchAccountsConfig, type MaybeAccount, type MaybeEncodedAccount, type ReadonlyUint8Array } from "@solana/kit";
|
|
2
|
+
export declare const DOMAIN_CONFIG_DISCRIMINATOR: ReadonlyUint8Array;
|
|
3
|
+
export declare function getDomainConfigDiscriminatorBytes(): ReadonlyUint8Array;
|
|
4
|
+
export type DomainConfig = {
|
|
5
|
+
discriminator: ReadonlyUint8Array;
|
|
6
|
+
authority: Address;
|
|
7
|
+
rpIdHash: ReadonlyUint8Array;
|
|
8
|
+
bump: number;
|
|
9
|
+
rpId: string;
|
|
10
|
+
origins: Array<string>;
|
|
11
|
+
};
|
|
12
|
+
export type DomainConfigArgs = {
|
|
13
|
+
authority: Address;
|
|
14
|
+
rpIdHash: ReadonlyUint8Array;
|
|
15
|
+
bump: number;
|
|
16
|
+
rpId: string;
|
|
17
|
+
origins: Array<string>;
|
|
18
|
+
};
|
|
19
|
+
export declare function getDomainConfigEncoder(): Encoder<DomainConfigArgs>;
|
|
20
|
+
export declare function getDomainConfigDecoder(): Decoder<DomainConfig>;
|
|
21
|
+
export declare function getDomainConfigCodec(): Codec<DomainConfigArgs, DomainConfig>;
|
|
22
|
+
export declare function decodeDomainConfig<TAddress extends string = string>(encodedAccount: EncodedAccount<TAddress>): Account<DomainConfig, TAddress>;
|
|
23
|
+
export declare function decodeDomainConfig<TAddress extends string = string>(encodedAccount: MaybeEncodedAccount<TAddress>): MaybeAccount<DomainConfig, TAddress>;
|
|
24
|
+
export declare function fetchDomainConfig<TAddress extends string = string>(rpc: Parameters<typeof fetchEncodedAccount>[0], address: Address<TAddress>, config?: FetchAccountConfig): Promise<Account<DomainConfig, TAddress>>;
|
|
25
|
+
export declare function fetchMaybeDomainConfig<TAddress extends string = string>(rpc: Parameters<typeof fetchEncodedAccount>[0], address: Address<TAddress>, config?: FetchAccountConfig): Promise<MaybeAccount<DomainConfig, TAddress>>;
|
|
26
|
+
export declare function fetchAllDomainConfig(rpc: Parameters<typeof fetchEncodedAccounts>[0], addresses: Array<Address>, config?: FetchAccountsConfig): Promise<Account<DomainConfig>[]>;
|
|
27
|
+
export declare function fetchAllMaybeDomainConfig(rpc: Parameters<typeof fetchEncodedAccounts>[0], addresses: Array<Address>, config?: FetchAccountsConfig): Promise<MaybeAccount<DomainConfig>[]>;
|
|
28
|
+
//# sourceMappingURL=domainConfig.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"domainConfig.d.ts","sourceRoot":"","sources":["../../../src/generated/accounts/domainConfig.ts"],"names":[],"mappings":"AAQA,OAAO,EAOL,mBAAmB,EACnB,oBAAoB,EAkBpB,KAAK,OAAO,EACZ,KAAK,OAAO,EACZ,KAAK,KAAK,EACV,KAAK,OAAO,EACZ,KAAK,cAAc,EACnB,KAAK,OAAO,EACZ,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,YAAY,EACjB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACxB,MAAM,aAAa,CAAC;AAErB,eAAO,MAAM,2BAA2B,EAAE,kBAExC,CAAC;AAEH,wBAAgB,iCAAiC,IAAI,kBAAkB,CAItE;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,aAAa,EAAE,kBAAkB,CAAC;IAClC,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;CACxB,CAAC;AAGF,wBAAgB,sBAAsB,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAiBlE;AAGD,wBAAgB,sBAAsB,IAAI,OAAO,CAAC,YAAY,CAAC,CAY9D;AAGD,wBAAgB,oBAAoB,IAAI,KAAK,CAAC,gBAAgB,EAAE,YAAY,CAAC,CAE5E;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,SAAS,MAAM,GAAG,MAAM,EACjE,cAAc,EAAE,cAAc,CAAC,QAAQ,CAAC,GACvC,OAAO,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;AACnC,wBAAgB,kBAAkB,CAAC,QAAQ,SAAS,MAAM,GAAG,MAAM,EACjE,cAAc,EAAE,mBAAmB,CAAC,QAAQ,CAAC,GAC5C,YAAY,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;AAUxC,wBAAsB,iBAAiB,CAAC,QAAQ,SAAS,MAAM,GAAG,MAAM,EACtE,GAAG,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC,CAAC,CAAC,EAC9C,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,EAC1B,MAAM,CAAC,EAAE,kBAAkB,GAC1B,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC,CAI1C;AAED,wBAAsB,sBAAsB,CAAC,QAAQ,SAAS,MAAM,GAAG,MAAM,EAC3E,GAAG,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC,CAAC,CAAC,EAC9C,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,EAC1B,MAAM,CAAC,EAAE,kBAAkB,GAC1B,OAAO,CAAC,YAAY,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC,CAG/C;AAED,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC,CAAC,CAAC,EAC/C,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,EACzB,MAAM,CAAC,EAAE,mBAAmB,GAC3B,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,CAIlC;AAED,wBAAsB,yBAAyB,CAC7C,GAAG,EAAE,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC,CAAC,CAAC,EAC/C,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,EACzB,MAAM,CAAC,EAAE,mBAAmB,GAC3B,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC,EAAE,CAAC,CAGvC"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { addDecoderSizePrefix, addEncoderSizePrefix, assertAccountExists, assertAccountsExist, combineCodec, decodeAccount, fetchEncodedAccount, fetchEncodedAccounts, fixDecoderSize, fixEncoderSize, getAddressDecoder, getAddressEncoder, getArrayDecoder, getArrayEncoder, getBytesDecoder, getBytesEncoder, getStructDecoder, getStructEncoder, getU32Decoder, getU32Encoder, getU8Decoder, getU8Encoder, getUtf8Decoder, getUtf8Encoder, transformEncoder, } from "@solana/kit";
|
|
2
|
+
export const DOMAIN_CONFIG_DISCRIMINATOR = new Uint8Array([
|
|
3
|
+
201, 232, 212, 229, 59, 241, 106, 197,
|
|
4
|
+
]);
|
|
5
|
+
export function getDomainConfigDiscriminatorBytes() {
|
|
6
|
+
return fixEncoderSize(getBytesEncoder(), 8).encode(DOMAIN_CONFIG_DISCRIMINATOR);
|
|
7
|
+
}
|
|
8
|
+
export function getDomainConfigEncoder() {
|
|
9
|
+
return transformEncoder(getStructEncoder([
|
|
10
|
+
["discriminator", fixEncoderSize(getBytesEncoder(), 8)],
|
|
11
|
+
["authority", getAddressEncoder()],
|
|
12
|
+
["rpIdHash", fixEncoderSize(getBytesEncoder(), 32)],
|
|
13
|
+
["bump", getU8Encoder()],
|
|
14
|
+
["rpId", addEncoderSizePrefix(getUtf8Encoder(), getU32Encoder())],
|
|
15
|
+
[
|
|
16
|
+
"origins",
|
|
17
|
+
getArrayEncoder(addEncoderSizePrefix(getUtf8Encoder(), getU32Encoder())),
|
|
18
|
+
],
|
|
19
|
+
]), (value) => ({ ...value, discriminator: DOMAIN_CONFIG_DISCRIMINATOR }));
|
|
20
|
+
}
|
|
21
|
+
export function getDomainConfigDecoder() {
|
|
22
|
+
return getStructDecoder([
|
|
23
|
+
["discriminator", fixDecoderSize(getBytesDecoder(), 8)],
|
|
24
|
+
["authority", getAddressDecoder()],
|
|
25
|
+
["rpIdHash", fixDecoderSize(getBytesDecoder(), 32)],
|
|
26
|
+
["bump", getU8Decoder()],
|
|
27
|
+
["rpId", addDecoderSizePrefix(getUtf8Decoder(), getU32Decoder())],
|
|
28
|
+
[
|
|
29
|
+
"origins",
|
|
30
|
+
getArrayDecoder(addDecoderSizePrefix(getUtf8Decoder(), getU32Decoder())),
|
|
31
|
+
],
|
|
32
|
+
]);
|
|
33
|
+
}
|
|
34
|
+
export function getDomainConfigCodec() {
|
|
35
|
+
return combineCodec(getDomainConfigEncoder(), getDomainConfigDecoder());
|
|
36
|
+
}
|
|
37
|
+
export function decodeDomainConfig(encodedAccount) {
|
|
38
|
+
return decodeAccount(encodedAccount, getDomainConfigDecoder());
|
|
39
|
+
}
|
|
40
|
+
export async function fetchDomainConfig(rpc, address, config) {
|
|
41
|
+
const maybeAccount = await fetchMaybeDomainConfig(rpc, address, config);
|
|
42
|
+
assertAccountExists(maybeAccount);
|
|
43
|
+
return maybeAccount;
|
|
44
|
+
}
|
|
45
|
+
export async function fetchMaybeDomainConfig(rpc, address, config) {
|
|
46
|
+
const maybeAccount = await fetchEncodedAccount(rpc, address, config);
|
|
47
|
+
return decodeDomainConfig(maybeAccount);
|
|
48
|
+
}
|
|
49
|
+
export async function fetchAllDomainConfig(rpc, addresses, config) {
|
|
50
|
+
const maybeAccounts = await fetchAllMaybeDomainConfig(rpc, addresses, config);
|
|
51
|
+
assertAccountsExist(maybeAccounts);
|
|
52
|
+
return maybeAccounts;
|
|
53
|
+
}
|
|
54
|
+
export async function fetchAllMaybeDomainConfig(rpc, addresses, config) {
|
|
55
|
+
const maybeAccounts = await fetchEncodedAccounts(rpc, addresses, config);
|
|
56
|
+
return maybeAccounts.map((maybeAccount) => decodeDomainConfig(maybeAccount));
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=domainConfig.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"domainConfig.js","sourceRoot":"","sources":["../../../src/generated/accounts/domainConfig.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/generated/accounts/index.ts"],"names":[],"mappings":"AAQA,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/generated/accounts/index.ts"],"names":[],"mappings":"AAQA,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC"}
|