@bananapus/nana-sdk-core 2.28.0 → 2.30.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.
Files changed (95) hide show
  1. package/dist/cjs/review/decode.d.ts.map +1 -1
  2. package/dist/cjs/review/decode.js +43 -2
  3. package/dist/cjs/review/decode.js.map +1 -1
  4. package/dist/cjs/review/index.d.ts +1 -0
  5. package/dist/cjs/review/index.d.ts.map +1 -1
  6. package/dist/cjs/review/index.js +1 -0
  7. package/dist/cjs/review/index.js.map +1 -1
  8. package/dist/cjs/review/messages.d.ts +43 -0
  9. package/dist/cjs/review/messages.d.ts.map +1 -0
  10. package/dist/cjs/review/messages.js +55 -0
  11. package/dist/cjs/review/messages.js.map +1 -0
  12. package/dist/cjs/review/relayr.d.ts.map +1 -1
  13. package/dist/cjs/review/relayr.js +23 -1
  14. package/dist/cjs/review/relayr.js.map +1 -1
  15. package/dist/cjs/review/safeRelayr.d.ts.map +1 -1
  16. package/dist/cjs/review/safeRelayr.js +23 -3
  17. package/dist/cjs/review/safeRelayr.js.map +1 -1
  18. package/dist/cjs/review/transaction-message.js +2 -2
  19. package/dist/cjs/review/transaction-message.js.map +1 -1
  20. package/dist/cjs/review/writeRecovery.d.ts +105 -6
  21. package/dist/cjs/review/writeRecovery.d.ts.map +1 -1
  22. package/dist/cjs/review/writeRecovery.js +543 -96
  23. package/dist/cjs/review/writeRecovery.js.map +1 -1
  24. package/dist/cjs/safeService.d.ts +18 -12
  25. package/dist/cjs/safeService.d.ts.map +1 -1
  26. package/dist/cjs/safeService.js +97 -9
  27. package/dist/cjs/safeService.js.map +1 -1
  28. package/dist/cjs/v6/defifa.d.ts +154 -0
  29. package/dist/cjs/v6/defifa.d.ts.map +1 -0
  30. package/dist/cjs/v6/defifa.js +684 -0
  31. package/dist/cjs/v6/defifa.js.map +1 -0
  32. package/dist/cjs/v6/defifaDeployments.d.ts +13 -0
  33. package/dist/cjs/v6/defifaDeployments.d.ts.map +1 -0
  34. package/dist/cjs/v6/defifaDeployments.js +25 -0
  35. package/dist/cjs/v6/defifaDeployments.js.map +1 -0
  36. package/dist/cjs/v6/defifaHoldings.d.ts +50 -0
  37. package/dist/cjs/v6/defifaHoldings.d.ts.map +1 -0
  38. package/dist/cjs/v6/defifaHoldings.js +181 -0
  39. package/dist/cjs/v6/defifaHoldings.js.map +1 -0
  40. package/dist/cjs/v6/index.d.ts +2 -0
  41. package/dist/cjs/v6/index.d.ts.map +1 -1
  42. package/dist/cjs/v6/index.js +4 -0
  43. package/dist/cjs/v6/index.js.map +1 -1
  44. package/dist/cjs/v6/nftInventory.d.ts +1 -1
  45. package/dist/cjs/v6/nftInventory.d.ts.map +1 -1
  46. package/dist/cjs/v6/nftInventory.js +3 -21
  47. package/dist/cjs/v6/nftInventory.js.map +1 -1
  48. package/dist/esm/review/decode.d.ts.map +1 -1
  49. package/dist/esm/review/decode.js +43 -2
  50. package/dist/esm/review/decode.js.map +1 -1
  51. package/dist/esm/review/index.d.ts +1 -0
  52. package/dist/esm/review/index.d.ts.map +1 -1
  53. package/dist/esm/review/index.js +1 -0
  54. package/dist/esm/review/index.js.map +1 -1
  55. package/dist/esm/review/messages.d.ts +43 -0
  56. package/dist/esm/review/messages.d.ts.map +1 -0
  57. package/dist/esm/review/messages.js +48 -0
  58. package/dist/esm/review/messages.js.map +1 -0
  59. package/dist/esm/review/relayr.d.ts.map +1 -1
  60. package/dist/esm/review/relayr.js +23 -1
  61. package/dist/esm/review/relayr.js.map +1 -1
  62. package/dist/esm/review/safeRelayr.d.ts.map +1 -1
  63. package/dist/esm/review/safeRelayr.js +23 -3
  64. package/dist/esm/review/safeRelayr.js.map +1 -1
  65. package/dist/esm/review/transaction-message.js +2 -2
  66. package/dist/esm/review/transaction-message.js.map +1 -1
  67. package/dist/esm/review/writeRecovery.d.ts +105 -6
  68. package/dist/esm/review/writeRecovery.d.ts.map +1 -1
  69. package/dist/esm/review/writeRecovery.js +541 -98
  70. package/dist/esm/review/writeRecovery.js.map +1 -1
  71. package/dist/esm/safeService.d.ts +18 -12
  72. package/dist/esm/safeService.d.ts.map +1 -1
  73. package/dist/esm/safeService.js +97 -9
  74. package/dist/esm/safeService.js.map +1 -1
  75. package/dist/esm/v6/defifa.d.ts +154 -0
  76. package/dist/esm/v6/defifa.d.ts.map +1 -0
  77. package/dist/esm/v6/defifa.js +671 -0
  78. package/dist/esm/v6/defifa.js.map +1 -0
  79. package/dist/esm/v6/defifaDeployments.d.ts +13 -0
  80. package/dist/esm/v6/defifaDeployments.d.ts.map +1 -0
  81. package/dist/esm/v6/defifaDeployments.js +22 -0
  82. package/dist/esm/v6/defifaDeployments.js.map +1 -0
  83. package/dist/esm/v6/defifaHoldings.d.ts +50 -0
  84. package/dist/esm/v6/defifaHoldings.d.ts.map +1 -0
  85. package/dist/esm/v6/defifaHoldings.js +177 -0
  86. package/dist/esm/v6/defifaHoldings.js.map +1 -0
  87. package/dist/esm/v6/index.d.ts +2 -0
  88. package/dist/esm/v6/index.d.ts.map +1 -1
  89. package/dist/esm/v6/index.js +2 -0
  90. package/dist/esm/v6/index.js.map +1 -1
  91. package/dist/esm/v6/nftInventory.d.ts +1 -1
  92. package/dist/esm/v6/nftInventory.d.ts.map +1 -1
  93. package/dist/esm/v6/nftInventory.js +1 -19
  94. package/dist/esm/v6/nftInventory.js.map +1 -1
  95. package/package.json +3 -2
