@amadeus-protocol/sdk 1.0.8 → 1.1.1

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 (200) hide show
  1. package/README.md +215 -30
  2. package/dist/api/chain.d.ts +144 -117
  3. package/dist/api/chain.d.ts.map +1 -1
  4. package/dist/api/chain.js +175 -146
  5. package/dist/api/chain.js.map +1 -1
  6. package/dist/api/contract.d.ts +78 -60
  7. package/dist/api/contract.d.ts.map +1 -1
  8. package/dist/api/contract.js +102 -75
  9. package/dist/api/contract.js.map +1 -1
  10. package/dist/api/epoch.d.ts +65 -66
  11. package/dist/api/epoch.d.ts.map +1 -1
  12. package/dist/api/epoch.js +90 -98
  13. package/dist/api/epoch.js.map +1 -1
  14. package/dist/api/peer.d.ts +77 -78
  15. package/dist/api/peer.d.ts.map +1 -1
  16. package/dist/api/peer.js +93 -94
  17. package/dist/api/peer.js.map +1 -1
  18. package/dist/api/proof.d.ts +44 -23
  19. package/dist/api/proof.d.ts.map +1 -1
  20. package/dist/api/proof.js +56 -29
  21. package/dist/api/proof.js.map +1 -1
  22. package/dist/api/transaction.d.ts +68 -69
  23. package/dist/api/transaction.d.ts.map +1 -1
  24. package/dist/api/transaction.js +84 -84
  25. package/dist/api/transaction.js.map +1 -1
  26. package/dist/api/wallet.d.ts +36 -37
  27. package/dist/api/wallet.d.ts.map +1 -1
  28. package/dist/api/wallet.js +47 -50
  29. package/dist/api/wallet.js.map +1 -1
  30. package/dist/client.d.ts +66 -68
  31. package/dist/client.d.ts.map +1 -1
  32. package/dist/client.js +231 -276
  33. package/dist/client.js.map +1 -1
  34. package/dist/constants.d.ts +13 -10
  35. package/dist/constants.d.ts.map +1 -1
  36. package/dist/constants.js +49 -45
  37. package/dist/constants.js.map +1 -1
  38. package/dist/contract-state.d.ts +6 -3
  39. package/dist/contract-state.d.ts.map +1 -1
  40. package/dist/contract-state.js +88 -106
  41. package/dist/contract-state.js.map +1 -1
  42. package/dist/contracts/abi-types.d.ts +32 -32
  43. package/dist/contracts/abi-types.d.ts.map +1 -1
  44. package/dist/contracts/coin.d.ts +13 -20
  45. package/dist/contracts/coin.d.ts.map +1 -1
  46. package/dist/contracts/coin.js +42 -38
  47. package/dist/contracts/coin.js.map +1 -1
  48. package/dist/contracts/contract-call.d.ts +14 -16
  49. package/dist/contracts/contract-call.d.ts.map +1 -1
  50. package/dist/contracts/contract-call.js +45 -54
  51. package/dist/contracts/contract-call.js.map +1 -1
  52. package/dist/contracts/contract.d.ts +24 -55
  53. package/dist/contracts/contract.d.ts.map +1 -1
  54. package/dist/contracts/contract.js +63 -101
  55. package/dist/contracts/contract.js.map +1 -1
  56. package/dist/contracts/lockup/abi.d.ts +54 -51
  57. package/dist/contracts/lockup/abi.d.ts.map +1 -1
  58. package/dist/contracts/lockup/abi.js +65 -74
  59. package/dist/contracts/lockup/abi.js.map +1 -1
  60. package/dist/contracts/lockup/helpers.d.ts +22 -18
  61. package/dist/contracts/lockup/helpers.d.ts.map +1 -1
  62. package/dist/contracts/lockup/helpers.js +44 -47
  63. package/dist/contracts/lockup/helpers.js.map +1 -1
  64. package/dist/contracts/lockup/parsers.d.ts +7 -3
  65. package/dist/contracts/lockup/parsers.d.ts.map +1 -1
  66. package/dist/contracts/lockup/parsers.js +51 -55
  67. package/dist/contracts/lockup/parsers.js.map +1 -1
  68. package/dist/contracts/lockup/storage-keys.d.ts +5 -2
  69. package/dist/contracts/lockup/storage-keys.d.ts.map +1 -1
  70. package/dist/contracts/lockup/storage-keys.js +54 -70
  71. package/dist/contracts/lockup/storage-keys.js.map +1 -1
  72. package/dist/contracts/lockup/types.d.ts +73 -70
  73. package/dist/contracts/lockup/types.d.ts.map +1 -1
  74. package/dist/contracts/lockup-prime/abi.d.ts +328 -325
  75. package/dist/contracts/lockup-prime/abi.d.ts.map +1 -1
  76. package/dist/contracts/lockup-prime/abi.js +397 -417
  77. package/dist/contracts/lockup-prime/abi.js.map +1 -1
  78. package/dist/contracts/lockup-prime/helpers.d.ts +35 -31
  79. package/dist/contracts/lockup-prime/helpers.d.ts.map +1 -1
  80. package/dist/contracts/lockup-prime/helpers.js +131 -137
  81. package/dist/contracts/lockup-prime/helpers.js.map +1 -1
  82. package/dist/contracts/lockup-prime/parsers.d.ts +9 -5
  83. package/dist/contracts/lockup-prime/parsers.d.ts.map +1 -1
  84. package/dist/contracts/lockup-prime/parsers.js +61 -61
  85. package/dist/contracts/lockup-prime/parsers.js.map +1 -1
  86. package/dist/contracts/lockup-prime/storage-keys.d.ts +7 -4
  87. package/dist/contracts/lockup-prime/storage-keys.d.ts.map +1 -1
  88. package/dist/contracts/lockup-prime/storage-keys.js +64 -80
  89. package/dist/contracts/lockup-prime/storage-keys.js.map +1 -1
  90. package/dist/contracts/lockup-prime/types.d.ts +92 -89
  91. package/dist/contracts/lockup-prime/types.d.ts.map +1 -1
  92. package/dist/contracts/lockup-prime/types.js +12 -13
  93. package/dist/contracts/lockup-prime/types.js.map +1 -1
  94. package/dist/contracts/nft/abi.d.ts +104 -0
  95. package/dist/contracts/nft/abi.d.ts.map +1 -0
  96. package/dist/contracts/nft/abi.js +135 -0
  97. package/dist/contracts/nft/abi.js.map +1 -0
  98. package/dist/contracts/nft/helpers.d.ts +21 -0
  99. package/dist/contracts/nft/helpers.d.ts.map +1 -0
  100. package/dist/contracts/nft/helpers.js +61 -0
  101. package/dist/contracts/nft/helpers.js.map +1 -0
  102. package/dist/contracts/nft/types.d.ts +47 -0
  103. package/dist/contracts/nft/types.d.ts.map +1 -0
  104. package/dist/conversion.d.ts +5 -2
  105. package/dist/conversion.d.ts.map +1 -1
  106. package/dist/conversion.js +45 -50
  107. package/dist/conversion.js.map +1 -1
  108. package/dist/crypto.d.ts +14 -16
  109. package/dist/crypto.d.ts.map +1 -1
  110. package/dist/crypto.js +121 -140
  111. package/dist/crypto.js.map +1 -1
  112. package/dist/encoding.d.ts +11 -8
  113. package/dist/encoding.d.ts.map +1 -1
  114. package/dist/encoding.js +123 -144
  115. package/dist/encoding.js.map +1 -1
  116. package/dist/encryption.d.ts +15 -12
  117. package/dist/encryption.d.ts.map +1 -1
  118. package/dist/encryption.js +119 -117
  119. package/dist/encryption.js.map +1 -1
  120. package/dist/explorer.d.ts +10 -7
  121. package/dist/explorer.d.ts.map +1 -1
  122. package/dist/explorer.js +51 -48
  123. package/dist/explorer.js.map +1 -1
  124. package/dist/formatters.d.ts +8 -5
  125. package/dist/formatters.d.ts.map +1 -1
  126. package/dist/formatters.js +67 -68
  127. package/dist/formatters.js.map +1 -1
  128. package/dist/index.d.ts +42 -55
  129. package/dist/index.js +39 -55
  130. package/dist/mnemonic.d.ts +12 -9
  131. package/dist/mnemonic.d.ts.map +1 -1
  132. package/dist/mnemonic.js +105 -114
  133. package/dist/mnemonic.js.map +1 -1
  134. package/dist/networks.d.ts +14 -17
  135. package/dist/networks.d.ts.map +1 -1
  136. package/dist/networks.js +40 -36
  137. package/dist/networks.js.map +1 -1
  138. package/dist/schemas.js +75 -79
  139. package/dist/schemas.js.map +1 -1
  140. package/dist/sdk.d.ts +69 -65
  141. package/dist/sdk.d.ts.map +1 -1
  142. package/dist/sdk.js +126 -117
  143. package/dist/sdk.js.map +1 -1
  144. package/dist/serialization.d.ts +8 -18
  145. package/dist/serialization.d.ts.map +1 -1
  146. package/dist/serialization.js +207 -260
  147. package/dist/serialization.js.map +1 -1
  148. package/dist/signing.js +67 -67
  149. package/dist/signing.js.map +1 -1
  150. package/dist/transaction-builder.d.ts +175 -184
  151. package/dist/transaction-builder.d.ts.map +1 -1
  152. package/dist/transaction-builder.js +295 -344
  153. package/dist/transaction-builder.js.map +1 -1
  154. package/dist/transaction-errors.d.ts +10 -12
  155. package/dist/transaction-errors.d.ts.map +1 -1
  156. package/dist/transaction-errors.js +145 -166
  157. package/dist/transaction-errors.js.map +1 -1
  158. package/dist/types.d.ts +530 -450
  159. package/dist/types.d.ts.map +1 -1
  160. package/dist/types.js +169 -183
  161. package/dist/types.js.map +1 -1
  162. package/dist/validation.d.ts +24 -26
  163. package/dist/validation.d.ts.map +1 -1
  164. package/dist/validation.js +194 -192
  165. package/dist/validation.js.map +1 -1
  166. package/package.json +4 -3
  167. package/dist/api/index.d.ts +0 -8
  168. package/dist/api/index.d.ts.map +0 -1
  169. package/dist/api/index.js +0 -8
  170. package/dist/api/index.js.map +0 -1
  171. package/dist/contracts/abi-types.js +0 -8
  172. package/dist/contracts/abi-types.js.map +0 -1
  173. package/dist/contracts/index.d.ts +0 -7
  174. package/dist/contracts/index.d.ts.map +0 -1
  175. package/dist/contracts/index.js +0 -7
  176. package/dist/contracts/index.js.map +0 -1
  177. package/dist/contracts/lockup/calls.d.ts +0 -23
  178. package/dist/contracts/lockup/calls.d.ts.map +0 -1
  179. package/dist/contracts/lockup/calls.js +0 -25
  180. package/dist/contracts/lockup/calls.js.map +0 -1
  181. package/dist/contracts/lockup/index.d.ts +0 -6
  182. package/dist/contracts/lockup/index.d.ts.map +0 -1
  183. package/dist/contracts/lockup/index.js +0 -6
  184. package/dist/contracts/lockup/index.js.map +0 -1
  185. package/dist/contracts/lockup/types.js +0 -7
  186. package/dist/contracts/lockup/types.js.map +0 -1
  187. package/dist/contracts/lockup-prime/calls.d.ts +0 -53
  188. package/dist/contracts/lockup-prime/calls.d.ts.map +0 -1
  189. package/dist/contracts/lockup-prime/calls.js +0 -60
  190. package/dist/contracts/lockup-prime/calls.js.map +0 -1
  191. package/dist/contracts/lockup-prime/index.d.ts +0 -6
  192. package/dist/contracts/lockup-prime/index.d.ts.map +0 -1
  193. package/dist/contracts/lockup-prime/index.js +0 -6
  194. package/dist/contracts/lockup-prime/index.js.map +0 -1
  195. package/dist/index.d.ts.map +0 -1
  196. package/dist/index.js.map +0 -1
  197. package/dist/schemas.d.ts +0 -67
  198. package/dist/schemas.d.ts.map +0 -1
  199. package/dist/signing.d.ts +0 -39
  200. package/dist/signing.d.ts.map +0 -1
