generated from codama-idl/renderers-demo
-
Notifications
You must be signed in to change notification settings - Fork 6
Expand file tree
/
Copy pathwenTransferGuard.ts
More file actions
73 lines (66 loc) · 4.22 KB
/
wenTransferGuard.ts
File metadata and controls
73 lines (66 loc) · 4.22 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
/**
* This code was AUTOGENERATED using the Codama library.
* Please DO NOT EDIT THIS FILE, instead use visitors
* to add features, then rerun Codama to update it.
*
* @see https://github.com/codama-idl/codama
*/
import {
isProgramError,
type Address,
type SOLANA_ERROR__INSTRUCTION_ERROR__CUSTOM,
type SolanaError,
} from '@solana/kit';
import { WEN_TRANSFER_GUARD_PROGRAM_ADDRESS } from '../programs';
/** CpiRuleEnforcementFailed: Cpi Rule Enforcement Failed */
export const WEN_TRANSFER_GUARD_ERROR__CPI_RULE_ENFORCEMENT_FAILED = 0x1770; // 6000
/** TransferAmountRuleEnforceFailed: Transfer Amount Rule Enforce Failed */
export const WEN_TRANSFER_GUARD_ERROR__TRANSFER_AMOUNT_RULE_ENFORCE_FAILED = 0x1771; // 6001
/** MetadataFieldDoesNotExist: Metadata Field Does Not Exist */
export const WEN_TRANSFER_GUARD_ERROR__METADATA_FIELD_DOES_NOT_EXIST = 0x1772; // 6002
/** MetadataFieldDoesNotPass: Metadata Field Does Not Pass */
export const WEN_TRANSFER_GUARD_ERROR__METADATA_FIELD_DOES_NOT_PASS = 0x1773; // 6003
/** GuardTokenAmountShouldBeAtLeastOne: Guard token amount should be at least 1 */
export const WEN_TRANSFER_GUARD_ERROR__GUARD_TOKEN_AMOUNT_SHOULD_BE_AT_LEAST_ONE = 0x1774; // 6004
/** NotOwnedByToken2022Program: Not owned by token 2022 program */
export const WEN_TRANSFER_GUARD_ERROR__NOT_OWNED_BY_TOKEN2022_PROGRAM = 0x1775; // 6005
/** MustBeInitializedByTransferHookAuthority: Must be initialized by Transfer Hook Authority */
export const WEN_TRANSFER_GUARD_ERROR__MUST_BE_INITIALIZED_BY_TRANSFER_HOOK_AUTHORITY = 0x1776; // 6006
/** MintAssignedTransferHookProgramIsNotThisOne: Mint's assigned Transfer Hook Program is not this one */
export const WEN_TRANSFER_GUARD_ERROR__MINT_ASSIGNED_TRANSFER_HOOK_PROGRAM_IS_NOT_THIS_ONE = 0x1777; // 6007
export type WenTransferGuardError =
| typeof WEN_TRANSFER_GUARD_ERROR__CPI_RULE_ENFORCEMENT_FAILED
| typeof WEN_TRANSFER_GUARD_ERROR__GUARD_TOKEN_AMOUNT_SHOULD_BE_AT_LEAST_ONE
| typeof WEN_TRANSFER_GUARD_ERROR__METADATA_FIELD_DOES_NOT_EXIST
| typeof WEN_TRANSFER_GUARD_ERROR__METADATA_FIELD_DOES_NOT_PASS
| typeof WEN_TRANSFER_GUARD_ERROR__MINT_ASSIGNED_TRANSFER_HOOK_PROGRAM_IS_NOT_THIS_ONE
| typeof WEN_TRANSFER_GUARD_ERROR__MUST_BE_INITIALIZED_BY_TRANSFER_HOOK_AUTHORITY
| typeof WEN_TRANSFER_GUARD_ERROR__NOT_OWNED_BY_TOKEN2022_PROGRAM
| typeof WEN_TRANSFER_GUARD_ERROR__TRANSFER_AMOUNT_RULE_ENFORCE_FAILED;
let wenTransferGuardErrorMessages: Record<WenTransferGuardError, string> | undefined;
if (process.env.NODE_ENV !== 'production') {
wenTransferGuardErrorMessages = {
[WEN_TRANSFER_GUARD_ERROR__CPI_RULE_ENFORCEMENT_FAILED]: `Cpi Rule Enforcement Failed`,
[WEN_TRANSFER_GUARD_ERROR__GUARD_TOKEN_AMOUNT_SHOULD_BE_AT_LEAST_ONE]: `Guard token amount should be at least 1`,
[WEN_TRANSFER_GUARD_ERROR__METADATA_FIELD_DOES_NOT_EXIST]: `Metadata Field Does Not Exist`,
[WEN_TRANSFER_GUARD_ERROR__METADATA_FIELD_DOES_NOT_PASS]: `Metadata Field Does Not Pass`,
[WEN_TRANSFER_GUARD_ERROR__MINT_ASSIGNED_TRANSFER_HOOK_PROGRAM_IS_NOT_THIS_ONE]: `Mint's assigned Transfer Hook Program is not this one`,
[WEN_TRANSFER_GUARD_ERROR__MUST_BE_INITIALIZED_BY_TRANSFER_HOOK_AUTHORITY]: `Must be initialized by Transfer Hook Authority`,
[WEN_TRANSFER_GUARD_ERROR__NOT_OWNED_BY_TOKEN2022_PROGRAM]: `Not owned by token 2022 program`,
[WEN_TRANSFER_GUARD_ERROR__TRANSFER_AMOUNT_RULE_ENFORCE_FAILED]: `Transfer Amount Rule Enforce Failed`,
};
}
export function getWenTransferGuardErrorMessage(code: WenTransferGuardError): string {
if (process.env.NODE_ENV !== 'production') {
return (wenTransferGuardErrorMessages as Record<WenTransferGuardError, string>)[code];
}
return 'Error message not available in production bundles.';
}
export function isWenTransferGuardError<TProgramErrorCode extends WenTransferGuardError>(
error: unknown,
transactionMessage: { instructions: Record<number, { programAddress: Address }> },
code?: TProgramErrorCode,
): error is SolanaError<typeof SOLANA_ERROR__INSTRUCTION_ERROR__CUSTOM> &
Readonly<{ context: Readonly<{ code: TProgramErrorCode }> }> {
return isProgramError<TProgramErrorCode>(error, transactionMessage, WEN_TRANSFER_GUARD_PROGRAM_ADDRESS, code);
}