near-kit 0.0.0 → 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.
Files changed (128) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +371 -2
  3. package/dist/contracts/contract.d.ts +63 -0
  4. package/dist/contracts/contract.d.ts.map +1 -0
  5. package/dist/contracts/contract.js +42 -0
  6. package/dist/contracts/contract.js.map +1 -0
  7. package/dist/contracts/index.d.ts +5 -0
  8. package/dist/contracts/index.d.ts.map +1 -0
  9. package/dist/contracts/index.js +5 -0
  10. package/dist/contracts/index.js.map +1 -0
  11. package/dist/core/actions.d.ts +193 -0
  12. package/dist/core/actions.d.ts.map +1 -0
  13. package/dist/core/actions.js +195 -0
  14. package/dist/core/actions.js.map +1 -0
  15. package/dist/core/config-schemas.d.ts +179 -0
  16. package/dist/core/config-schemas.d.ts.map +1 -0
  17. package/dist/core/config-schemas.js +169 -0
  18. package/dist/core/config-schemas.js.map +1 -0
  19. package/dist/core/constants.d.ts +43 -0
  20. package/dist/core/constants.d.ts.map +1 -0
  21. package/dist/core/constants.js +49 -0
  22. package/dist/core/constants.js.map +1 -0
  23. package/dist/core/near.d.ts +301 -0
  24. package/dist/core/near.d.ts.map +1 -0
  25. package/dist/core/near.js +504 -0
  26. package/dist/core/near.js.map +1 -0
  27. package/dist/core/nonce-manager.d.ts +39 -0
  28. package/dist/core/nonce-manager.d.ts.map +1 -0
  29. package/dist/core/nonce-manager.js +73 -0
  30. package/dist/core/nonce-manager.js.map +1 -0
  31. package/dist/core/rpc/rpc-error-handler.d.ts +60 -0
  32. package/dist/core/rpc/rpc-error-handler.d.ts.map +1 -0
  33. package/dist/core/rpc/rpc-error-handler.js +324 -0
  34. package/dist/core/rpc/rpc-error-handler.js.map +1 -0
  35. package/dist/core/rpc/rpc-schemas.d.ts +1812 -0
  36. package/dist/core/rpc/rpc-schemas.d.ts.map +1 -0
  37. package/dist/core/rpc/rpc-schemas.js +424 -0
  38. package/dist/core/rpc/rpc-schemas.js.map +1 -0
  39. package/dist/core/rpc/rpc.d.ts +117 -0
  40. package/dist/core/rpc/rpc.d.ts.map +1 -0
  41. package/dist/core/rpc/rpc.js +325 -0
  42. package/dist/core/rpc/rpc.js.map +1 -0
  43. package/dist/core/schema.d.ts +1188 -0
  44. package/dist/core/schema.d.ts.map +1 -0
  45. package/dist/core/schema.js +396 -0
  46. package/dist/core/schema.js.map +1 -0
  47. package/dist/core/transaction.d.ts +390 -0
  48. package/dist/core/transaction.d.ts.map +1 -0
  49. package/dist/core/transaction.js +649 -0
  50. package/dist/core/transaction.js.map +1 -0
  51. package/dist/core/types.d.ts +271 -0
  52. package/dist/core/types.d.ts.map +1 -0
  53. package/dist/core/types.js +9 -0
  54. package/dist/core/types.js.map +1 -0
  55. package/dist/errors/index.d.ts +226 -0
  56. package/dist/errors/index.d.ts.map +1 -0
  57. package/dist/errors/index.js +366 -0
  58. package/dist/errors/index.js.map +1 -0
  59. package/dist/index.d.ts +16 -0
  60. package/dist/index.d.ts.map +1 -0
  61. package/dist/index.js +23 -0
  62. package/dist/index.js.map +1 -0
  63. package/dist/keys/credential-schemas.d.ts +98 -0
  64. package/dist/keys/credential-schemas.d.ts.map +1 -0
  65. package/dist/keys/credential-schemas.js +128 -0
  66. package/dist/keys/credential-schemas.js.map +1 -0
  67. package/dist/keys/file-keystore.d.ts +130 -0
  68. package/dist/keys/file-keystore.d.ts.map +1 -0
  69. package/dist/keys/file-keystore.js +266 -0
  70. package/dist/keys/file-keystore.js.map +1 -0
  71. package/dist/keys/in-memory-keystore.d.ts +71 -0
  72. package/dist/keys/in-memory-keystore.d.ts.map +1 -0
  73. package/dist/keys/in-memory-keystore.js +85 -0
  74. package/dist/keys/in-memory-keystore.js.map +1 -0
  75. package/dist/keys/index.d.ts +12 -0
  76. package/dist/keys/index.d.ts.map +1 -0
  77. package/dist/keys/index.js +18 -0
  78. package/dist/keys/index.js.map +1 -0
  79. package/dist/keys/native-keystore.d.ts +111 -0
  80. package/dist/keys/native-keystore.d.ts.map +1 -0
  81. package/dist/keys/native-keystore.js +167 -0
  82. package/dist/keys/native-keystore.js.map +1 -0
  83. package/dist/sandbox/index.d.ts +6 -0
  84. package/dist/sandbox/index.d.ts.map +1 -0
  85. package/dist/sandbox/index.js +5 -0
  86. package/dist/sandbox/index.js.map +1 -0
  87. package/dist/sandbox/sandbox.d.ts +55 -0
  88. package/dist/sandbox/sandbox.d.ts.map +1 -0
  89. package/dist/sandbox/sandbox.js +341 -0
  90. package/dist/sandbox/sandbox.js.map +1 -0
  91. package/dist/utils/amount.d.ts +76 -0
  92. package/dist/utils/amount.d.ts.map +1 -0
  93. package/dist/utils/amount.js +137 -0
  94. package/dist/utils/amount.js.map +1 -0
  95. package/dist/utils/gas.d.ts +69 -0
  96. package/dist/utils/gas.d.ts.map +1 -0
  97. package/dist/utils/gas.js +92 -0
  98. package/dist/utils/gas.js.map +1 -0
  99. package/dist/utils/index.d.ts +14 -0
  100. package/dist/utils/index.d.ts.map +1 -0
  101. package/dist/utils/index.js +14 -0
  102. package/dist/utils/index.js.map +1 -0
  103. package/dist/utils/key.d.ts +117 -0
  104. package/dist/utils/key.d.ts.map +1 -0
  105. package/dist/utils/key.js +270 -0
  106. package/dist/utils/key.js.map +1 -0
  107. package/dist/utils/nep413.d.ts +97 -0
  108. package/dist/utils/nep413.d.ts.map +1 -0
  109. package/dist/utils/nep413.js +154 -0
  110. package/dist/utils/nep413.js.map +1 -0
  111. package/dist/utils/validation.d.ts +114 -0
  112. package/dist/utils/validation.d.ts.map +1 -0
  113. package/dist/utils/validation.js +150 -0
  114. package/dist/utils/validation.js.map +1 -0
  115. package/dist/wallets/adapters.d.ts +119 -0
  116. package/dist/wallets/adapters.d.ts.map +1 -0
  117. package/dist/wallets/adapters.js +267 -0
  118. package/dist/wallets/adapters.js.map +1 -0
  119. package/dist/wallets/index.d.ts +11 -0
  120. package/dist/wallets/index.d.ts.map +1 -0
  121. package/dist/wallets/index.js +2 -0
  122. package/dist/wallets/index.js.map +1 -0
  123. package/dist/wallets/types.d.ts +99 -0
  124. package/dist/wallets/types.d.ts.map +1 -0
  125. package/dist/wallets/types.js +10 -0
  126. package/dist/wallets/types.js.map +1 -0
  127. package/package.json +78 -7
  128. package/index.js +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/core/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,cAAc,CAAA;AAChC,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAClE,OAAO,KAAK,EACV,gBAAgB,EAChB,gBAAgB,EAChB,SAAS,EACT,kBAAkB,EAClB,kBAAkB,EAClB,SAAS,EACT,iBAAiB,EACjB,WAAW,EACZ,MAAM,YAAY,CAAA;AAInB;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB,aAAa,CAAA;AAkBhD;;GAEG;AACH,eAAO,MAAM,eAAe;;;;;;;;UAG1B,CAAA;AAkBF;;GAEG;AACH,eAAO,MAAM,eAAe;;;;;;;;UAG1B,CAAA;AAkBF;;GAEG;AACH,QAAA,MAAM,yBAAyB;;;;;;;;UAG7B,CAAA;AAEF;;GAEG;AACH,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAA;AAYhF;;GAEG;AACH,QAAA,MAAM,mBAAmB,2CAAe,CAAA;AAExC;;GAEG;AACH,QAAA,MAAM,oBAAoB;;UAExB,CAAA;AAEF;;;GAGG;AACH,QAAA,MAAM,kBAAkB;;;;;UAKtB,CAAA;AAEF;;GAEG;AACH,QAAA,MAAM,cAAc;;UAElB,CAAA;AAEF;;GAEG;AACH,QAAA,MAAM,WAAW;;;;;;;;;;;UAGf,CAAA;AAEF;;GAEG;AACH,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;UAGhB,CAAA;AAEF;;GAEG;AACH,QAAA,MAAM,eAAe;;;;;;;;;;UAEnB,CAAA;AAEF;;GAEG;AACH,QAAA,MAAM,mBAAmB;;UAEvB,CAAA;AAwBF;;GAEG;AACH,QAAA,MAAM,0BAA0B;;;;;;;UAG9B,CAAA;AAEF;;GAEG;AACH,QAAA,MAAM,uBAAuB;;;;;;UAE3B,CAAA;AAIF;;;;GAIG;AACH,QAAA,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAWxB,CAAA;AAEF;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAA;AAehE;;GAEG;AACH,QAAA,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAGxB,CAAA;AAEF;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAYvB,CAAA;AAEF;;;GAGG;AACH,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAA;AAGjD,MAAM,MAAM,cAAc,GAAG;IAAE,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAA;CAAE,CAAA;AACzE,MAAM,MAAM,kBAAkB,GAAG;IAC/B,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAA;CACjD,CAAA;AACD,MAAM,MAAM,mBAAmB,GAAG;IAChC,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;CACnD,CAAA;AACD,MAAM,MAAM,mBAAmB,GAAG;IAChC,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;CACnD,CAAA;AACD,MAAM,MAAM,oBAAoB,GAAG;IACjC,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAA;CACrD,CAAA;AACD,MAAM,MAAM,WAAW,GAAG;IAAE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAA;CAAE,CAAA;AAChE,MAAM,MAAM,YAAY,GAAG;IAAE,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAA;CAAE,CAAA;AACnE,MAAM,MAAM,eAAe,GAAG;IAAE,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAA;CAAE,CAAA;AAC5E,MAAM,MAAM,0BAA0B,GAAG;IACvC,oBAAoB,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAA;CACjE,CAAA;AACD,MAAM,MAAM,uBAAuB,GAAG;IACpC,iBAAiB,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAA;CAC3D,CAAA;AACD,MAAM,MAAM,oBAAoB,GAAG;IACjC,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAA;CACrD,CAAA;AAID;;;GAGG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAO5B,CAAA;AAEF;;GAEG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAGlC,CAAA;AAkBF;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,gBAAgB,GAAG;IACtD,UAAU,EAAE;QAAE,IAAI,EAAE,MAAM,EAAE,CAAA;KAAE,CAAA;CAC/B,CAAA;AACD,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,kBAAkB,GAAG;IACxD,YAAY,EAAE;QAAE,IAAI,EAAE,MAAM,EAAE,CAAA;KAAE,CAAA;CACjC,CAAA;AACD,wBAAgB,gBAAgB,CAC9B,EAAE,EAAE,SAAS,GACZ;IAAE,UAAU,EAAE;QAAE,IAAI,EAAE,MAAM,EAAE,CAAA;KAAE,CAAA;CAAE,GAAG;IAAE,YAAY,EAAE;QAAE,IAAI,EAAE,MAAM,EAAE,CAAA;KAAE,CAAA;CAAE,CAAA;AAW5E;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,gBAAgB,GAAG;IACvD,gBAAgB,EAAE;QAAE,IAAI,EAAE,MAAM,EAAE,CAAA;KAAE,CAAA;CACrC,CAAA;AACD,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,kBAAkB,GAAG;IACzD,kBAAkB,EAAE;QAAE,IAAI,EAAE,MAAM,EAAE,CAAA;KAAE,CAAA;CACvC,CAAA;AACD,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,SAAS,GAEZ;IAAE,gBAAgB,EAAE;QAAE,IAAI,EAAE,MAAM,EAAE,CAAA;KAAE,CAAA;CAAE,GACxC;IAAE,kBAAkB,EAAE;QAAE,IAAI,EAAE,MAAM,EAAE,CAAA;KAAE,CAAA;CAAE,CAAA;AAyC9C;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,WAAW,GAAG,UAAU,CAShE;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,iBAAiB,GAC1B,UAAU,CAYZ;AAID;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,uBAAuB,CACrC,cAAc,EAAE,cAAc,GAC7B,UAAU,CAWZ;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,uBAAuB,CACrC,cAAc,EAAE,cAAc,GAC7B,UAAU,CAKZ"}
