|
1 |
| -import { |
2 |
| - PUBLIC_KEY_LENGTH, |
3 |
| - SIGNATURE_LENGTH as BLS_SIGNATURE_LENGTH, |
4 |
| -} from '../../../../crypto/bls'; |
5 |
| -import { SIGNATURE_LENGTH } from '../../../../crypto/secp256k1'; |
6 | 1 | import type { OutputOwners } from '../../../../serializable';
|
7 | 2 | import { Input } from '../../../../serializable/fxs/secp256k1';
|
8 | 3 | import {
|
@@ -50,205 +45,33 @@ import {
|
50 | 45 | } from '../../../common/fees/dimensions';
|
51 | 46 | import type { Serializable } from '../../../common/types';
|
52 | 47 | import type { Transaction } from '../../../common';
|
53 |
| - |
54 |
| -/** |
55 |
| - * Number of bytes per long. |
56 |
| - */ |
57 |
| -const LONG_LEN = 8; |
58 |
| - |
59 |
| -const ID_LEN = 32; |
60 |
| - |
61 |
| -/** |
62 |
| - * Number of bytes per short. |
63 |
| - */ |
64 |
| -const SHORT_LEN = 2; |
65 |
| - |
66 |
| -const SHORT_ID_LEN = 20; |
67 |
| - |
68 |
| -/** |
69 |
| - * Number of bytes per int. |
70 |
| - */ |
71 |
| -const INT_LEN = 4; |
72 |
| - |
73 |
| -const INTRINSIC_VALIDATOR_BANDWIDTH = |
74 |
| - SHORT_ID_LEN + // Node ID (Short ID = 20) |
75 |
| - LONG_LEN + // Start |
76 |
| - LONG_LEN + // End |
77 |
| - LONG_LEN; // Weight |
78 |
| - |
79 |
| -const INTRINSIC_SUBNET_VALIDATOR_BANDWIDTH = |
80 |
| - INTRINSIC_VALIDATOR_BANDWIDTH + // Validator |
81 |
| - ID_LEN; // Subnet ID (ID Length = 32) |
82 |
| - |
83 |
| -const INTRINSIC_OUTPUT_BANDWIDTH = |
84 |
| - ID_LEN + // assetID |
85 |
| - INT_LEN; // output typeID |
86 |
| - |
87 |
| -const INTRINSIC_STAKEABLE_LOCKED_OUTPUT_BANDWIDTH = |
88 |
| - LONG_LEN + // locktime |
89 |
| - INT_LEN; // output typeID |
90 |
| - |
91 |
| -const INTRINSIC_SECP256K1_FX_OUTPUT_OWNERS_BANDWIDTH = |
92 |
| - LONG_LEN + // locktime |
93 |
| - INT_LEN + // threshold |
94 |
| - INT_LEN; // number of addresses |
95 |
| - |
96 |
| -const INTRINSIC_SECP256K1_FX_OUTPUT_BANDWIDTH = |
97 |
| - LONG_LEN + // amount |
98 |
| - INTRINSIC_SECP256K1_FX_OUTPUT_OWNERS_BANDWIDTH; |
99 |
| - |
100 |
| -const INTRINSIC_INPUT_BANDWIDTH = |
101 |
| - ID_LEN + // txID |
102 |
| - INT_LEN + // output index |
103 |
| - ID_LEN + // assetID |
104 |
| - INT_LEN + // input typeID |
105 |
| - INT_LEN; // credential typeID |
106 |
| - |
107 |
| -const INTRINSIC_STAKEABLE_LOCKED_INPUT_BANDWIDTH = |
108 |
| - LONG_LEN + // locktime |
109 |
| - INT_LEN; // input typeID |
110 |
| - |
111 |
| -const INTRINSIC_SECP256K1_FX_INPUT_BANDWIDTH = |
112 |
| - INT_LEN + // num indices |
113 |
| - INT_LEN; // num signatures |
114 |
| - |
115 |
| -const INTRINSIC_SECP256K1_FX_TRANSFERABLE_INPUT_BANDWIDTH = |
116 |
| - LONG_LEN + // amount |
117 |
| - INTRINSIC_SECP256K1_FX_INPUT_BANDWIDTH; |
118 |
| - |
119 |
| -const INTRINSIC_SECP256K1_FX_SIGNATURE_BANDWIDTH = |
120 |
| - INT_LEN + // Signature index |
121 |
| - SIGNATURE_LENGTH; // Signature |
122 |
| - |
123 |
| -const INTRINSIC_POP_BANDWIDTH = |
124 |
| - PUBLIC_KEY_LENGTH + // Public key |
125 |
| - BLS_SIGNATURE_LENGTH; // Signature |
126 |
| - |
127 |
| -export const INTRINSIC_INPUT_DB_READ = 1; |
128 |
| -export const INTRINSIC_INPUT_DB_WRITE = 1; |
129 |
| -export const INTRINSIC_OUTPUT_DB_WRITE = 1; |
130 |
| - |
131 |
| -export const INTRINSIC_BASE_TX_COMPLEXITIES: Dimensions = { |
132 |
| - [FeeDimensions.Bandwidth]: |
133 |
| - 2 + // codec version |
134 |
| - INT_LEN + // typeID |
135 |
| - INT_LEN + // networkID |
136 |
| - ID_LEN + // blockchainID |
137 |
| - INT_LEN + // number of outputs |
138 |
| - INT_LEN + // number of inputs |
139 |
| - INT_LEN + // length of memo |
140 |
| - INT_LEN, // number of credentials |
141 |
| - [FeeDimensions.DBRead]: 0, |
142 |
| - [FeeDimensions.DBWrite]: 0, |
143 |
| - [FeeDimensions.Compute]: 0, |
144 |
| -}; |
145 |
| - |
146 |
| -export const INTRINSIC_CREATE_CHAIN_TX_COMPLEXITIES: Dimensions = { |
147 |
| - [FeeDimensions.Bandwidth]: |
148 |
| - INTRINSIC_BASE_TX_COMPLEXITIES[FeeDimensions.Bandwidth] + |
149 |
| - ID_LEN + // Subnet ID |
150 |
| - SHORT_LEN + // Chain name length |
151 |
| - ID_LEN + // vmID |
152 |
| - INT_LEN + // num fIds |
153 |
| - INT_LEN + // genesis length |
154 |
| - INT_LEN + // subnetAuth typeID |
155 |
| - INT_LEN, // subnetAuthCredential typeID |
156 |
| - [FeeDimensions.DBRead]: 1, |
157 |
| - [FeeDimensions.DBWrite]: 1, |
158 |
| - [FeeDimensions.Compute]: 0, |
159 |
| -}; |
160 |
| - |
161 |
| -export const INTRINSIC_CREATE_SUBNET_TX_COMPLEXITIES: Dimensions = { |
162 |
| - [FeeDimensions.Bandwidth]: |
163 |
| - INTRINSIC_BASE_TX_COMPLEXITIES[FeeDimensions.Bandwidth] + INT_LEN, // owner typeID |
164 |
| - [FeeDimensions.DBRead]: 0, |
165 |
| - [FeeDimensions.DBWrite]: 1, |
166 |
| - [FeeDimensions.Compute]: 0, |
167 |
| -}; |
168 |
| - |
169 |
| -export const INTRINSIC_ADD_PERMISSIONLESS_VALIDATOR_TX_COMPLEXITIES: Dimensions = |
170 |
| - { |
171 |
| - [FeeDimensions.Bandwidth]: |
172 |
| - INTRINSIC_BASE_TX_COMPLEXITIES[FeeDimensions.Bandwidth] + |
173 |
| - INTRINSIC_VALIDATOR_BANDWIDTH + // Validator |
174 |
| - ID_LEN + // Subnet ID |
175 |
| - INT_LEN + // Signer typeID |
176 |
| - INT_LEN + // Num stake outs |
177 |
| - INT_LEN + // Validator rewards typeID |
178 |
| - INT_LEN + // Delegator rewards typeID |
179 |
| - INT_LEN, // Delegation shares |
180 |
| - [FeeDimensions.DBRead]: 1, |
181 |
| - [FeeDimensions.DBWrite]: 1, |
182 |
| - [FeeDimensions.Compute]: 0, |
183 |
| - }; |
184 |
| - |
185 |
| -export const INTRINSIC_ADD_PERMISSIONLESS_DELEGATOR_TX_COMPLEXITIES: Dimensions = |
186 |
| - { |
187 |
| - [FeeDimensions.Bandwidth]: |
188 |
| - INTRINSIC_BASE_TX_COMPLEXITIES[FeeDimensions.Bandwidth] + |
189 |
| - INTRINSIC_VALIDATOR_BANDWIDTH + // Validator |
190 |
| - ID_LEN + // Subnet ID |
191 |
| - INT_LEN + // Num stake outs |
192 |
| - INT_LEN, // Delegator rewards typeID |
193 |
| - [FeeDimensions.DBRead]: 1, |
194 |
| - [FeeDimensions.DBWrite]: 1, |
195 |
| - [FeeDimensions.Compute]: 0, |
196 |
| - }; |
197 |
| - |
198 |
| -export const INTRINSIC_ADD_SUBNET_VALIDATOR_TX_COMPLEXITIES: Dimensions = { |
199 |
| - [FeeDimensions.Bandwidth]: |
200 |
| - INTRINSIC_BASE_TX_COMPLEXITIES[FeeDimensions.Bandwidth] + |
201 |
| - INTRINSIC_SUBNET_VALIDATOR_BANDWIDTH + // Subnet Validator |
202 |
| - INT_LEN + // Subnet auth typeID |
203 |
| - INT_LEN, // Subnet auth credential typeID |
204 |
| - [FeeDimensions.DBRead]: 2, |
205 |
| - [FeeDimensions.DBWrite]: 1, |
206 |
| - [FeeDimensions.Compute]: 0, |
207 |
| -}; |
208 |
| - |
209 |
| -export const INTRINSIC_EXPORT_TX_COMPLEXITIES: Dimensions = { |
210 |
| - [FeeDimensions.Bandwidth]: |
211 |
| - INTRINSIC_BASE_TX_COMPLEXITIES[FeeDimensions.Bandwidth] + |
212 |
| - ID_LEN + // destination chain ID |
213 |
| - INT_LEN, // num exported outputs |
214 |
| - [FeeDimensions.DBRead]: 0, |
215 |
| - [FeeDimensions.DBWrite]: 0, |
216 |
| - [FeeDimensions.Compute]: 0, |
217 |
| -}; |
218 |
| - |
219 |
| -export const INTRINSIC_IMPORT_TX_COMPLEXITIES: Dimensions = { |
220 |
| - [FeeDimensions.Bandwidth]: |
221 |
| - INTRINSIC_BASE_TX_COMPLEXITIES[FeeDimensions.Bandwidth] + |
222 |
| - ID_LEN + // source chain ID |
223 |
| - INT_LEN, // num imported inputs |
224 |
| - [FeeDimensions.DBRead]: 0, |
225 |
| - [FeeDimensions.DBWrite]: 0, |
226 |
| - [FeeDimensions.Compute]: 0, |
227 |
| -}; |
228 |
| - |
229 |
| -export const INTRINSIC_REMOVE_SUBNET_VALIDATOR_TX_COMPLEXITIES: Dimensions = { |
230 |
| - [FeeDimensions.Bandwidth]: |
231 |
| - INTRINSIC_BASE_TX_COMPLEXITIES[FeeDimensions.Bandwidth] + |
232 |
| - SHORT_ID_LEN + // nodeID |
233 |
| - ID_LEN + // subnetID |
234 |
| - INT_LEN + // subnetAuth typeId |
235 |
| - INT_LEN, // subnetAuth credential typeId |
236 |
| - [FeeDimensions.DBRead]: 2, |
237 |
| - [FeeDimensions.DBWrite]: 1, |
238 |
| - [FeeDimensions.Compute]: 0, |
239 |
| -}; |
240 |
| - |
241 |
| -export const INTRINSIC_TRANSFER_SUBNET_OWNERSHIP_TX_COMPLEXITIES: Dimensions = { |
242 |
| - [FeeDimensions.Bandwidth]: |
243 |
| - INTRINSIC_BASE_TX_COMPLEXITIES[FeeDimensions.Bandwidth] + |
244 |
| - ID_LEN + // subnetID |
245 |
| - INT_LEN + // subnetAuth typeID |
246 |
| - INT_LEN + // owner typeID |
247 |
| - INT_LEN, // subnetAuth credential typeID |
248 |
| - [FeeDimensions.DBRead]: 1, |
249 |
| - [FeeDimensions.DBWrite]: 1, |
250 |
| - [FeeDimensions.Compute]: 0, |
251 |
| -}; |
| 48 | +import { |
| 49 | + ID_LEN, |
| 50 | + INTRINSIC_ADD_PERMISSIONLESS_DELEGATOR_TX_COMPLEXITIES, |
| 51 | + INTRINSIC_ADD_PERMISSIONLESS_VALIDATOR_TX_COMPLEXITIES, |
| 52 | + INTRINSIC_ADD_SUBNET_VALIDATOR_TX_COMPLEXITIES, |
| 53 | + INTRINSIC_BASE_TX_COMPLEXITIES, |
| 54 | + INTRINSIC_CREATE_CHAIN_TX_COMPLEXITIES, |
| 55 | + INTRINSIC_CREATE_SUBNET_TX_COMPLEXITIES, |
| 56 | + INTRINSIC_EXPORT_TX_COMPLEXITIES, |
| 57 | + INTRINSIC_IMPORT_TX_COMPLEXITIES, |
| 58 | + INTRINSIC_INPUT_BANDWIDTH, |
| 59 | + INTRINSIC_INPUT_DB_READ, |
| 60 | + INTRINSIC_INPUT_DB_WRITE, |
| 61 | + INTRINSIC_OUTPUT_BANDWIDTH, |
| 62 | + INTRINSIC_OUTPUT_DB_WRITE, |
| 63 | + INTRINSIC_POP_BANDWIDTH, |
| 64 | + INTRINSIC_REMOVE_SUBNET_VALIDATOR_TX_COMPLEXITIES, |
| 65 | + INTRINSIC_SECP256K1_FX_INPUT_BANDWIDTH, |
| 66 | + INTRINSIC_SECP256K1_FX_OUTPUT_BANDWIDTH, |
| 67 | + INTRINSIC_SECP256K1_FX_OUTPUT_OWNERS_BANDWIDTH, |
| 68 | + INTRINSIC_SECP256K1_FX_SIGNATURE_BANDWIDTH, |
| 69 | + INTRINSIC_SECP256K1_FX_TRANSFERABLE_INPUT_BANDWIDTH, |
| 70 | + INTRINSIC_STAKEABLE_LOCKED_INPUT_BANDWIDTH, |
| 71 | + INTRINSIC_STAKEABLE_LOCKED_OUTPUT_BANDWIDTH, |
| 72 | + INTRINSIC_TRANSFER_SUBNET_OWNERSHIP_TX_COMPLEXITIES, |
| 73 | + SHORT_ID_LEN, |
| 74 | +} from './constants'; |
252 | 75 |
|
253 | 76 | /**
|
254 | 77 | * Returns the complexity outputs add to a transaction.
|
|
0 commit comments