// transactionSign 交易签名 fix ETH 和代币
func transactionSign(nonce :String,gasPrice :String,gasLimit :String,toAddress :String,value :String,privateKeyData :Data,chainID :String,templateData :Data) -> Data {
var transaction = EthereumTransaction(nonce: BigUInt(nonce)!,
gasPrice: BigUInt(gasPrice)!,
gasLimit: BigUInt(gasLimit)!,
to: EthereumAddress(toAddress)!,
value: BigUInt(value)!,
data: templateData,
v: BigUInt(0),
r: BigUInt(0),
s: BigUInt(0))
transaction.UNSAFE_setChainID(BigUInt(chainID)!)
print(transaction)
try! Web3Signer.EIP155Signer.sign(transaction: &transaction, privateKey: privateKeyData, useExtraEntropy: false)
print(transaction)
let encoded:Data? = transaction.encode()
return encoded!
}
上述中 templateData 代币才有,ETH为 templateData = nil。
网友评论