MCPcopy Create free account
hub / github.com/ccxt/ccxt / get_extended_transfer_msg_hash

Method get_extended_transfer_msg_hash

python/ccxt/extended.py:3297–3317  ·  view source on GitHub ↗
(self, settlement: dict)

Source from the content-addressed store, hash-verified

3295 ])
3296
3297 def get_extended_transfer_msg_hash(self, settlement: dict) -> str:
3298 transferTypeHash = self.convert_to_big_int(self.extended_starknet_get_selector_from_name(
3299 '"Transfer"("sender_position_id":"PositionId","receiver_position_id":"PositionId","asset_id":"AssetId","amount":"u64","expiration":"Timestamp","salt":"felt")"PositionId"("value":"u32")"AssetId"("value":"felt")"Timestamp"("seconds":"u64")'
3300 ))
3301 domainHash = self.get_extended_domain_hash()
3302 senderPublicKey = self.convert_to_big_int(self.safe_string(settlement, 'senderPublicKey'))
3303 transferHash = self.convert_to_big_int(self.extended_starknet_compute_poseidon_hash_on_elements([
3304 transferTypeHash,
3305 self.convert_to_big_int(self.safe_string(settlement, 'senderPositionId')),
3306 self.convert_to_big_int(self.safe_string(settlement, 'receiverPositionId')),
3307 self.convert_to_big_int(self.safe_string(settlement, 'assetId')),
3308 self.convert_to_big_int(self.safe_string(settlement, 'amount')),
3309 self.convert_to_big_int(self.safe_string(settlement, 'expirationTimestamp')),
3310 self.convert_to_big_int(self.safe_string(settlement, 'nonce')),
3311 ]))
3312 return self.extended_starknet_compute_poseidon_hash_on_elements([
3313 self.get_extended_string_to_felt('StarkNet Message'),
3314 domainHash,
3315 senderPublicKey,
3316 transferHash,
3317 ])
3318
3319 def handle_errors(self, httpCode: int, reason: str, url: str, method: str, headers: dict, body: str, response, requestHeaders, requestBody):
3320 if not response:

Callers 1

Tested by

no test coverage detected