bitbadgesjs-sdk 0.30.0 → 0.30.1
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/README.md +258 -47
- package/dist/cjs/index.d.ts +1 -0
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +1 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/signing/BitBadgesSigningClient.d.ts +32 -0
- package/dist/cjs/signing/BitBadgesSigningClient.d.ts.map +1 -0
- package/dist/cjs/signing/BitBadgesSigningClient.js +270 -0
- package/dist/cjs/signing/BitBadgesSigningClient.js.map +1 -0
- package/dist/cjs/signing/BitBadgesSigningClient.spec.d.ts +2 -0
- package/dist/cjs/signing/BitBadgesSigningClient.spec.d.ts.map +1 -0
- package/dist/cjs/signing/BitBadgesSigningClient.spec.js +182 -0
- package/dist/cjs/signing/BitBadgesSigningClient.spec.js.map +1 -0
- package/dist/cjs/signing/adapters/GenericCosmosAdapter.d.ts +73 -0
- package/dist/cjs/signing/adapters/GenericCosmosAdapter.d.ts.map +1 -0
- package/dist/cjs/signing/adapters/GenericCosmosAdapter.js +189 -0
- package/dist/cjs/signing/adapters/GenericCosmosAdapter.js.map +1 -0
- package/dist/cjs/signing/adapters/GenericEvmAdapter.d.ts +37 -0
- package/dist/cjs/signing/adapters/GenericEvmAdapter.d.ts.map +1 -0
- package/dist/cjs/signing/adapters/GenericEvmAdapter.js +71 -0
- package/dist/cjs/signing/adapters/GenericEvmAdapter.js.map +1 -0
- package/dist/cjs/signing/adapters/WalletAdapter.d.ts +23 -0
- package/dist/cjs/signing/adapters/WalletAdapter.d.ts.map +1 -0
- package/dist/cjs/signing/adapters/WalletAdapter.js +16 -0
- package/dist/cjs/signing/adapters/WalletAdapter.js.map +1 -0
- package/dist/cjs/signing/adapters/index.d.ts +4 -0
- package/dist/cjs/signing/adapters/index.d.ts.map +1 -0
- package/dist/cjs/signing/adapters/index.js +10 -0
- package/dist/cjs/signing/adapters/index.js.map +1 -0
- package/dist/cjs/signing/index.d.ts +4 -0
- package/dist/cjs/signing/index.d.ts.map +1 -0
- package/dist/cjs/signing/index.js +10 -0
- package/dist/cjs/signing/index.js.map +1 -0
- package/dist/cjs/signing/types.d.ts +68 -0
- package/dist/cjs/signing/types.d.ts.map +1 -0
- package/dist/cjs/signing/types.js +3 -0
- package/dist/cjs/signing/types.js.map +1 -0
- package/dist/cjs/tsconfig.build.tsbuildinfo +1 -1
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/signing/BitBadgesSigningClient.d.ts +32 -0
- package/dist/esm/signing/BitBadgesSigningClient.d.ts.map +1 -0
- package/dist/esm/signing/BitBadgesSigningClient.js +275 -0
- package/dist/esm/signing/BitBadgesSigningClient.js.map +1 -0
- package/dist/esm/signing/BitBadgesSigningClient.spec.d.ts +2 -0
- package/dist/esm/signing/BitBadgesSigningClient.spec.d.ts.map +1 -0
- package/dist/esm/signing/BitBadgesSigningClient.spec.js +176 -0
- package/dist/esm/signing/BitBadgesSigningClient.spec.js.map +1 -0
- package/dist/esm/signing/adapters/GenericCosmosAdapter.d.ts +73 -0
- package/dist/esm/signing/adapters/GenericCosmosAdapter.d.ts.map +1 -0
- package/dist/esm/signing/adapters/GenericCosmosAdapter.js +162 -0
- package/dist/esm/signing/adapters/GenericCosmosAdapter.js.map +1 -0
- package/dist/esm/signing/adapters/GenericEvmAdapter.d.ts +37 -0
- package/dist/esm/signing/adapters/GenericEvmAdapter.d.ts.map +1 -0
- package/dist/esm/signing/adapters/GenericEvmAdapter.js +70 -0
- package/dist/esm/signing/adapters/GenericEvmAdapter.js.map +1 -0
- package/dist/esm/signing/adapters/WalletAdapter.d.ts +23 -0
- package/dist/esm/signing/adapters/WalletAdapter.d.ts.map +1 -0
- package/dist/esm/signing/adapters/WalletAdapter.js +12 -0
- package/dist/esm/signing/adapters/WalletAdapter.js.map +1 -0
- package/dist/esm/signing/adapters/index.d.ts +4 -0
- package/dist/esm/signing/adapters/index.d.ts.map +1 -0
- package/dist/esm/signing/adapters/index.js +4 -0
- package/dist/esm/signing/adapters/index.js.map +1 -0
- package/dist/esm/signing/index.d.ts +4 -0
- package/dist/esm/signing/index.d.ts.map +1 -0
- package/dist/esm/signing/index.js +3 -0
- package/dist/esm/signing/index.js.map +1 -0
- package/dist/esm/signing/types.d.ts +68 -0
- package/dist/esm/signing/types.d.ts.map +1 -0
- package/dist/esm/signing/types.js +2 -0
- package/dist/esm/signing/types.js.map +1 -0
- package/dist/esm/tsconfig-esm.build.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
import { convertToBitBadgesAddress } from '../../address-converter/converter.js';
|
|
2
|
+
import { BaseWalletAdapter } from './WalletAdapter.js';
|
|
3
|
+
function toLong(value) {
|
|
4
|
+
return {
|
|
5
|
+
low: value | 0,
|
|
6
|
+
high: 0,
|
|
7
|
+
unsigned: false
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
class BrowserWalletStrategy {
|
|
11
|
+
wallet;
|
|
12
|
+
signDoc;
|
|
13
|
+
constructor(wallet, signDoc) {
|
|
14
|
+
this.wallet = wallet;
|
|
15
|
+
this.signDoc = signDoc;
|
|
16
|
+
}
|
|
17
|
+
async sign(signBytes, chainId, address, accountNumber) {
|
|
18
|
+
const signDoc = this.signDoc(signBytes, accountNumber);
|
|
19
|
+
const result = await this.wallet.signDirect(chainId, address, signDoc, {
|
|
20
|
+
preferNoSetFee: true,
|
|
21
|
+
preferNoSetMemo: true
|
|
22
|
+
});
|
|
23
|
+
const signatureBytes = Buffer.from(result.signature.signature, 'base64');
|
|
24
|
+
const signatureHex = signatureBytes.toString('hex');
|
|
25
|
+
return {
|
|
26
|
+
signature: signatureHex,
|
|
27
|
+
publicKey: result.signature.pub_key.value
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
class DirectKeyStrategy {
|
|
32
|
+
signFn;
|
|
33
|
+
publicKeyBase64;
|
|
34
|
+
constructor(signFn, publicKeyBase64) {
|
|
35
|
+
this.signFn = signFn;
|
|
36
|
+
this.publicKeyBase64 = publicKeyBase64;
|
|
37
|
+
}
|
|
38
|
+
async sign(signBytes, _chainId, _address, _accountNumber) {
|
|
39
|
+
const signature = this.signFn(signBytes);
|
|
40
|
+
let r = signature.r.startsWith('0x') ? signature.r.slice(2) : signature.r;
|
|
41
|
+
let s = signature.s.startsWith('0x') ? signature.s.slice(2) : signature.s;
|
|
42
|
+
r = r.padStart(64, '0');
|
|
43
|
+
s = s.padStart(64, '0');
|
|
44
|
+
return {
|
|
45
|
+
signature: r + s,
|
|
46
|
+
publicKey: this.publicKeyBase64
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
export class GenericCosmosAdapter extends BaseWalletAdapter {
|
|
51
|
+
chainType = 'cosmos';
|
|
52
|
+
address;
|
|
53
|
+
chainId;
|
|
54
|
+
prefix;
|
|
55
|
+
publicKeyBase64;
|
|
56
|
+
signingStrategy;
|
|
57
|
+
payloadBuilder;
|
|
58
|
+
constructor(address, publicKey, config, signingStrategy, payloadBuilder) {
|
|
59
|
+
super();
|
|
60
|
+
this.address = address;
|
|
61
|
+
this.publicKeyBase64 = publicKey;
|
|
62
|
+
this.chainId = config.chainId;
|
|
63
|
+
this.prefix = config.prefix || 'bb';
|
|
64
|
+
this.signingStrategy = signingStrategy;
|
|
65
|
+
this.payloadBuilder = payloadBuilder;
|
|
66
|
+
}
|
|
67
|
+
static async fromKeplr(chainId) {
|
|
68
|
+
if (typeof window === 'undefined' || !window.keplr) {
|
|
69
|
+
throw new Error('Keplr wallet not found. Please install Keplr extension.');
|
|
70
|
+
}
|
|
71
|
+
return GenericCosmosAdapter.fromBrowserWallet(window.keplr, chainId);
|
|
72
|
+
}
|
|
73
|
+
static async fromLeap(chainId) {
|
|
74
|
+
if (typeof window === 'undefined' || !window.leap) {
|
|
75
|
+
throw new Error('Leap wallet not found. Please install Leap extension.');
|
|
76
|
+
}
|
|
77
|
+
return GenericCosmosAdapter.fromBrowserWallet(window.leap, chainId);
|
|
78
|
+
}
|
|
79
|
+
static async fromCosmostation(chainId) {
|
|
80
|
+
if (typeof window === 'undefined' || !window.cosmostation?.providers?.keplr) {
|
|
81
|
+
throw new Error('Cosmostation wallet not found. Please install Cosmostation extension.');
|
|
82
|
+
}
|
|
83
|
+
return GenericCosmosAdapter.fromBrowserWallet(window.cosmostation.providers.keplr, chainId);
|
|
84
|
+
}
|
|
85
|
+
static async fromBrowserWallet(wallet, chainId, prefix = 'bb') {
|
|
86
|
+
await wallet.enable(chainId);
|
|
87
|
+
const keyInfo = await wallet.getKey(chainId);
|
|
88
|
+
let address = keyInfo.bech32Address;
|
|
89
|
+
if (!address.startsWith(prefix)) {
|
|
90
|
+
address = convertToBitBadgesAddress(address);
|
|
91
|
+
}
|
|
92
|
+
const publicKeyBase64 = Buffer.from(keyInfo.pubKey).toString('base64');
|
|
93
|
+
const payloadBuilder = (_payload, accountNumber) => ({
|
|
94
|
+
bodyBytes: _payload.signDirect.body.toBinary(),
|
|
95
|
+
authInfoBytes: _payload.signDirect.authInfo.toBinary(),
|
|
96
|
+
chainId,
|
|
97
|
+
accountNumber: toLong(accountNumber)
|
|
98
|
+
});
|
|
99
|
+
const strategy = new BrowserWalletStrategy(wallet, (signBytes, accNum) => payloadBuilder({ signDirect: { body: { toBinary: () => signBytes } } }, accNum));
|
|
100
|
+
return new GenericCosmosAdapter(address, publicKeyBase64, { chainId, prefix }, strategy, payloadBuilder);
|
|
101
|
+
}
|
|
102
|
+
static async fromWallet(wallet, chainId, prefix = 'bb') {
|
|
103
|
+
return GenericCosmosAdapter.fromBrowserWallet(wallet, chainId, prefix);
|
|
104
|
+
}
|
|
105
|
+
static async fromMnemonic(mnemonic, chainId, prefix = 'bb') {
|
|
106
|
+
const { HDNodeWallet } = await import('ethers');
|
|
107
|
+
const wallet = HDNodeWallet.fromPhrase(mnemonic);
|
|
108
|
+
return GenericCosmosAdapter.createFromEthersWallet(wallet, chainId, prefix);
|
|
109
|
+
}
|
|
110
|
+
static async fromPrivateKey(privateKey, chainId, prefix = 'bb') {
|
|
111
|
+
const { Wallet } = await import('ethers');
|
|
112
|
+
const wallet = new Wallet(privateKey);
|
|
113
|
+
return GenericCosmosAdapter.createFromEthersWallet(wallet, chainId, prefix);
|
|
114
|
+
}
|
|
115
|
+
static async createFromEthersWallet(wallet, chainId, prefix) {
|
|
116
|
+
const address = convertToBitBadgesAddress(wallet.address);
|
|
117
|
+
if (!address) {
|
|
118
|
+
throw new Error('Failed to convert address to BitBadges format');
|
|
119
|
+
}
|
|
120
|
+
const compressedPubKey = GenericCosmosAdapter.compressPublicKey(wallet.signingKey.publicKey);
|
|
121
|
+
const publicKeyBase64 = Buffer.from(compressedPubKey, 'hex').toString('base64');
|
|
122
|
+
const strategy = new DirectKeyStrategy((digest) => wallet.signingKey.sign(digest), publicKeyBase64);
|
|
123
|
+
return new GenericCosmosAdapter(address, publicKeyBase64, { chainId, prefix }, strategy);
|
|
124
|
+
}
|
|
125
|
+
static compressPublicKey(uncompressedPubKey) {
|
|
126
|
+
let pubKey = uncompressedPubKey.startsWith('0x') ? uncompressedPubKey.slice(2) : uncompressedPubKey;
|
|
127
|
+
if (pubKey.length === 66 && (pubKey.startsWith('02') || pubKey.startsWith('03'))) {
|
|
128
|
+
return pubKey;
|
|
129
|
+
}
|
|
130
|
+
if (pubKey.length !== 130 || !pubKey.startsWith('04')) {
|
|
131
|
+
throw new Error('Invalid uncompressed public key format');
|
|
132
|
+
}
|
|
133
|
+
const x = pubKey.slice(2, 66);
|
|
134
|
+
const y = pubKey.slice(66);
|
|
135
|
+
const yLastByte = parseInt(y.slice(-2), 16);
|
|
136
|
+
const prefix = yLastByte % 2 === 0 ? '02' : '03';
|
|
137
|
+
return prefix + x;
|
|
138
|
+
}
|
|
139
|
+
async getPublicKey() {
|
|
140
|
+
return this.publicKeyBase64;
|
|
141
|
+
}
|
|
142
|
+
async signDirect(payload, accountNumber) {
|
|
143
|
+
if (this.payloadBuilder) {
|
|
144
|
+
const signDoc = this.payloadBuilder(payload, accountNumber);
|
|
145
|
+
const strategy = this.signingStrategy;
|
|
146
|
+
return strategy.sign(signDoc.bodyBytes, this.chainId, this.address, accountNumber);
|
|
147
|
+
}
|
|
148
|
+
const signBytesBase64 = payload.signDirect.signBytes;
|
|
149
|
+
const signBytesBuffer = Buffer.from(signBytesBase64, 'base64');
|
|
150
|
+
return this.signingStrategy.sign(signBytesBuffer, this.chainId, this.address, accountNumber);
|
|
151
|
+
}
|
|
152
|
+
supportsSignDirect() {
|
|
153
|
+
return true;
|
|
154
|
+
}
|
|
155
|
+
supportsSignAmino() {
|
|
156
|
+
return false;
|
|
157
|
+
}
|
|
158
|
+
supportsEvmTransaction() {
|
|
159
|
+
return false;
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
//# sourceMappingURL=GenericCosmosAdapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GenericCosmosAdapter.js","sourceRoot":"","sources":["../../../../src/signing/adapters/GenericCosmosAdapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { BaseWalletAdapter, type WalletAdapter } from './WalletAdapter.js';
|
|
2
|
+
import type { EvmTransaction } from '../types.js';
|
|
3
|
+
interface EthersSigner {
|
|
4
|
+
getAddress(): Promise<string>;
|
|
5
|
+
sendTransaction(tx: {
|
|
6
|
+
to: string;
|
|
7
|
+
data: string;
|
|
8
|
+
value?: string | bigint;
|
|
9
|
+
gasLimit?: number | bigint;
|
|
10
|
+
}): Promise<{
|
|
11
|
+
hash: string;
|
|
12
|
+
wait(): Promise<any>;
|
|
13
|
+
}>;
|
|
14
|
+
}
|
|
15
|
+
interface EIP1193Provider {
|
|
16
|
+
request(args: {
|
|
17
|
+
method: string;
|
|
18
|
+
params?: any[];
|
|
19
|
+
}): Promise<any>;
|
|
20
|
+
}
|
|
21
|
+
export declare class GenericEvmAdapter extends BaseWalletAdapter implements WalletAdapter {
|
|
22
|
+
readonly chainType: "evm";
|
|
23
|
+
readonly address: string;
|
|
24
|
+
private readonly signer?;
|
|
25
|
+
private readonly provider?;
|
|
26
|
+
private constructor();
|
|
27
|
+
static fromSigner(signer: EthersSigner): Promise<GenericEvmAdapter>;
|
|
28
|
+
static fromProvider(provider: EIP1193Provider): Promise<GenericEvmAdapter>;
|
|
29
|
+
static fromBrowserWallet(): Promise<GenericEvmAdapter>;
|
|
30
|
+
getPublicKey(): Promise<string>;
|
|
31
|
+
sendEvmTransaction(tx: EvmTransaction): Promise<string>;
|
|
32
|
+
supportsSignDirect(): boolean;
|
|
33
|
+
supportsSignAmino(): boolean;
|
|
34
|
+
supportsEvmTransaction(): boolean;
|
|
35
|
+
}
|
|
36
|
+
export {};
|
|
37
|
+
//# sourceMappingURL=GenericEvmAdapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GenericEvmAdapter.d.ts","sourceRoot":"","sources":["../../../../src/signing/adapters/GenericEvmAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAC3E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAMlD,UAAU,YAAY;IACpB,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9B,eAAe,CAAC,EAAE,EAAE;QAClB,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;QACxB,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;KAC5B,GAAG,OAAO,CAAC;QACV,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;KACtB,CAAC,CAAC;CACJ;AAKD,UAAU,eAAe;IACvB,OAAO,CAAC,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;CACjE;AAwBD,qBAAa,iBAAkB,SAAQ,iBAAkB,YAAW,aAAa;IAC/E,QAAQ,CAAC,SAAS,EAAG,KAAK,CAAU;IACpC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAe;IACvC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAkB;IAE5C,OAAO;WAaM,UAAU,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,iBAAiB,CAAC;WAW5D,YAAY,CAAC,QAAQ,EAAE,eAAe,GAAG,OAAO,CAAC,iBAAiB,CAAC;WAcnE,iBAAiB,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAWtD,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;IAY/B,kBAAkB,CAAC,EAAE,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;IAgC7D,kBAAkB,IAAI,OAAO;IAI7B,iBAAiB,IAAI,OAAO;IAI5B,sBAAsB,IAAI,OAAO;CAGlC"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { BaseWalletAdapter } from './WalletAdapter.js';
|
|
2
|
+
export class GenericEvmAdapter extends BaseWalletAdapter {
|
|
3
|
+
chainType = 'evm';
|
|
4
|
+
address;
|
|
5
|
+
signer;
|
|
6
|
+
provider;
|
|
7
|
+
constructor(address, signer, provider) {
|
|
8
|
+
super();
|
|
9
|
+
this.address = address;
|
|
10
|
+
this.signer = signer;
|
|
11
|
+
this.provider = provider;
|
|
12
|
+
}
|
|
13
|
+
static async fromSigner(signer) {
|
|
14
|
+
const address = await signer.getAddress();
|
|
15
|
+
return new GenericEvmAdapter(address, signer);
|
|
16
|
+
}
|
|
17
|
+
static async fromProvider(provider) {
|
|
18
|
+
const accounts = await provider.request({ method: 'eth_requestAccounts' });
|
|
19
|
+
if (!accounts || accounts.length === 0) {
|
|
20
|
+
throw new Error('No accounts found. Please connect your wallet.');
|
|
21
|
+
}
|
|
22
|
+
return new GenericEvmAdapter(accounts[0], undefined, provider);
|
|
23
|
+
}
|
|
24
|
+
static async fromBrowserWallet() {
|
|
25
|
+
if (typeof window === 'undefined' || !window.ethereum) {
|
|
26
|
+
throw new Error('No Ethereum provider found. Please install MetaMask or another wallet.');
|
|
27
|
+
}
|
|
28
|
+
return GenericEvmAdapter.fromProvider(window.ethereum);
|
|
29
|
+
}
|
|
30
|
+
async getPublicKey() {
|
|
31
|
+
return '';
|
|
32
|
+
}
|
|
33
|
+
async sendEvmTransaction(tx) {
|
|
34
|
+
if (this.signer) {
|
|
35
|
+
const txResponse = await this.signer.sendTransaction({
|
|
36
|
+
to: tx.to,
|
|
37
|
+
data: tx.data,
|
|
38
|
+
value: tx.value || '0',
|
|
39
|
+
gasLimit: tx.gasLimit ? BigInt(tx.gasLimit) : undefined
|
|
40
|
+
});
|
|
41
|
+
return txResponse.hash;
|
|
42
|
+
}
|
|
43
|
+
if (this.provider) {
|
|
44
|
+
const txHash = await this.provider.request({
|
|
45
|
+
method: 'eth_sendTransaction',
|
|
46
|
+
params: [
|
|
47
|
+
{
|
|
48
|
+
from: this.address,
|
|
49
|
+
to: tx.to,
|
|
50
|
+
data: tx.data,
|
|
51
|
+
value: tx.value ? `0x${BigInt(tx.value).toString(16)}` : '0x0',
|
|
52
|
+
gas: tx.gasLimit ? `0x${tx.gasLimit.toString(16)}` : undefined
|
|
53
|
+
}
|
|
54
|
+
]
|
|
55
|
+
});
|
|
56
|
+
return txHash;
|
|
57
|
+
}
|
|
58
|
+
throw new Error('No signer or provider available');
|
|
59
|
+
}
|
|
60
|
+
supportsSignDirect() {
|
|
61
|
+
return false;
|
|
62
|
+
}
|
|
63
|
+
supportsSignAmino() {
|
|
64
|
+
return false;
|
|
65
|
+
}
|
|
66
|
+
supportsEvmTransaction() {
|
|
67
|
+
return true;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=GenericEvmAdapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GenericEvmAdapter.js","sourceRoot":"","sources":["../../../../src/signing/adapters/GenericEvmAdapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { EvmTransaction, SigningResult } from '../types.js';
|
|
2
|
+
import type { TransactionPayload } from '../../transactions/messages/base.js';
|
|
3
|
+
export interface WalletAdapter {
|
|
4
|
+
readonly chainType: 'cosmos' | 'evm';
|
|
5
|
+
readonly address: string;
|
|
6
|
+
getPublicKey(): Promise<string>;
|
|
7
|
+
signDirect?(payload: TransactionPayload, accountNumber: number): Promise<SigningResult>;
|
|
8
|
+
sendEvmTransaction?(tx: EvmTransaction): Promise<string>;
|
|
9
|
+
supportsSignDirect(): boolean;
|
|
10
|
+
supportsSignAmino(): boolean;
|
|
11
|
+
supportsEvmTransaction(): boolean;
|
|
12
|
+
}
|
|
13
|
+
export declare abstract class BaseWalletAdapter implements WalletAdapter {
|
|
14
|
+
abstract readonly chainType: 'cosmos' | 'evm';
|
|
15
|
+
abstract readonly address: string;
|
|
16
|
+
abstract getPublicKey(): Promise<string>;
|
|
17
|
+
signDirect?(payload: TransactionPayload, accountNumber: number): Promise<SigningResult>;
|
|
18
|
+
sendEvmTransaction?(tx: EvmTransaction): Promise<string>;
|
|
19
|
+
supportsSignDirect(): boolean;
|
|
20
|
+
supportsSignAmino(): boolean;
|
|
21
|
+
supportsEvmTransaction(): boolean;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=WalletAdapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WalletAdapter.d.ts","sourceRoot":"","sources":["../../../../src/signing/adapters/WalletAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAU1E,MAAM,WAAW,aAAa;IAE5B,QAAQ,CAAC,SAAS,EAAE,QAAQ,GAAG,KAAK,CAAC;IAGrC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAOzB,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAUhC,UAAU,CAAC,CAAC,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IASxF,kBAAkB,CAAC,CAAC,EAAE,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAGzD,kBAAkB,IAAI,OAAO,CAAC;IAG9B,iBAAiB,IAAI,OAAO,CAAC;IAG7B,sBAAsB,IAAI,OAAO,CAAC;CACnC;AAOD,8BAAsB,iBAAkB,YAAW,aAAa;IAC9D,QAAQ,CAAC,QAAQ,CAAC,SAAS,EAAE,QAAQ,GAAG,KAAK,CAAC;IAC9C,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAElC,QAAQ,CAAC,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;IAExC,UAAU,CAAC,CAAC,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IACvF,kBAAkB,CAAC,CAAC,EAAE,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;IAExD,kBAAkB,IAAI,OAAO;IAI7B,iBAAiB,IAAI,OAAO;IAI5B,sBAAsB,IAAI,OAAO;CAGlC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export class BaseWalletAdapter {
|
|
2
|
+
supportsSignDirect() {
|
|
3
|
+
return typeof this.signDirect === 'function';
|
|
4
|
+
}
|
|
5
|
+
supportsSignAmino() {
|
|
6
|
+
return false;
|
|
7
|
+
}
|
|
8
|
+
supportsEvmTransaction() {
|
|
9
|
+
return typeof this.sendEvmTransaction === 'function';
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=WalletAdapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WalletAdapter.js","sourceRoot":"","sources":["../../../../src/signing/adapters/WalletAdapter.ts"],"names":[],"mappings":"AA2DA,MAAM,OAAgB,iBAAiB;IASrC,kBAAkB;QAChB,OAAO,OAAO,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC;IAC/C,CAAC;IAED,iBAAiB;QACf,OAAO,KAAK,CAAC;IACf,CAAC;IAED,sBAAsB;QACpB,OAAO,OAAO,IAAI,CAAC,kBAAkB,KAAK,UAAU,CAAC;IACvD,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/signing/adapters/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,KAAK,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AAClG,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/signing/adapters/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAiB,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAmC,MAAM,2BAA2B,CAAC;AAClG,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { BitBadgesSigningClient } from './BitBadgesSigningClient.js';
|
|
2
|
+
export type { AccountInfo, BroadcastResult, EvmTransaction, SignAndBroadcastOptions, SigningClientOptions, SigningFee, SigningResult, SimulateResult, TransactionMessage, WalletAdapterInterface } from './types.js';
|
|
3
|
+
export { WalletAdapter, BaseWalletAdapter, GenericCosmosAdapter, GenericEvmAdapter, type GenericCosmosAdapterConfig } from './adapters/index.js';
|
|
4
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/signing/index.ts"],"names":[],"mappings":"AAqCA,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAIrE,YAAY,EACV,WAAW,EACX,eAAe,EACf,cAAc,EACd,uBAAuB,EACvB,oBAAoB,EACpB,UAAU,EACV,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,sBAAsB,EACvB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,EACjB,KAAK,0BAA0B,EAChC,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/signing/index.ts"],"names":[],"mappings":"AAqCA,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAkBrE,OAAO,EAEL,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,EAElB,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import type { Message } from '@bufbuild/protobuf';
|
|
2
|
+
export interface AccountInfo {
|
|
3
|
+
accountNumber: number;
|
|
4
|
+
sequence: number;
|
|
5
|
+
publicKey: string;
|
|
6
|
+
address: string;
|
|
7
|
+
}
|
|
8
|
+
export interface SigningResult {
|
|
9
|
+
signature: string;
|
|
10
|
+
publicKey: string;
|
|
11
|
+
}
|
|
12
|
+
export interface EvmTransaction {
|
|
13
|
+
to: string;
|
|
14
|
+
data: string;
|
|
15
|
+
value: string;
|
|
16
|
+
gasLimit?: number;
|
|
17
|
+
}
|
|
18
|
+
export interface SigningFee {
|
|
19
|
+
amount: string;
|
|
20
|
+
denom: string;
|
|
21
|
+
gas: string;
|
|
22
|
+
}
|
|
23
|
+
export interface SigningClientOptions {
|
|
24
|
+
adapter: WalletAdapterInterface;
|
|
25
|
+
apiUrl?: string;
|
|
26
|
+
nodeUrl?: string;
|
|
27
|
+
rpcUrl?: string;
|
|
28
|
+
testnet?: boolean;
|
|
29
|
+
chainIdOverride?: string;
|
|
30
|
+
sequenceRetryEnabled?: boolean;
|
|
31
|
+
maxSequenceRetries?: number;
|
|
32
|
+
gasMultiplier?: number;
|
|
33
|
+
defaultGasLimit?: number;
|
|
34
|
+
evmPrecompileGasLimit?: number;
|
|
35
|
+
apiKey?: string;
|
|
36
|
+
}
|
|
37
|
+
export interface SignAndBroadcastOptions {
|
|
38
|
+
memo?: string;
|
|
39
|
+
fee?: SigningFee;
|
|
40
|
+
simulate?: boolean;
|
|
41
|
+
gasMultiplier?: number;
|
|
42
|
+
}
|
|
43
|
+
export interface SimulateResult {
|
|
44
|
+
gasUsed: number;
|
|
45
|
+
gasLimit: number;
|
|
46
|
+
fee: SigningFee;
|
|
47
|
+
}
|
|
48
|
+
export interface BroadcastResult {
|
|
49
|
+
txHash: string;
|
|
50
|
+
rawResponse: any;
|
|
51
|
+
success: boolean;
|
|
52
|
+
error?: string;
|
|
53
|
+
code: number;
|
|
54
|
+
}
|
|
55
|
+
export interface WalletAdapterInterface {
|
|
56
|
+
readonly chainType: 'cosmos' | 'evm';
|
|
57
|
+
readonly address: string;
|
|
58
|
+
getPublicKey(): Promise<string>;
|
|
59
|
+
signDirect?(payload: any, accountNumber: number): Promise<SigningResult>;
|
|
60
|
+
sendEvmTransaction?(tx: EvmTransaction): Promise<string>;
|
|
61
|
+
supportsSignDirect(): boolean;
|
|
62
|
+
supportsSignAmino(): boolean;
|
|
63
|
+
supportsEvmTransaction(): boolean;
|
|
64
|
+
}
|
|
65
|
+
export type TransactionMessage = Message | {
|
|
66
|
+
toProto(): Message;
|
|
67
|
+
};
|
|
68
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/signing/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAUlD,MAAM,WAAW,WAAW;IAE1B,aAAa,EAAE,MAAM,CAAC;IAEtB,QAAQ,EAAE,MAAM,CAAC;IAEjB,SAAS,EAAE,MAAM,CAAC;IAElB,OAAO,EAAE,MAAM,CAAC;CACjB;AAOD,MAAM,WAAW,aAAa;IAE5B,SAAS,EAAE,MAAM,CAAC;IAElB,SAAS,EAAE,MAAM,CAAC;CACnB;AAOD,MAAM,WAAW,cAAc;IAE7B,EAAE,EAAE,MAAM,CAAC;IAEX,IAAI,EAAE,MAAM,CAAC;IAEb,KAAK,EAAE,MAAM,CAAC;IAEd,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAQD,MAAM,WAAW,UAAU;IAEzB,MAAM,EAAE,MAAM,CAAC;IAEf,KAAK,EAAE,MAAM,CAAC;IAEd,GAAG,EAAE,MAAM,CAAC;CACb;AAOD,MAAM,WAAW,oBAAoB;IAEnC,OAAO,EAAE,sBAAsB,CAAC;IAEhC,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAE/B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAE/B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAOD,MAAM,WAAW,uBAAuB;IAEtC,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,GAAG,CAAC,EAAE,UAAU,CAAC;IAEjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAOD,MAAM,WAAW,cAAc;IAE7B,OAAO,EAAE,MAAM,CAAC;IAEhB,QAAQ,EAAE,MAAM,CAAC;IAEjB,GAAG,EAAE,UAAU,CAAC;CACjB;AAOD,MAAM,WAAW,eAAe;IAE9B,MAAM,EAAE,MAAM,CAAC;IAEf,WAAW,EAAE,GAAG,CAAC;IAEjB,OAAO,EAAE,OAAO,CAAC;IAEjB,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,IAAI,EAAE,MAAM,CAAC;CACd;AAQD,MAAM,WAAW,sBAAsB;IAErC,QAAQ,CAAC,SAAS,EAAE,QAAQ,GAAG,KAAK,CAAC;IAErC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAGzB,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAGhC,UAAU,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAGzE,kBAAkB,CAAC,CAAC,EAAE,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAGzD,kBAAkB,IAAI,OAAO,CAAC;IAE9B,iBAAiB,IAAI,OAAO,CAAC;IAE7B,sBAAsB,IAAI,OAAO,CAAC;CACnC;AAQD,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG;IAAE,OAAO,IAAI,OAAO,CAAA;CAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/signing/types.ts"],"names":[],"mappings":""}
|