@@ -1,348 +1,351 @@
1
+ //#region src/contracts/lockup-prime/abi.d.ts
1
2
  /**
2
3
  * LockupPrime Smart Contract ABI
3
4
  *
4
5
  * Standard ABI format
5
6
  * Based on: /root/node/ex/native/rdb/src/consensus/bic/lockup_prime.rs
6
7
  */
7
- export declare const LOCKUP_PRIME_ABI: {
8
- readonly contractName: "LockupPrime";
9
- readonly contractVersion: "1.0.0";
10
- readonly abi: readonly [{
11
- readonly type: "function";
12
- readonly name: "lock";
13
- readonly inputs: readonly [{
14
- readonly name: "amount";
15
- readonly type: "string";
16
- readonly description: "Amount in flat units (as string, must be > 1 flat unit)";
17
- readonly validation: {
18
- readonly min: "1";
19
- readonly type: "i128";
20
- };
21
- }, {
22
- readonly name: "tier";
23
- readonly type: "string";
24
- readonly description: "Lock tier";
25
- readonly enum: readonly ["7d", "30d", "90d", "180d", "365d"];
26
- }];
27
- readonly outputs: readonly [];
28
- readonly stateMutability: "nonpayable";
29
- readonly description: "Lock AMA tokens for a specified tier to earn PRIME points";
30
- readonly requirements: readonly ["amount > 1 flat unit", "sufficient AMA balance", "amount and tier must be UTF-8 encoded strings"];
31
- readonly storage: {
32
- readonly writes: readonly [{
33
- readonly key: "bic:lockup_prime:vault:{caller}:{vault_index}";
34
- readonly value: "{tier}-{multiplier}-{unlock_epoch}-{amount}";
35
- readonly description: "Creates a new vault entry";
36
- }, {
37
- readonly key: "bic:lockup_prime:unique_index";
38
- readonly operation: "increment";
39
- readonly description: "Increments global vault index counter";
40
- }, {
41
- readonly key: "bic:coin:balance:{caller}:AMA";
42
- readonly operation: "decrement";
43
- readonly amount: "amount";
44
- readonly description: "Deducts AMA from caller's balance";
45
- }];
46
- readonly reads: readonly [{
47
- readonly key: "bic:coin:balance:{caller}:AMA";
48
- readonly description: "Checks caller's AMA balance";
49
- }];
50
- };
8
+ declare const LOCKUP_PRIME_ABI: {
9
+ readonly contractName: "LockupPrime";
10
+ readonly contractVersion: "1.0.0";
11
+ readonly abi: readonly [{
12
+ readonly type: "function";
13
+ readonly name: "lock";
14
+ readonly inputs: readonly [{
15
+ readonly name: "amount";
16
+ readonly type: "string";
17
+ readonly description: "Amount in flat units (as string, must be > 1 flat unit)";
18
+ readonly validation: {
19
+ readonly min: "1";
20
+ readonly type: "i128";
21
+ };
51
22
  }, {
52
- readonly type: "function";
53
- readonly name: "unlock";
54
- readonly inputs: readonly [{
55
- readonly name: "vaultIndex";
56
- readonly type: "string";
57
- readonly description: "Vault index to unlock (as string, e.g., \"0\", \"1\", \"2\")";
23
+ readonly name: "tier";
24
+ readonly type: "string";
25
+ readonly description: "Lock tier";
26
+ readonly enum: readonly ["7d", "30d", "90d", "180d", "365d"];
27
+ }];
28
+ readonly outputs: readonly [];
29
+ readonly stateMutability: "nonpayable";
30
+ readonly description: "Lock AMA tokens for a specified tier to earn PRIME points";
31
+ readonly requirements: readonly ["amount > 1 flat unit", "sufficient AMA balance", "amount and tier must be UTF-8 encoded strings"];
32
+ readonly storage: {
33
+ readonly writes: readonly [{
34
+ readonly key: "bic:lockup_prime:vault:{caller}:{vault_index}";
35
+ readonly value: "{tier}-{multiplier}-{unlock_epoch}-{amount}";
36
+ readonly description: "Creates a new vault entry";
37
+ }, {
38
+ readonly key: "bic:lockup_prime:unique_index";
39
+ readonly operation: "increment";
40
+ readonly description: "Increments global vault index counter";
41
+ }, {
42
+ readonly key: "bic:coin:balance:{caller}:AMA";
43
+ readonly operation: "decrement";
44
+ readonly amount: "amount";
45
+ readonly description: "Deducts AMA from caller's balance";
46
+ }];
47
+ readonly reads: readonly [{
48
+ readonly key: "bic:coin:balance:{caller}:AMA";
49
+ readonly description: "Checks caller's AMA balance";
50
+ }];
51
+ };
52
+ }, {
53
+ readonly type: "function";
54
+ readonly name: "unlock";
55
+ readonly inputs: readonly [{
56
+ readonly name: "vaultIndex";
57
+ readonly type: "string";
58
+ readonly description: "Vault index to unlock (as string, e.g., \"0\", \"1\", \"2\")";
59
+ }];
60
+ readonly outputs: readonly [];
61
+ readonly stateMutability: "nonpayable";
62
+ readonly description: "Unlock a vault and receive PRIME points (or penalty if early)";
63
+ readonly requirements: readonly ["vault must exist", "vault must belong to caller"];
64
+ readonly storage: {
65
+ readonly reads: readonly [{
66
+ readonly key: "bic:lockup_prime:vault:{caller}:{vault_index}";
67
+ readonly value: "{tier}-{multiplier}-{unlock_epoch}-{amount}";
68
+ readonly description: "Reads vault data";
69
+ }];
70
+ readonly writes: readonly [{
71
+ readonly key: "bic:lockup_prime:vault:{caller}:{vault_index}";
72
+ readonly operation: "delete";
73
+ readonly description: "Deletes vault after unlock";
74
+ }, {
75
+ readonly condition: "if current_epoch < unlock_epoch (early unlock)";
76
+ readonly writes: readonly [{
77
+ readonly key: "bic:coin:balance:{treasury}:AMA";
78
+ readonly operation: "increment";
79
+ readonly amount: "penalty (25% of amount)";
80
+ readonly description: "Penalty sent to treasury";
81
+ }, {
82
+ readonly key: "bic:lockup:vault:{caller}:{index}";
83
+ readonly operation: "create";
84
+ readonly amount: "disbursement (75% of amount)";
85
+ readonly duration: "5 epochs";
86
+ readonly description: "Remaining amount locked for 5 epochs";
58
87
  }];
59
- readonly outputs: readonly [];
60
- readonly stateMutability: "nonpayable";
61
- readonly description: "Unlock a vault and receive PRIME points (or penalty if early)";
62
- readonly requirements: readonly ["vault must exist", "vault must belong to caller"];
63
- readonly storage: {
64
- readonly reads: readonly [{
65
- readonly key: "bic:lockup_prime:vault:{caller}:{vault_index}";
66
- readonly value: "{tier}-{multiplier}-{unlock_epoch}-{amount}";
67
- readonly description: "Reads vault data";
68
- }];
69
- readonly writes: readonly [{
70
- readonly key: "bic:lockup_prime:vault:{caller}:{vault_index}";
71
- readonly operation: "delete";
72
- readonly description: "Deletes vault after unlock";
73
- }, {
74
- readonly condition: "if current_epoch < unlock_epoch (early unlock)";
75
- readonly writes: readonly [{
76
- readonly key: "bic:coin:balance:{treasury}:AMA";
77
- readonly operation: "increment";
78
- readonly amount: "penalty (25% of amount)";
79
- readonly description: "Penalty sent to treasury";
80
- }, {
81
- readonly key: "bic:lockup:vault:{caller}:{index}";
82
- readonly operation: "create";
83
- readonly amount: "disbursement (75% of amount)";
84
- readonly duration: "5 epochs";
85
- readonly description: "Remaining amount locked for 5 epochs";
86
- }];
87
- }, {
88
- readonly condition: "if current_epoch >= unlock_epoch (normal unlock)";
89
- readonly writes: readonly [{
90
- readonly key: "bic:coin:balance:{caller}:PRIME";
91
- readonly operation: "mint";
92
- readonly amount: "amount * multiplier";
93
- readonly description: "Mints PRIME points";
94
- }, {
95
- readonly key: "bic:coin:balance:{caller}:AMA";
96
- readonly operation: "increment";
97
- readonly amount: "amount";
98
- readonly description: "Returns locked AMA";
99
- }];
100
- }];
101
- };
102
- }, {
103
- readonly type: "function";
104
- readonly name: "daily_checkin";
105
- readonly inputs: readonly [{
106
- readonly name: "vaultIndex";
107
- readonly type: "string";
108
- readonly description: "Vault index for checkin (as string, e.g., \"0\", \"1\", \"2\")";
88
+ }, {
89
+ readonly condition: "if current_epoch >= unlock_epoch (normal unlock)";
90
+ readonly writes: readonly [{
91
+ readonly key: "bic:coin:balance:{caller}:PRIME";
92
+ readonly operation: "mint";
93
+ readonly amount: "amount * multiplier";
94
+ readonly description: "Mints PRIME points";
95
+ }, {
96
+ readonly key: "bic:coin:balance:{caller}:AMA";
97
+ readonly operation: "increment";
98
+ readonly amount: "amount";
99
+ readonly description: "Returns locked AMA";
109
100
  }];
110
- readonly outputs: readonly [];
111
- readonly stateMutability: "nonpayable";
112
- readonly description: "Daily checkin to earn bonus PRIME points and maintain streak";
113
- readonly requirements: readonly ["vault must exist", "must be within 2-epoch checkin window", "vault must belong to caller"];
114
- readonly storage: {
115
- readonly reads: readonly [{
116
- readonly key: "bic:lockup_prime:vault:{caller}:{vault_index}";
117
- readonly value: "{tier}-{multiplier}-{unlock_epoch}-{amount}";
118
- readonly description: "Reads vault amount for bonus calculation";
119
- }, {
120
- readonly key: "bic:lockup_prime:next_checkin_epoch:{caller}";
121
- readonly value: "epoch (as string)";
122
- readonly description: "Next allowed checkin epoch";
123
- }];
124
- readonly writes: readonly [{
125
- readonly condition: "if delta == 0 || delta == 1 (valid checkin)";
126
- readonly writes: readonly [{
127
- readonly key: "bic:lockup_prime:next_checkin_epoch:{caller}";
128
- readonly value: "current_epoch + 2";
129
- readonly description: "Updates next checkin epoch";
130
- }, {
131
- readonly key: "bic:coin:balance:{caller}:PRIME";
132
- readonly operation: "mint";
133
- readonly amount: "unlock_amount / 100";
134
- readonly description: "Daily bonus (1% of locked amount)";
135
- }, {
136
- readonly key: "bic:lockup_prime:daily_streak:{caller}";
137
- readonly operation: "increment";
138
- readonly description: "Increments streak counter";
139
- }, {
140
- readonly condition: "if streak >= 30";
141
- readonly writes: readonly [{
142
- readonly key: "bic:lockup_prime:daily_streak:{caller}";
143
- readonly value: "0";
144
- readonly description: "Resets streak after bonus";
145
- }, {
146
- readonly key: "bic:coin:balance:{caller}:PRIME";
147
- readonly operation: "mint";
148
- readonly amount: "daily_bonus * 30";
149
- readonly description: "Streak bonus (30x daily bonus)";
150
- }];
151
- }];
152
- }, {
153
- readonly condition: "if delta > 2 (missed checkin)";
154
- readonly writes: readonly [{
155
- readonly key: "bic:lockup_prime:next_checkin_epoch:{caller}";
156
- readonly value: "current_epoch + 2";
157
- readonly description: "Resets next checkin epoch";
158
- }, {
159
- readonly key: "bic:lockup_prime:daily_streak:{caller}";
160
- readonly value: "0";
161
- readonly description: "Resets streak to 0";
162
- }];
163
- }];
164
- };
165
- }];
166
- readonly errors: readonly [{
167
- readonly name: "invalid_args";
168
- readonly code: "INVALID_ARGS";
169
- readonly description: "Invalid number of arguments";
170
- }, {
171
- readonly name: "invalid_amount";
172
- readonly code: "INVALID_AMOUNT";
173
- readonly description: "Amount must be > 1 flat unit and valid i128";
174
- }, {
175
- readonly name: "invalid_tier";
176
- readonly code: "INVALID_TIER";
177
- readonly description: "Tier must be one of: 7d, 30d, 90d, 180d, 365d";
178
- }, {
179
- readonly name: "insufficient_funds";
180
- readonly code: "INSUFFICIENT_FUNDS";
181
- readonly description: "Insufficient AMA balance";
182
- }, {
183
- readonly name: "invalid_vault";
184
- readonly code: "INVALID_VAULT";
185
- readonly description: "Vault does not exist or does not belong to caller";
186
- }, {
187
- readonly name: "invalid_multiplier";
188
- readonly code: "INVALID_MULTIPLIER";
189
- readonly description: "Invalid multiplier value in vault data";
190
- }, {
191
- readonly name: "invalid_unlock_epoch";
192
- readonly code: "INVALID_UNLOCK_EPOCH";
193
- readonly description: "Invalid unlock epoch value in vault data";
194
- }, {
195
- readonly name: "invalid_unlock_amount";
196
- readonly code: "INVALID_UNLOCK_AMOUNT";
197
- readonly description: "Invalid unlock amount value in vault data";
198
- }, {
199
- readonly name: "invalid_next_checkin_epoch";
200
- readonly code: "INVALID_NEXT_CHECKIN_EPOCH";
201
- readonly description: "Invalid next checkin epoch value";
101
+ }];
102
+ };
103
+ }, {
104
+ readonly type: "function";
105
+ readonly name: "daily_checkin";
106
+ readonly inputs: readonly [{
107
+ readonly name: "vaultIndex";
108
+ readonly type: "string";
109
+ readonly description: "Vault index for checkin (as string, e.g., \"0\", \"1\", \"2\")";
202
110
  }];
111
+ readonly outputs: readonly [];
112
+ readonly stateMutability: "nonpayable";
113
+ readonly description: "Daily checkin to earn bonus PRIME points and maintain streak";
114
+ readonly requirements: readonly ["vault must exist", "must be within 2-epoch checkin window", "vault must belong to caller"];
203
115
  readonly storage: {
204
- readonly keys: readonly [{
205
- readonly name: "vault";
206
- readonly pattern: "bic:lockup_prime:vault:{account}:{vault_index}";
207
- readonly type: "mapping";
208
- readonly description: "Vault data for each account and vault index";
209
- readonly valueFormat: "{tier}-{multiplier}-{unlock_epoch}-{amount}";
210
- readonly valueSchema: {
211
- readonly tier: {
212
- readonly type: "string";
213
- readonly enum: readonly ["7d", "30d", "90d", "180d", "365d"];
214
- };
215
- readonly multiplier: {
216
- readonly type: "string";
217
- readonly description: "Multiplier as string (e.g., \"17\", \"27\")";
218
- readonly parseAs: "u64";
219
- };
220
- readonly unlock_epoch: {
221
- readonly type: "string";
222
- readonly description: "Unlock epoch as string";
223
- readonly parseAs: "u64";
224
- };
225
- readonly amount: {
226
- readonly type: "string";
227
- readonly description: "Locked amount in flat units as string";
228
- readonly parseAs: "u64";
229
- };
230
- };
231
- readonly query: {
232
- readonly method: "POST";
233
- readonly endpoint: "/api/contract/get_prefix";
234
- readonly prefix: "bic:lockup_prime:vault:{account_binary}:";
235
- readonly description: "Get all vaults for an account. Returns array of [key, value] tuples.";
236
- };
116
+ readonly reads: readonly [{
117
+ readonly key: "bic:lockup_prime:vault:{caller}:{vault_index}";
118
+ readonly value: "{tier}-{multiplier}-{unlock_epoch}-{amount}";
119
+ readonly description: "Reads vault amount for bonus calculation";
120
+ }, {
121
+ readonly key: "bic:lockup_prime:next_checkin_epoch:{caller}";
122
+ readonly value: "epoch (as string)";
123
+ readonly description: "Next allowed checkin epoch";
124
+ }];
125
+ readonly writes: readonly [{
126
+ readonly condition: "if delta == 0 || delta == 1 (valid checkin)";
127
+ readonly writes: readonly [{
128
+ readonly key: "bic:lockup_prime:next_checkin_epoch:{caller}";
129
+ readonly value: "current_epoch + 2";
130
+ readonly description: "Updates next checkin epoch";
131
+ }, {
132
+ readonly key: "bic:coin:balance:{caller}:PRIME";
133
+ readonly operation: "mint";
134
+ readonly amount: "unlock_amount / 100";
135
+ readonly description: "Daily bonus (1% of locked amount)";
237
136
  }, {
238
- readonly name: "daily_streak";
239
- readonly pattern: "bic:lockup_prime:daily_streak:{account}";
240
- readonly type: "value";
241
- readonly description: "Current daily checkin streak count";
242
- readonly valueFormat: "string (number)";
243
- readonly valueSchema: {
244
- readonly type: "string";
245
- readonly parseAs: "u64";
246
- readonly description: "Streak count as string (e.g., \"5\", \"0\")";
247
- };
248
- readonly query: {
249
- readonly method: "POST";
250
- readonly endpoint: "/api/contract/get";
251
- readonly key: "bic:lockup_prime:daily_streak:{account_binary}";
252
- readonly description: "Get daily streak for an account";
253
- };
137
+ readonly key: "bic:lockup_prime:daily_streak:{caller}";
138
+ readonly operation: "increment";
139
+ readonly description: "Increments streak counter";
254
140
  }, {
255
- readonly name: "next_checkin_epoch";
256
- readonly pattern: "bic:lockup_prime:next_checkin_epoch:{account}";
257
- readonly type: "value";
258
- readonly description: "Next epoch when checkin is allowed";
259
- readonly valueFormat: "string (number)";
260
- readonly valueSchema: {
261
- readonly type: "string";
262
- readonly parseAs: "u64";
263
- readonly description: "Epoch as string (e.g., \"145\", \"200\")";
264
- };
265
- readonly query: {
266
- readonly method: "POST";
267
- readonly endpoint: "/api/contract/get";
268
- readonly key: "bic:lockup_prime:next_checkin_epoch:{account_binary}";
269
- readonly description: "Get next checkin epoch for an account";
270
- };
141
+ readonly condition: "if streak >= 30";
142
+ readonly writes: readonly [{
143
+ readonly key: "bic:lockup_prime:daily_streak:{caller}";
144
+ readonly value: "0";
145
+ readonly description: "Resets streak after bonus";
146
+ }, {
147
+ readonly key: "bic:coin:balance:{caller}:PRIME";
148
+ readonly operation: "mint";
149
+ readonly amount: "daily_bonus * 30";
150
+ readonly description: "Streak bonus (30x daily bonus)";
151
+ }];
152
+ }];
153
+ }, {
154
+ readonly condition: "if delta > 2 (missed checkin)";
155
+ readonly writes: readonly [{
156
+ readonly key: "bic:lockup_prime:next_checkin_epoch:{caller}";
157
+ readonly value: "current_epoch + 2";
158
+ readonly description: "Resets next checkin epoch";
271
159
  }, {
272
- readonly name: "unique_index";
273
- readonly pattern: "bic:lockup_prime:unique_index";
274
- readonly type: "value";
275
- readonly description: "Global vault index counter";
276
- readonly valueFormat: "string (number)";
277
- readonly valueSchema: {
278
- readonly type: "string";
279
- readonly parseAs: "u64";
280
- readonly description: "Global counter as string";
281
- };
282
- readonly query: {
283
- readonly method: "POST";
284
- readonly endpoint: "/api/contract/get";
285
- readonly key: "bic:lockup_prime:unique_index";
286
- readonly description: "Get global vault index counter";
287
- };
160
+ readonly key: "bic:lockup_prime:daily_streak:{caller}";
161
+ readonly value: "0";
162
+ readonly description: "Resets streak to 0";
288
163
  }];
164
+ }];
289
165
  };
290
- readonly constants: {
291
- readonly tiers: {
292
- readonly '7d': {
293
- readonly epochs: 10;
294
- readonly multiplier: 13;
295
- readonly label: "7 Days";
296
- };
297
- readonly '30d': {
298
- readonly epochs: 45;
299
- readonly multiplier: 17;
300
- readonly label: "30 Days";
301
- };
302
- readonly '90d': {
303
- readonly epochs: 135;
304
- readonly multiplier: 27;
305
- readonly label: "90 Days";
306
- };
307
- readonly '180d': {
308
- readonly epochs: 270;
309
- readonly multiplier: 35;
310
- readonly label: "180 Days";
311
- };
312
- readonly '365d': {
313
- readonly epochs: 547;
314
- readonly multiplier: 54;
315
- readonly label: "365 Days";
316
- };
166
+ }];
167
+ readonly errors: readonly [{
168
+ readonly name: "invalid_args";
169
+ readonly code: "INVALID_ARGS";
170
+ readonly description: "Invalid number of arguments";
171
+ }, {
172
+ readonly name: "invalid_amount";
173
+ readonly code: "INVALID_AMOUNT";
174
+ readonly description: "Amount must be > 1 flat unit and valid i128";
175
+ }, {
176
+ readonly name: "invalid_tier";
177
+ readonly code: "INVALID_TIER";
178
+ readonly description: "Tier must be one of: 7d, 30d, 90d, 180d, 365d";
179
+ }, {
180
+ readonly name: "insufficient_funds";
181
+ readonly code: "INSUFFICIENT_FUNDS";
182
+ readonly description: "Insufficient AMA balance";
183
+ }, {
184
+ readonly name: "invalid_vault";
185
+ readonly code: "INVALID_VAULT";
186
+ readonly description: "Vault does not exist or does not belong to caller";
187
+ }, {
188
+ readonly name: "invalid_multiplier";
189
+ readonly code: "INVALID_MULTIPLIER";
190
+ readonly description: "Invalid multiplier value in vault data";
191
+ }, {
192
+ readonly name: "invalid_unlock_epoch";
193
+ readonly code: "INVALID_UNLOCK_EPOCH";
194
+ readonly description: "Invalid unlock epoch value in vault data";
195
+ }, {
196
+ readonly name: "invalid_unlock_amount";
197
+ readonly code: "INVALID_UNLOCK_AMOUNT";
198
+ readonly description: "Invalid unlock amount value in vault data";
199
+ }, {
200
+ readonly name: "invalid_next_checkin_epoch";
201
+ readonly code: "INVALID_NEXT_CHECKIN_EPOCH";
202
+ readonly description: "Invalid next checkin epoch value";
203
+ }];
204
+ readonly storage: {
205
+ readonly keys: readonly [{
206
+ readonly name: "vault";
207
+ readonly pattern: "bic:lockup_prime:vault:{account}:{vault_index}";
208
+ readonly type: "mapping";
209
+ readonly description: "Vault data for each account and vault index";
210
+ readonly valueFormat: "{tier}-{multiplier}-{unlock_epoch}-{amount}";
211
+ readonly valueSchema: {
212
+ readonly tier: {
213
+ readonly type: "string";
214
+ readonly enum: readonly ["7d", "30d", "90d", "180d", "365d"];
317
215
  };
318
- readonly values: {
319
- readonly MIN_LOCK_AMOUNT: "1";
320
- readonly DAILY_BONUS_PERCENTAGE: "100";
321
- readonly STREAK_BONUS_THRESHOLD: "30";
322
- readonly STREAK_BONUS_MULTIPLIER: "30";
323
- readonly EARLY_UNLOCK_PENALTY: "0.25";
324
- readonly EARLY_UNLOCK_LOCK_DURATION: "5";
325
- readonly CHECKIN_WINDOW: "2";
216
+ readonly multiplier: {
217
+ readonly type: "string";
218
+ readonly description: "Multiplier as string (e.g., \"17\", \"27\")";
219
+ readonly parseAs: "u64";
326
220
  };
327
- };
328
- readonly encoding: {
329
- readonly args: {
330
- readonly format: "UTF-8 encoded strings";
331
- readonly description: "All function arguments must be UTF-8 encoded as Uint8Array using TextEncoder";
332
- readonly example: {
333
- readonly lock: readonly ["new TextEncoder().encode('1000000000000')", "new TextEncoder().encode('30d')"];
334
- };
221
+ readonly unlock_epoch: {
222
+ readonly type: "string";
223
+ readonly description: "Unlock epoch as string";
224
+ readonly parseAs: "u64";
335
225
  };
336
- readonly storage: {
337
- readonly keys: {
338
- readonly format: "Binary (48 bytes for account)";
339
- readonly description: "Storage keys use binary account addresses, not base58";
340
- };
341
- readonly values: {
342
- readonly format: "UTF-8 strings";
343
- readonly description: "All storage values are UTF-8 encoded strings";
344
- };
226
+ readonly amount: {
227
+ readonly type: "string";
228
+ readonly description: "Locked amount in flat units as string";
229
+ readonly parseAs: "u64";
345
230
  };
231
+ };
232
+ readonly query: {
233
+ readonly method: "POST";
234
+ readonly endpoint: "/api/contract/get_prefix";
235
+ readonly prefix: "bic:lockup_prime:vault:{account_binary}:";
236
+ readonly description: "Get all vaults for an account. Returns array of [key, value] tuples.";
237
+ };
238
+ }, {
239
+ readonly name: "daily_streak";
240
+ readonly pattern: "bic:lockup_prime:daily_streak:{account}";
241
+ readonly type: "value";
242
+ readonly description: "Current daily checkin streak count";
243
+ readonly valueFormat: "string (number)";
244
+ readonly valueSchema: {
245
+ readonly type: "string";
246
+ readonly parseAs: "u64";
247
+ readonly description: "Streak count as string (e.g., \"5\", \"0\")";
248
+ };
249
+ readonly query: {
250
+ readonly method: "POST";
251
+ readonly endpoint: "/api/contract/get";
252
+ readonly key: "bic:lockup_prime:daily_streak:{account_binary}";
253
+ readonly description: "Get daily streak for an account";
254
+ };
255
+ }, {
256
+ readonly name: "next_checkin_epoch";
257
+ readonly pattern: "bic:lockup_prime:next_checkin_epoch:{account}";
258
+ readonly type: "value";
259
+ readonly description: "Next epoch when checkin is allowed";
260
+ readonly valueFormat: "string (number)";
261
+ readonly valueSchema: {
262
+ readonly type: "string";
263
+ readonly parseAs: "u64";
264
+ readonly description: "Epoch as string (e.g., \"145\", \"200\")";
265
+ };
266
+ readonly query: {
267
+ readonly method: "POST";
268
+ readonly endpoint: "/api/contract/get";
269
+ readonly key: "bic:lockup_prime:next_checkin_epoch:{account_binary}";
270
+ readonly description: "Get next checkin epoch for an account";
271
+ };
272
+ }, {
273
+ readonly name: "unique_index";
274
+ readonly pattern: "bic:lockup_prime:unique_index";
275
+ readonly type: "value";
276
+ readonly description: "Global vault index counter";
277
+ readonly valueFormat: "string (number)";
278
+ readonly valueSchema: {
279
+ readonly type: "string";
280
+ readonly parseAs: "u64";
281
+ readonly description: "Global counter as string";
282
+ };
283
+ readonly query: {
284
+ readonly method: "POST";
285
+ readonly endpoint: "/api/contract/get";
286
+ readonly key: "bic:lockup_prime:unique_index";
287
+ readonly description: "Get global vault index counter";
288
+ };
289
+ }];
290
+ };
291
+ readonly constants: {
292
+ readonly tiers: {
293
+ readonly '7d': {
294
+ readonly epochs: 10;
295
+ readonly multiplier: 13;
296
+ readonly label: "7 Days";
297
+ };
298
+ readonly '30d': {
299
+ readonly epochs: 45;
300
+ readonly multiplier: 17;
301
+ readonly label: "30 Days";
302
+ };
303
+ readonly '90d': {
304
+ readonly epochs: 135;
305
+ readonly multiplier: 27;
306
+ readonly label: "90 Days";
307
+ };
308
+ readonly '180d': {
309
+ readonly epochs: 270;
310
+ readonly multiplier: 35;
311
+ readonly label: "180 Days";
312
+ };
313
+ readonly '365d': {
314
+ readonly epochs: 547;
315
+ readonly multiplier: 54;
316
+ readonly label: "365 Days";
317
+ };
318
+ };
319
+ readonly values: {
320
+ readonly MIN_LOCK_AMOUNT: "1";
321
+ readonly DAILY_BONUS_PERCENTAGE: "100";
322
+ readonly STREAK_BONUS_THRESHOLD: "30";
323
+ readonly STREAK_BONUS_MULTIPLIER: "30";
324
+ readonly EARLY_UNLOCK_PENALTY: "0.25";
325
+ readonly EARLY_UNLOCK_LOCK_DURATION: "5";
326
+ readonly CHECKIN_WINDOW: "2";
327
+ };
328
+ };
329
+ readonly encoding: {
330
+ readonly args: {
331
+ readonly format: "UTF-8 encoded strings";
332
+ readonly description: "All function arguments must be UTF-8 encoded as Uint8Array using TextEncoder";
333
+ readonly example: {
334
+ readonly lock: readonly ["new TextEncoder().encode('1000000000000')", "new TextEncoder().encode('30d')"];
335
+ };
336
+ };
337
+ readonly storage: {
338
+ readonly keys: {
339
+ readonly format: "Binary (48 bytes for account)";
340
+ readonly description: "Storage keys use binary account addresses, not base58";
341
+ };
342
+ readonly values: {
343
+ readonly format: "UTF-8 strings";
344
+ readonly description: "All storage values are UTF-8 encoded strings";
345
+ };
346
346
  };
347
+ };
347
348
  };
349
+ //#endregion
350
+ export { LOCKUP_PRIME_ABI };
348
351
  //# sourceMappingURL=abi.d.ts.map