carbon-js-sdk 0.11.2-beta.1 → 0.11.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/CarbonSDK.d.ts +0 -3
- package/lib/CarbonSDK.js +0 -17
- package/lib/constant/generic.d.ts +0 -10
- package/lib/constant/index.d.ts +0 -2
- package/lib/constant/index.js +0 -2
- package/lib/constant/walletProvider.d.ts +1 -2
- package/lib/constant/walletProvider.js +0 -1
- package/lib/index.d.ts +2 -2
- package/lib/index.js +1 -4
- package/lib/modules/ibc.js +1 -1
- package/lib/provider/index.d.ts +1 -4
- package/lib/provider/index.js +1 -5
- package/lib/provider/keplr/KeplrAccount.js +12 -0
- package/lib/provider/leap/LeapAccount.d.ts +1 -1
- package/lib/provider/leap/LeapAccount.js +10 -0
- package/lib/provider/leap/index.d.ts +1 -1
- package/lib/provider/metamask/MetaMask.d.ts +26 -10
- package/lib/provider/metamask/MetaMask.js +177 -27
- package/lib/provider/metamask/index.d.ts +1 -1
- package/lib/provider/o3/O3Wallet.js +3 -0
- package/lib/provider/zilpay/Zilpay.d.ts +1 -1
- package/lib/util/index.d.ts +1 -0
- package/lib/util/index.js +2 -1
- package/lib/wallet/CarbonSigner.d.ts +9 -3
- package/lib/wallet/CarbonSigner.js +23 -0
- package/lib/wallet/CarbonWallet.d.ts +3 -6
- package/lib/wallet/CarbonWallet.js +4 -9
- package/package.json +2 -2
package/lib/CarbonSDK.d.ts
CHANGED
|
@@ -15,7 +15,6 @@ import { CarbonSigner, CarbonWallet, CarbonWalletGenericOpts, MetaMaskWalletOpts
|
|
|
15
15
|
export { CarbonTx } from "./util";
|
|
16
16
|
export { CarbonSigner, CarbonSignerTypes, CarbonWallet, CarbonWalletGenericOpts, CarbonWalletInitOpts } from "./wallet";
|
|
17
17
|
export * as Carbon from "./codec/carbon-models";
|
|
18
|
-
import RainbowKitAccount, { RainbowKitWalletOpts } from "./provider/rainbowKit/RainbowKitAccount";
|
|
19
18
|
export interface CarbonSDKOpts {
|
|
20
19
|
network: Network;
|
|
21
20
|
tmClient: Tendermint37Client;
|
|
@@ -115,7 +114,6 @@ declare class CarbonSDK {
|
|
|
115
114
|
static instanceWithKeplr(keplr: Keplr, sdkOpts?: CarbonSDKInitOpts, walletOpts?: CarbonWalletGenericOpts): Promise<ConnectedCarbonSDK>;
|
|
116
115
|
static instanceWithLeap(leap: LeapExtended, sdkOpts?: CarbonSDKInitOpts, walletOpts?: CarbonWalletGenericOpts): Promise<ConnectedCarbonSDK>;
|
|
117
116
|
static instanceWithMetamask(metamask: MetaMask, sdkOpts?: CarbonSDKInitOpts, walletOpts?: CarbonWalletGenericOpts, metamaskWalletOpts?: MetaMaskWalletOpts): Promise<ConnectedCarbonSDK>;
|
|
118
|
-
static instanceWithRainbowKit(rainbowKit: RainbowKitAccount, sdkOpts: CarbonSDKInitOpts | undefined, rainbowKitWalletOpts: RainbowKitWalletOpts, walletOpts?: CarbonWalletGenericOpts): Promise<ConnectedCarbonSDK>;
|
|
119
117
|
static instanceViewOnly(bech32Address: string, sdkOpts?: CarbonSDKInitOpts, walletOpts?: CarbonWalletGenericOpts): Promise<ConnectedCarbonSDK>;
|
|
120
118
|
initialize(): Promise<CarbonSDK>;
|
|
121
119
|
getGasFee(): Promise<GasFee>;
|
|
@@ -130,7 +128,6 @@ declare class CarbonSDK {
|
|
|
130
128
|
connectWithKeplr(keplr: Keplr, opts?: CarbonWalletGenericOpts): Promise<ConnectedCarbonSDK>;
|
|
131
129
|
connectWithLeap(leap: LeapExtended, opts?: CarbonWalletGenericOpts): Promise<ConnectedCarbonSDK>;
|
|
132
130
|
connectWithMetamask(metamask: MetaMask, opts?: CarbonWalletGenericOpts, metamaskWalletOpts?: MetaMaskWalletOpts): Promise<ConnectedCarbonSDK>;
|
|
133
|
-
connectWithRainbowKit(rainbowKit: RainbowKitAccount, rainbowKitWalletOpts: RainbowKitWalletOpts, opts?: CarbonWalletGenericOpts): Promise<ConnectedCarbonSDK>;
|
|
134
131
|
connectViewOnly(bech32Address: string, opts?: CarbonWalletGenericOpts): Promise<ConnectedCarbonSDK>;
|
|
135
132
|
getConfig(): NetworkConfig;
|
|
136
133
|
getTokenClient(): TokenClient;
|
package/lib/CarbonSDK.js
CHANGED
|
@@ -232,12 +232,6 @@ class CarbonSDK {
|
|
|
232
232
|
return sdk.connectWithMetamask(metamask, walletOpts, metamaskWalletOpts);
|
|
233
233
|
});
|
|
234
234
|
}
|
|
235
|
-
static instanceWithRainbowKit(rainbowKit, sdkOpts = DEFAULT_SDK_INIT_OPTS, rainbowKitWalletOpts, walletOpts) {
|
|
236
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
237
|
-
const sdk = yield CarbonSDK.instance(sdkOpts);
|
|
238
|
-
return sdk.connectWithRainbowKit(rainbowKit, rainbowKitWalletOpts, walletOpts);
|
|
239
|
-
});
|
|
240
|
-
}
|
|
241
235
|
static instanceViewOnly(bech32Address, sdkOpts = DEFAULT_SDK_INIT_OPTS, walletOpts) {
|
|
242
236
|
return __awaiter(this, void 0, void 0, function* () {
|
|
243
237
|
const sdk = yield CarbonSDK.instance(sdkOpts);
|
|
@@ -400,17 +394,6 @@ class CarbonSDK {
|
|
|
400
394
|
return this.connect(wallet);
|
|
401
395
|
});
|
|
402
396
|
}
|
|
403
|
-
connectWithRainbowKit(rainbowKit, rainbowKitWalletOpts, opts) {
|
|
404
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
405
|
-
const evmChainId = this.evmChainId;
|
|
406
|
-
const addressOptions = {
|
|
407
|
-
network: this.networkConfig.network,
|
|
408
|
-
bech32Prefix: this.networkConfig.Bech32Prefix,
|
|
409
|
-
};
|
|
410
|
-
const wallet = wallet_1.CarbonWallet.withRainbowKit(rainbowKit, evmChainId, rainbowKitWalletOpts.publicKeyBase64, addressOptions, rainbowKitWalletOpts.walletProvider, Object.assign(Object.assign({}, opts), { network: this.network, config: this.configOverride }));
|
|
411
|
-
return this.connect(wallet);
|
|
412
|
-
});
|
|
413
|
-
}
|
|
414
397
|
connectViewOnly(bech32Address, opts) {
|
|
415
398
|
return __awaiter(this, void 0, void 0, function* () {
|
|
416
399
|
const wallet = wallet_1.CarbonWallet.withAddress(bech32Address, Object.assign(Object.assign({}, opts), { network: this.network, config: this.configOverride }));
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { PageRequest } from "../codec/cosmos/base/query/v1beta1/pagination";
|
|
2
2
|
import { StdFee } from "@cosmjs/amino";
|
|
3
3
|
import BigNumber from "bignumber.js";
|
|
4
|
-
import { Blockchain, BlockchainV2, EVMChain as EVMChainV2 } from "../util/blockchain";
|
|
5
4
|
export declare const DEFAULT_FEE_DENOM = "swth";
|
|
6
5
|
export declare const DEFAULT_GAS_PRICE: BigNumber;
|
|
7
6
|
export declare const DEFAULT_GAS: BigNumber;
|
|
@@ -13,12 +12,3 @@ export interface GasPriceStep {
|
|
|
13
12
|
high: number;
|
|
14
13
|
}
|
|
15
14
|
export declare const CARBON_GAS_PRICE: GasPriceStep;
|
|
16
|
-
export interface RequestArguments {
|
|
17
|
-
method: string;
|
|
18
|
-
params?: unknown[] | object;
|
|
19
|
-
}
|
|
20
|
-
export declare type EVMChain = EVMChainV2;
|
|
21
|
-
export interface SyncResult {
|
|
22
|
-
blockchain?: Blockchain | BlockchainV2;
|
|
23
|
-
chainId?: number;
|
|
24
|
-
}
|
package/lib/constant/index.d.ts
CHANGED
package/lib/constant/index.js
CHANGED
|
@@ -17,5 +17,3 @@ __exportStar(require("./network"), exports);
|
|
|
17
17
|
__exportStar(require("./node"), exports);
|
|
18
18
|
__exportStar(require("./token"), exports);
|
|
19
19
|
__exportStar(require("./walletProvider"), exports);
|
|
20
|
-
__exportStar(require("./eip6963Provider"), exports);
|
|
21
|
-
__exportStar(require("./web3Config"), exports);
|
package/lib/index.d.ts
CHANGED
|
@@ -4,9 +4,9 @@ export * as Models from "./codec";
|
|
|
4
4
|
export * from "./util";
|
|
5
5
|
export { Blockchain } from "./util/blockchain";
|
|
6
6
|
export * from "./websocket";
|
|
7
|
-
export { AminoTypesMap, SDKProvider, KeplrAccount, KeplrWindow, CosmosLedger, Keplr, ChainInfo, CallContractArgs, MetaMask, NeoLedgerAccount, Zilpay, ZilPayChangeNetworkParam, O3Types, O3Wallet, LeapAccount, Leap, Key, getSigningCosmosClientOptions, AssetList, Chain, LeapExtended,
|
|
7
|
+
export { AminoTypesMap, SDKProvider, KeplrAccount, KeplrWindow, CosmosLedger, Keplr, ChainInfo, EVMChain, MetaMaskChangeNetworkParam, CallContractArgs, MetaMaskSyncResult, MetaMask, NeoLedgerAccount, Zilpay, ZilPayChangeNetworkParam, O3Types, O3Wallet, LeapAccount, Leap, Key, getSigningCosmosClientOptions, AssetList, Chain, LeapExtended, } from "./provider";
|
|
8
8
|
export { default as CarbonSDK } from "./CarbonSDK";
|
|
9
|
-
export { ProviderAgent
|
|
9
|
+
export { ProviderAgent } from "./constant";
|
|
10
10
|
export * as Insights from "./insights";
|
|
11
11
|
export * as Hydrogen from "./hydrogen";
|
|
12
12
|
export { CarbonSigner, DirectCarbonSigner, AminoCarbonSigner, CarbonLedgerSigner, CarbonPrivateKeySigner, CarbonNonSigner } from "./wallet";
|
package/lib/index.js
CHANGED
|
@@ -25,7 +25,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
25
25
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
26
26
|
};
|
|
27
27
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
28
|
-
exports.CarbonNonSigner = exports.CarbonPrivateKeySigner = exports.CarbonLedgerSigner = exports.Hydrogen = exports.Insights = exports.
|
|
28
|
+
exports.CarbonNonSigner = exports.CarbonPrivateKeySigner = exports.CarbonLedgerSigner = exports.Hydrogen = exports.Insights = exports.ProviderAgent = exports.CarbonSDK = exports.getSigningCosmosClientOptions = exports.LeapAccount = exports.O3Wallet = exports.O3Types = exports.Zilpay = exports.NeoLedgerAccount = exports.MetaMask = exports.CosmosLedger = exports.KeplrAccount = exports.AminoTypesMap = exports.Blockchain = exports.Models = void 0;
|
|
29
29
|
__exportStar(require("./CarbonSDK"), exports);
|
|
30
30
|
__exportStar(require("./modules"), exports);
|
|
31
31
|
exports.Models = __importStar(require("./codec"));
|
|
@@ -44,13 +44,10 @@ Object.defineProperty(exports, "O3Types", { enumerable: true, get: function () {
|
|
|
44
44
|
Object.defineProperty(exports, "O3Wallet", { enumerable: true, get: function () { return provider_1.O3Wallet; } });
|
|
45
45
|
Object.defineProperty(exports, "LeapAccount", { enumerable: true, get: function () { return provider_1.LeapAccount; } });
|
|
46
46
|
Object.defineProperty(exports, "getSigningCosmosClientOptions", { enumerable: true, get: function () { return provider_1.getSigningCosmosClientOptions; } });
|
|
47
|
-
Object.defineProperty(exports, "RainbowKitAccount", { enumerable: true, get: function () { return provider_1.RainbowKitAccount; } });
|
|
48
|
-
Object.defineProperty(exports, "Eip6963Provider", { enumerable: true, get: function () { return provider_1.Eip6963Provider; } });
|
|
49
47
|
var CarbonSDK_1 = require("./CarbonSDK");
|
|
50
48
|
Object.defineProperty(exports, "CarbonSDK", { enumerable: true, get: function () { return __importDefault(CarbonSDK_1).default; } });
|
|
51
49
|
var constant_1 = require("./constant");
|
|
52
50
|
Object.defineProperty(exports, "ProviderAgent", { enumerable: true, get: function () { return constant_1.ProviderAgent; } });
|
|
53
|
-
Object.defineProperty(exports, "SupportedEip6963Provider", { enumerable: true, get: function () { return constant_1.SupportedEip6963Provider; } });
|
|
54
51
|
exports.Insights = __importStar(require("./insights"));
|
|
55
52
|
exports.Hydrogen = __importStar(require("./hydrogen"));
|
|
56
53
|
var wallet_1 = require("./wallet");
|
package/lib/modules/ibc.js
CHANGED
|
@@ -123,7 +123,7 @@ class IBCModule extends base_1.default {
|
|
|
123
123
|
}
|
|
124
124
|
getChainInfo(chainName) {
|
|
125
125
|
return __awaiter(this, void 0, void 0, function* () {
|
|
126
|
-
if (!chainName)
|
|
126
|
+
if (!chainName || chainName === "mainnet")
|
|
127
127
|
return undefined;
|
|
128
128
|
const chainInfoResponse = yield fetch(`https://raw.githubusercontent.com/chainapsis/keplr-chain-registry/master/cosmos/${chainName}.json`);
|
|
129
129
|
if (!chainInfoResponse.ok) {
|
package/lib/provider/index.d.ts
CHANGED
|
@@ -3,11 +3,8 @@ export { AminoTypesMap } from "./amino";
|
|
|
3
3
|
export { ChainInfo, default as KeplrAccount, Keplr, KeplrWindow } from "./keplr";
|
|
4
4
|
export { default as LeapAccount, Leap, Key, LeapExtended } from "./leap";
|
|
5
5
|
export { default as CosmosLedger } from "./ledger";
|
|
6
|
-
export { CallContractArgs, MetaMask } from "./metamask";
|
|
7
|
-
export { EVMChain, SyncResult as MetaMaskSyncResult } from "../constant";
|
|
6
|
+
export { CallContractArgs, EVMChain, MetaMask, MetaMaskChangeNetworkParam, MetaMaskSyncResult } from "./metamask";
|
|
8
7
|
export { O3Types, O3Wallet } from "./o3";
|
|
9
8
|
export { default as SDKProvider } from "./sdk";
|
|
10
9
|
export { Zilpay, ZilPayChangeNetworkParam } from "./zilpay";
|
|
11
|
-
export { RainbowKitAccount } from './rainbowKit';
|
|
12
|
-
export { Eip6963Provider } from './eip6963Provider';
|
|
13
10
|
export { getSigningCosmosClientOptions, AssetList, Chain } from "./chainProvider";
|
package/lib/provider/index.js
CHANGED
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.getSigningCosmosClientOptions = exports.
|
|
6
|
+
exports.getSigningCosmosClientOptions = exports.Zilpay = exports.O3Wallet = exports.O3Types = exports.MetaMask = exports.CosmosLedger = exports.LeapAccount = exports.KeplrAccount = exports.AminoTypesMap = exports.NeoLedgerAccount = void 0;
|
|
7
7
|
var account_1 = require("./account");
|
|
8
8
|
Object.defineProperty(exports, "NeoLedgerAccount", { enumerable: true, get: function () { return account_1.NeoLedgerAccount; } });
|
|
9
9
|
var amino_1 = require("./amino");
|
|
@@ -21,9 +21,5 @@ Object.defineProperty(exports, "O3Types", { enumerable: true, get: function () {
|
|
|
21
21
|
Object.defineProperty(exports, "O3Wallet", { enumerable: true, get: function () { return o3_1.O3Wallet; } });
|
|
22
22
|
var zilpay_1 = require("./zilpay");
|
|
23
23
|
Object.defineProperty(exports, "Zilpay", { enumerable: true, get: function () { return zilpay_1.Zilpay; } });
|
|
24
|
-
var rainbowKit_1 = require("./rainbowKit");
|
|
25
|
-
Object.defineProperty(exports, "RainbowKitAccount", { enumerable: true, get: function () { return rainbowKit_1.RainbowKitAccount; } });
|
|
26
|
-
var eip6963Provider_1 = require("./eip6963Provider");
|
|
27
|
-
Object.defineProperty(exports, "Eip6963Provider", { enumerable: true, get: function () { return eip6963Provider_1.Eip6963Provider; } });
|
|
28
24
|
var chainProvider_1 = require("./chainProvider");
|
|
29
25
|
Object.defineProperty(exports, "getSigningCosmosClientOptions", { enumerable: true, get: function () { return chainProvider_1.getSigningCosmosClientOptions; } });
|
|
@@ -65,12 +65,18 @@ class KeplrAccount {
|
|
|
65
65
|
throw (error_1.parseEvmError(error));
|
|
66
66
|
}
|
|
67
67
|
});
|
|
68
|
+
const signMessage = (address, message) => __awaiter(this, void 0, void 0, function* () {
|
|
69
|
+
const chainId = chainInfo.chainId;
|
|
70
|
+
const { signature } = yield keplr.signArbitrary(chainId, address, message);
|
|
71
|
+
return Buffer.from(signature, 'base64').toString('hex');
|
|
72
|
+
});
|
|
68
73
|
return {
|
|
69
74
|
type: wallet_1.CarbonSignerTypes.BrowserInjected,
|
|
70
75
|
signDirect,
|
|
71
76
|
signAmino,
|
|
72
77
|
getAccounts,
|
|
73
78
|
sendEvmTransaction,
|
|
79
|
+
signMessage,
|
|
74
80
|
};
|
|
75
81
|
}
|
|
76
82
|
static createKeplrSignerAmino(keplr, chainInfo, account) {
|
|
@@ -105,11 +111,17 @@ class KeplrAccount {
|
|
|
105
111
|
throw (error_1.parseEvmError(error));
|
|
106
112
|
}
|
|
107
113
|
});
|
|
114
|
+
const signMessage = (address, message) => __awaiter(this, void 0, void 0, function* () {
|
|
115
|
+
const chainId = chainInfo.chainId;
|
|
116
|
+
const { signature } = yield keplr.signArbitrary(chainId, address, message);
|
|
117
|
+
return Buffer.from(signature, 'base64').toString('hex');
|
|
118
|
+
});
|
|
108
119
|
return {
|
|
109
120
|
type: wallet_1.CarbonSignerTypes.BrowserInjected,
|
|
110
121
|
signAmino,
|
|
111
122
|
getAccounts,
|
|
112
123
|
sendEvmTransaction,
|
|
124
|
+
signMessage,
|
|
113
125
|
};
|
|
114
126
|
}
|
|
115
127
|
static queryFeeCurrencies(configProvider) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { CarbonSigner } from "../../wallet";
|
|
2
|
-
import { Leap } from "@cosmos-kit/leap";
|
|
2
|
+
import { Leap } from "@cosmos-kit/leap-extension";
|
|
3
3
|
import { AppCurrency, ChainInfo, FeeCurrency } from "@keplr-wallet/types";
|
|
4
4
|
import SDKProvider from "../sdk";
|
|
5
5
|
declare class LeapAccount {
|
|
@@ -47,12 +47,17 @@ class LeapAccount {
|
|
|
47
47
|
const sendEvmTransaction = (api, req) => __awaiter(this, void 0, void 0, function* () {
|
|
48
48
|
throw new Error("signing not available");
|
|
49
49
|
});
|
|
50
|
+
const signMessage = (address, message) => __awaiter(this, void 0, void 0, function* () {
|
|
51
|
+
const { signature } = yield leap.signArbitrary(chainId, address, message);
|
|
52
|
+
return Buffer.from(signature, 'base64').toString('hex');
|
|
53
|
+
});
|
|
50
54
|
return {
|
|
51
55
|
type: wallet_1.CarbonSignerTypes.BrowserInjected,
|
|
52
56
|
signDirect,
|
|
53
57
|
signAmino,
|
|
54
58
|
getAccounts,
|
|
55
59
|
sendEvmTransaction,
|
|
60
|
+
signMessage,
|
|
56
61
|
};
|
|
57
62
|
}
|
|
58
63
|
static createLeapSignerAmino(leap, chainId) {
|
|
@@ -75,11 +80,16 @@ class LeapAccount {
|
|
|
75
80
|
const sendEvmTransaction = (api, req) => __awaiter(this, void 0, void 0, function* () {
|
|
76
81
|
throw new Error("signing not available");
|
|
77
82
|
});
|
|
83
|
+
const signMessage = (address, message) => __awaiter(this, void 0, void 0, function* () {
|
|
84
|
+
const { signature } = yield leap.signArbitrary(chainId, address, message);
|
|
85
|
+
return Buffer.from(signature, 'base64').toString('hex');
|
|
86
|
+
});
|
|
78
87
|
return {
|
|
79
88
|
type: wallet_1.CarbonSignerTypes.BrowserInjected,
|
|
80
89
|
signAmino,
|
|
81
90
|
getAccounts,
|
|
82
91
|
sendEvmTransaction,
|
|
92
|
+
signMessage,
|
|
83
93
|
};
|
|
84
94
|
}
|
|
85
95
|
static getChainId(configProvider) {
|
|
@@ -1,27 +1,44 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { BlockchainV2, EVMChain as EVMChainV2 } from "../../util/blockchain";
|
|
1
|
+
import { Network } from "../../constant";
|
|
2
|
+
import { Blockchain, BlockchainV2, EVMChain as EVMChainV2 } from "../../util/blockchain";
|
|
3
3
|
import { ethers } from "ethers";
|
|
4
4
|
import { CarbonSigner } from "../../wallet";
|
|
5
5
|
import { CarbonSDK } from "../../index";
|
|
6
6
|
import { StdFee } from "@cosmjs/stargate";
|
|
7
7
|
import { AminoMsg } from "@cosmjs/amino";
|
|
8
8
|
import { SWTHAddressOptions } from "../../util/address";
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
export declare type EVMChain = EVMChainV2;
|
|
10
|
+
interface RequestArguments {
|
|
11
|
+
method: string;
|
|
12
|
+
params?: unknown[] | object;
|
|
13
|
+
}
|
|
11
14
|
interface MetaMaskAPI {
|
|
12
15
|
isMetaMask: boolean;
|
|
13
16
|
chainId: string | null;
|
|
14
|
-
|
|
15
|
-
isConnected: boolean;
|
|
16
|
-
};
|
|
17
|
+
isConnected: () => boolean;
|
|
17
18
|
request: (args: RequestArguments) => Promise<unknown>;
|
|
18
19
|
on: (eventName: string, listener: (...args: unknown[]) => void) => any;
|
|
19
20
|
}
|
|
21
|
+
export interface MetaMaskChangeNetworkParam {
|
|
22
|
+
chainId: string;
|
|
23
|
+
blockExplorerUrls?: string[];
|
|
24
|
+
chainName?: string;
|
|
25
|
+
iconUrls?: string[];
|
|
26
|
+
nativeCurrency?: {
|
|
27
|
+
name: string;
|
|
28
|
+
symbol: string;
|
|
29
|
+
decimals: number;
|
|
30
|
+
};
|
|
31
|
+
rpcUrls?: string[];
|
|
32
|
+
}
|
|
20
33
|
export interface CallContractArgs {
|
|
21
34
|
from?: string;
|
|
22
35
|
value?: string;
|
|
23
36
|
data?: string;
|
|
24
37
|
}
|
|
38
|
+
export interface MetaMaskSyncResult {
|
|
39
|
+
blockchain?: Blockchain | BlockchainV2;
|
|
40
|
+
chainId?: number;
|
|
41
|
+
}
|
|
25
42
|
export interface StoredMnemonicInfo {
|
|
26
43
|
mnemonic: string;
|
|
27
44
|
chain: EVMChainV2;
|
|
@@ -32,7 +49,7 @@ export interface StoredMnemonicInfo {
|
|
|
32
49
|
/**
|
|
33
50
|
* TODO: Add docs
|
|
34
51
|
*/
|
|
35
|
-
export declare class MetaMask
|
|
52
|
+
export declare class MetaMask {
|
|
36
53
|
readonly network: Network;
|
|
37
54
|
readonly legacyEip712SignMode: boolean;
|
|
38
55
|
private blockchain;
|
|
@@ -45,10 +62,9 @@ export declare class MetaMask extends Eip6963Provider {
|
|
|
45
62
|
private checkProvider;
|
|
46
63
|
getBlockchain(): BlockchainV2;
|
|
47
64
|
syncConnectedAccount(): Promise<string>;
|
|
48
|
-
syncBlockchain(): Promise<
|
|
65
|
+
syncBlockchain(): Promise<MetaMaskSyncResult>;
|
|
49
66
|
getSigner(): Promise<ethers.Signer>;
|
|
50
67
|
getAPI(): Promise<MetaMaskAPI | null>;
|
|
51
|
-
getMetaMaskProvider(): MetaMaskAPI | undefined;
|
|
52
68
|
getConnectedAPI(): Promise<MetaMaskAPI>;
|
|
53
69
|
connect(): Promise<MetaMaskAPI>;
|
|
54
70
|
defaultAccount(): Promise<string>;
|
|
@@ -55,8 +55,6 @@ const detect_provider_1 = __importDefault(require("@metamask/detect-provider"));
|
|
|
55
55
|
const error_1 = require("./error");
|
|
56
56
|
const network_1 = require("../../util/network");
|
|
57
57
|
const provider_1 = require("../../util/provider");
|
|
58
|
-
const eip6963Provider_1 = require("../eip6963Provider");
|
|
59
|
-
const constant_2 = require("../../constant");
|
|
60
58
|
const CONTRACT_HASH = {
|
|
61
59
|
Ethereum: {
|
|
62
60
|
// use same rinkeby contract for all non-mainnet uses
|
|
@@ -116,12 +114,160 @@ const getEncryptMessage = (input) => {
|
|
|
116
114
|
.trim()
|
|
117
115
|
.replace(/^\s+/gm, "");
|
|
118
116
|
};
|
|
117
|
+
const CarbonEvmNativeCurrency = {
|
|
118
|
+
decimals: 18,
|
|
119
|
+
name: "SWTH",
|
|
120
|
+
symbol: "SWTH",
|
|
121
|
+
};
|
|
122
|
+
const CARBON_EVM_LOCALHOST = {
|
|
123
|
+
chainId: `0x${Number(ethermint_1.parseChainId(constant_1.CarbonEvmChainIDs[constant_1.Network.LocalHost])).toString(16)}`,
|
|
124
|
+
blockExplorerUrls: ["https://evm-scan.carbon.network"],
|
|
125
|
+
chainName: "Carbon EVM Localhost",
|
|
126
|
+
rpcUrls: [`${constant_1.NetworkConfigs[constant_1.Network.LocalHost].evmJsonRpcUrl}`],
|
|
127
|
+
nativeCurrency: CarbonEvmNativeCurrency,
|
|
128
|
+
};
|
|
129
|
+
const CARBON_EVM_DEVNET = {
|
|
130
|
+
chainId: `0x${Number(ethermint_1.parseChainId(constant_1.CarbonEvmChainIDs[constant_1.Network.DevNet])).toString(16)}`,
|
|
131
|
+
blockExplorerUrls: ["https://evm-scan.carbon.network"],
|
|
132
|
+
chainName: "Carbon EVM Devnet",
|
|
133
|
+
rpcUrls: [`${constant_1.NetworkConfigs[constant_1.Network.DevNet].evmJsonRpcUrl}`],
|
|
134
|
+
nativeCurrency: CarbonEvmNativeCurrency,
|
|
135
|
+
};
|
|
136
|
+
const CARBON_EVM_TESTNET = {
|
|
137
|
+
chainId: `0x${Number(ethermint_1.parseChainId(constant_1.CarbonEvmChainIDs[constant_1.Network.TestNet])).toString(16)}`,
|
|
138
|
+
blockExplorerUrls: ["https://evm-scan.carbon.network"],
|
|
139
|
+
chainName: "Carbon EVM Testnet",
|
|
140
|
+
rpcUrls: [`${constant_1.NetworkConfigs[constant_1.Network.TestNet].evmJsonRpcUrl}`],
|
|
141
|
+
nativeCurrency: CarbonEvmNativeCurrency,
|
|
142
|
+
};
|
|
143
|
+
const CARBON_EVM_MAINNET = {
|
|
144
|
+
chainId: `0x${Number(ethermint_1.parseChainId(constant_1.CarbonEvmChainIDs[constant_1.Network.MainNet])).toString(16)}`,
|
|
145
|
+
blockExplorerUrls: ["https://evm-scan.carbon.network"],
|
|
146
|
+
chainName: "Carbon EVM",
|
|
147
|
+
rpcUrls: [`${constant_1.NetworkConfigs[constant_1.Network.MainNet].evmJsonRpcUrl}`],
|
|
148
|
+
nativeCurrency: CarbonEvmNativeCurrency,
|
|
149
|
+
};
|
|
150
|
+
const BSC_MAINNET = {
|
|
151
|
+
chainId: "0x38",
|
|
152
|
+
blockExplorerUrls: ["https://bscscan.com"],
|
|
153
|
+
chainName: "BSC Mainnet",
|
|
154
|
+
rpcUrls: [
|
|
155
|
+
"https://bsc-dataseed2.binance.org/",
|
|
156
|
+
"https://bsc-dataseed3.binance.org/",
|
|
157
|
+
"https://bsc-dataseed4.binance.org/",
|
|
158
|
+
"https://bsc-dataseed1.defibit.io/",
|
|
159
|
+
"https://bsc-dataseed2.defibit.io/",
|
|
160
|
+
"https://bsc-dataseed3.defibit.io/",
|
|
161
|
+
"https://bsc-dataseed4.defibit.io/",
|
|
162
|
+
"https://bsc-dataseed1.ninicoin.io/",
|
|
163
|
+
"https://bsc-dataseed2.ninicoin.io/",
|
|
164
|
+
"https://bsc-dataseed3.ninicoin.io/",
|
|
165
|
+
"https://bsc-dataseed4.ninicoin.io/",
|
|
166
|
+
"https://bsc-dataseed1.binance.org/",
|
|
167
|
+
],
|
|
168
|
+
nativeCurrency: {
|
|
169
|
+
decimals: 18,
|
|
170
|
+
name: "Binance Coin",
|
|
171
|
+
symbol: "BNB",
|
|
172
|
+
},
|
|
173
|
+
};
|
|
174
|
+
const BSC_TESTNET = {
|
|
175
|
+
chainId: "0x61",
|
|
176
|
+
blockExplorerUrls: ["https://testnet.bscscan.com"],
|
|
177
|
+
chainName: "BSC Testnet",
|
|
178
|
+
rpcUrls: [
|
|
179
|
+
"https://data-seed-prebsc-2-s1.binance.org:8545/",
|
|
180
|
+
"http://data-seed-prebsc-1-s2.binance.org:8545/",
|
|
181
|
+
"http://data-seed-prebsc-2-s2.binance.org:8545/",
|
|
182
|
+
"https://data-seed-prebsc-1-s3.binance.org:8545/",
|
|
183
|
+
"https://data-seed-prebsc-2-s3.binance.org:8545/",
|
|
184
|
+
"https://data-seed-prebsc-1-s1.binance.org:8545/",
|
|
185
|
+
],
|
|
186
|
+
nativeCurrency: {
|
|
187
|
+
decimals: 18,
|
|
188
|
+
name: "Binance Coin",
|
|
189
|
+
symbol: "BNB",
|
|
190
|
+
},
|
|
191
|
+
};
|
|
192
|
+
const ETH_MAINNET = {
|
|
193
|
+
chainId: "0x1",
|
|
194
|
+
rpcUrls: ["https://mainnet.infura.io/v3/"],
|
|
195
|
+
};
|
|
196
|
+
const ETH_TESTNET = {
|
|
197
|
+
chainId: "0x5",
|
|
198
|
+
rpcUrls: ["https://goerli.infura.io/v3/"],
|
|
199
|
+
};
|
|
200
|
+
const ARBITRUM_MAINNET = {
|
|
201
|
+
chainId: "0xA4B1",
|
|
202
|
+
blockExplorerUrls: ["https://explorer.arbitrum.io"],
|
|
203
|
+
chainName: "Arbitrum One",
|
|
204
|
+
rpcUrls: ["https://arb1.arbitrum.io/rpc"],
|
|
205
|
+
nativeCurrency: {
|
|
206
|
+
decimals: 18,
|
|
207
|
+
name: "Ethereum",
|
|
208
|
+
symbol: "ETH",
|
|
209
|
+
},
|
|
210
|
+
};
|
|
211
|
+
const ARBITRUM_TESTNET = {
|
|
212
|
+
chainId: "0x66EEB",
|
|
213
|
+
blockExplorerUrls: [""],
|
|
214
|
+
chainName: "Arbitrum Testnet",
|
|
215
|
+
rpcUrls: ["https://rinkeby.arbitrum.io/rpc"],
|
|
216
|
+
nativeCurrency: {
|
|
217
|
+
decimals: 18,
|
|
218
|
+
name: "Ethereum",
|
|
219
|
+
symbol: "ETH",
|
|
220
|
+
},
|
|
221
|
+
};
|
|
222
|
+
const POLYGON_MAINNET = {
|
|
223
|
+
chainId: "0x89",
|
|
224
|
+
blockExplorerUrls: ["https://polygonscan.com/"],
|
|
225
|
+
chainName: "Polygon Mainnet",
|
|
226
|
+
rpcUrls: ["https://polygon-rpc.com"],
|
|
227
|
+
nativeCurrency: {
|
|
228
|
+
decimals: 18,
|
|
229
|
+
name: "Matic",
|
|
230
|
+
symbol: "MATIC",
|
|
231
|
+
},
|
|
232
|
+
};
|
|
233
|
+
const POLYGON_TESTNET = {
|
|
234
|
+
chainId: "0x13881",
|
|
235
|
+
blockExplorerUrls: ["https://mumbai.polygonscan.com"],
|
|
236
|
+
chainName: "Polygon Mumbai",
|
|
237
|
+
rpcUrls: ["https://polygon-mumbai.infura.io/v3/4458cf4d1689497b9a38b1d6bbf05e78"],
|
|
238
|
+
nativeCurrency: {
|
|
239
|
+
decimals: 18,
|
|
240
|
+
name: "Matic",
|
|
241
|
+
symbol: "MATIC",
|
|
242
|
+
},
|
|
243
|
+
};
|
|
244
|
+
const OKC_MAINNET = {
|
|
245
|
+
chainId: "0x42",
|
|
246
|
+
blockExplorerUrls: ["https://www.oklink.com/okc"],
|
|
247
|
+
chainName: "OKC Mainnet",
|
|
248
|
+
rpcUrls: ["https://exchainrpc.okex.org"],
|
|
249
|
+
nativeCurrency: {
|
|
250
|
+
decimals: 18,
|
|
251
|
+
name: "OKT",
|
|
252
|
+
symbol: "OKT",
|
|
253
|
+
},
|
|
254
|
+
};
|
|
255
|
+
const OKC_TESTNET = {
|
|
256
|
+
chainId: "0x41",
|
|
257
|
+
blockExplorerUrls: ["https://www.oklink.com/okc-test"],
|
|
258
|
+
chainName: "OKC Testnet",
|
|
259
|
+
rpcUrls: ["https://exchaintestrpc.okex.org"],
|
|
260
|
+
nativeCurrency: {
|
|
261
|
+
decimals: 18,
|
|
262
|
+
name: "OKT",
|
|
263
|
+
symbol: "OKT",
|
|
264
|
+
},
|
|
265
|
+
};
|
|
119
266
|
/**
|
|
120
267
|
* TODO: Add docs
|
|
121
268
|
*/
|
|
122
|
-
class MetaMask
|
|
269
|
+
class MetaMask {
|
|
123
270
|
constructor(network, legacyEip712SignMode = false) {
|
|
124
|
-
super();
|
|
125
271
|
this.network = network;
|
|
126
272
|
this.legacyEip712SignMode = legacyEip712SignMode;
|
|
127
273
|
this.blockchain = 'Ethereum';
|
|
@@ -215,6 +361,9 @@ class MetaMask extends eip6963Provider_1.Eip6963Provider {
|
|
|
215
361
|
throw (error_1.parseEvmError(error, index_1.ProviderAgent.MetamaskExtension));
|
|
216
362
|
}
|
|
217
363
|
});
|
|
364
|
+
const signMessage = (address, message) => __awaiter(this, void 0, void 0, function* () {
|
|
365
|
+
return metamask.personalSign(address, message);
|
|
366
|
+
});
|
|
218
367
|
return {
|
|
219
368
|
type: wallet_1.CarbonSignerTypes.BrowserInjected,
|
|
220
369
|
legacyEip712SignMode: metamask.legacyEip712SignMode,
|
|
@@ -223,6 +372,7 @@ class MetaMask extends eip6963Provider_1.Eip6963Provider {
|
|
|
223
372
|
getAccounts,
|
|
224
373
|
signLegacyEip712,
|
|
225
374
|
sendEvmTransaction,
|
|
375
|
+
signMessage,
|
|
226
376
|
};
|
|
227
377
|
}
|
|
228
378
|
static getNetworkParams(network, blockchain = 'Ethereum') {
|
|
@@ -232,42 +382,42 @@ class MetaMask extends eip6963Provider_1.Eip6963Provider {
|
|
|
232
382
|
if (network === constant_1.Network.MainNet) {
|
|
233
383
|
switch (blockchain) {
|
|
234
384
|
case 'Binance Smart Chain':
|
|
235
|
-
return
|
|
385
|
+
return BSC_MAINNET;
|
|
236
386
|
case 'Arbitrum':
|
|
237
|
-
return
|
|
387
|
+
return ARBITRUM_MAINNET;
|
|
238
388
|
case 'Polygon':
|
|
239
|
-
return
|
|
389
|
+
return POLYGON_MAINNET;
|
|
240
390
|
case 'OKC':
|
|
241
|
-
return
|
|
391
|
+
return OKC_MAINNET;
|
|
242
392
|
default:
|
|
243
393
|
// metamask should come with Ethereum configs
|
|
244
|
-
return
|
|
394
|
+
return ETH_MAINNET;
|
|
245
395
|
}
|
|
246
396
|
}
|
|
247
397
|
switch (blockchain) {
|
|
248
398
|
case 'Binance Smart Chain':
|
|
249
|
-
return
|
|
399
|
+
return BSC_TESTNET;
|
|
250
400
|
case 'Arbitrum':
|
|
251
|
-
return
|
|
401
|
+
return ARBITRUM_TESTNET;
|
|
252
402
|
case 'Polygon':
|
|
253
|
-
return
|
|
403
|
+
return POLYGON_TESTNET;
|
|
254
404
|
case 'OKC':
|
|
255
|
-
return
|
|
405
|
+
return OKC_TESTNET;
|
|
256
406
|
default:
|
|
257
407
|
// metamask should come with Ethereum configs
|
|
258
|
-
return
|
|
408
|
+
return ETH_TESTNET;
|
|
259
409
|
}
|
|
260
410
|
}
|
|
261
411
|
static getCarbonEvmNetworkParams(network) {
|
|
262
412
|
switch (network) {
|
|
263
413
|
case constant_1.Network.LocalHost:
|
|
264
|
-
return
|
|
414
|
+
return CARBON_EVM_LOCALHOST;
|
|
265
415
|
case constant_1.Network.DevNet:
|
|
266
|
-
return
|
|
416
|
+
return CARBON_EVM_DEVNET;
|
|
267
417
|
case constant_1.Network.TestNet:
|
|
268
|
-
return
|
|
418
|
+
return CARBON_EVM_TESTNET;
|
|
269
419
|
default:
|
|
270
|
-
return
|
|
420
|
+
return CARBON_EVM_MAINNET;
|
|
271
421
|
}
|
|
272
422
|
}
|
|
273
423
|
static getRequiredChainId(network, blockchain = 'Ethereum') {
|
|
@@ -321,7 +471,7 @@ class MetaMask extends eip6963Provider_1.Eip6963Provider {
|
|
|
321
471
|
}
|
|
322
472
|
syncBlockchain() {
|
|
323
473
|
return __awaiter(this, void 0, void 0, function* () {
|
|
324
|
-
const metamaskAPI = yield this.
|
|
474
|
+
const metamaskAPI = yield this.getAPI();
|
|
325
475
|
const chainIdHex = (yield (metamaskAPI === null || metamaskAPI === void 0 ? void 0 : metamaskAPI.request({ method: "eth_chainId" })));
|
|
326
476
|
const chainId = chainIdHex ? parseInt(chainIdHex, 16) : undefined;
|
|
327
477
|
const blockchain = blockchain_1.getBlockchainFromChainV2(chainId);
|
|
@@ -337,20 +487,20 @@ class MetaMask extends eip6963Provider_1.Eip6963Provider {
|
|
|
337
487
|
}
|
|
338
488
|
getAPI() {
|
|
339
489
|
return __awaiter(this, void 0, void 0, function* () {
|
|
340
|
-
return yield detect_provider_1.default(
|
|
490
|
+
return yield detect_provider_1.default();
|
|
341
491
|
});
|
|
342
492
|
}
|
|
343
|
-
getMetaMaskProvider() {
|
|
344
|
-
const metamaskProvider = super.getProvider(constant_1.SupportedEip6963Provider.MetaMask);
|
|
345
|
-
return metamaskProvider === null || metamaskProvider === void 0 ? void 0 : metamaskProvider.provider;
|
|
346
|
-
}
|
|
347
493
|
getConnectedAPI() {
|
|
348
494
|
return __awaiter(this, void 0, void 0, function* () {
|
|
349
|
-
const
|
|
350
|
-
if (!
|
|
495
|
+
const metamaskAPI = yield this.getAPI();
|
|
496
|
+
if (!metamaskAPI) {
|
|
351
497
|
throw new Error("MetaMask not connected, please check that your extension is enabled");
|
|
352
498
|
}
|
|
353
|
-
|
|
499
|
+
if (metamaskAPI === null || metamaskAPI === void 0 ? void 0 : metamaskAPI.isConnected()) {
|
|
500
|
+
return metamaskAPI;
|
|
501
|
+
}
|
|
502
|
+
yield metamaskAPI.request({ method: "eth_requestAccounts" });
|
|
503
|
+
return metamaskAPI;
|
|
354
504
|
});
|
|
355
505
|
}
|
|
356
506
|
connect() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { CallContractArgs, MetaMask } from "./MetaMask";
|
|
1
|
+
export { EVMChain, MetaMaskChangeNetworkParam, CallContractArgs, MetaMaskSyncResult, MetaMask } from "./MetaMask";
|
|
@@ -23,7 +23,7 @@ export declare class Zilpay {
|
|
|
23
23
|
readonly network: Network;
|
|
24
24
|
private blockchain;
|
|
25
25
|
static getNetworkParams(network: Network): ZilPayChangeNetworkParam;
|
|
26
|
-
static getRequiredChainId(network: Network): 1 |
|
|
26
|
+
static getRequiredChainId(network: Network): 1 | 333 | 888;
|
|
27
27
|
constructor(network: Network);
|
|
28
28
|
getBlockchain(): BlockchainUtils.Blockchain;
|
|
29
29
|
getSigner(): Promise<Signer>;
|
package/lib/util/index.d.ts
CHANGED
package/lib/util/index.js
CHANGED
|
@@ -19,7 +19,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
19
19
|
return result;
|
|
20
20
|
};
|
|
21
21
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
-
exports.AllianceUtils = exports.GrantUtils = exports.TypeUtils = exports.CarbonTx = exports.TransferUtils = exports.TokenUtils = exports.NumberUtils = exports.NetworkUtils = exports.IBCUtils = exports.GovUtils = exports.GenericUtils = exports.FetchUtils = exports.ExternalUtils = exports.BlockchainUtils = exports.APIUtils = exports.AddressUtils = void 0;
|
|
22
|
+
exports.MessageUtils = exports.AllianceUtils = exports.GrantUtils = exports.TypeUtils = exports.CarbonTx = exports.TransferUtils = exports.TokenUtils = exports.NumberUtils = exports.NetworkUtils = exports.IBCUtils = exports.GovUtils = exports.GenericUtils = exports.FetchUtils = exports.ExternalUtils = exports.BlockchainUtils = exports.APIUtils = exports.AddressUtils = void 0;
|
|
23
23
|
exports.AddressUtils = __importStar(require("./address"));
|
|
24
24
|
exports.APIUtils = __importStar(require("./api"));
|
|
25
25
|
exports.BlockchainUtils = __importStar(require("./blockchain"));
|
|
@@ -36,3 +36,4 @@ exports.CarbonTx = __importStar(require("./tx"));
|
|
|
36
36
|
exports.TypeUtils = __importStar(require("./type"));
|
|
37
37
|
exports.GrantUtils = __importStar(require("./grant"));
|
|
38
38
|
exports.AllianceUtils = __importStar(require("./alliance"));
|
|
39
|
+
exports.MessageUtils = __importStar(require("./message"));
|
|
@@ -14,16 +14,19 @@ export declare enum CarbonSignerTypes {
|
|
|
14
14
|
export interface EvmSigner {
|
|
15
15
|
readonly sendEvmTransaction: (api: CarbonSDK, req: ethers.providers.TransactionRequest) => Promise<string>;
|
|
16
16
|
}
|
|
17
|
+
export interface ArbitraryMessageSigner {
|
|
18
|
+
readonly signMessage: (address: string, message: string) => Promise<string>;
|
|
19
|
+
}
|
|
17
20
|
export interface EIP712Signer extends EvmSigner {
|
|
18
21
|
legacyEip712SignMode: boolean;
|
|
19
22
|
readonly signLegacyEip712: (signerAddress: string, signDoc: StdSignDoc) => Promise<LegacyEIP712AminoSignResponse>;
|
|
20
23
|
}
|
|
21
24
|
export declare type CarbonSigner = DirectCarbonSigner | AminoCarbonSigner | CarbonEIP712Signer;
|
|
22
|
-
export declare type CarbonEIP712Signer = (DirectCarbonSigner | AminoCarbonSigner) & EIP712Signer;
|
|
23
|
-
export declare type DirectCarbonSigner = OfflineDirectSigner & EvmSigner & {
|
|
25
|
+
export declare type CarbonEIP712Signer = (DirectCarbonSigner | AminoCarbonSigner) & EIP712Signer & ArbitraryMessageSigner;
|
|
26
|
+
export declare type DirectCarbonSigner = OfflineDirectSigner & EvmSigner & ArbitraryMessageSigner & {
|
|
24
27
|
type: CarbonSignerTypes;
|
|
25
28
|
};
|
|
26
|
-
export declare type AminoCarbonSigner = OfflineAminoSigner & EvmSigner & {
|
|
29
|
+
export declare type AminoCarbonSigner = OfflineAminoSigner & EvmSigner & ArbitraryMessageSigner & {
|
|
27
30
|
type: CarbonSignerTypes;
|
|
28
31
|
};
|
|
29
32
|
export declare type LegacyEIP712AminoSignResponse = AminoSignResponse & {
|
|
@@ -43,12 +46,14 @@ export declare class CarbonPrivateKeySigner implements DirectCarbonSigner, Amino
|
|
|
43
46
|
signAmino(signerAddress: string, signDoc: StdSignDoc): Promise<AminoSignResponse>;
|
|
44
47
|
signDirect(signerAddress: string, signDoc: SignDoc): Promise<DirectSignResponse>;
|
|
45
48
|
sendEvmTransaction(api: CarbonSDK, req: ethers.providers.TransactionRequest): Promise<string>;
|
|
49
|
+
signMessage(address: string, message: string): Promise<string>;
|
|
46
50
|
}
|
|
47
51
|
export declare class CarbonNonSigner implements DirectCarbonSigner {
|
|
48
52
|
type: CarbonSignerTypes;
|
|
49
53
|
getAccounts(): Promise<readonly AccountData[]>;
|
|
50
54
|
signDirect(): Promise<DirectSignResponse>;
|
|
51
55
|
sendEvmTransaction(api: CarbonSDK, req: ethers.providers.TransactionRequest): Promise<string>;
|
|
56
|
+
signMessage(address: string, message: string): Promise<string>;
|
|
52
57
|
}
|
|
53
58
|
export declare class CarbonLedgerSigner implements AminoCarbonSigner {
|
|
54
59
|
readonly ledger: CosmosLedger;
|
|
@@ -58,5 +63,6 @@ export declare class CarbonLedgerSigner implements AminoCarbonSigner {
|
|
|
58
63
|
getAccounts(): Promise<readonly AccountData[]>;
|
|
59
64
|
signAmino(_: string, doc: StdSignDoc): Promise<AminoSignResponse>;
|
|
60
65
|
sendEvmTransaction(api: CarbonSDK, req: ethers.providers.TransactionRequest): Promise<string>;
|
|
66
|
+
signMessage(_: string, message: string): Promise<string>;
|
|
61
67
|
constructor(ledger: CosmosLedger);
|
|
62
68
|
}
|
|
@@ -11,6 +11,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.CarbonLedgerSigner = exports.CarbonNonSigner = exports.CarbonPrivateKeySigner = exports.isCarbonEIP712Signer = exports.CarbonSignerTypes = void 0;
|
|
13
13
|
const generic_1 = require("../util/generic");
|
|
14
|
+
const message_1 = require("../util/message");
|
|
14
15
|
const amino_1 = require("@cosmjs/amino");
|
|
15
16
|
const proto_signing_1 = require("@cosmjs/proto-signing");
|
|
16
17
|
var CarbonSignerTypes;
|
|
@@ -67,6 +68,13 @@ class CarbonPrivateKeySigner {
|
|
|
67
68
|
throw new Error("signing not available");
|
|
68
69
|
});
|
|
69
70
|
}
|
|
71
|
+
signMessage(address, message) {
|
|
72
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
73
|
+
const aminoWallet = yield this.initAminoWallet();
|
|
74
|
+
const signedDoc = yield aminoWallet.signAmino(address, message_1.constructAdr36SignDoc(address, message));
|
|
75
|
+
return Buffer.from(signedDoc.signature.signature, 'base64').toString('hex');
|
|
76
|
+
});
|
|
77
|
+
}
|
|
70
78
|
}
|
|
71
79
|
exports.CarbonPrivateKeySigner = CarbonPrivateKeySigner;
|
|
72
80
|
class CarbonNonSigner {
|
|
@@ -88,6 +96,11 @@ class CarbonNonSigner {
|
|
|
88
96
|
throw new Error("signing not available");
|
|
89
97
|
});
|
|
90
98
|
}
|
|
99
|
+
signMessage(address, message) {
|
|
100
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
101
|
+
throw new Error("signing not available");
|
|
102
|
+
});
|
|
103
|
+
}
|
|
91
104
|
}
|
|
92
105
|
exports.CarbonNonSigner = CarbonNonSigner;
|
|
93
106
|
// Uses amino because ledger does not work with protobuf yet
|
|
@@ -134,5 +147,15 @@ class CarbonLedgerSigner {
|
|
|
134
147
|
throw new Error("signing not available");
|
|
135
148
|
});
|
|
136
149
|
}
|
|
150
|
+
signMessage(_, message) {
|
|
151
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
152
|
+
const account = yield this.retrieveAccount();
|
|
153
|
+
const { pubkey, address } = account;
|
|
154
|
+
const doc = JSON.stringify(message_1.constructAdr36SignDoc(address, message));
|
|
155
|
+
const signBytes = yield this.ledger.sign(doc);
|
|
156
|
+
const { signature } = amino_1.encodeSecp256k1Signature(pubkey, signBytes);
|
|
157
|
+
return Buffer.from(signature, 'base64').toString('hex');
|
|
158
|
+
});
|
|
159
|
+
}
|
|
137
160
|
}
|
|
138
161
|
exports.CarbonLedgerSigner = CarbonLedgerSigner;
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { OverrideConfig } from "../CarbonSDK";
|
|
3
3
|
import { CarbonQueryClient } from "../clients";
|
|
4
4
|
import GasFee from "../clients/GasFee";
|
|
5
|
-
import { Network, NetworkConfig
|
|
5
|
+
import { Network, NetworkConfig } from "../constant";
|
|
6
6
|
import { ProviderAgent } from "../constant/walletProvider";
|
|
7
7
|
import { ChainInfo, CosmosLedger, Keplr, MetaMask } from "../provider";
|
|
8
8
|
import { CarbonTx } from "../util";
|
|
@@ -15,12 +15,11 @@ import { Account, DeliverTxResponse } from "@cosmjs/stargate";
|
|
|
15
15
|
import { Tendermint37Client } from "@cosmjs/tendermint-rpc";
|
|
16
16
|
import { BroadcastTxAsyncResponse, BroadcastTxSyncResponse, TxResponse } from "@cosmjs/tendermint-rpc/build/tendermint37/responses";
|
|
17
17
|
import { Key as LeapKey } from "@cosmos-kit/core";
|
|
18
|
-
import { Leap } from "@cosmos-kit/leap";
|
|
18
|
+
import { Leap } from "@cosmos-kit/leap-extension";
|
|
19
19
|
import { Key } from "@keplr-wallet/types";
|
|
20
20
|
import { TxRaw as StargateTxRaw } from "cosmjs-types/cosmos/tx/v1beta1/tx";
|
|
21
21
|
import { CarbonSigner, CarbonSignerTypes } from "./CarbonSigner";
|
|
22
22
|
import { CarbonSigningClient } from "./CarbonSigningClient";
|
|
23
|
-
import RainbowKitAccount from "../provider/rainbowKit/RainbowKitAccount";
|
|
24
23
|
export interface CarbonWalletGenericOpts {
|
|
25
24
|
tmClient?: Tendermint37Client;
|
|
26
25
|
txDefaultBroadcastMode?: BroadcastTxMode;
|
|
@@ -31,7 +30,6 @@ export interface CarbonWalletGenericOpts {
|
|
|
31
30
|
disableRetryOnSequenceError?: boolean;
|
|
32
31
|
triggerMerge?: boolean;
|
|
33
32
|
gasFee?: GasFee;
|
|
34
|
-
isRainbowKit?: boolean;
|
|
35
33
|
/**
|
|
36
34
|
* Optional callback that will be called before signing is requested/executed.
|
|
37
35
|
*/
|
|
@@ -115,7 +113,6 @@ export declare class CarbonWallet {
|
|
|
115
113
|
initialized: boolean;
|
|
116
114
|
accountInfo?: AccountInfo;
|
|
117
115
|
disableRetryOnSequenceError: boolean;
|
|
118
|
-
isRainbowKit: boolean;
|
|
119
116
|
providerAgent?: ProviderAgent | string;
|
|
120
117
|
authorizedMsgs?: string[];
|
|
121
118
|
authorizedMsgsVersion?: number;
|
|
@@ -136,7 +133,6 @@ export declare class CarbonWallet {
|
|
|
136
133
|
static withKeplr(keplr: Keplr, chainInfo: ChainInfo, keplrKey: Key, opts?: Omit<CarbonWalletInitOpts, "signer">): CarbonWallet;
|
|
137
134
|
static withLeap(leap: Leap, chainId: string, leapKey: LeapKey, opts?: Omit<CarbonWalletInitOpts, "signer">): CarbonWallet;
|
|
138
135
|
static withMetamask(metamask: MetaMask, evmChainId: string, compressedPubKeyBase64: string, addressOptions: SWTHAddressOptions, opts?: Omit<CarbonWalletInitOpts, "signer">): CarbonWallet;
|
|
139
|
-
static withRainbowKit(rainbowKit: RainbowKitAccount, evmChainId: string, compressedPubKeyBase64: string, addressOptions: SWTHAddressOptions, walletProvider: SupportedEip6963Provider, opts?: Omit<CarbonWalletInitOpts, "signer">): CarbonWallet;
|
|
140
136
|
static withAddress(bech32Address: string, opts?: Partial<CarbonWalletInitOpts>): CarbonWallet;
|
|
141
137
|
initialize(queryClient: CarbonQueryClient, gasFee: GasFee, fallbackConfig?: OverrideConfig | null): Promise<CarbonWallet>;
|
|
142
138
|
setGrantee(grantee?: Grantee): void;
|
|
@@ -189,6 +185,7 @@ export declare class CarbonWallet {
|
|
|
189
185
|
isLedgerViaBrowserExtension(): boolean;
|
|
190
186
|
isPrivateKeySigner(): boolean;
|
|
191
187
|
isBrowserInjectedSigner(): boolean;
|
|
188
|
+
isNonSigner(): boolean;
|
|
192
189
|
isSmartWalletEnabled(): boolean;
|
|
193
190
|
getSmartWalletPrivateKey(blockchain?: SmartWalletBlockchain): Buffer | null;
|
|
194
191
|
reconnectTmClient(fallbackConfig: OverrideConfig | null): Promise<void>;
|
|
@@ -41,13 +41,11 @@ const dayjs_1 = __importDefault(require("dayjs"));
|
|
|
41
41
|
const utc_1 = __importDefault(require("dayjs/plugin/utc"));
|
|
42
42
|
const CarbonSigner_1 = require("./CarbonSigner");
|
|
43
43
|
const CarbonSigningClient_1 = require("./CarbonSigningClient");
|
|
44
|
-
const RainbowKitAccount_1 = __importDefault(require("../provider/rainbowKit/RainbowKitAccount"));
|
|
45
44
|
dayjs_1.default.extend(utc_1.default);
|
|
46
45
|
class CarbonWallet {
|
|
47
46
|
constructor(opts) {
|
|
48
|
-
var _a, _b, _c, _d, _e
|
|
47
|
+
var _a, _b, _c, _d, _e;
|
|
49
48
|
this.initialized = false;
|
|
50
|
-
this.isRainbowKit = false;
|
|
51
49
|
this.sequenceInvalidated = false;
|
|
52
50
|
this.isAccountNotFoundError = (error, address) => {
|
|
53
51
|
var _a;
|
|
@@ -78,7 +76,6 @@ class CarbonWallet {
|
|
|
78
76
|
this.triggerMerge = (_e = opts.triggerMerge) !== null && _e !== void 0 ? _e : false;
|
|
79
77
|
this.gasFee = opts.gasFee;
|
|
80
78
|
this.updateNetwork(network);
|
|
81
|
-
this.isRainbowKit = (_f = opts.isRainbowKit) !== null && _f !== void 0 ? _f : false;
|
|
82
79
|
this.onRequestSign = opts.onRequestSign;
|
|
83
80
|
this.onSignComplete = opts.onSignComplete;
|
|
84
81
|
this.onBroadcastTxSuccess = opts.onBroadcastTxSuccess;
|
|
@@ -156,11 +153,6 @@ class CarbonWallet {
|
|
|
156
153
|
const wallet = CarbonWallet.withSigner(signer, compressedPubKeyBase64, Object.assign({ providerAgent: walletProvider_1.ProviderAgent.MetamaskExtension }, opts));
|
|
157
154
|
return wallet;
|
|
158
155
|
}
|
|
159
|
-
static withRainbowKit(rainbowKit, evmChainId, compressedPubKeyBase64, addressOptions, walletProvider, opts = {}) {
|
|
160
|
-
const signer = RainbowKitAccount_1.default.createRainbowKitSigner(rainbowKit, evmChainId, compressedPubKeyBase64, addressOptions);
|
|
161
|
-
const wallet = CarbonWallet.withSigner(signer, compressedPubKeyBase64, Object.assign(Object.assign({}, opts), { providerAgent: walletProvider, isRainbowKit: true }));
|
|
162
|
-
return wallet;
|
|
163
|
-
}
|
|
164
156
|
static withAddress(bech32Address, opts = {}) {
|
|
165
157
|
return new CarbonWallet(Object.assign(Object.assign({}, opts), { bech32Address }));
|
|
166
158
|
}
|
|
@@ -607,6 +599,9 @@ class CarbonWallet {
|
|
|
607
599
|
isBrowserInjectedSigner() {
|
|
608
600
|
return this.isSigner(CarbonSigner_1.CarbonSignerTypes.BrowserInjected);
|
|
609
601
|
}
|
|
602
|
+
isNonSigner() {
|
|
603
|
+
return this.isSigner(CarbonSigner_1.CarbonSignerTypes.PublicKey);
|
|
604
|
+
}
|
|
610
605
|
isSmartWalletEnabled() {
|
|
611
606
|
return !!(this.mnemonic || this.privateKey);
|
|
612
607
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "carbon-js-sdk",
|
|
3
|
-
"version": "0.11.2
|
|
3
|
+
"version": "0.11.2",
|
|
4
4
|
"description": "TypeScript SDK for Carbon blockchain",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"types": "lib/index.d.ts",
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
"@cityofzion/neon-core-next": "npm:@cityofzion/neon-core@^5.0.0",
|
|
42
42
|
"@cityofzion/neon-js": "^4.9.0",
|
|
43
43
|
"@cosmjs/stargate": "~0.31.3",
|
|
44
|
-
"@cosmos-kit/leap": "^0.
|
|
44
|
+
"@cosmos-kit/leap": "^0.15.12",
|
|
45
45
|
"@improbable-eng/grpc-web": "^0.15.0",
|
|
46
46
|
"@improbable-eng/grpc-web-node-http-transport": "^0.15.0",
|
|
47
47
|
"@keplr-wallet/types": "^0.11.64",
|