@@ -0,0 +1,396 @@
1
+ /**
2
+ * Borsh serialization schemas for NEAR transactions using Zorsh
3
+ * Based on NEAR Protocol specification and near-api-js implementation
4
+ *
5
+ * This module handles the low-level binary serialization details and keeps
6
+ * all Zorsh-specific types internal. External code should only use the
7
+ * serializeTransaction and serializeSignedTransaction functions.
8
+ */
9
+ import { b } from "@zorsh/zorsh";
10
+ // ==================== NEP-461 Prefix ====================
11
+ /**
12
+ * Prefix for delegate actions (NEP-366 meta transactions)
13
+ * Value: 2^30 + 366 = 1073742190
14
+ *
15
+ * This prefix is prepended to DelegateAction when serializing for signing,
16
+ * ensuring delegate action signatures are always distinguishable from
17
+ * transaction signatures.
18
+ */
19
+ export const DELEGATE_ACTION_PREFIX = 1073742190;
20
+ // ==================== Public Key ====================
21
+ /**
22
+ * Ed25519 public key data (32 bytes)
23
+ */
24
+ const Ed25519KeySchema = b.struct({
25
+ data: b.array(b.u8(), 32),
26
+ });
27
+ /**
28
+ * Secp256k1 public key data (64 bytes)
29
+ */
30
+ const Secp256k1KeySchema = b.struct({
31
+ data: b.array(b.u8(), 64),
32
+ });
33
+ /**
34
+ * PublicKey enum (0 = Ed25519, 1 = Secp256k1)
35
+ */
36
+ export const PublicKeySchema = b.enum({
37
+ ed25519Key: Ed25519KeySchema,
38
+ secp256k1Key: Secp256k1KeySchema,
39
+ });
40
+ // ==================== Signature ====================
41
+ /**
42
+ * Ed25519 signature data (64 bytes)
43
+ */
44
+ const Ed25519SignatureSchema = b.struct({
45
+ data: b.array(b.u8(), 64),
46
+ });
47
+ /**
48
+ * Secp256k1 signature data (65 bytes)
49
+ */
50
+ const Secp256k1SignatureSchema = b.struct({
51
+ data: b.array(b.u8(), 65),
52
+ });
53
+ /**
54
+ * Signature enum (0 = Ed25519, 1 = Secp256k1)
55
+ */
56
+ export const SignatureSchema = b.enum({
57
+ ed25519Signature: Ed25519SignatureSchema,
58
+ secp256k1Signature: Secp256k1SignatureSchema,
59
+ });
60
+ // ==================== Access Key Permissions ====================
61
+ /**
62
+ * Function call permission with optional allowance
63
+ */
64
+ const FunctionCallPermissionSchema = b.struct({
65
+ allowance: b.option(b.u128()),
66
+ receiverId: b.string(),
67
+ methodNames: b.vec(b.string()),
68
+ });
69
+ /**
70
+ * Full access permission (empty struct)
71
+ */
72
+ const FullAccessPermissionSchema = b.struct({});
73
+ /**
74
+ * AccessKeyPermission enum (0 = FunctionCall, 1 = FullAccess)
75
+ */
76
+ const AccessKeyPermissionSchema = b.enum({
77
+ functionCall: FunctionCallPermissionSchema,
78
+ fullAccess: FullAccessPermissionSchema,
79
+ });
80
+ /**
81
+ * Access key with nonce and permission
82
+ */
83
+ const AccessKeySchema = b.struct({
84
+ nonce: b.u64(),
85
+ permission: AccessKeyPermissionSchema,
86
+ });
87
+ // ==================== Transaction Actions ====================
88
+ /**
89
+ * CreateAccount action (empty struct)
90
+ */
91
+ const CreateAccountSchema = b.struct({});
92
+ /**
93
+ * DeployContract action with WASM code
94
+ */
95
+ const DeployContractSchema = b.struct({
96
+ code: b.vec(b.u8()),
97
+ });
98
+ /**
99
+ * FunctionCall action
100
+ * Field order: methodName, args, gas, deposit
101
+ */
102
+ const FunctionCallSchema = b.struct({
103
+ methodName: b.string(),
104
+ args: b.vec(b.u8()),
105
+ gas: b.u64(),
106
+ deposit: b.u128(),
107
+ });
108
+ /**
109
+ * Transfer action with deposit amount
110
+ */
111
+ const TransferSchema = b.struct({
112
+ deposit: b.u128(),
113
+ });
114
+ /**
115
+ * Stake action with amount and validator public key
116
+ */
117
+ const StakeSchema = b.struct({
118
+ stake: b.u128(),
119
+ publicKey: PublicKeySchema,
120
+ });
121
+ /**
122
+ * AddKey action to add a new access key
123
+ */
124
+ const AddKeySchema = b.struct({
125
+ publicKey: PublicKeySchema,
126
+ accessKey: AccessKeySchema,
127
+ });
128
+ /**
129
+ * DeleteKey action to remove an access key
130
+ */
131
+ const DeleteKeySchema = b.struct({
132
+ publicKey: PublicKeySchema,
133
+ });
134
+ /**
135
+ * DeleteAccount action with beneficiary
136
+ */
137
+ const DeleteAccountSchema = b.struct({
138
+ beneficiaryId: b.string(),
139
+ });
140
+ // ==================== Global Contract Actions ====================
141
+ /**
142
+ * GlobalContractDeployMode enum
143
+ * 0 = CodeHash (deploy by code hash)
144
+ * 1 = AccountId (deploy by account ID)
145
+ */
146
+ const GlobalContractDeployModeSchema = b.enum({
147
+ CodeHash: b.struct({}),
148
+ AccountId: b.struct({}),
149
+ });
150
+ /**
151
+ * GlobalContractIdentifier enum
152
+ * 0 = CodeHash (32-byte hash)
153
+ * 1 = AccountId (string)
154
+ */
155
+ const GlobalContractIdentifierSchema = b.enum({
156
+ CodeHash: b.array(b.u8(), 32),
157
+ AccountId: b.string(),
158
+ });
159
+ /**
160
+ * DeployGlobalContract action
161
+ */
162
+ const DeployGlobalContractSchema = b.struct({
163
+ code: b.vec(b.u8()),
164
+ deployMode: GlobalContractDeployModeSchema,
165
+ });
166
+ /**
167
+ * UseGlobalContract action
168
+ */
169
+ const UseGlobalContractSchema = b.struct({
170
+ contractIdentifier: GlobalContractIdentifierSchema,
171
+ });
172
+ // ==================== Delegate Actions ====================
173
+ /**
174
+ * ClassicActions enum - same as Action but without SignedDelegate
175
+ * Used within DelegateAction to prevent infinite recursion
176
+ * Note: The discriminant values must match the NEAR protocol spec
177
+ */
178
+ const ClassicActionsSchema = b.enum({
179
+ createAccount: CreateAccountSchema,
180
+ deployContract: DeployContractSchema,
181
+ functionCall: FunctionCallSchema,
182
+ transfer: TransferSchema,
183
+ stake: StakeSchema,
184
+ addKey: AddKeySchema,
185
+ deleteKey: DeleteKeySchema,
186
+ deleteAccount: DeleteAccountSchema,
187
+ deployGlobalContract: DeployGlobalContractSchema,
188
+ useGlobalContract: UseGlobalContractSchema,
189
+ });
190
+ /**
191
+ * DelegateAction for meta-transactions
192
+ * Allows one account to sign a transaction on behalf of another
193
+ */
194
+ const DelegateActionSchema = b.struct({
195
+ senderId: b.string(),
196
+ receiverId: b.string(),
197
+ actions: b.vec(ClassicActionsSchema),
198
+ nonce: b.u64(),
199
+ maxBlockHeight: b.u64(),
200
+ publicKey: PublicKeySchema,
201
+ });
202
+ /**
203
+ * SignedDelegate - a delegate action with signature
204
+ */
205
+ const SignedDelegateSchema = b.struct({
206
+ delegateAction: DelegateActionSchema,
207
+ signature: SignatureSchema,
208
+ });
209
+ /**
210
+ * Action enum matching NEAR protocol action discriminants
211
+ * Order matters! Each position corresponds to the action type index:
212
+ * 0 = CreateAccount
213
+ * 1 = DeployContract
214
+ * 2 = FunctionCall
215
+ * 3 = Transfer
216
+ * 4 = Stake
217
+ * 5 = AddKey
218
+ * 6 = DeleteKey
219
+ * 7 = DeleteAccount
220
+ * 8 = SignedDelegate
221
+ * 9 = DeployGlobalContract
222
+ * 10 = UseGlobalContract
223
+ */
224
+ export const ActionSchema = b.enum({
225
+ createAccount: CreateAccountSchema,
226
+ deployContract: DeployContractSchema,
227
+ functionCall: FunctionCallSchema,
228
+ transfer: TransferSchema,
229
+ stake: StakeSchema,
230
+ addKey: AddKeySchema,
231
+ deleteKey: DeleteKeySchema,
232
+ deleteAccount: DeleteAccountSchema,
233
+ signedDelegate: SignedDelegateSchema,
234
+ deployGlobalContract: DeployGlobalContractSchema,
235
+ useGlobalContract: UseGlobalContractSchema,
236
+ });
237
+ // ==================== Transaction ====================
238
+ /**
239
+ * Transaction schema
240
+ * Field order: signerId, publicKey, nonce, receiverId, blockHash, actions
241
+ */
242
+ export const TransactionSchema = b.struct({
243
+ signerId: b.string(),
244
+ publicKey: PublicKeySchema,
245
+ nonce: b.u64(),
246
+ receiverId: b.string(),
247
+ blockHash: b.array(b.u8(), 32),
248
+ actions: b.vec(ActionSchema),
249
+ });
250
+ /**
251
+ * SignedTransaction schema
252
+ */
253
+ export const SignedTransactionSchema = b.struct({
254
+ transaction: TransactionSchema,
255
+ signature: SignatureSchema,
256
+ });
257
+ // ==================== Serialization Helpers ====================
258
+ /**
259
+ * Convert DelegateAction to zorsh-compatible format
260
+ */
261
+ function delegateActionToZorsh(delegateAction) {
262
+ return {
263
+ senderId: delegateAction.senderId,
264
+ receiverId: delegateAction.receiverId,
265
+ actions: delegateAction.actions,
266
+ nonce: delegateAction.nonce,
267
+ maxBlockHeight: delegateAction.maxBlockHeight,
268
+ publicKey: publicKeyToZorsh(delegateAction.publicKey),
269
+ };
270
+ }
271
+ export function publicKeyToZorsh(pk) {
272
+ if (pk.keyType === 0) {
273
+ // Ed25519
274
+ return { ed25519Key: { data: Array.from(pk.data) } };
275
+ }
276
+ else {
277
+ // Secp256k1
278
+ return { secp256k1Key: { data: Array.from(pk.data) } };
279
+ }
280
+ }
281
+ export function signatureToZorsh(sig) {
282
+ if (sig.keyType === 0) {
283
+ // Ed25519
284
+ return { ed25519Signature: { data: Array.from(sig.data) } };
285
+ }
286
+ else {
287
+ // Secp256k1
288
+ return { secp256k1Signature: { data: Array.from(sig.data) } };
289
+ }
290
+ }
291
+ /**
292
+ * Convert an action to zorsh-compatible format
293
+ * Since action helpers now do conversion, this only handles recursive processing
294
+ * of delegate actions (which contain nested action arrays)
295
+ */
296
+ function actionToZorsh(action) {
297
+ // Only need to recursively process delegate actions
298
+ if ("signedDelegate" in action) {
299
+ return {
300
+ signedDelegate: {
301
+ delegateAction: {
302
+ senderId: action.signedDelegate.delegateAction.senderId,
303
+ receiverId: action.signedDelegate.delegateAction.receiverId,
304
+ // Recursively convert nested actions
305
+ actions: action.signedDelegate.delegateAction.actions.map((a) => actionToZorsh(a)),
306
+ nonce: action.signedDelegate.delegateAction.nonce,
307
+ maxBlockHeight: action.signedDelegate.delegateAction.maxBlockHeight,
308
+ publicKey: action.signedDelegate.delegateAction.publicKey,
309
+ },
310
+ signature: action.signedDelegate.signature,
311
+ },
312
+ };
313
+ }
314
+ // All other actions are already in zorsh-compatible format from helpers
315
+ return action;
316
+ }
317
+ /**
318
+ * Serialize a transaction to bytes
319
+ */
320
+ export function serializeTransaction(tx) {
321
+ return TransactionSchema.serialize({
322
+ signerId: tx.signerId,
323
+ publicKey: publicKeyToZorsh(tx.publicKey),
324
+ nonce: tx.nonce,
325
+ receiverId: tx.receiverId,
326
+ blockHash: Array.from(tx.blockHash),
327
+ actions: tx.actions.map(actionToZorsh),
328
+ });
329
+ }
330
+ /**
331
+ * Serialize a signed transaction to bytes
332
+ */
333
+ export function serializeSignedTransaction(signedTx) {
334
+ return SignedTransactionSchema.serialize({
335
+ transaction: {
336
+ signerId: signedTx.transaction.signerId,
337
+ publicKey: publicKeyToZorsh(signedTx.transaction.publicKey),
338
+ nonce: signedTx.transaction.nonce,
339
+ receiverId: signedTx.transaction.receiverId,
340
+ blockHash: Array.from(signedTx.transaction.blockHash),
341
+ actions: signedTx.transaction.actions.map(actionToZorsh),
342
+ },
343
+ signature: signatureToZorsh(signedTx.signature),
344
+ });
345
+ }
346
+ // ==================== Delegate Action Serialization ====================
347
+ /**
348
+ * Serialize a delegate action for signing
349
+ *
350
+ * Per NEP-461, this prepends a u32 prefix (2^30 + 366) before the delegate action,
351
+ * ensuring signed delegate actions are never identical to signed transactions.
352
+ *
353
+ * Use this when you need to sign a DelegateAction to create a SignedDelegate.
354
+ *
355
+ * @param delegateAction - The delegate action to serialize
356
+ * @returns Uint8Array - The prefixed and serialized delegate action
357
+ *
358
+ * @example
359
+ * ```typescript
360
+ * const encoded = serializeDelegateAction(delegateAction)
361
+ * const hash = await crypto.subtle.digest("SHA-256", encoded)
362
+ * const signature = await signer.sign(new Uint8Array(hash))
363
+ * ```
364
+ */
365
+ export function serializeDelegateAction(delegateAction) {
366
+ const prefixBytes = b.u32().serialize(DELEGATE_ACTION_PREFIX);
367
+ const delegateBytes = DelegateActionSchema.serialize(delegateActionToZorsh(delegateAction));
368
+ const result = new Uint8Array(prefixBytes.length + delegateBytes.length);
369
+ result.set(prefixBytes, 0);
370
+ result.set(delegateBytes, prefixBytes.length);
371
+ return result;
372
+ }
373
+ /**
374
+ * Serialize a signed delegate action for inclusion in a transaction
375
+ *
376
+ * This serializes a SignedDelegate (DelegateAction + signature) for use as
377
+ * an action within a meta transaction.
378
+ *
379
+ * Note: This does NOT include the NEP-461 prefix (only needed when signing).
380
+ *
381
+ * @param signedDelegate - The signed delegate action to serialize
382
+ * @returns Uint8Array - The serialized signed delegate action
383
+ *
384
+ * @example
385
+ * ```typescript
386
+ * const encoded = serializeSignedDelegate(signedDelegate)
387
+ * // Use encoded bytes in transaction action
388
+ * ```
389
+ */
390
+ export function serializeSignedDelegate(signedDelegate) {
391
+ return SignedDelegateSchema.serialize({
392
+ delegateAction: delegateActionToZorsh(signedDelegate.delegateAction),
393
+ signature: signatureToZorsh(signedDelegate.signature),
394
+ });
395
+ }
396
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/core/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,cAAc,CAAA;AAahC,2DAA2D;AAE3D;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,UAAU,CAAA;AAEhD,uDAAuD;AAEvD;;GAEG;AACH,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;CAC1B,CAAC,CAAA;AAEF;;GAEG;AACH,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;CAC1B,CAAC,CAAA;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,IAAI,CAAC;IACpC,UAAU,EAAE,gBAAgB;IAC5B,YAAY,EAAE,kBAAkB;CACjC,CAAC,CAAA;AAEF,sDAAsD;AAEtD;;GAEG;AACH,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;CAC1B,CAAC,CAAA;AAEF;;GAEG;AACH,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;CAC1B,CAAC,CAAA;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,IAAI,CAAC;IACpC,gBAAgB,EAAE,sBAAsB;IACxC,kBAAkB,EAAE,wBAAwB;CAC7C,CAAC,CAAA;AAEF,mEAAmE;AAEnE;;GAEG;AACH,MAAM,4BAA4B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC7B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,WAAW,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;CAC/B,CAAC,CAAA;AAEF;;GAEG;AACH,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;AAE/C;;GAEG;AACH,MAAM,yBAAyB,GAAG,CAAC,CAAC,IAAI,CAAC;IACvC,YAAY,EAAE,4BAA4B;IAC1C,UAAU,EAAE,0BAA0B;CACvC,CAAC,CAAA;AAOF;;GAEG;AACH,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/B,KAAK,EAAE,CAAC,CAAC,GAAG,EAAE;IACd,UAAU,EAAE,yBAAyB;CACtC,CAAC,CAAA;AAEF,gEAAgE;AAEhE;;GAEG;AACH,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;AAExC;;GAEG;AACH,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;CACpB,CAAC,CAAA;AAEF;;;GAGG;AACH,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IACnB,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE;IACZ,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE;CAClB,CAAC,CAAA;AAEF;;GAEG;AACH,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9B,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE;CAClB,CAAC,CAAA;AAEF;;GAEG;AACH,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3B,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE;IACf,SAAS,EAAE,eAAe;CAC3B,CAAC,CAAA;AAEF;;GAEG;AACH,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5B,SAAS,EAAE,eAAe;IAC1B,SAAS,EAAE,eAAe;CAC3B,CAAC,CAAA;AAEF;;GAEG;AACH,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/B,SAAS,EAAE,eAAe;CAC3B,CAAC,CAAA;AAEF;;GAEG;AACH,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE;CAC1B,CAAC,CAAA;AAEF,oEAAoE;AAEpE;;;;GAIG;AACH,MAAM,8BAA8B,GAAG,CAAC,CAAC,IAAI,CAAC;IAC5C,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;IACtB,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;CACxB,CAAC,CAAA;AAEF;;;;GAIG;AACH,MAAM,8BAA8B,GAAG,CAAC,CAAC,IAAI,CAAC;IAC5C,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;IAC7B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;CACtB,CAAC,CAAA;AAEF;;GAEG;AACH,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IACnB,UAAU,EAAE,8BAA8B;CAC3C,CAAC,CAAA;AAEF;;GAEG;AACH,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,kBAAkB,EAAE,8BAA8B;CACnD,CAAC,CAAA;AAEF,6DAA6D;AAE7D;;;;GAIG;AACH,MAAM,oBAAoB,GAAG,CAAC,CAAC,IAAI,CAAC;IAClC,aAAa,EAAE,mBAAmB;IAClC,cAAc,EAAE,oBAAoB;IACpC,YAAY,EAAE,kBAAkB;IAChC,QAAQ,EAAE,cAAc;IACxB,KAAK,EAAE,WAAW;IAClB,MAAM,EAAE,YAAY;IACpB,SAAS,EAAE,eAAe;IAC1B,aAAa,EAAE,mBAAmB;IAClC,oBAAoB,EAAE,0BAA0B;IAChD,iBAAiB,EAAE,uBAAuB;CAC3C,CAAC,CAAA;AAQF;;;GAGG;AACH,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,oBAAoB,CAAC;IACpC,KAAK,EAAE,CAAC,CAAC,GAAG,EAAE;IACd,cAAc,EAAE,CAAC,CAAC,GAAG,EAAE;IACvB,SAAS,EAAE,eAAe;CAC3B,CAAC,CAAA;AAEF;;GAEG;AACH,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,cAAc,EAAE,oBAAoB;IACpC,SAAS,EAAE,eAAe;CAC3B,CAAC,CAAA;AAEF;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,IAAI,CAAC;IACjC,aAAa,EAAE,mBAAmB;IAClC,cAAc,EAAE,oBAAoB;IACpC,YAAY,EAAE,kBAAkB;IAChC,QAAQ,EAAE,cAAc;IACxB,KAAK,EAAE,WAAW;IAClB,MAAM,EAAE,YAAY;IACpB,SAAS,EAAE,eAAe;IAC1B,aAAa,EAAE,mBAAmB;IAClC,cAAc,EAAE,oBAAoB;IACpC,oBAAoB,EAAE,0BAA0B;IAChD,iBAAiB,EAAE,uBAAuB;CAC3C,CAAC,CAAA;AAmCF,wDAAwD;AAExD;;;GAGG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,SAAS,EAAE,eAAe;IAC1B,KAAK,EAAE,CAAC,CAAC,GAAG,EAAE;IACd,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;IAC9B,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC;CAC7B,CAAC,CAAA;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,WAAW,EAAE,iBAAiB;IAC9B,SAAS,EAAE,eAAe;CAC3B,CAAC,CAAA;AAEF,kEAAkE;AAElE;;GAEG;AACH,SAAS,qBAAqB,CAAC,cAA8B;IAC3D,OAAO;QACL,QAAQ,EAAE,cAAc,CAAC,QAAQ;QACjC,UAAU,EAAE,cAAc,CAAC,UAAU;QACrC,OAAO,EAAE,cAAc,CAAC,OAAO;QAC/B,KAAK,EAAE,cAAc,CAAC,KAAK;QAC3B,cAAc,EAAE,cAAc,CAAC,cAAc;QAC7C,SAAS,EAAE,gBAAgB,CAAC,cAAc,CAAC,SAAS,CAAC;KACtD,CAAA;AACH,CAAC;AAgBD,MAAM,UAAU,gBAAgB,CAAC,EAAa;IAC5C,IAAI,EAAE,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;QACrB,UAAU;QACV,OAAO,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAA;IACtD,CAAC;SAAM,CAAC;QACN,YAAY;QACZ,OAAO,EAAE,YAAY,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAA;IACxD,CAAC;AACH,CAAC;AAkBD,MAAM,UAAU,gBAAgB,CAAC,GAAc;IAC7C,IAAI,GAAG,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;QACtB,UAAU;QACV,OAAO,EAAE,gBAAgB,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,CAAA;IAC7D,CAAC;SAAM,CAAC;QACN,YAAY;QACZ,OAAO,EAAE,kBAAkB,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,CAAA;IAC/D,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,aAAa,CAAC,MAAc;IACnC,oDAAoD;IACpD,IAAI,gBAAgB,IAAI,MAAM,EAAE,CAAC;QAC/B,OAAO;YACL,cAAc,EAAE;gBACd,cAAc,EAAE;oBACd,QAAQ,EAAE,MAAM,CAAC,cAAc,CAAC,cAAc,CAAC,QAAQ;oBACvD,UAAU,EAAE,MAAM,CAAC,cAAc,CAAC,cAAc,CAAC,UAAU;oBAC3D,qCAAqC;oBACrC,OAAO,EAAE,MAAM,CAAC,cAAc,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,CACvD,CAAC,CAAS,EAAE,EAAE,CAAC,aAAa,CAAC,CAAW,CAAC,CACvB;oBACpB,KAAK,EAAE,MAAM,CAAC,cAAc,CAAC,cAAc,CAAC,KAAK;oBACjD,cAAc,EAAE,MAAM,CAAC,cAAc,CAAC,cAAc,CAAC,cAAc;oBACnE,SAAS,EAAE,MAAM,CAAC,cAAc,CAAC,cAAc,CAAC,SAAS;iBAC1D;gBACD,SAAS,EAAE,MAAM,CAAC,cAAc,CAAC,SAAS;aAC3C;SACF,CAAA;IACH,CAAC;IAED,wEAAwE;IACxE,OAAO,MAAM,CAAA;AACf,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,EAAe;IAClD,OAAO,iBAAiB,CAAC,SAAS,CAAC;QACjC,QAAQ,EAAE,EAAE,CAAC,QAAQ;QACrB,SAAS,EAAE,gBAAgB,CAAC,EAAE,CAAC,SAAS,CAAC;QACzC,KAAK,EAAE,EAAE,CAAC,KAAK;QACf,UAAU,EAAE,EAAE,CAAC,UAAU;QACzB,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC;QACnC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;KACvC,CAAC,CAAA;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,0BAA0B,CACxC,QAA2B;IAE3B,OAAO,uBAAuB,CAAC,SAAS,CAAC;QACvC,WAAW,EAAE;YACX,QAAQ,EAAE,QAAQ,CAAC,WAAW,CAAC,QAAQ;YACvC,SAAS,EAAE,gBAAgB,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC;YAC3D,KAAK,EAAE,QAAQ,CAAC,WAAW,CAAC,KAAK;YACjC,UAAU,EAAE,QAAQ,CAAC,WAAW,CAAC,UAAU;YAC3C,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC;YACrD,OAAO,EAAE,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;SACzD;QACD,SAAS,EAAE,gBAAgB,CAAC,QAAQ,CAAC,SAAS,CAAC;KAChD,CAAC,CAAA;AACJ,CAAC;AAED,0EAA0E;AAE1E;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,uBAAuB,CACrC,cAA8B;IAE9B,MAAM,WAAW,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAA;IAC7D,MAAM,aAAa,GAAG,oBAAoB,CAAC,SAAS,CAClD,qBAAqB,CAAC,cAAc,CAAC,CACtC,CAAA;IAED,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,WAAW,CAAC,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,CAAA;IACxE,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAA;IAC1B,MAAM,CAAC,GAAG,CAAC,aAAa,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;IAE7C,OAAO,MAAM,CAAA;AACf,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,uBAAuB,CACrC,cAA8B;IAE9B,OAAO,oBAAoB,CAAC,SAAS,CAAC;QACpC,cAAc,EAAE,qBAAqB,CAAC,cAAc,CAAC,cAAc,CAAC;QACpE,SAAS,EAAE,gBAAgB,CAAC,cAAc,CAAC,SAAS,CAAC;KACtD,CAAC,CAAA;AACJ,CAAC"}