SDK Signature
Loopring SDK supports EOA (EOA hardware wallet) & Loopring Smart Wallet signature
Environment type
For Browser extension, Dapp, and hardware wallet we only support EOA
For Loopring smart wallet (App), the provider gateway is WalletConnect
The following are the provider gateways we inject & test:
MetaMask (Ledger, Trezor)
WalletConnect (Authereum, Loopring smart wallet )
Coinbase
For signature:
Understand what is
eth_sign signing types
(eth_sign, personal_sign, v1, v3, v4)❗ when adding
SigSuffix
02|03
(please follow:EIP712
&signTypedData_v4
+02
,personal_sign
+03
)
for
v4
ecdsaSignature, the result signature should +SigSuffix.Suffix02
;for
personal_sign
ecdsaSignature the result signature should +SigSuffix.Suffix03
;
EOA:
For Browser extension (More information: signing-data)
common EOA: we use the
v4
signature andweb3.eth.personal.ecRecover
validate signaturewhen
v4
signature fails for any step, we will trypersonal_sign
andweb3.eth.personal.ecRecover
validate signature
For Dapp
when loopring DEX is inside Dapp Webview & connect by
window.ethereum
, we remove theweb3.eth.personal.ecRecover
validate
Loopring smart wallet:
For Loopring smart wallet we send
eth_signTypedData
by WalletConnect & validate ABI.Contracts.ContractWallet.encodeInputsisValidSignature(bytes32,bytes)
Loopring counterfactual wallet:
signature is same as Loopring smart wallet
But ecRecover is by walletOwner,
const {walletOwner} = await LoopringAPI.exchangeAPI.getCounterFactualInfo({ accountId: LOOPRING_EXPORTED_ACCOUNT.accountIdCF, });
Validate signature
github: src/api/base_api.ts#personalSign
Last updated