(self, settlement: dict)
| 3236 | ])) |
| 3237 | |
| 3238 | def get_extended_order_msg_hash(self, settlement: dict) -> str: |
| 3239 | orderTypeHash = self.convert_to_big_int(self.extended_starknet_get_selector_from_name( |
| 3240 | '"Order"("position_id":"felt","base_asset_id":"AssetId","base_amount":"i64","quote_asset_id":"AssetId","quote_amount":"i64","fee_asset_id":"AssetId","fee_amount":"u64","expiration":"Timestamp","salt":"felt")"PositionId"("value":"u32")"AssetId"("value":"felt")"Timestamp"("seconds":"u64")' |
| 3241 | )) |
| 3242 | domainHash = self.get_extended_domain_hash() |
| 3243 | # Order fields |
| 3244 | positionId = self.convert_to_big_int(self.safe_string(settlement, 'collateralPosition')) |
| 3245 | baseAssetId = self.safe_string(settlement, 'baseAssetId') |
| 3246 | baseAmount = self.convert_to_big_int(self.safe_string(settlement, 'baseAmount')) |
| 3247 | quoteAssetId = self.safe_string(settlement, 'quoteAssetId') |
| 3248 | quoteAmount = self.convert_to_big_int(self.safe_string(settlement, 'quoteAmount')) |
| 3249 | feeAssetId = self.safe_string(settlement, 'feeAssetId') |
| 3250 | feeAmount = self.convert_to_big_int(self.safe_string(settlement, 'feeAmount')) |
| 3251 | expiration = self.convert_to_big_int(self.safe_string_2(settlement, 'expiration', 'expirationTimestamp')) |
| 3252 | salt = self.convert_to_big_int(self.safe_string_2(settlement, 'salt', 'nonce')) |
| 3253 | starkKey = self.convert_to_big_int(self.safe_string(settlement, 'starkKey')) |
| 3254 | # Order struct hash |
| 3255 | orderHash = self.convert_to_big_int(self.extended_starknet_compute_poseidon_hash_on_elements([ |
| 3256 | orderTypeHash, |
| 3257 | positionId, |
| 3258 | self.convert_to_big_int(baseAssetId), |
| 3259 | self.get_extended_encode_i64(baseAmount), |
| 3260 | self.convert_to_big_int(quoteAssetId), |
| 3261 | self.get_extended_encode_i64(quoteAmount), |
| 3262 | self.convert_to_big_int(feeAssetId), |
| 3263 | feeAmount, |
| 3264 | expiration, |
| 3265 | salt, |
| 3266 | ])) |
| 3267 | # SNIP-12 final message hash: poseidon('StarkNet Message', domainHash, starkKey, orderHash) |
| 3268 | return self.extended_starknet_compute_poseidon_hash_on_elements([ |
| 3269 | self.get_extended_string_to_felt('StarkNet Message'), |
| 3270 | domainHash, |
| 3271 | starkKey, |
| 3272 | orderHash, |
| 3273 | ]) |
| 3274 | |
| 3275 | def get_extended_withdrawal_msg_hash(self, settlement: dict, starkKey: str) -> str: |
| 3276 | withdrawalTypeHash = self.convert_to_big_int(self.extended_starknet_get_selector_from_name( |
no test coverage detected