Skip to content

Conversation

@luca992
Copy link

@luca992 luca992 commented Dec 23, 2025

Built on top of #144 so that should be reviewed first.

Refactored/renamed BaseUrl -> HyperliquidChain since it better represents what it actually is after expanding where it's used.

Added ::new() helpers on action structs so you can easily create actions with a default chain ID and generated timestamp, without exposing next_nonce.

This lets you build actions/signatures for a user to sign sign asynchronously.

Exposes post so you can relay those pre-signed actions.

Vadim Nicolai and others added 30 commits October 21, 2025 13:52
- convert_to_multi_sig_user: Convert user to multi-sig with authorized users and threshold
- multi_sig_order: Execute multi-sig orders with JSON and typed actions
- multi_sig_register_token: Multi-sig token registration with spot deploy
- multi_sig_usd_send: Multi-sig USD transfers with signature chain parameters

Examples show structure for future implementation when multi-sig functionality is added to Rust SDK
…unt conversion, address management, and transaction operations for orders, USDC transfers, and spot transfers including comprehensive tests and examples.
remove SendAsset payload_multi_sig_user & outer_signer
…not serialize

package outer_signer and payload_multi_sig_user in MultiSigExtension
This causes issues especially with message packing multi-sig transaction

when for example a serde Value with a number will look like this when packed:

`0x83b07369676e6174757265436861696e4964a3307831aa7369676e6174757265739183a172d942307864623433373135643037383931613063363361383937376139393534646332346664326663363063373436643734353566363133326236396163396665393734a173d942307832386236323363376364643563383230643461663832326634323336623361663361613063373938653736396235353031613331323162343634623761353835a17681bc2473657264655f6a736f6e3a3a707269766174653a3a4e756d626572a23238a77061796c6f616483ac6d756c746953696755736572d92a307832623339633062636664343763356132376636333766383832303661666239356637616661323838ab6f757465725369676e6572d92a307862373131613133636261663734316138383263373230623433363861346566323661346631613632a6616374696f6e8aa474797065a973656e644173736574b07369676e6174757265436861696e4964a730783636656565b068797065726c6971756964436861696ea7546573746e6574ab64657374696e6174696f6ed92a307836643938383538373139363035643332366664633136343839363737333432343462323762386133a9736f75726365446578a0ae64657374696e6174696f6e446578a0a5746f6b656ea455534443a6616d6f756e74a4302e3031ae66726f6d5375624163636f756e74a0a56e6f6e636581bc2473657264655f6a736f6e3a3a707269766174653a3a4e756d626572ad31373632383338313437303030`

```
{
	"signatureChainId": "0x1",
	"signatures": [
		{
			"r": "0xdb43715d07891a0c63a8977a9954dc24fd2fc60c746d7455f6132b69ac9fe974",
			"s": "0x28b623c7cdd5c820d4af822f4236b3af3aa0c798e769b5501a3121b464b7a585",
			"v": {
				"$serde_json::private::Number": "28"
			}
		}
	],
	"payload": {
		"multiSigUser": "0x2b39c0bcfd47c5a27f637f88206afb95f7afa288",
		"outerSigner": "0xb711a13cbaf741a882c720b4368a4ef26a4f1a62",
		"action": {
			"type": "sendAsset",
			"signatureChainId": "0x66eee",
			"hyperliquidChain": "Testnet",
			"destination": "0x6d98858719605d326fdc1648967734244b27b8a3",
			"sourceDex": "",
			"destinationDex": "",
			"token": "USDC",
			"amount": "0.01",
			"fromSubAccount": "",
			"nonce": {
				"$serde_json::private::Number": "1762838147000"
			}
		}
	}
}
```
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants