UNPKG

@interchainjs/injective

Version:

<p align="center"> <img src="https://user-images.githubusercontent.com/545047/188804067-28e67e5e-0214-4449-ab04-2e0c564a6885.svg" width="80"> </p>

162 lines (161 loc) 4.95 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.defaultEip712Types = exports.defaultDomainOptions = exports.defaultTimeoutHeight = exports.defaultWalletOptions = exports.defaultSignerOptions = exports.defaultAccountParser = exports.defaultEncodePublicKey = exports.defaultPublicKeyConfig = 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 account_1 = require("@interchainjs/cosmos-types/injective/types/v1beta1/account"); const types_1 = require("./types"); const utils_2 = require("@noble/hashes/utils"); const sha3_1 = require("@noble/hashes/sha3"); const transactions_1 = require("@ethersproject/transactions"); const utils_3 = require("@interchainjs/utils"); const inj_account_1 = require("./accounts/inj-account"); const ethSecp256k1_1 = require("@interchainjs/auth/ethSecp256k1"); exports.defaultPublicKeyConfig = { isCompressed: defaults_1.defaultSignerConfig.publicKey.isCompressed, hash: (publicKey) => utils_3.Key.fromHex((0, transactions_1.computeAddress)(publicKey.value)) }; const defaultEncodePublicKey = (key) => { return { typeUrl: '/injective.crypto.v1beta1.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, utils_2.bytesToHex)(hashed); return hashed; }, }, publicKey: exports.defaultPublicKeyConfig, encodePublicKey: exports.defaultEncodePublicKey, parseAccount: exports.defaultAccountParser, createAccount: inj_account_1.InjAccount, prefix: 'inj', }, }; exports.defaultWalletOptions = { bip39Password: undefined, createAuthsFromMnemonic: ethSecp256k1_1.EthSecp256k1Auth.fromMnemonic, signerConfig: exports.defaultSignerOptions.Cosmos, }; exports.defaultTimeoutHeight = { type: 'relative', value: 90n, }; exports.defaultDomainOptions = { name: 'Injective Web3', version: '1.0.0', ethereumChainId: types_1.EthereumChainId.Injective, salt: '0', verifyingContract: 'cosmos', }; exports.defaultEip712Types = { primaryType: 'Tx', types: { EIP712Domain: [ { name: 'name', type: 'string', }, { name: 'version', type: 'string', }, { name: 'chainId', type: 'uint256', }, { name: 'verifyingContract', type: 'string', }, { name: 'salt', type: 'string', }, ], Tx: [ { name: 'account_number', type: 'string', }, { name: 'chain_id', type: 'string', }, { name: 'fee', type: 'Fee', }, { name: 'memo', type: 'string', }, { name: 'msgs', type: 'Msg[]', }, { name: 'sequence', type: 'string', }, { name: 'timeout_height', type: 'string', }, ], Fee: [ { name: 'feePayer', type: 'string', }, { name: 'amount', type: 'Coin[]', }, { name: 'gas', type: 'string', }, ], Coin: [ { name: 'denom', type: 'string', }, { name: 'amount', type: 'string', }, ], Msg: [ { name: 'type', type: 'string', }, { name: 'value', type: 'MsgValue', }, ], }, };