bitbadgesjs-sdk 0.3.155 → 0.3.157
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/dist/cjs/transactions/messages/base.d.ts +15 -10
- package/dist/cjs/transactions/messages/base.d.ts.map +1 -1
- package/dist/cjs/transactions/messages/base.js +86 -19
- package/dist/cjs/transactions/messages/base.js.map +1 -1
- package/dist/esm/transactions/messages/base.d.ts +15 -10
- package/dist/esm/transactions/messages/base.d.ts.map +1 -1
- package/dist/esm/transactions/messages/base.js +86 -19
- package/dist/esm/transactions/messages/base.js.map +1 -1
- package/package.json +2 -1
|
@@ -1,11 +1,17 @@
|
|
|
1
1
|
import type { Message } from '@bufbuild/protobuf';
|
|
2
2
|
import type { TxBody, AuthInfo } from '../../proto/cosmos/tx/v1beta1/tx_pb.js';
|
|
3
|
-
import type {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
import type { Fee } from './common.js';
|
|
4
|
+
import { NativeAddress } from '../../api-indexer/index.js';
|
|
5
|
+
export interface ExternalTxContext {
|
|
6
|
+
testnet?: boolean;
|
|
7
|
+
sender: {
|
|
8
|
+
address: NativeAddress;
|
|
9
|
+
sequence: number;
|
|
10
|
+
accountNumber: number;
|
|
11
|
+
publicKey?: string;
|
|
12
|
+
};
|
|
7
13
|
fee: Fee;
|
|
8
|
-
memo
|
|
14
|
+
memo?: string;
|
|
9
15
|
}
|
|
10
16
|
export interface EIP712TypedData {
|
|
11
17
|
types: object;
|
|
@@ -24,10 +30,9 @@ export interface TransactionPayload {
|
|
|
24
30
|
authInfo: AuthInfo;
|
|
25
31
|
signBytes: string;
|
|
26
32
|
};
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
humanReadableMessage: string;
|
|
33
|
+
txnString: string;
|
|
34
|
+
txnJson: Record<string, any>;
|
|
30
35
|
}
|
|
31
|
-
export declare const createTransactionPayload: (context:
|
|
32
|
-
export declare function createTxBroadcastBody(
|
|
36
|
+
export declare const createTransactionPayload: (context: ExternalTxContext, messages: Message | Message[]) => TransactionPayload;
|
|
37
|
+
export declare function createTxBroadcastBody(txContext: ExternalTxContext, payload: TransactionPayload, signature: string, solAddress?: string): string;
|
|
33
38
|
//# sourceMappingURL=base.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../src/transactions/messages/base.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAc,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAQ9D,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAS,MAAM,oCAAoC,CAAC;AAClF,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../src/transactions/messages/base.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAc,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAQ9D,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAS,MAAM,oCAAoC,CAAC;AAClF,OAAO,KAAK,EAAS,GAAG,EAAU,MAAM,aAAa,CAAC;AAgBtD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAmBvD,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,MAAM,EAAE;QACN,OAAO,EAAE,aAAa,CAAC;QACvB,QAAQ,EAAE,MAAM,CAAC;QACjB,aAAa,EAAE,MAAM,CAAC;QACtB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IAEF,GAAG,EAAE,GAAG,CAAC;IACT,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAYD,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;CACrB;AA4ED,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE;QACX,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,QAAQ,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,UAAU,EAAE;QACV,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,QAAQ,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC9B;AA4CD,eAAO,MAAM,wBAAwB,YAAa,iBAAiB,YAAY,OAAO,GAAG,OAAO,EAAE,KAAG,kBA4BpG,CAAC;AA0DF,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,iBAAiB,EAAE,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,UAgBtI"}
|
|
@@ -13,6 +13,11 @@ const txRaw_js_1 = require("./txRaw.js");
|
|
|
13
13
|
const web3Extension_js_1 = require("./web3Extension.js");
|
|
14
14
|
const createTypedData_js_1 = require("../../transactions/eip712/payload/createTypedData.js");
|
|
15
15
|
const crypto_js_1 = __importDefault(require("crypto-js"));
|
|
16
|
+
const converter_js_1 = require("../../address-converter/converter.js");
|
|
17
|
+
const constants_js_1 = require("../../common/constants.js");
|
|
18
|
+
const elliptic_1 = __importDefault(require("elliptic"));
|
|
19
|
+
const ethers_1 = require("ethers");
|
|
20
|
+
const secp256k1 = new elliptic_1.default.ec('secp256k1');
|
|
16
21
|
const wrapTypeToArray = (obj) => {
|
|
17
22
|
return Array.isArray(obj) ? obj : [obj];
|
|
18
23
|
};
|
|
@@ -54,6 +59,32 @@ function recursivelySort(obj) {
|
|
|
54
59
|
}
|
|
55
60
|
return obj;
|
|
56
61
|
}
|
|
62
|
+
const wrapExternalTxContext = (context) => {
|
|
63
|
+
const chain = (0, converter_js_1.getChainForAddress)(context.sender.address);
|
|
64
|
+
const cosmosChainId = context.testnet ? constants_js_1.TESTNET_CHAIN_DETAILS.cosmosChainId : constants_js_1.MAINNET_CHAIN_DETAILS.cosmosChainId;
|
|
65
|
+
const chainId = context.testnet ? constants_js_1.TESTNET_CHAIN_DETAILS.chainId : constants_js_1.MAINNET_CHAIN_DETAILS.chainId;
|
|
66
|
+
const txContext = {
|
|
67
|
+
chain: { chain, cosmosChainId, chainId },
|
|
68
|
+
sender: {
|
|
69
|
+
accountAddress: (0, converter_js_1.convertToCosmosAddress)(context.sender.address),
|
|
70
|
+
pubkey: context.sender.publicKey || '',
|
|
71
|
+
sequence: context.sender.sequence,
|
|
72
|
+
accountNumber: context.sender.accountNumber
|
|
73
|
+
},
|
|
74
|
+
fee: context.fee,
|
|
75
|
+
memo: context.memo || ''
|
|
76
|
+
};
|
|
77
|
+
if (txContext.sender.accountAddress === '' || !txContext.sender.accountAddress.startsWith('cosmos')) {
|
|
78
|
+
throw new Error('Account address must be a validly formatted Cosmos address');
|
|
79
|
+
}
|
|
80
|
+
if (txContext.sender.accountNumber <= 0) {
|
|
81
|
+
throw new Error('Account number must be greater than 0. This means the user is unregistered on the blockchain. Users can be registered by sending them any amount of $BADGE. This is a pre-requisite because the user needs to be able to pay for the transaction fees.');
|
|
82
|
+
}
|
|
83
|
+
if (txContext.sender.sequence < 0) {
|
|
84
|
+
throw new Error('Sequence must be greater than or equal to 0');
|
|
85
|
+
}
|
|
86
|
+
return txContext;
|
|
87
|
+
};
|
|
57
88
|
const createTransactionPayload = (context, messages) => {
|
|
58
89
|
messages = wrapTypeToArray(messages);
|
|
59
90
|
let generatedMsgs = [];
|
|
@@ -61,26 +92,21 @@ const createTransactionPayload = (context, messages) => {
|
|
|
61
92
|
generatedMsgs.push(createProtoMsg(cosmosMsg));
|
|
62
93
|
}
|
|
63
94
|
generatedMsgs = normalizeMessagesIfNecessary(generatedMsgs);
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
}
|
|
67
|
-
if (context.sender.accountNumber <= 0) {
|
|
68
|
-
throw new Error('Account number must be greater than 0. This means the user is unregistered on the blockchain. Users can be registered by sending them any amount of $BADGE. This is a pre-requisite because the user needs to be able to pay for the transaction fees.');
|
|
69
|
-
}
|
|
70
|
-
if (context.sender.sequence < 0) {
|
|
71
|
-
throw new Error('Sequence must be greater than or equal to 0');
|
|
72
|
-
}
|
|
73
|
-
const eipTxn = createEIP712TypedData(context, generatedMsgs);
|
|
95
|
+
const txContext = wrapExternalTxContext(context);
|
|
96
|
+
const eipTxn = createEIP712TypedData(txContext, generatedMsgs);
|
|
74
97
|
const sortedEipMessage = recursivelySort(eipTxn.message);
|
|
75
98
|
const message = JSON.stringify(sortedEipMessage);
|
|
76
99
|
const sha256Message = crypto_js_1.default.SHA256(message).toString();
|
|
77
100
|
const humanReadableMessage = 'This is a BitBadges transaction with the content hash: ' + sha256Message;
|
|
101
|
+
const isCosmosSignature = context.sender.address.startsWith('cosmos');
|
|
102
|
+
if (isCosmosSignature && !context.sender.publicKey) {
|
|
103
|
+
throw new Error('Public key must be provided for Cosmos signatures');
|
|
104
|
+
}
|
|
78
105
|
return {
|
|
79
|
-
signDirect: createCosmosPayload(
|
|
80
|
-
legacyAmino: createCosmosPayload(
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
humanReadableMessage: humanReadableMessage
|
|
106
|
+
signDirect: createCosmosPayload(txContext, generatedMsgs).signDirect,
|
|
107
|
+
legacyAmino: createCosmosPayload(txContext, generatedMsgs).legacyAmino,
|
|
108
|
+
txnString: humanReadableMessage,
|
|
109
|
+
txnJson: sortedEipMessage
|
|
84
110
|
};
|
|
85
111
|
};
|
|
86
112
|
exports.createTransactionPayload = createTransactionPayload;
|
|
@@ -112,7 +138,8 @@ function createTxRawBitcoin(context, payload, signature) {
|
|
|
112
138
|
const rawTx = (0, txRaw_js_1.createTxRawWithExtension)(payload.legacyAmino.body, payload.legacyAmino.authInfo, txnExtension);
|
|
113
139
|
return rawTx;
|
|
114
140
|
}
|
|
115
|
-
function createTxBroadcastBody(
|
|
141
|
+
function createTxBroadcastBody(txContext, payload, signature, solAddress) {
|
|
142
|
+
const context = wrapExternalTxContext(txContext);
|
|
116
143
|
const chain = context.chain.chain;
|
|
117
144
|
if (chain === types_js_1.SupportedChain.BTC) {
|
|
118
145
|
return createTxBroadcastBodyBitcoin(context, payload, signature);
|
|
@@ -132,11 +159,26 @@ function createTxBroadcastBody(context, payload, signature, solAddress) {
|
|
|
132
159
|
}
|
|
133
160
|
exports.createTxBroadcastBody = createTxBroadcastBody;
|
|
134
161
|
function createTxBroadcastBodyBitcoin(context, payload, signature) {
|
|
135
|
-
|
|
162
|
+
const publicKey = signature.slice(-66);
|
|
163
|
+
const base64PublicKey = Buffer.from(publicKey, 'hex').toString('base64');
|
|
164
|
+
return (0, broadcast_js_1.generatePostBodyBroadcast)(createTxRawBitcoin({
|
|
165
|
+
...context,
|
|
166
|
+
sender: {
|
|
167
|
+
...context.sender,
|
|
168
|
+
pubkey: base64PublicKey
|
|
169
|
+
}
|
|
170
|
+
}, payload, signature));
|
|
136
171
|
}
|
|
137
172
|
function createTxRawSolana(context, payload, signature, solanaAddress) {
|
|
138
173
|
const { chain, sender } = context;
|
|
139
|
-
const
|
|
174
|
+
const bs58 = require('bs58');
|
|
175
|
+
const solanaPublicKeyBase58 = solanaAddress;
|
|
176
|
+
const solanaPublicKeyBuffer = bs58.decode(solanaPublicKeyBase58);
|
|
177
|
+
const publicKeyToSet = Buffer.from(solanaPublicKeyBuffer).toString('base64');
|
|
178
|
+
const txnExtension = (0, web3Extension_js_1.signatureToWeb3ExtensionSolana)(chain, {
|
|
179
|
+
...context.sender,
|
|
180
|
+
pubkey: publicKeyToSet
|
|
181
|
+
}, signature, solanaAddress);
|
|
140
182
|
const rawTx = (0, txRaw_js_1.createTxRawWithExtension)(payload.legacyAmino.body, payload.legacyAmino.authInfo, txnExtension);
|
|
141
183
|
return rawTx;
|
|
142
184
|
}
|
|
@@ -149,8 +191,33 @@ function createTxRawEthereum(context, payload, signature) {
|
|
|
149
191
|
const rawTx = (0, txRaw_js_1.createTxRawWithExtension)(payload.legacyAmino.body, payload.legacyAmino.authInfo, txnExtension);
|
|
150
192
|
return rawTx;
|
|
151
193
|
}
|
|
194
|
+
const compressSecp256Pubkey = (pubkey) => {
|
|
195
|
+
switch (pubkey.length) {
|
|
196
|
+
case 33:
|
|
197
|
+
return pubkey;
|
|
198
|
+
case 65:
|
|
199
|
+
return Uint8Array.from(secp256k1.keyFromPublic(pubkey).getPublic(true, 'array'));
|
|
200
|
+
default:
|
|
201
|
+
throw new Error('Invalid pubkey length');
|
|
202
|
+
}
|
|
203
|
+
};
|
|
152
204
|
function createTxBroadcastBodyEthereum(context, payload, signature) {
|
|
153
|
-
|
|
205
|
+
if (!payload.txnString) {
|
|
206
|
+
throw new Error('Transaction string must be provided for Ethereum signatures');
|
|
207
|
+
}
|
|
208
|
+
const msgHash = (0, ethers_1.hashMessage)(payload.txnString);
|
|
209
|
+
const msgHashBytes = (0, ethers_1.getBytes)(msgHash);
|
|
210
|
+
const pubKey = ethers_1.SigningKey.recoverPublicKey(msgHashBytes, signature);
|
|
211
|
+
const pubKeyHex = pubKey.substring(2);
|
|
212
|
+
const compressedPublicKey = compressSecp256Pubkey(new Uint8Array(Buffer.from(pubKeyHex, 'hex')));
|
|
213
|
+
const base64PubKey = Buffer.from(compressedPublicKey).toString('base64');
|
|
214
|
+
return (0, broadcast_js_1.generatePostBodyBroadcast)(createTxRawEthereum({
|
|
215
|
+
...context,
|
|
216
|
+
sender: {
|
|
217
|
+
...context.sender,
|
|
218
|
+
pubkey: base64PubKey
|
|
219
|
+
}
|
|
220
|
+
}, payload, signature));
|
|
154
221
|
}
|
|
155
222
|
function createTxRawCosmos(payload, signatures) {
|
|
156
223
|
const simulatedTx = (0, txRaw_js_1.createTxRaw)(payload.signDirect.body.toBinary(), payload.signDirect.authInfo.toBinary(), [...signatures]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../../../src/transactions/messages/base.ts"],"names":[],"mappings":";;;;;;AACA,sDAMiC;AAGjC,qDAAkH;AAClH,gDAAmD;AACnD,+DAAyE;AACzE,2FAM+D;AAC/D,yCAAmE;AACnE,yDAAuI;AACvI,yFAAmF;AAEnF,0DAAiC;
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../../../src/transactions/messages/base.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,17 @@
|
|
|
1
1
|
import type { Message } from '@bufbuild/protobuf';
|
|
2
2
|
import type { TxBody, AuthInfo } from '../../proto/cosmos/tx/v1beta1/tx_pb.js';
|
|
3
|
-
import type {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
import type { Fee } from './common.js';
|
|
4
|
+
import { NativeAddress } from '../../api-indexer/index.js';
|
|
5
|
+
export interface ExternalTxContext {
|
|
6
|
+
testnet?: boolean;
|
|
7
|
+
sender: {
|
|
8
|
+
address: NativeAddress;
|
|
9
|
+
sequence: number;
|
|
10
|
+
accountNumber: number;
|
|
11
|
+
publicKey?: string;
|
|
12
|
+
};
|
|
7
13
|
fee: Fee;
|
|
8
|
-
memo
|
|
14
|
+
memo?: string;
|
|
9
15
|
}
|
|
10
16
|
export interface EIP712TypedData {
|
|
11
17
|
types: object;
|
|
@@ -24,10 +30,9 @@ export interface TransactionPayload {
|
|
|
24
30
|
authInfo: AuthInfo;
|
|
25
31
|
signBytes: string;
|
|
26
32
|
};
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
humanReadableMessage: string;
|
|
33
|
+
txnString: string;
|
|
34
|
+
txnJson: Record<string, any>;
|
|
30
35
|
}
|
|
31
|
-
export declare const createTransactionPayload: (context:
|
|
32
|
-
export declare function createTxBroadcastBody(
|
|
36
|
+
export declare const createTransactionPayload: (context: ExternalTxContext, messages: Message | Message[]) => TransactionPayload;
|
|
37
|
+
export declare function createTxBroadcastBody(txContext: ExternalTxContext, payload: TransactionPayload, signature: string, solAddress?: string): string;
|
|
33
38
|
//# sourceMappingURL=base.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../src/transactions/messages/base.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAc,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAQ9D,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAS,MAAM,oCAAoC,CAAC;AAClF,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../src/transactions/messages/base.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAc,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAQ9D,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAS,MAAM,oCAAoC,CAAC;AAClF,OAAO,KAAK,EAAS,GAAG,EAAU,MAAM,aAAa,CAAC;AAgBtD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAmBvD,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,MAAM,EAAE;QACN,OAAO,EAAE,aAAa,CAAC;QACvB,QAAQ,EAAE,MAAM,CAAC;QACjB,aAAa,EAAE,MAAM,CAAC;QACtB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IAEF,GAAG,EAAE,GAAG,CAAC;IACT,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAYD,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;CACrB;AA4ED,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE;QACX,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,QAAQ,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,UAAU,EAAE;QACV,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,QAAQ,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC9B;AA4CD,eAAO,MAAM,wBAAwB,YAAa,iBAAiB,YAAY,OAAO,GAAG,OAAO,EAAE,KAAG,kBA4BpG,CAAC;AA0DF,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,iBAAiB,EAAE,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,UAgBtI"}
|
|
@@ -7,6 +7,11 @@ import { createTxRaw, createTxRawWithExtension } from './txRaw.js';
|
|
|
7
7
|
import { signatureToWeb3ExtensionBitcoin, signatureToWeb3ExtensionSolana, signatureToWeb3ExtensionEthereum } from './web3Extension.js';
|
|
8
8
|
import { createTypedData } from '../../transactions/eip712/payload/createTypedData.js';
|
|
9
9
|
import CryptoJS from 'crypto-js';
|
|
10
|
+
import { convertToCosmosAddress, getChainForAddress } from '../../address-converter/converter.js';
|
|
11
|
+
import { MAINNET_CHAIN_DETAILS, TESTNET_CHAIN_DETAILS } from '../../common/constants.js';
|
|
12
|
+
import elliptic from 'elliptic';
|
|
13
|
+
import { SigningKey, getBytes, hashMessage } from 'ethers';
|
|
14
|
+
const secp256k1 = new elliptic.ec('secp256k1');
|
|
10
15
|
const wrapTypeToArray = (obj) => {
|
|
11
16
|
return Array.isArray(obj) ? obj : [obj];
|
|
12
17
|
};
|
|
@@ -48,6 +53,32 @@ function recursivelySort(obj) {
|
|
|
48
53
|
}
|
|
49
54
|
return obj;
|
|
50
55
|
}
|
|
56
|
+
const wrapExternalTxContext = (context) => {
|
|
57
|
+
const chain = getChainForAddress(context.sender.address);
|
|
58
|
+
const cosmosChainId = context.testnet ? TESTNET_CHAIN_DETAILS.cosmosChainId : MAINNET_CHAIN_DETAILS.cosmosChainId;
|
|
59
|
+
const chainId = context.testnet ? TESTNET_CHAIN_DETAILS.chainId : MAINNET_CHAIN_DETAILS.chainId;
|
|
60
|
+
const txContext = {
|
|
61
|
+
chain: { chain, cosmosChainId, chainId },
|
|
62
|
+
sender: {
|
|
63
|
+
accountAddress: convertToCosmosAddress(context.sender.address),
|
|
64
|
+
pubkey: context.sender.publicKey || '',
|
|
65
|
+
sequence: context.sender.sequence,
|
|
66
|
+
accountNumber: context.sender.accountNumber
|
|
67
|
+
},
|
|
68
|
+
fee: context.fee,
|
|
69
|
+
memo: context.memo || ''
|
|
70
|
+
};
|
|
71
|
+
if (txContext.sender.accountAddress === '' || !txContext.sender.accountAddress.startsWith('cosmos')) {
|
|
72
|
+
throw new Error('Account address must be a validly formatted Cosmos address');
|
|
73
|
+
}
|
|
74
|
+
if (txContext.sender.accountNumber <= 0) {
|
|
75
|
+
throw new Error('Account number must be greater than 0. This means the user is unregistered on the blockchain. Users can be registered by sending them any amount of $BADGE. This is a pre-requisite because the user needs to be able to pay for the transaction fees.');
|
|
76
|
+
}
|
|
77
|
+
if (txContext.sender.sequence < 0) {
|
|
78
|
+
throw new Error('Sequence must be greater than or equal to 0');
|
|
79
|
+
}
|
|
80
|
+
return txContext;
|
|
81
|
+
};
|
|
51
82
|
export const createTransactionPayload = (context, messages) => {
|
|
52
83
|
messages = wrapTypeToArray(messages);
|
|
53
84
|
let generatedMsgs = [];
|
|
@@ -55,26 +86,21 @@ export const createTransactionPayload = (context, messages) => {
|
|
|
55
86
|
generatedMsgs.push(createProtoMsg(cosmosMsg));
|
|
56
87
|
}
|
|
57
88
|
generatedMsgs = normalizeMessagesIfNecessary(generatedMsgs);
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
}
|
|
61
|
-
if (context.sender.accountNumber <= 0) {
|
|
62
|
-
throw new Error('Account number must be greater than 0. This means the user is unregistered on the blockchain. Users can be registered by sending them any amount of $BADGE. This is a pre-requisite because the user needs to be able to pay for the transaction fees.');
|
|
63
|
-
}
|
|
64
|
-
if (context.sender.sequence < 0) {
|
|
65
|
-
throw new Error('Sequence must be greater than or equal to 0');
|
|
66
|
-
}
|
|
67
|
-
const eipTxn = createEIP712TypedData(context, generatedMsgs);
|
|
89
|
+
const txContext = wrapExternalTxContext(context);
|
|
90
|
+
const eipTxn = createEIP712TypedData(txContext, generatedMsgs);
|
|
68
91
|
const sortedEipMessage = recursivelySort(eipTxn.message);
|
|
69
92
|
const message = JSON.stringify(sortedEipMessage);
|
|
70
93
|
const sha256Message = CryptoJS.SHA256(message).toString();
|
|
71
94
|
const humanReadableMessage = 'This is a BitBadges transaction with the content hash: ' + sha256Message;
|
|
95
|
+
const isCosmosSignature = context.sender.address.startsWith('cosmos');
|
|
96
|
+
if (isCosmosSignature && !context.sender.publicKey) {
|
|
97
|
+
throw new Error('Public key must be provided for Cosmos signatures');
|
|
98
|
+
}
|
|
72
99
|
return {
|
|
73
|
-
signDirect: createCosmosPayload(
|
|
74
|
-
legacyAmino: createCosmosPayload(
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
humanReadableMessage: humanReadableMessage
|
|
100
|
+
signDirect: createCosmosPayload(txContext, generatedMsgs).signDirect,
|
|
101
|
+
legacyAmino: createCosmosPayload(txContext, generatedMsgs).legacyAmino,
|
|
102
|
+
txnString: humanReadableMessage,
|
|
103
|
+
txnJson: sortedEipMessage
|
|
78
104
|
};
|
|
79
105
|
};
|
|
80
106
|
const normalizeMessagesIfNecessary = (messages) => {
|
|
@@ -105,7 +131,8 @@ function createTxRawBitcoin(context, payload, signature) {
|
|
|
105
131
|
const rawTx = createTxRawWithExtension(payload.legacyAmino.body, payload.legacyAmino.authInfo, txnExtension);
|
|
106
132
|
return rawTx;
|
|
107
133
|
}
|
|
108
|
-
export function createTxBroadcastBody(
|
|
134
|
+
export function createTxBroadcastBody(txContext, payload, signature, solAddress) {
|
|
135
|
+
const context = wrapExternalTxContext(txContext);
|
|
109
136
|
const chain = context.chain.chain;
|
|
110
137
|
if (chain === SupportedChain.BTC) {
|
|
111
138
|
return createTxBroadcastBodyBitcoin(context, payload, signature);
|
|
@@ -124,11 +151,26 @@ export function createTxBroadcastBody(context, payload, signature, solAddress) {
|
|
|
124
151
|
}
|
|
125
152
|
}
|
|
126
153
|
function createTxBroadcastBodyBitcoin(context, payload, signature) {
|
|
127
|
-
|
|
154
|
+
const publicKey = signature.slice(-66);
|
|
155
|
+
const base64PublicKey = Buffer.from(publicKey, 'hex').toString('base64');
|
|
156
|
+
return generatePostBodyBroadcast(createTxRawBitcoin({
|
|
157
|
+
...context,
|
|
158
|
+
sender: {
|
|
159
|
+
...context.sender,
|
|
160
|
+
pubkey: base64PublicKey
|
|
161
|
+
}
|
|
162
|
+
}, payload, signature));
|
|
128
163
|
}
|
|
129
164
|
function createTxRawSolana(context, payload, signature, solanaAddress) {
|
|
130
165
|
const { chain, sender } = context;
|
|
131
|
-
const
|
|
166
|
+
const bs58 = require('bs58');
|
|
167
|
+
const solanaPublicKeyBase58 = solanaAddress;
|
|
168
|
+
const solanaPublicKeyBuffer = bs58.decode(solanaPublicKeyBase58);
|
|
169
|
+
const publicKeyToSet = Buffer.from(solanaPublicKeyBuffer).toString('base64');
|
|
170
|
+
const txnExtension = signatureToWeb3ExtensionSolana(chain, {
|
|
171
|
+
...context.sender,
|
|
172
|
+
pubkey: publicKeyToSet
|
|
173
|
+
}, signature, solanaAddress);
|
|
132
174
|
const rawTx = createTxRawWithExtension(payload.legacyAmino.body, payload.legacyAmino.authInfo, txnExtension);
|
|
133
175
|
return rawTx;
|
|
134
176
|
}
|
|
@@ -141,8 +183,33 @@ function createTxRawEthereum(context, payload, signature) {
|
|
|
141
183
|
const rawTx = createTxRawWithExtension(payload.legacyAmino.body, payload.legacyAmino.authInfo, txnExtension);
|
|
142
184
|
return rawTx;
|
|
143
185
|
}
|
|
186
|
+
const compressSecp256Pubkey = (pubkey) => {
|
|
187
|
+
switch (pubkey.length) {
|
|
188
|
+
case 33:
|
|
189
|
+
return pubkey;
|
|
190
|
+
case 65:
|
|
191
|
+
return Uint8Array.from(secp256k1.keyFromPublic(pubkey).getPublic(true, 'array'));
|
|
192
|
+
default:
|
|
193
|
+
throw new Error('Invalid pubkey length');
|
|
194
|
+
}
|
|
195
|
+
};
|
|
144
196
|
function createTxBroadcastBodyEthereum(context, payload, signature) {
|
|
145
|
-
|
|
197
|
+
if (!payload.txnString) {
|
|
198
|
+
throw new Error('Transaction string must be provided for Ethereum signatures');
|
|
199
|
+
}
|
|
200
|
+
const msgHash = hashMessage(payload.txnString);
|
|
201
|
+
const msgHashBytes = getBytes(msgHash);
|
|
202
|
+
const pubKey = SigningKey.recoverPublicKey(msgHashBytes, signature);
|
|
203
|
+
const pubKeyHex = pubKey.substring(2);
|
|
204
|
+
const compressedPublicKey = compressSecp256Pubkey(new Uint8Array(Buffer.from(pubKeyHex, 'hex')));
|
|
205
|
+
const base64PubKey = Buffer.from(compressedPublicKey).toString('base64');
|
|
206
|
+
return generatePostBodyBroadcast(createTxRawEthereum({
|
|
207
|
+
...context,
|
|
208
|
+
sender: {
|
|
209
|
+
...context.sender,
|
|
210
|
+
pubkey: base64PubKey
|
|
211
|
+
}
|
|
212
|
+
}, payload, signature));
|
|
146
213
|
}
|
|
147
214
|
function createTxRawCosmos(payload, signatures) {
|
|
148
215
|
const simulatedTx = createTxRaw(payload.signDirect.body.toBinary(), payload.signDirect.authInfo.toBinary(), [...signatures]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../../../src/transactions/messages/base.ts"],"names":[],"mappings":"AACA,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,4BAA4B,EAC5B,mBAAmB,EACnB,sBAAsB,EACvB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAE,YAAY,EAAE,yBAAyB,EAAE,qCAAqC,EAAE,MAAM,kBAAkB,CAAC;AAClH,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,EACL,uCAAuC,EACvC,0CAA0C,EAC1C,qCAAqC,EACrC,uCAAuC,EACvC,gDAAgD,EACjD,MAAM,uDAAuD,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AACnE,OAAO,EAAE,+BAA+B,EAAE,8BAA8B,EAAE,gCAAgC,EAAE,MAAM,oBAAoB,CAAC;AACvI,OAAO,EAAE,eAAe,EAAE,MAAM,kDAAkD,CAAC;AAEnF,OAAO,QAAQ,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../../../src/transactions/messages/base.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "bitbadgesjs-sdk",
|
|
3
3
|
"description": "SDK for BitBadges development",
|
|
4
|
-
"version": "0.3.
|
|
4
|
+
"version": "0.3.157",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"eslintIgnore": [
|
|
7
7
|
"src/proto/**/*.ts"
|
|
@@ -41,6 +41,7 @@
|
|
|
41
41
|
"@bufbuild/buf": "^1.28.0",
|
|
42
42
|
"@bufbuild/protoc-gen-es": "^1.4.2",
|
|
43
43
|
"@types/crypto-js": "^4.1.2",
|
|
44
|
+
"@types/elliptic": "^6.4.18",
|
|
44
45
|
"@types/jest": "^27.5.2",
|
|
45
46
|
"@types/js-yaml": "^4.0.9",
|
|
46
47
|
"@types/node": "^16.9.2",
|