@btc-vision/transaction
Version:
OPNet transaction library allows you to create and sign transactions for the OPNet network.
101 lines (100 loc) • 3.95 kB
JavaScript
import { ChainId } from '../network/ChainId.js';
import { Address } from '../keypair/Address.js';
function deadAddress() {
return Address.dead();
}
export const FACTORY_ADDRESS_REGTEST = deadAddress();
export const POOL_ADDRESS_REGTEST = deadAddress();
export const WBTC_ADDRESS_REGTEST = deadAddress();
export const MOTO_ADDRESS_REGTEST = deadAddress();
export const ROUTER_ADDRESS_REGTEST = deadAddress();
export const FACTORY_ADDRESS_TESTNET = deadAddress();
export const POOL_ADDRESS_TESTNET = deadAddress();
export const WBTC_ADDRESS_TESTNET = deadAddress();
export const MOTO_ADDRESS_TESTNET = deadAddress();
export const ROUTER_ADDRESS_TESTNET = deadAddress();
export const FACTORY_ADDRESS_FRACTAL = deadAddress();
export const POOL_ADDRESS_FRACTAL = deadAddress();
export const WBTC_ADDRESS_FRACTAL = deadAddress();
export const MOTO_ADDRESS_FRACTAL = deadAddress();
export const ROUTER_ADDRESS_FRACTAL = deadAddress();
export var OPNetNetwork;
(function (OPNetNetwork) {
OPNetNetwork["Mainnet"] = "mainnet";
OPNetNetwork["Testnet"] = "testnet";
OPNetNetwork["Regtest"] = "regtest";
})(OPNetNetwork || (OPNetNetwork = {}));
export class OPNetTokenAddressManager {
constructor() {
this.metadata = {
[ChainId.Bitcoin]: {
[OPNetNetwork.Testnet]: {
factory: FACTORY_ADDRESS_TESTNET,
pool: POOL_ADDRESS_TESTNET,
wbtc: WBTC_ADDRESS_TESTNET,
moto: MOTO_ADDRESS_TESTNET,
router: ROUTER_ADDRESS_TESTNET,
},
[OPNetNetwork.Regtest]: {
factory: FACTORY_ADDRESS_REGTEST,
pool: POOL_ADDRESS_REGTEST,
wbtc: WBTC_ADDRESS_REGTEST,
moto: MOTO_ADDRESS_REGTEST,
router: ROUTER_ADDRESS_REGTEST,
},
},
[ChainId.Fractal]: {
[OPNetNetwork.Mainnet]: {
factory: FACTORY_ADDRESS_FRACTAL,
pool: POOL_ADDRESS_FRACTAL,
wbtc: WBTC_ADDRESS_FRACTAL,
moto: MOTO_ADDRESS_FRACTAL,
router: ROUTER_ADDRESS_FRACTAL,
},
},
};
}
getFactoryAddress(network, chainId) {
const address = this.metadata[chainId][network]?.factory;
if (!address) {
throw new Error(`Factory address not found for network ${network} and chainId ${chainId}`);
}
return address;
}
getPoolAddress(network, chainId) {
const address = this.metadata[chainId][network]?.pool;
if (!address) {
throw new Error(`Pool address not found for network ${network} and chainId ${chainId}`);
}
return address;
}
getWBTCAddress(network, chainId) {
const address = this.metadata[chainId][network]?.wbtc;
if (!address) {
throw new Error(`WBTC address not found for network ${network} and chainId ${chainId}`);
}
return address;
}
getMOTOAddress(network, chainId) {
const address = this.metadata[chainId][network]?.moto;
if (!address) {
throw new Error(`MOTO address not found for network ${network} and chainId ${chainId}`);
}
return address;
}
getRouterAddress(network, chainId) {
const address = this.metadata[chainId][network]?.router;
if (!address) {
throw new Error(`Router address not found for network ${network} and chainId ${chainId}`);
}
return address;
}
getAddresses(network, chainId) {
const metadata = this.metadata[chainId][network];
if (!metadata) {
throw new Error(`Metadata not found for network ${network} and chainId ${chainId}`);
}
return metadata;
}
}
export const OPNetMetadata = new OPNetTokenAddressManager();