main()
.then(() => process.exit(0))
.catch(error => {
console.error(error);
process.exit(1);
});
// 0x76b06a2f6df6f0514e7bec52a9afb3f603b477cd000bb8d0a1e359811322d97991e03f863a0c30c2cf029c000bb8c011a73ee8576fb46f5e1c5751ca3b9fe0af2a6f
// 76b06a2f6df6f0514e7bec52a9afb3f603b477cd // token0 0x76b06a2f6df6f0514e7bec52a9afb3f603b477cd RAI
// 000bb8 // fee0 3000
// d0a1e359811322d97991e03f863a0c30c2cf029c // token1 0xc011a73ee8576fb46f5e1c5751ca3b9fe0af2a6f SNX
// 000bb8 // fee1 3000
// c011a73ee8576fb46f5e1c5751ca3b9fe0af2a6f // token2 0xd0a1e359811322d97991e03f863a0c30c2cf029c WETH
async function main(){
var token0 = "0x76b06a2f6df6f0514e7bec52a9afb3f603b477cd";
var token1 = "0xd0a1e359811322d97991e03f863a0c30c2cf029c";
var token2 = "0xc011a73ee8576fb46f5e1c5751ca3b9fe0af2a6f";
var fee0 = 3000;
var fee1 = 3000;
// console.log(toFixHex((3000).toString(16),6))
console.log(encode(token0,token1,token2,fee0,fee1))
}
function encode(token0,token1,token2,fee0,fee1){
var hexFee0 = toFixHex(fee0.toString(16),6);
var hexFee1 = toFixHex(fee1.toString(16),6);
return "0x"+token0.substring(2)+hexFee0+token1.substring(2)+hexFee1+token2.substring(2);
}
function toFixHex(num,n){
var end = (num).toString(16);
var pre = "";
for(var i = 0; i< n-num.length;i++){
pre += "0";
}
return pre+end;
}
-> node encode.js
0x76b06a2f6df6f0514e7bec52a9afb3f603b477cd000bb8d0a1e359811322d97991e03f863a0c30c2cf029c000bb8c011a73ee8576fb46f5e1c5751ca3b9fe0af2a6f