|  | 
| 27 | 27 |     }, | 
| 28 | 28 |     total=False, | 
| 29 | 29 | ) | 
|  | 30 | +OidOrCloid = Union[int, Cloid] | 
| 30 | 31 | ModifyRequest = TypedDict( | 
| 31 | 32 |     "ModifyRequest", | 
| 32 | 33 |     { | 
| 33 |  | -        "oid": int, | 
|  | 34 | +        "oid": OidOrCloid, | 
| 34 | 35 |         "order": OrderRequest, | 
| 35 | 36 |     }, | 
| 36 | 37 |     total=False, | 
| @@ -135,84 +136,74 @@ def sign_l1_action(wallet, action, active_pool, nonce, is_mainnet): | 
| 135 | 136 |     return sign_inner(wallet, data) | 
| 136 | 137 | 
 | 
| 137 | 138 | 
 | 
| 138 |  | -def sign_usd_transfer_action(wallet, message, is_mainnet): | 
| 139 |  | -    data = { | 
| 140 |  | -        "domain": { | 
| 141 |  | -            "name": "Exchange", | 
| 142 |  | -            "version": "1", | 
| 143 |  | -            "chainId": 42161 if is_mainnet else 421614, | 
| 144 |  | -            "verifyingContract": "0x0000000000000000000000000000000000000000", | 
| 145 |  | -        }, | 
| 146 |  | -        "types": { | 
| 147 |  | -            "UsdTransferSignPayload": [ | 
| 148 |  | -                {"name": "destination", "type": "string"}, | 
| 149 |  | -                {"name": "amount", "type": "string"}, | 
| 150 |  | -                {"name": "time", "type": "uint64"}, | 
| 151 |  | -            ], | 
| 152 |  | -            "EIP712Domain": [ | 
| 153 |  | -                {"name": "name", "type": "string"}, | 
| 154 |  | -                {"name": "version", "type": "string"}, | 
| 155 |  | -                {"name": "chainId", "type": "uint256"}, | 
| 156 |  | -                {"name": "verifyingContract", "type": "address"}, | 
| 157 |  | -            ], | 
| 158 |  | -        }, | 
| 159 |  | -        "primaryType": "UsdTransferSignPayload", | 
| 160 |  | -        "message": message, | 
| 161 |  | -    } | 
| 162 |  | -    return sign_inner(wallet, data) | 
| 163 |  | - | 
| 164 |  | - | 
| 165 |  | -def sign_withdraw_from_bridge_action(wallet, message, is_mainnet): | 
|  | 139 | +def sign_user_signed_action(wallet, action, payload_types, primary_type, is_mainnet): | 
|  | 140 | +    action["signatureChainId"] = "0x66eee" | 
|  | 141 | +    action["hyperliquidChain"] = "Mainnet" if is_mainnet else "Testnet" | 
| 166 | 142 |     data = { | 
| 167 | 143 |         "domain": { | 
| 168 |  | -            "name": "Exchange", | 
|  | 144 | +            "name": "HyperliquidSignTransaction", | 
| 169 | 145 |             "version": "1", | 
| 170 |  | -            "chainId": 42161 if is_mainnet else 421614, | 
|  | 146 | +            "chainId": 421614, | 
| 171 | 147 |             "verifyingContract": "0x0000000000000000000000000000000000000000", | 
| 172 | 148 |         }, | 
| 173 | 149 |         "types": { | 
| 174 |  | -            "WithdrawFromBridge2SignPayload": [ | 
| 175 |  | -                {"name": "destination", "type": "string"}, | 
| 176 |  | -                {"name": "usd", "type": "string"}, | 
| 177 |  | -                {"name": "time", "type": "uint64"}, | 
| 178 |  | -            ], | 
|  | 150 | +            primary_type: payload_types, | 
| 179 | 151 |             "EIP712Domain": [ | 
| 180 | 152 |                 {"name": "name", "type": "string"}, | 
| 181 | 153 |                 {"name": "version", "type": "string"}, | 
| 182 | 154 |                 {"name": "chainId", "type": "uint256"}, | 
| 183 | 155 |                 {"name": "verifyingContract", "type": "address"}, | 
| 184 | 156 |             ], | 
| 185 | 157 |         }, | 
| 186 |  | -        "primaryType": "WithdrawFromBridge2SignPayload", | 
| 187 |  | -        "message": message, | 
|  | 158 | +        "primaryType": primary_type, | 
|  | 159 | +        "message": action, | 
| 188 | 160 |     } | 
| 189 | 161 |     return sign_inner(wallet, data) | 
| 190 | 162 | 
 | 
| 191 | 163 | 
 | 
| 192 |  | -def sign_agent(wallet, agent, is_mainnet): | 
| 193 |  | -    data = { | 
| 194 |  | -        "domain": { | 
| 195 |  | -            "name": "Exchange", | 
| 196 |  | -            "version": "1", | 
| 197 |  | -            "chainId": 42161 if is_mainnet else 421614, | 
| 198 |  | -            "verifyingContract": "0x0000000000000000000000000000000000000000", | 
| 199 |  | -        }, | 
| 200 |  | -        "types": { | 
| 201 |  | -            "Agent": [ | 
| 202 |  | -                {"name": "source", "type": "string"}, | 
| 203 |  | -                {"name": "connectionId", "type": "bytes32"}, | 
| 204 |  | -            ], | 
| 205 |  | -            "EIP712Domain": [ | 
| 206 |  | -                {"name": "name", "type": "string"}, | 
| 207 |  | -                {"name": "version", "type": "string"}, | 
| 208 |  | -                {"name": "chainId", "type": "uint256"}, | 
| 209 |  | -                {"name": "verifyingContract", "type": "address"}, | 
| 210 |  | -            ], | 
| 211 |  | -        }, | 
| 212 |  | -        "primaryType": "Agent", | 
| 213 |  | -        "message": agent, | 
| 214 |  | -    } | 
| 215 |  | -    return sign_inner(wallet, data) | 
|  | 164 | +def sign_usd_transfer_action(wallet, action, is_mainnet): | 
|  | 165 | +    return sign_user_signed_action( | 
|  | 166 | +        wallet, | 
|  | 167 | +        action, | 
|  | 168 | +        [ | 
|  | 169 | +            {"name": "hyperliquidChain", "type": "string"}, | 
|  | 170 | +            {"name": "destination", "type": "string"}, | 
|  | 171 | +            {"name": "amount", "type": "string"}, | 
|  | 172 | +            {"name": "time", "type": "uint64"}, | 
|  | 173 | +        ], | 
|  | 174 | +        "HyperliquidTransaction:UsdSend", | 
|  | 175 | +        is_mainnet, | 
|  | 176 | +    ) | 
|  | 177 | + | 
|  | 178 | + | 
|  | 179 | +def sign_withdraw_from_bridge_action(wallet, action, is_mainnet): | 
|  | 180 | +    return sign_user_signed_action( | 
|  | 181 | +        wallet, | 
|  | 182 | +        action, | 
|  | 183 | +        [ | 
|  | 184 | +            {"name": "hyperliquidChain", "type": "string"}, | 
|  | 185 | +            {"name": "destination", "type": "string"}, | 
|  | 186 | +            {"name": "amount", "type": "string"}, | 
|  | 187 | +            {"name": "time", "type": "uint64"}, | 
|  | 188 | +        ], | 
|  | 189 | +        "HyperliquidTransaction:Withdraw", | 
|  | 190 | +        is_mainnet, | 
|  | 191 | +    ) | 
|  | 192 | + | 
|  | 193 | + | 
|  | 194 | +def sign_agent(wallet, action, is_mainnet): | 
|  | 195 | +    return sign_user_signed_action( | 
|  | 196 | +        wallet, | 
|  | 197 | +        action, | 
|  | 198 | +        [ | 
|  | 199 | +            {"name": "hyperliquidChain", "type": "string"}, | 
|  | 200 | +            {"name": "agentAddress", "type": "address"}, | 
|  | 201 | +            {"name": "agentName", "type": "string"}, | 
|  | 202 | +            {"name": "nonce", "type": "uint64"}, | 
|  | 203 | +        ], | 
|  | 204 | +        "HyperliquidTransaction:ApproveAgent", | 
|  | 205 | +        is_mainnet, | 
|  | 206 | +    ) | 
| 216 | 207 | 
 | 
| 217 | 208 | 
 | 
| 218 | 209 | def sign_inner(wallet, data): | 
|  | 
0 commit comments