@xpla/xpla
Version:
<p align="center"> <img src="https://user-images.githubusercontent.com/545047/188804067-28e67e5e-0214-4449-ab04-2e0c564a6885.svg" width="80"> </p>
69 lines (68 loc) • 2.8 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.defaultWalletOptions = exports.defaultSignerOptions = exports.defaultAccountParser = exports.defaultEncodePublicKey = exports.defaultPublicKeyConfig = exports.Network = void 0;
const defaults_1 = require("@interchainjs/cosmos/defaults");
const utils_1 = require("@interchainjs/cosmos/utils");
const keys_1 = require("@interchainjs/cosmos-types/cosmos/crypto/secp256k1/keys");
const eth_account_1 = require("./accounts/eth-account");
const account_1 = require("@xpla/xplajs/ethermint/types/v1/account");
const _assert_1 = require("@noble/hashes/_assert");
const sha3_1 = require("@noble/hashes/sha3");
const transactions_1 = require("@ethersproject/transactions");
const utils_2 = require("@interchainjs/utils");
const ethSecp256k1_1 = require("@interchainjs/auth/ethSecp256k1");
exports.Network = {
Mainnet: {
lcd: "https://dimension-lcd.xpla.io",
rpc: "https://dimension-rpc.xpla.io",
},
Testnet: {
lcd: "https://cube-lcd.xpla.io",
rpc: "https://cube-rpc.xpla.io",
}
};
exports.defaultPublicKeyConfig = {
isCompressed: defaults_1.defaultSignerConfig.publicKey.isCompressed,
hash: (publicKey) => utils_2.Key.fromHex((0, transactions_1.computeAddress)(publicKey.value))
};
const defaultEncodePublicKey = (key) => {
return {
typeUrl: '/ethermint.crypto.v1.ethsecp256k1.PubKey',
value: keys_1.PubKey.encode(keys_1.PubKey.fromPartial({ key: key.value })).finish(),
};
};
exports.defaultEncodePublicKey = defaultEncodePublicKey;
const defaultAccountParser = (encodedAccount) => {
try {
return (0, defaults_1.defaultAccountParser)(encodedAccount);
}
catch (error) {
const decoder = (0, utils_1.toDecoder)(account_1.EthAccount);
const account = decoder.fromPartial(decoder.decode(encodedAccount.value));
return account.baseAccount;
}
};
exports.defaultAccountParser = defaultAccountParser;
exports.defaultSignerOptions = {
Cosmos: {
...defaults_1.defaultSignerConfig,
message: {
...defaults_1.defaultSignerConfig.message,
hash: (message) => {
const hashed = (0, sha3_1.keccak_256)(message);
(0, _assert_1.bytes)(hashed);
return hashed;
},
},
publicKey: exports.defaultPublicKeyConfig,
encodePublicKey: exports.defaultEncodePublicKey,
parseAccount: exports.defaultAccountParser,
createAccount: eth_account_1.EthAccount,
prefix: 'xpla',
}
};
exports.defaultWalletOptions = {
bip39Password: undefined,
createAuthsFromMnemonic: ethSecp256k1_1.EthSecp256k1Auth.fromMnemonic,
signerConfig: exports.defaultSignerOptions.Cosmos,
};