|
|
@@ -7,7 +7,424 @@ import tools from "@/common/js/tools";
|
|
|
let bitkeepTron = {}
|
|
|
|
|
|
let contractArr=[
|
|
|
- 'TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t'
|
|
|
+ 'TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t',
|
|
|
+ 'TTUzsY3UMVTwT8a7wmJ3P6ar7aj5ddjVsR',
|
|
|
+];
|
|
|
+const tronCrossAddress = "TTUzsY3UMVTwT8a7wmJ3P6ar7aj5ddjVsR";
|
|
|
+const tronCrossAbi = [
|
|
|
+ {
|
|
|
+ "anonymous": false,
|
|
|
+ "inputs": [
|
|
|
+ {
|
|
|
+ "indexed": true,
|
|
|
+ "internalType": "address",
|
|
|
+ "name": "_l1Token",
|
|
|
+ "type": "address"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "indexed": true,
|
|
|
+ "internalType": "address",
|
|
|
+ "name": "_l2Token",
|
|
|
+ "type": "address"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "indexed": true,
|
|
|
+ "internalType": "address",
|
|
|
+ "name": "_from",
|
|
|
+ "type": "address"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "indexed": false,
|
|
|
+ "internalType": "address",
|
|
|
+ "name": "_to",
|
|
|
+ "type": "address"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "indexed": false,
|
|
|
+ "internalType": "uint256",
|
|
|
+ "name": "_amount",
|
|
|
+ "type": "uint256"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "indexed": false,
|
|
|
+ "internalType": "bytes",
|
|
|
+ "name": "_data",
|
|
|
+ "type": "bytes"
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ "name": "ERC20DepositInitiated",
|
|
|
+ "type": "event"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "anonymous": false,
|
|
|
+ "inputs": [
|
|
|
+ {
|
|
|
+ "indexed": true,
|
|
|
+ "internalType": "address",
|
|
|
+ "name": "_l1Token",
|
|
|
+ "type": "address"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "indexed": true,
|
|
|
+ "internalType": "address",
|
|
|
+ "name": "_l2Token",
|
|
|
+ "type": "address"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "indexed": true,
|
|
|
+ "internalType": "address",
|
|
|
+ "name": "_from",
|
|
|
+ "type": "address"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "indexed": false,
|
|
|
+ "internalType": "address",
|
|
|
+ "name": "_to",
|
|
|
+ "type": "address"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "indexed": false,
|
|
|
+ "internalType": "uint256",
|
|
|
+ "name": "_amount",
|
|
|
+ "type": "uint256"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "indexed": false,
|
|
|
+ "internalType": "bytes",
|
|
|
+ "name": "_data",
|
|
|
+ "type": "bytes"
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ "name": "ERC20WithdrawalFinalized",
|
|
|
+ "type": "event"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "anonymous": false,
|
|
|
+ "inputs": [
|
|
|
+ {
|
|
|
+ "indexed": true,
|
|
|
+ "internalType": "address",
|
|
|
+ "name": "_from",
|
|
|
+ "type": "address"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "indexed": true,
|
|
|
+ "internalType": "address",
|
|
|
+ "name": "_to",
|
|
|
+ "type": "address"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "indexed": false,
|
|
|
+ "internalType": "uint256",
|
|
|
+ "name": "_amount",
|
|
|
+ "type": "uint256"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "indexed": false,
|
|
|
+ "internalType": "bytes",
|
|
|
+ "name": "_data",
|
|
|
+ "type": "bytes"
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ "name": "ETHDepositInitiated",
|
|
|
+ "type": "event"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "anonymous": false,
|
|
|
+ "inputs": [
|
|
|
+ {
|
|
|
+ "indexed": true,
|
|
|
+ "internalType": "address",
|
|
|
+ "name": "_from",
|
|
|
+ "type": "address"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "indexed": true,
|
|
|
+ "internalType": "address",
|
|
|
+ "name": "_to",
|
|
|
+ "type": "address"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "indexed": false,
|
|
|
+ "internalType": "uint256",
|
|
|
+ "name": "_amount",
|
|
|
+ "type": "uint256"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "indexed": false,
|
|
|
+ "internalType": "bytes",
|
|
|
+ "name": "_data",
|
|
|
+ "type": "bytes"
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ "name": "ETHWithdrawalFinalized",
|
|
|
+ "type": "event"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "anonymous": false,
|
|
|
+ "inputs": [
|
|
|
+ {
|
|
|
+ "indexed": true,
|
|
|
+ "internalType": "address",
|
|
|
+ "name": "previousOwner",
|
|
|
+ "type": "address"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "indexed": true,
|
|
|
+ "internalType": "address",
|
|
|
+ "name": "newOwner",
|
|
|
+ "type": "address"
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ "name": "OwnershipTransferred",
|
|
|
+ "type": "event"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "inputs": [
|
|
|
+ {
|
|
|
+ "internalType": "address",
|
|
|
+ "name": "_l1Token",
|
|
|
+ "type": "address"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "internalType": "address",
|
|
|
+ "name": "_l2Token",
|
|
|
+ "type": "address"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "internalType": "uint256",
|
|
|
+ "name": "_amount",
|
|
|
+ "type": "uint256"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "internalType": "uint32",
|
|
|
+ "name": "_l2Gas",
|
|
|
+ "type": "uint32"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "internalType": "bytes",
|
|
|
+ "name": "_data",
|
|
|
+ "type": "bytes"
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ "name": "depositERC20",
|
|
|
+ "outputs": [],
|
|
|
+ "stateMutability": "nonpayable",
|
|
|
+ "type": "function"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "inputs": [
|
|
|
+ {
|
|
|
+ "internalType": "address",
|
|
|
+ "name": "_l1Token",
|
|
|
+ "type": "address"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "internalType": "address",
|
|
|
+ "name": "_l2Token",
|
|
|
+ "type": "address"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "internalType": "address",
|
|
|
+ "name": "_to",
|
|
|
+ "type": "address"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "internalType": "uint256",
|
|
|
+ "name": "_amount",
|
|
|
+ "type": "uint256"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "internalType": "uint32",
|
|
|
+ "name": "_l2Gas",
|
|
|
+ "type": "uint32"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "internalType": "bytes",
|
|
|
+ "name": "_data",
|
|
|
+ "type": "bytes"
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ "name": "depositERC20To",
|
|
|
+ "outputs": [],
|
|
|
+ "stateMutability": "nonpayable",
|
|
|
+ "type": "function"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "inputs": [
|
|
|
+ {
|
|
|
+ "internalType": "uint32",
|
|
|
+ "name": "_l2Gas",
|
|
|
+ "type": "uint32"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "internalType": "bytes",
|
|
|
+ "name": "_data",
|
|
|
+ "type": "bytes"
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ "name": "depositETH",
|
|
|
+ "outputs": [],
|
|
|
+ "stateMutability": "payable",
|
|
|
+ "type": "function"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "inputs": [
|
|
|
+ {
|
|
|
+ "internalType": "address",
|
|
|
+ "name": "_to",
|
|
|
+ "type": "address"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "internalType": "uint32",
|
|
|
+ "name": "_l2Gas",
|
|
|
+ "type": "uint32"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "internalType": "bytes",
|
|
|
+ "name": "_data",
|
|
|
+ "type": "bytes"
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ "name": "depositETHTo",
|
|
|
+ "outputs": [],
|
|
|
+ "stateMutability": "payable",
|
|
|
+ "type": "function"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "inputs": [
|
|
|
+ {
|
|
|
+ "internalType": "address",
|
|
|
+ "name": "",
|
|
|
+ "type": "address"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "internalType": "address",
|
|
|
+ "name": "",
|
|
|
+ "type": "address"
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ "name": "deposits",
|
|
|
+ "outputs": [
|
|
|
+ {
|
|
|
+ "internalType": "uint256",
|
|
|
+ "name": "",
|
|
|
+ "type": "uint256"
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ "stateMutability": "view",
|
|
|
+ "type": "function"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "inputs": [],
|
|
|
+ "name": "donateETH",
|
|
|
+ "outputs": [],
|
|
|
+ "stateMutability": "payable",
|
|
|
+ "type": "function"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "inputs": [
|
|
|
+ {
|
|
|
+ "internalType": "address",
|
|
|
+ "name": "_l1Token",
|
|
|
+ "type": "address"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "internalType": "address",
|
|
|
+ "name": "_l2Token",
|
|
|
+ "type": "address"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "internalType": "address",
|
|
|
+ "name": "_from",
|
|
|
+ "type": "address"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "internalType": "address",
|
|
|
+ "name": "_to",
|
|
|
+ "type": "address"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "internalType": "uint256",
|
|
|
+ "name": "_amount",
|
|
|
+ "type": "uint256"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "internalType": "bytes",
|
|
|
+ "name": "_data",
|
|
|
+ "type": "bytes"
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ "name": "finalizeERC20Withdrawal",
|
|
|
+ "outputs": [],
|
|
|
+ "stateMutability": "nonpayable",
|
|
|
+ "type": "function"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "inputs": [
|
|
|
+ {
|
|
|
+ "internalType": "address",
|
|
|
+ "name": "_from",
|
|
|
+ "type": "address"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "internalType": "address",
|
|
|
+ "name": "_to",
|
|
|
+ "type": "address"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "internalType": "uint256",
|
|
|
+ "name": "_amount",
|
|
|
+ "type": "uint256"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "internalType": "bytes",
|
|
|
+ "name": "_data",
|
|
|
+ "type": "bytes"
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ "name": "finalizeETHWithdrawal",
|
|
|
+ "outputs": [],
|
|
|
+ "stateMutability": "nonpayable",
|
|
|
+ "type": "function"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "inputs": [],
|
|
|
+ "name": "owner",
|
|
|
+ "outputs": [
|
|
|
+ {
|
|
|
+ "internalType": "address",
|
|
|
+ "name": "",
|
|
|
+ "type": "address"
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ "stateMutability": "view",
|
|
|
+ "type": "function"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "inputs": [],
|
|
|
+ "name": "renounceOwnership",
|
|
|
+ "outputs": [],
|
|
|
+ "stateMutability": "nonpayable",
|
|
|
+ "type": "function"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "inputs": [
|
|
|
+ {
|
|
|
+ "internalType": "address",
|
|
|
+ "name": "newOwner",
|
|
|
+ "type": "address"
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ "name": "transferOwnership",
|
|
|
+ "outputs": [],
|
|
|
+ "stateMutability": "nonpayable",
|
|
|
+ "type": "function"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "stateMutability": "payable",
|
|
|
+ "type": "receive"
|
|
|
+ }
|
|
|
];
|
|
|
/**
|
|
|
* 钱包初始校验
|
|
|
@@ -85,8 +502,9 @@ bitkeepTron.getTokenBalance=async function (selectedAddress,contractType) {
|
|
|
*/
|
|
|
bitkeepTron.getContract=async function (contractType) {
|
|
|
let contractData = await tronWeb.trx.getContract(contractArr[contractType])
|
|
|
+ console.log(contractData)
|
|
|
if(contractData.abi){
|
|
|
- return contractData.abi
|
|
|
+ return contractData
|
|
|
}else {
|
|
|
return false
|
|
|
}
|
|
|
@@ -128,6 +546,47 @@ bitkeepTron.getTransactionData=function (to,money){
|
|
|
return data;
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+bitkeepTron.depositUsdtTo=async function (address,amount){
|
|
|
+ return new Promise(async (resolve, reject) => {
|
|
|
+ try {
|
|
|
+ let _amount = tronWeb.toSun(amount)
|
|
|
+ let trxUsdtContract = await tronWeb.contract().at(contractArr[0])
|
|
|
+ let res = await trxUsdtContract.methods.approve(tronCrossAddress, _amount).send()
|
|
|
+ if (res) {
|
|
|
+ let timeNum=0;
|
|
|
+ let timeServe= setInterval(async () => {
|
|
|
+ let hashRes = await tronWeb.trx.getTransaction(res)
|
|
|
+ if(hashRes.ret.length>0){
|
|
|
+ if(hashRes.ret[0].contractRet==='SUCCESS'){
|
|
|
+ const cInstance = tronWeb.contract(tronCrossAbi, tronCrossAddress);
|
|
|
+ let _l1Token = "0xa614f803b6fd780986a42c78ec9c7f77e6ded13c".toLowerCase()
|
|
|
+ let _l2Token = "0x10186D85Ac0579Cb141Ff37261f23CF4F1D254b5".toLowerCase()
|
|
|
+ let sendRes = await cInstance.methods.depositERC20To(_l1Token, _l2Token, address, _amount, 0, []).send()
|
|
|
+ console.log(sendRes)
|
|
|
+ resolve(sendRes)
|
|
|
+ clearInterval(timeServe)
|
|
|
+ }else if(hashRes.ret[0].contractRet==='REVERT'){
|
|
|
+ resolve(false)
|
|
|
+ clearInterval(timeServe)
|
|
|
+ }else if(timeNum>5){
|
|
|
+ clearInterval(timeServe)
|
|
|
+ resolve(false)
|
|
|
+ }
|
|
|
+ ++timeNum
|
|
|
+ }
|
|
|
+ }, 500)
|
|
|
+
|
|
|
+ }else {
|
|
|
+ resolve(false)
|
|
|
+ }
|
|
|
+ }catch (e) {
|
|
|
+ reject(false)
|
|
|
+ }
|
|
|
+ })
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
/**
|
|
|
* trc转账
|
|
|
* @param data
|
|
|
@@ -169,4 +628,4 @@ bitkeepTron.sendTransaction=function (data){
|
|
|
})
|
|
|
}
|
|
|
|
|
|
-export default bitkeepTron
|
|
|
+export default bitkeepTron
|