@@ -0,0 +1,154 @@
1
+ import { type Address, type Hex, type PublicClient, type TransactionReceipt, erc721Abi } from "viem";
2
+ import type { JBChainId } from "../types.js";
3
+ import { type V6CashOutTxRequest } from "./cashOut.js";
4
+ import { type ProjectDefifaInventory } from "./nftInventory.js";
5
+ import { type V6PayTxRequest } from "./pay.js";
6
+ /** Adapter RPC/review budget, not a native protocol supply or metadata limit. */
7
+ export declare const MAX_DEFIFA_ACTION_NFTS = 128;
8
+ /** Phase-only display eligibility; preparation still authenticates current rules. */
9
+ export declare function defifaPhaseAllowsPay(phase: number): boolean;
10
+ /** NO_CONTEST additionally requires native activation, checked by preparation. */
11
+ export declare function defifaPhaseAllowsCashOut(phase: number): boolean;
12
+ /**
13
+ * Native Defifa pay payload: (address attestationDelegate, uint16[] tierIds).
14
+ * Resolve metadataIdTarget from an authenticated inventory's CODE_ORIGIN, never
15
+ * its clone address. This pure encoder validates inputs, not contract identity.
16
+ * Zero delegates through the game's configured default, or to the beneficiary.
17
+ * For a self-payment this updates delegation for ALL holdings in selected tiers.
18
+ * Generic build721PayMetadata is incompatible: its true boolean becomes address 1.
19
+ */
20
+ export declare function buildDefifaPayMetadata({ metadataIdTarget, tierIdsToMint, attestationDelegate, }: {
21
+ metadataIdTarget: Address;
22
+ tierIdsToMint: readonly bigint[];
23
+ attestationDelegate?: Address;
24
+ }): Hex;
25
+ export interface DefifaActionArgs {
26
+ chainId: JBChainId;
27
+ projectId: bigint;
28
+ /** The actual sender, also the NFT holder for cash-outs/transfers. */
29
+ account: Address;
30
+ /** Bind preparation to the collection shown in the review. */
31
+ expectedHook?: Address;
32
+ }
33
+ export interface PreparedDefifaPay {
34
+ inventory: ProjectDefifaInventory;
35
+ transaction: V6PayTxRequest;
36
+ amount: bigint;
37
+ /** Selected-tier review evidence. Unit prices include the native discount. */
38
+ selectedTiers: {
39
+ tierId: bigint;
40
+ count: bigint;
41
+ unitPrice: bigint;
42
+ }[];
43
+ /** Encoded value; zero preserves the native fallback rule. */
44
+ attestationDelegate: Address;
45
+ /** Shared effective delegate, or null when a gift preserves different tier delegates. */
46
+ effectiveAttestationDelegate: Address | null;
47
+ /** Native effective delegation, including existing recipient preferences on gifts. */
48
+ effectiveDelegates: {
49
+ tierId: bigint;
50
+ delegate: Address;
51
+ }[];
52
+ }
53
+ /**
54
+ * Fresh native identity, MINT phase, selected supply and exact tier cost at one
55
+ * block. Re-run after review and compare the entire request before execution.
56
+ * ERC20 payments need allowance; after approval, simulate this EXACT request
57
+ * with account before sending. Preparation does not grant execution authority.
58
+ * Donations are separate addToBalanceOf calls: native Defifa rejects overpayment.
59
+ */
60
+ export declare function prepareDefifaPay(client: PublicClient, args: DefifaActionArgs & {
61
+ tierIdsToMint: readonly bigint[];
62
+ beneficiary?: Address;
63
+ attestationDelegate?: Address;
64
+ memo?: string;
65
+ }): Promise<PreparedDefifaPay>;
66
+ export interface PreparedDefifaCashOut {
67
+ inventory: ProjectDefifaInventory;
68
+ transaction: V6CashOutTxRequest;
69
+ /** Actual terminal simulation return, after any protocol fee. */
70
+ reclaimAmount: bigint;
71
+ /** Raw protocol token units quoted at inventory.blockNumber. */
72
+ protocolRewards: {
73
+ defifaToken: Address;
74
+ defifaAmount: bigint;
75
+ defifaDecimals: number;
76
+ baseProtocolToken: Address;
77
+ baseProtocolAmount: bigint;
78
+ baseProtocolDecimals: number;
79
+ };
80
+ }
81
+ /** Fresh owner/phase checks and exact cashOutTokensOf simulation, with no ERC721 approval. */
82
+ export declare function prepareDefifaCashOut(client: PublicClient, args: DefifaActionArgs & {
83
+ tokenIds: readonly bigint[];
84
+ beneficiary?: Address;
85
+ minimumReclaim?: bigint;
86
+ }): Promise<PreparedDefifaCashOut>;
87
+ export interface DefifaTransferTxRequest {
88
+ chainId: JBChainId;
89
+ address: Address;
90
+ abi: typeof erc721Abi;
91
+ functionName: "safeTransferFrom";
92
+ args: readonly [Address, Address, bigint];
93
+ }
94
+ /** Standard NFT transfer; native pause flags and receiver callbacks are simulated exactly. */
95
+ export declare function prepareDefifaTransfer(client: PublicClient, args: DefifaActionArgs & {
96
+ tokenId: bigint;
97
+ recipient: Address;
98
+ }): Promise<{
99
+ inventory: ProjectDefifaInventory;
100
+ transaction: DefifaTransferTxRequest;
101
+ }>;
102
+ export interface DefifaNftReceiptContext {
103
+ /** Retain these authenticated native identities alongside the reviewed request. */
104
+ hook: Address;
105
+ implementation: Address;
106
+ account: Address;
107
+ transaction: V6PayTxRequest | V6CashOutTxRequest | DefifaTransferTxRequest;
108
+ /** Wallet-returned Safe proposal identity; absent for direct wallet execution. */
109
+ safe?: {
110
+ proposalHash: Hex;
111
+ };
112
+ }
113
+ /**
114
+ * Reconstruct native verification context from an existing reviewed-write
115
+ * journal. Authenticate the project/terminal at the receipt's historical block;
116
+ * never prepare, simulate or send a new action. The wallet-returned identity is
117
+ * required: a hashless uncertain write cannot be matched to an old receipt.
118
+ * Call verifyDefifaNftTransaction afterward; restoration alone proves no outcome.
119
+ */
120
+ export declare function restoreDefifaNftReceiptContext(client: PublicClient, args: {
121
+ chainId: JBChainId;
122
+ projectId: bigint;
123
+ record: unknown;
124
+ receipt: TransactionReceipt;
125
+ expectedHook?: Address;
126
+ }): Promise<DefifaNftReceiptContext>;
127
+ /**
128
+ * Verify native NFT effects of one exact reviewed call; throw if proof is missing.
129
+ * The execution engine MUST first authenticate the canonical receipt and actual
130
+ * chain/account/call/value (including the executed inner call for Safe routes).
131
+ * This pure check is also usable during recovery without preparing a new action.
132
+ * Receipt logs, not end-of-block ownership, prove transfers: a receiver may
133
+ * forward an NFT in its callback or a later transaction in the same block.
134
+ */
135
+ export declare function verifyDefifaNftReceipt({ hook, implementation, account, transaction }: DefifaNftReceiptContext, receipt: TransactionReceipt): void;
136
+ /**
137
+ * The exact reviewed action failed in a canonical finalized block. This closes
138
+ * only that attempt; retain its evidence and review any new intent separately.
139
+ * A reverted Safe outer executor alone does not establish this outcome.
140
+ */
141
+ export declare class DefifaNftTransactionRevertedError extends Error {
142
+ readonly hash: Hex;
143
+ readonly chainId: number;
144
+ readonly name = "DefifaNftTransactionRevertedError";
145
+ constructor(hash: Hex, chainId: number);
146
+ }
147
+ /**
148
+ * Authenticate canonical execution using the SDK's existing transaction/Safe
149
+ * proof owners, then prove native NFT effects. Only
150
+ * DefifaNftTransactionRevertedError proves finalized failure. Retain context
151
+ * and receipt on other errors and retry this read-only function; do not resend.
152
+ */
153
+ export declare function verifyDefifaNftTransaction(client: PublicClient, context: DefifaNftReceiptContext, receipt: TransactionReceipt): Promise<void>;
154
+ //# sourceMappingURL=defifa.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defifa.d.ts","sourceRoot":"","sources":["../../../src/v6/defifa.ts"],"names":[],"mappings":"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"}