@btc-vision/transaction 1.0.52 → 1.0.53
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/browser/_version.d.ts +1 -1
- package/browser/index.js +1 -1
- package/browser/transaction/browser/Web3Provider.d.ts +6 -0
- package/build/_version.d.ts +1 -1
- package/build/_version.js +1 -1
- package/build/tests/moto/airdropToken.js +1 -1
- package/build/tests/moto/airdropTokens.js +11 -1
- package/build/tests/moto/allowance.js +1 -2
- package/build/tests/moto/balanceOf.js +1 -2
- package/build/tests/motoswap/routerAddLiquidity.js +2 -3
- package/build/tests/pool/DecodePoolAddress.d.ts +6 -0
- package/build/tests/pool/DecodePoolAddress.js +12 -0
- package/build/tests/pool/decodeReserves.d.ts +5 -0
- package/build/tests/pool/decodeReserves.js +13 -0
- package/build/tests/pool/reserves.d.ts +1 -0
- package/build/tests/pool/reserves.js +10 -0
- package/build/tests/shared/interaction.js +1 -1
- package/build/tests/wbtc/wrapReg.js +2 -5
- package/build/transaction/browser/Web3Provider.d.ts +6 -0
- package/package.json +1 -1
- package/src/_version.ts +1 -1
- package/src/transaction/browser/Web3Provider.ts +11 -0
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import { IInteractionParameters } from '../interfaces/ITransactionParameters.js';
|
|
2
2
|
import { UTXO } from '../../utxo/interfaces/IUTXO.js';
|
|
3
3
|
export type InteractionParametersWithoutSigner = Omit<IInteractionParameters, 'signer'>;
|
|
4
|
+
export interface BroadcastTransactionOptions {
|
|
5
|
+
raw: string;
|
|
6
|
+
psbt: boolean;
|
|
7
|
+
}
|
|
4
8
|
export interface BroadcastedTransaction {
|
|
5
9
|
readonly success: boolean;
|
|
6
10
|
readonly result?: string;
|
|
@@ -10,4 +14,6 @@ export interface BroadcastedTransaction {
|
|
|
10
14
|
}
|
|
11
15
|
export interface Web3Provider {
|
|
12
16
|
signInteraction(interactionParameters: InteractionParametersWithoutSigner): Promise<[BroadcastedTransaction, BroadcastedTransaction, UTXO[]]>;
|
|
17
|
+
signAndBroadcastInteraction(interactionParameters: InteractionParametersWithoutSigner): Promise<[BroadcastedTransaction, BroadcastedTransaction, UTXO[]]>;
|
|
18
|
+
broadcast(transactions: BroadcastTransactionOptions[]): Promise<BroadcastedTransaction[]>;
|
|
13
19
|
}
|
package/build/_version.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const version = "1.0.
|
|
1
|
+
export declare const version = "1.0.53";
|
package/build/_version.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const version = '1.0.
|
|
1
|
+
export const version = '1.0.53';
|
|
@@ -15,7 +15,7 @@ function airdropToken(amount, to) {
|
|
|
15
15
|
return Buffer.from(calldata.getBuffer());
|
|
16
16
|
}
|
|
17
17
|
const tokenAmount = expandToDecimals(1000, 8n);
|
|
18
|
-
const receiver = '
|
|
18
|
+
const receiver = 'bcrt1pst60scy2zdyxkfzqs593aevx2jypah32zzjjx2kmz57yzf228wjq5wtyc5';
|
|
19
19
|
const calldata = airdropToken(tokenAmount, receiver);
|
|
20
20
|
console.log('airdrop ->', calldata.toString('hex'));
|
|
21
21
|
await interact(MOTO_ADDRESS_REGTEST, calldata);
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { ABICoder, BinaryWriter } from '@btc-vision/bsi-binary';
|
|
2
|
+
import { interact } from '../shared/interaction.js';
|
|
2
3
|
const abiCoder = new ABICoder();
|
|
3
4
|
const airdropSelector = Number(`0x` + abiCoder.encodeSelector('airdropDefined'));
|
|
4
5
|
function expandToDecimals(n, decimals = 18n) {
|
|
@@ -16,7 +17,7 @@ function generateFakeAddress() {
|
|
|
16
17
|
return address;
|
|
17
18
|
}
|
|
18
19
|
const tokenAmount = expandToDecimals(10, 8n);
|
|
19
|
-
const amountOfWallets =
|
|
20
|
+
const amountOfWallets = 85;
|
|
20
21
|
const maxMB = 1;
|
|
21
22
|
const maxBytes = maxMB * 1024 * 1024;
|
|
22
23
|
function generateAirdropCalldata(tokenAmount) {
|
|
@@ -39,6 +40,15 @@ function generateAirdropCalldata(tokenAmount) {
|
|
|
39
40
|
async function sendTx() {
|
|
40
41
|
const calldata = generateAirdropCalldata(tokenAmount);
|
|
41
42
|
console.log(`Calldata generated. Raw size: ${calldata.byteLength} bytes`);
|
|
43
|
+
const interaction = await interact('bcrt1qdzueflfht0ctk6agpyndh5f8wydsxy2dmz737p', calldata, false, [], 5, 100000n);
|
|
44
|
+
if (!interaction) {
|
|
45
|
+
throw new Error('No interaction');
|
|
46
|
+
}
|
|
47
|
+
const broadcast = interaction[1];
|
|
48
|
+
if (!broadcast) {
|
|
49
|
+
throw new Error('No broadcast');
|
|
50
|
+
}
|
|
51
|
+
console.log('sent tx', broadcast);
|
|
42
52
|
}
|
|
43
53
|
for (let i = 0; i < 1; i++) {
|
|
44
54
|
try {
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { ROUTER_ADDRESS_REGTEST } from '../../metadata/tokens.js';
|
|
2
|
-
import { wallet } from '../shared/interaction.js';
|
|
3
2
|
import { allowance } from '../writers/allowance.js';
|
|
4
|
-
const calldata = allowance(
|
|
3
|
+
const calldata = allowance('bcrt1ppqk36azyunxdpadza7gtf568elqxnhu3lwufg98daek3kz07390swyvzd2', ROUTER_ADDRESS_REGTEST);
|
|
5
4
|
console.log('allowance ->', calldata.toString('hex'));
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { ABICoder, BinaryWriter } from '@btc-vision/bsi-binary';
|
|
2
|
-
import { wallet } from '../shared/interaction.js';
|
|
3
2
|
const abiCoder = new ABICoder();
|
|
4
3
|
const balanceSelector = Number(`0x` + abiCoder.encodeSelector('balanceOf'));
|
|
5
4
|
function balanceOf(to) {
|
|
@@ -8,6 +7,6 @@ function balanceOf(to) {
|
|
|
8
7
|
calldata.writeAddress(to);
|
|
9
8
|
return Buffer.from(calldata.getBuffer());
|
|
10
9
|
}
|
|
11
|
-
const receiver =
|
|
10
|
+
const receiver = 'bcrt1ppqk36azyunxdpadza7gtf568elqxnhu3lwufg98daek3kz07390swyvzd2';
|
|
12
11
|
const calldata = balanceOf(receiver);
|
|
13
12
|
console.log('balanceOf ->', calldata.toString('hex'));
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { ABICoder, BinaryWriter } from '@btc-vision/bsi-binary';
|
|
2
|
-
import {
|
|
2
|
+
import { wallet } from '../shared/interaction.js';
|
|
3
3
|
import { wBTC } from '../../metadata/contracts/wBTC.js';
|
|
4
4
|
import { networks } from 'bitcoinjs-lib';
|
|
5
|
-
import { MOTO_ADDRESS_REGTEST
|
|
5
|
+
import { MOTO_ADDRESS_REGTEST } from '../../metadata/tokens.js';
|
|
6
6
|
import { expandToDecimals } from '../shared/Utils.js';
|
|
7
7
|
const abiCoder = new ABICoder();
|
|
8
8
|
const addLiquiditySelector = Number(`0x` + abiCoder.encodeSelector('addLiquidity'));
|
|
@@ -33,4 +33,3 @@ const calldata = addLiquidity({
|
|
|
33
33
|
deadline: 5000n,
|
|
34
34
|
});
|
|
35
35
|
console.log('add liquidity:', calldata.toString('hex'));
|
|
36
|
-
await interact(ROUTER_ADDRESS_REGTEST, calldata);
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { BinaryReader } from '@btc-vision/bsi-binary';
|
|
2
|
+
function decodeTransferEvent(data) {
|
|
3
|
+
const reader = new BinaryReader(data);
|
|
4
|
+
const from = reader.readAddress();
|
|
5
|
+
const to = reader.readAddress();
|
|
6
|
+
const value = reader.readU256();
|
|
7
|
+
return { from, to, value };
|
|
8
|
+
}
|
|
9
|
+
const transferEventData = Buffer.from('YmNydDFwcHFrMzZhenl1bnhkcGFkemE3Z3RmNTY4ZWxxeG5odTNsd3VmZzk4ZGFlazNrejA3Mzkwc3d5dnpkMgBiY3J0MXFwaDRqejZkbXc1dW53bThnc2M1dTRxbXkwbXF0bjVkOGF2bHhqNgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9CQA==', 'base64');
|
|
10
|
+
const bytes = Uint8Array.from(transferEventData);
|
|
11
|
+
const transferEvent = decodeTransferEvent(bytes);
|
|
12
|
+
console.log(transferEvent);
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { BinaryReader } from '@btc-vision/bsi-binary';
|
|
2
|
+
function decodeReserves(data) {
|
|
3
|
+
const reader = new BinaryReader(data);
|
|
4
|
+
return {
|
|
5
|
+
reserve0: reader.readU256(),
|
|
6
|
+
reserve1: reader.readU256(),
|
|
7
|
+
blockTimestampLast: reader.readU64(),
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
const transferEventData = Buffer.from('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlxkHwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACGd9QMYGAAAAAAAA', 'base64');
|
|
11
|
+
const bytes = Uint8Array.from(transferEventData);
|
|
12
|
+
const transferEvent = decodeReserves(bytes);
|
|
13
|
+
console.log(transferEvent);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ABICoder, BinaryWriter } from '@btc-vision/bsi-binary';
|
|
2
|
+
const abiCoder = new ABICoder();
|
|
3
|
+
const reservesSelector = Number(`0x` + abiCoder.encodeSelector('getReserves'));
|
|
4
|
+
function getReserves() {
|
|
5
|
+
const calldata = new BinaryWriter();
|
|
6
|
+
calldata.writeSelector(reservesSelector);
|
|
7
|
+
return Buffer.from(calldata.getBuffer());
|
|
8
|
+
}
|
|
9
|
+
const calldata = getReserves();
|
|
10
|
+
console.log('reserves ->', calldata.toString('hex'));
|
|
@@ -19,7 +19,7 @@ async function mineBlock() {
|
|
|
19
19
|
return !!ok.length;
|
|
20
20
|
}
|
|
21
21
|
await rpc.init(Regtest.config);
|
|
22
|
-
const requestedAmount = 10n ** 8n *
|
|
22
|
+
const requestedAmount = 10n ** 8n * 500n;
|
|
23
23
|
const utxoSetting = {
|
|
24
24
|
addresses: [wallet.p2wpkh, wallet.p2tr],
|
|
25
25
|
minAmount: 10000n,
|
|
@@ -20,7 +20,7 @@ async function mineBlock() {
|
|
|
20
20
|
return !!ok.length;
|
|
21
21
|
}
|
|
22
22
|
await rpc.init(Regtest.config);
|
|
23
|
-
const wrapAmount =
|
|
23
|
+
const wrapAmount = 5n * 100000000n;
|
|
24
24
|
const utxoSetting = {
|
|
25
25
|
addresses: [wallet.p2wpkh, wallet.p2tr],
|
|
26
26
|
minAmount: 10000n,
|
|
@@ -41,7 +41,7 @@ const wrapParameters = {
|
|
|
41
41
|
network: network,
|
|
42
42
|
feeRate: 500,
|
|
43
43
|
priorityFee: 100000n,
|
|
44
|
-
receiver:
|
|
44
|
+
receiver: 'bcrt1ppqk36azyunxdpadza7gtf568elqxnhu3lwufg98daek3kz07390swyvzd2',
|
|
45
45
|
amount: wrapAmount,
|
|
46
46
|
generationParameters: generationParameters,
|
|
47
47
|
};
|
|
@@ -61,8 +61,5 @@ console.log(`Second transaction broadcasted: ${secondTxBroadcast}`);
|
|
|
61
61
|
if (!secondTxBroadcast) {
|
|
62
62
|
throw new Error('Could not broadcast second transaction');
|
|
63
63
|
}
|
|
64
|
-
if (shouldMineBlock) {
|
|
65
|
-
await mineBlock();
|
|
66
|
-
}
|
|
67
64
|
rpc.destroy();
|
|
68
65
|
console.log(`Wrapped ${wrapAmount} sats to ${wallet.p2tr}.`);
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import { IInteractionParameters } from '../interfaces/ITransactionParameters.js';
|
|
2
2
|
import { UTXO } from '../../utxo/interfaces/IUTXO.js';
|
|
3
3
|
export type InteractionParametersWithoutSigner = Omit<IInteractionParameters, 'signer'>;
|
|
4
|
+
export interface BroadcastTransactionOptions {
|
|
5
|
+
raw: string;
|
|
6
|
+
psbt: boolean;
|
|
7
|
+
}
|
|
4
8
|
export interface BroadcastedTransaction {
|
|
5
9
|
readonly success: boolean;
|
|
6
10
|
readonly result?: string;
|
|
@@ -10,4 +14,6 @@ export interface BroadcastedTransaction {
|
|
|
10
14
|
}
|
|
11
15
|
export interface Web3Provider {
|
|
12
16
|
signInteraction(interactionParameters: InteractionParametersWithoutSigner): Promise<[BroadcastedTransaction, BroadcastedTransaction, UTXO[]]>;
|
|
17
|
+
signAndBroadcastInteraction(interactionParameters: InteractionParametersWithoutSigner): Promise<[BroadcastedTransaction, BroadcastedTransaction, UTXO[]]>;
|
|
18
|
+
broadcast(transactions: BroadcastTransactionOptions[]): Promise<BroadcastedTransaction[]>;
|
|
13
19
|
}
|
package/package.json
CHANGED
package/src/_version.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const version = '1.0.
|
|
1
|
+
export const version = '1.0.53';
|
|
@@ -3,6 +3,11 @@ import { UTXO } from '../../utxo/interfaces/IUTXO.js';
|
|
|
3
3
|
|
|
4
4
|
export type InteractionParametersWithoutSigner = Omit<IInteractionParameters, 'signer'>; //| 'utxos'
|
|
5
5
|
|
|
6
|
+
export interface BroadcastTransactionOptions {
|
|
7
|
+
raw: string;
|
|
8
|
+
psbt: boolean;
|
|
9
|
+
}
|
|
10
|
+
|
|
6
11
|
export interface BroadcastedTransaction {
|
|
7
12
|
/** Whether the transaction was successfully broadcasted. */
|
|
8
13
|
readonly success: boolean;
|
|
@@ -32,4 +37,10 @@ export interface Web3Provider {
|
|
|
32
37
|
signInteraction(
|
|
33
38
|
interactionParameters: InteractionParametersWithoutSigner,
|
|
34
39
|
): Promise<[BroadcastedTransaction, BroadcastedTransaction, UTXO[]]>;
|
|
40
|
+
|
|
41
|
+
signAndBroadcastInteraction(
|
|
42
|
+
interactionParameters: InteractionParametersWithoutSigner,
|
|
43
|
+
): Promise<[BroadcastedTransaction, BroadcastedTransaction, UTXO[]]>;
|
|
44
|
+
|
|
45
|
+
broadcast(transactions: BroadcastTransactionOptions[]): Promise<BroadcastedTransaction[]>;
|
|
35
46
|
}
|