test(builder): offline FixtureProvider with captured testnet protocol parameters
This commit is contained in:
22
packages/builder/test/fixtures/capture-protocol-params.mjs
vendored
Normal file
22
packages/builder/test/fixtures/capture-protocol-params.mjs
vendored
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
// packages/builder/test/fixtures/capture-protocol-params.mjs
|
||||||
|
//
|
||||||
|
// One-time capture: writes Lucid-format protocol parameters from the live
|
||||||
|
// Vector testnet Ogmios endpoint into protocol-params.fixture.json, using
|
||||||
|
// OgmiosProvider's own mapping so the fixture can never drift from the
|
||||||
|
// conversion logic. Run manually after `npm run build`:
|
||||||
|
//
|
||||||
|
// node packages/builder/test/fixtures/capture-protocol-params.mjs
|
||||||
|
//
|
||||||
|
// Never runs in CI — unit tests read the checked-in JSON.
|
||||||
|
import { writeFileSync } from 'node:fs';
|
||||||
|
import { resolve, dirname } from 'node:path';
|
||||||
|
import { fileURLToPath } from 'node:url';
|
||||||
|
import { OgmiosProvider } from '@apexfusion/vector-mcp-shared/provider';
|
||||||
|
|
||||||
|
const ogmiosUrl = process.env.VECTOR_OGMIOS_URL || 'https://ogmios.vector.testnet.apexfusion.org';
|
||||||
|
const provider = new OgmiosProvider({ ogmiosUrl, submitUrl: 'http://unused.invalid', koiosUrl: '' });
|
||||||
|
const params = await provider.getProtocolParameters();
|
||||||
|
const json = JSON.stringify(params, (_k, v) => (typeof v === 'bigint' ? { __bigint: v.toString() } : v), 2);
|
||||||
|
const out = resolve(dirname(fileURLToPath(import.meta.url)), 'protocol-params.fixture.json');
|
||||||
|
writeFileSync(out, json + '\n');
|
||||||
|
console.log(`wrote ${out}`);
|
||||||
40
packages/builder/test/fixtures/fixture-provider.test.ts
vendored
Normal file
40
packages/builder/test/fixtures/fixture-provider.test.ts
vendored
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
// packages/builder/test/fixtures/fixture-provider.test.ts
|
||||||
|
import { describe, test } from 'node:test';
|
||||||
|
import assert from 'node:assert/strict';
|
||||||
|
import { Lucid } from '@lucid-evolution/lucid';
|
||||||
|
import { FixtureProvider, fixtureProtocolParameters, FIXTURE_UTXOS, OWN_ADDRESS, FOREIGN_ADDRESS } from './fixture-provider.ts';
|
||||||
|
|
||||||
|
describe('FixtureProvider', () => {
|
||||||
|
test('serves the captured protocol parameters with bigints revived', () => {
|
||||||
|
const p = fixtureProtocolParameters();
|
||||||
|
assert.equal(p.minFeeA, 45);
|
||||||
|
assert.equal(p.minFeeB, 156253);
|
||||||
|
assert.equal(typeof p.coinsPerUtxoByte, 'bigint');
|
||||||
|
assert.ok(p.costModels.PlutusV2, 'PlutusV2 cost model missing from fixture');
|
||||||
|
});
|
||||||
|
|
||||||
|
test('getUtxos filters by address and returns nothing for a foreign address', async () => {
|
||||||
|
const provider = new FixtureProvider(FIXTURE_UTXOS);
|
||||||
|
assert.equal((await provider.getUtxos(OWN_ADDRESS)).length, 3);
|
||||||
|
assert.equal((await provider.getUtxos(FOREIGN_ADDRESS)).length, 0);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('network-only methods throw loudly instead of hanging', async () => {
|
||||||
|
const provider = new FixtureProvider(FIXTURE_UTXOS);
|
||||||
|
await assert.rejects(() => provider.submitTx('84'), /offline/);
|
||||||
|
await assert.rejects(() => provider.getDelegation('stake1xyz'), /offline/);
|
||||||
|
});
|
||||||
|
|
||||||
|
// The offline replication of the PR-4 spike: a REAL unsigned transaction,
|
||||||
|
// built with no key and no network. If this test passes, every later build
|
||||||
|
// test has a working foundation.
|
||||||
|
test('Lucid + FixtureProvider builds a real unsigned tx via fromAddress', async () => {
|
||||||
|
const lucid = await Lucid(new FixtureProvider(FIXTURE_UTXOS), 'Mainnet');
|
||||||
|
const utxos = await lucid.utxosAt(OWN_ADDRESS);
|
||||||
|
lucid.selectWallet.fromAddress(OWN_ADDRESS, utxos);
|
||||||
|
const tx = await lucid.newTx().pay.ToAddress(FOREIGN_ADDRESS, { lovelace: 3_000_000n }).complete();
|
||||||
|
const cbor = tx.toCBOR();
|
||||||
|
assert.ok(cbor.length > 200, `unsigned tx CBOR suspiciously short: ${cbor.length} hex chars`);
|
||||||
|
assert.match(cbor, /^84/, 'Conway-era tx CBOR must start with array header 0x84');
|
||||||
|
});
|
||||||
|
});
|
||||||
87
packages/builder/test/fixtures/fixture-provider.ts
vendored
Normal file
87
packages/builder/test/fixtures/fixture-provider.ts
vendored
Normal file
@@ -0,0 +1,87 @@
|
|||||||
|
// packages/builder/test/fixtures/fixture-provider.ts
|
||||||
|
//
|
||||||
|
// Offline stand-in for OgmiosProvider in unit tests. Serves the checked-in
|
||||||
|
// protocol-params fixture (captured from the live testnet by
|
||||||
|
// capture-protocol-params.mjs) and a caller-supplied UTxO set. Every method
|
||||||
|
// that would need the chain throws loudly so a test that would touch the
|
||||||
|
// network fails fast instead of hanging or silently passing.
|
||||||
|
import { readFileSync } from 'node:fs';
|
||||||
|
import { resolve } from 'node:path';
|
||||||
|
import type {
|
||||||
|
Provider, ProtocolParameters, UTxO, OutRef, Address, Credential,
|
||||||
|
Delegation, DatumHash, Datum, RewardAddress, Transaction, TxHash, Unit,
|
||||||
|
} from '@lucid-evolution/lucid';
|
||||||
|
|
||||||
|
export const OWN_ADDRESS = 'addr1qylasu4y34ccwt8hv55tkswa9fthtck9xtppvc4y03kwhaztd0jlxdzk72zj8mgy6x4269v9gytkgffh3k8d3l8987yqu5c35z';
|
||||||
|
export const FOREIGN_ADDRESS = 'addr1wx434t2jc3m5uhdf7tq05xjdqu3q5z7a2lhrmn5mapsd43srh7ll8';
|
||||||
|
export const FIXTURE_TXHASH = 'e17a2ebab8eae3850f959290041b3bef3f3597584f8cf4a728e14777dddb8c32';
|
||||||
|
export const FIXTURE_TOKEN_UNIT = '1111111111111111111111111111111111111111111111111111111154657374546f6b656e';
|
||||||
|
|
||||||
|
export const FIXTURE_UTXOS: UTxO[] = [
|
||||||
|
{ txHash: FIXTURE_TXHASH, outputIndex: 0, address: OWN_ADDRESS, assets: { lovelace: 1_000_000_000n } },
|
||||||
|
{ txHash: FIXTURE_TXHASH, outputIndex: 1, address: OWN_ADDRESS, assets: { lovelace: 5_000_000n } },
|
||||||
|
{ txHash: FIXTURE_TXHASH, outputIndex: 2, address: OWN_ADDRESS, assets: { lovelace: 10_000_000n, [FIXTURE_TOKEN_UNIT]: 500n } },
|
||||||
|
];
|
||||||
|
|
||||||
|
const PARAMS_PATH = resolve(import.meta.dirname!, 'protocol-params.fixture.json');
|
||||||
|
|
||||||
|
export function fixtureProtocolParameters(): ProtocolParameters {
|
||||||
|
return JSON.parse(readFileSync(PARAMS_PATH, 'utf-8'), (_k, v) =>
|
||||||
|
v !== null && typeof v === 'object' && '__bigint' in v ? BigInt(v.__bigint) : v,
|
||||||
|
) as ProtocolParameters;
|
||||||
|
}
|
||||||
|
|
||||||
|
export class FixtureProvider implements Provider {
|
||||||
|
private utxos: UTxO[];
|
||||||
|
|
||||||
|
// Not a parameter-property constructor (`constructor(private utxos...)`):
|
||||||
|
// Node's native type-stripping (no ts-node/tsx loader in the plain `node
|
||||||
|
// --test` invocation this file is designed to run under) only erases
|
||||||
|
// types, it does not transform TS-only constructs like parameter
|
||||||
|
// properties, and rejects them with ERR_UNSUPPORTED_TYPESCRIPT_SYNTAX.
|
||||||
|
// Same behavior as the parameter-property form, just spelled so `node`
|
||||||
|
// can strip-and-run it directly. Matches OgmiosProvider's own style in
|
||||||
|
// provider.ts, which never uses parameter properties either.
|
||||||
|
constructor(utxos: UTxO[]) {
|
||||||
|
this.utxos = utxos;
|
||||||
|
}
|
||||||
|
|
||||||
|
async getProtocolParameters(): Promise<ProtocolParameters> {
|
||||||
|
return fixtureProtocolParameters();
|
||||||
|
}
|
||||||
|
|
||||||
|
async getUtxos(addressOrCredential: Address | Credential): Promise<UTxO[]> {
|
||||||
|
if (typeof addressOrCredential !== 'string') {
|
||||||
|
throw new Error('FixtureProvider: credential queries not supported offline');
|
||||||
|
}
|
||||||
|
return this.utxos.filter((u) => u.address === addressOrCredential);
|
||||||
|
}
|
||||||
|
|
||||||
|
async getUtxosByOutRef(outRefs: Array<OutRef>): Promise<UTxO[]> {
|
||||||
|
return this.utxos.filter((u) =>
|
||||||
|
outRefs.some((r) => r.txHash === u.txHash && Number(r.outputIndex) === u.outputIndex),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
async getUtxosWithUnit(_a: Address | Credential, _u: Unit): Promise<UTxO[]> {
|
||||||
|
throw new Error('FixtureProvider: offline — getUtxosWithUnit unavailable');
|
||||||
|
}
|
||||||
|
async getUtxoByUnit(_u: Unit): Promise<UTxO> {
|
||||||
|
throw new Error('FixtureProvider: offline — getUtxoByUnit unavailable');
|
||||||
|
}
|
||||||
|
async getDelegation(_r: RewardAddress): Promise<Delegation> {
|
||||||
|
throw new Error('FixtureProvider: offline — getDelegation unavailable');
|
||||||
|
}
|
||||||
|
async getDatum(_d: DatumHash): Promise<Datum> {
|
||||||
|
throw new Error('FixtureProvider: offline — getDatum unavailable');
|
||||||
|
}
|
||||||
|
awaitTx(_tx: TxHash, _interval?: number): Promise<boolean> {
|
||||||
|
throw new Error('FixtureProvider: offline — awaitTx unavailable');
|
||||||
|
}
|
||||||
|
async submitTx(_tx: Transaction): Promise<TxHash> {
|
||||||
|
throw new Error('FixtureProvider: offline — submitTx unavailable');
|
||||||
|
}
|
||||||
|
async evaluateTx(_tx: Transaction, _additional?: UTxO[]): Promise<any> {
|
||||||
|
throw new Error('FixtureProvider: offline — evaluateTx unavailable');
|
||||||
|
}
|
||||||
|
}
|
||||||
678
packages/builder/test/fixtures/protocol-params.fixture.json
vendored
Normal file
678
packages/builder/test/fixtures/protocol-params.fixture.json
vendored
Normal file
@@ -0,0 +1,678 @@
|
|||||||
|
{
|
||||||
|
"minFeeA": 45,
|
||||||
|
"minFeeB": 156253,
|
||||||
|
"maxTxSize": 16384,
|
||||||
|
"maxValSize": 5000,
|
||||||
|
"keyDeposit": {
|
||||||
|
"__bigint": "500000000"
|
||||||
|
},
|
||||||
|
"poolDeposit": {
|
||||||
|
"__bigint": "5000000000000"
|
||||||
|
},
|
||||||
|
"priceMem": 0.0577,
|
||||||
|
"priceStep": 0.0000721,
|
||||||
|
"maxTxExMem": {
|
||||||
|
"__bigint": "16000000"
|
||||||
|
},
|
||||||
|
"maxTxExSteps": {
|
||||||
|
"__bigint": "10000000000"
|
||||||
|
},
|
||||||
|
"coinsPerUtxoByte": {
|
||||||
|
"__bigint": "4310"
|
||||||
|
},
|
||||||
|
"collateralPercentage": 150,
|
||||||
|
"maxCollateralInputs": 3,
|
||||||
|
"costModels": {
|
||||||
|
"PlutusV1": [
|
||||||
|
197209,
|
||||||
|
0,
|
||||||
|
1,
|
||||||
|
1,
|
||||||
|
396231,
|
||||||
|
621,
|
||||||
|
0,
|
||||||
|
1,
|
||||||
|
150000,
|
||||||
|
1000,
|
||||||
|
0,
|
||||||
|
1,
|
||||||
|
150000,
|
||||||
|
32,
|
||||||
|
2477736,
|
||||||
|
29175,
|
||||||
|
4,
|
||||||
|
29773,
|
||||||
|
100,
|
||||||
|
29773,
|
||||||
|
100,
|
||||||
|
29773,
|
||||||
|
100,
|
||||||
|
29773,
|
||||||
|
100,
|
||||||
|
29773,
|
||||||
|
100,
|
||||||
|
29773,
|
||||||
|
100,
|
||||||
|
100,
|
||||||
|
100,
|
||||||
|
29773,
|
||||||
|
100,
|
||||||
|
150000,
|
||||||
|
32,
|
||||||
|
150000,
|
||||||
|
32,
|
||||||
|
150000,
|
||||||
|
32,
|
||||||
|
150000,
|
||||||
|
1000,
|
||||||
|
0,
|
||||||
|
1,
|
||||||
|
150000,
|
||||||
|
32,
|
||||||
|
150000,
|
||||||
|
1000,
|
||||||
|
0,
|
||||||
|
8,
|
||||||
|
148000,
|
||||||
|
425507,
|
||||||
|
118,
|
||||||
|
0,
|
||||||
|
1,
|
||||||
|
1,
|
||||||
|
150000,
|
||||||
|
1000,
|
||||||
|
0,
|
||||||
|
8,
|
||||||
|
150000,
|
||||||
|
112536,
|
||||||
|
247,
|
||||||
|
1,
|
||||||
|
150000,
|
||||||
|
10000,
|
||||||
|
1,
|
||||||
|
136542,
|
||||||
|
1326,
|
||||||
|
1,
|
||||||
|
1000,
|
||||||
|
150000,
|
||||||
|
1000,
|
||||||
|
1,
|
||||||
|
150000,
|
||||||
|
32,
|
||||||
|
150000,
|
||||||
|
32,
|
||||||
|
150000,
|
||||||
|
32,
|
||||||
|
1,
|
||||||
|
1,
|
||||||
|
150000,
|
||||||
|
1,
|
||||||
|
150000,
|
||||||
|
4,
|
||||||
|
103599,
|
||||||
|
248,
|
||||||
|
1,
|
||||||
|
103599,
|
||||||
|
248,
|
||||||
|
1,
|
||||||
|
145276,
|
||||||
|
1366,
|
||||||
|
1,
|
||||||
|
179690,
|
||||||
|
497,
|
||||||
|
1,
|
||||||
|
150000,
|
||||||
|
32,
|
||||||
|
150000,
|
||||||
|
32,
|
||||||
|
150000,
|
||||||
|
32,
|
||||||
|
150000,
|
||||||
|
32,
|
||||||
|
150000,
|
||||||
|
32,
|
||||||
|
150000,
|
||||||
|
32,
|
||||||
|
148000,
|
||||||
|
425507,
|
||||||
|
118,
|
||||||
|
0,
|
||||||
|
1,
|
||||||
|
1,
|
||||||
|
61516,
|
||||||
|
11218,
|
||||||
|
0,
|
||||||
|
1,
|
||||||
|
150000,
|
||||||
|
32,
|
||||||
|
148000,
|
||||||
|
425507,
|
||||||
|
118,
|
||||||
|
0,
|
||||||
|
1,
|
||||||
|
1,
|
||||||
|
148000,
|
||||||
|
425507,
|
||||||
|
118,
|
||||||
|
0,
|
||||||
|
1,
|
||||||
|
1,
|
||||||
|
2477736,
|
||||||
|
29175,
|
||||||
|
4,
|
||||||
|
0,
|
||||||
|
82363,
|
||||||
|
4,
|
||||||
|
150000,
|
||||||
|
5000,
|
||||||
|
0,
|
||||||
|
1,
|
||||||
|
150000,
|
||||||
|
32,
|
||||||
|
197209,
|
||||||
|
0,
|
||||||
|
1,
|
||||||
|
1,
|
||||||
|
150000,
|
||||||
|
32,
|
||||||
|
150000,
|
||||||
|
32,
|
||||||
|
150000,
|
||||||
|
32,
|
||||||
|
150000,
|
||||||
|
32,
|
||||||
|
150000,
|
||||||
|
32,
|
||||||
|
150000,
|
||||||
|
32,
|
||||||
|
150000,
|
||||||
|
32,
|
||||||
|
3345831,
|
||||||
|
1,
|
||||||
|
1
|
||||||
|
],
|
||||||
|
"PlutusV2": [
|
||||||
|
205665,
|
||||||
|
812,
|
||||||
|
1,
|
||||||
|
1,
|
||||||
|
1000,
|
||||||
|
571,
|
||||||
|
0,
|
||||||
|
1,
|
||||||
|
1000,
|
||||||
|
24177,
|
||||||
|
4,
|
||||||
|
1,
|
||||||
|
1000,
|
||||||
|
32,
|
||||||
|
117366,
|
||||||
|
10475,
|
||||||
|
4,
|
||||||
|
23000,
|
||||||
|
100,
|
||||||
|
23000,
|
||||||
|
100,
|
||||||
|
23000,
|
||||||
|
100,
|
||||||
|
23000,
|
||||||
|
100,
|
||||||
|
23000,
|
||||||
|
100,
|
||||||
|
23000,
|
||||||
|
100,
|
||||||
|
100,
|
||||||
|
100,
|
||||||
|
23000,
|
||||||
|
100,
|
||||||
|
19537,
|
||||||
|
32,
|
||||||
|
175354,
|
||||||
|
32,
|
||||||
|
46417,
|
||||||
|
4,
|
||||||
|
221973,
|
||||||
|
511,
|
||||||
|
0,
|
||||||
|
1,
|
||||||
|
89141,
|
||||||
|
32,
|
||||||
|
497525,
|
||||||
|
14068,
|
||||||
|
4,
|
||||||
|
2,
|
||||||
|
196500,
|
||||||
|
453240,
|
||||||
|
220,
|
||||||
|
0,
|
||||||
|
1,
|
||||||
|
1,
|
||||||
|
1000,
|
||||||
|
28662,
|
||||||
|
4,
|
||||||
|
2,
|
||||||
|
245000,
|
||||||
|
216773,
|
||||||
|
62,
|
||||||
|
1,
|
||||||
|
1060367,
|
||||||
|
12586,
|
||||||
|
1,
|
||||||
|
208512,
|
||||||
|
421,
|
||||||
|
1,
|
||||||
|
187000,
|
||||||
|
1000,
|
||||||
|
52998,
|
||||||
|
1,
|
||||||
|
80436,
|
||||||
|
32,
|
||||||
|
43249,
|
||||||
|
32,
|
||||||
|
1000,
|
||||||
|
32,
|
||||||
|
80556,
|
||||||
|
1,
|
||||||
|
57667,
|
||||||
|
4,
|
||||||
|
1000,
|
||||||
|
10,
|
||||||
|
197145,
|
||||||
|
156,
|
||||||
|
1,
|
||||||
|
197145,
|
||||||
|
156,
|
||||||
|
1,
|
||||||
|
204924,
|
||||||
|
473,
|
||||||
|
1,
|
||||||
|
208896,
|
||||||
|
511,
|
||||||
|
1,
|
||||||
|
52467,
|
||||||
|
32,
|
||||||
|
64832,
|
||||||
|
32,
|
||||||
|
65493,
|
||||||
|
32,
|
||||||
|
22558,
|
||||||
|
32,
|
||||||
|
16563,
|
||||||
|
32,
|
||||||
|
76511,
|
||||||
|
32,
|
||||||
|
196500,
|
||||||
|
453240,
|
||||||
|
220,
|
||||||
|
0,
|
||||||
|
1,
|
||||||
|
1,
|
||||||
|
69522,
|
||||||
|
11687,
|
||||||
|
0,
|
||||||
|
1,
|
||||||
|
60091,
|
||||||
|
32,
|
||||||
|
196500,
|
||||||
|
453240,
|
||||||
|
220,
|
||||||
|
0,
|
||||||
|
1,
|
||||||
|
1,
|
||||||
|
196500,
|
||||||
|
453240,
|
||||||
|
220,
|
||||||
|
0,
|
||||||
|
1,
|
||||||
|
1,
|
||||||
|
1159724,
|
||||||
|
392670,
|
||||||
|
0,
|
||||||
|
2,
|
||||||
|
806990,
|
||||||
|
30482,
|
||||||
|
4,
|
||||||
|
1927926,
|
||||||
|
82523,
|
||||||
|
4,
|
||||||
|
265318,
|
||||||
|
0,
|
||||||
|
4,
|
||||||
|
0,
|
||||||
|
85931,
|
||||||
|
32,
|
||||||
|
205665,
|
||||||
|
812,
|
||||||
|
1,
|
||||||
|
1,
|
||||||
|
41182,
|
||||||
|
32,
|
||||||
|
212342,
|
||||||
|
32,
|
||||||
|
31220,
|
||||||
|
32,
|
||||||
|
32696,
|
||||||
|
32,
|
||||||
|
43357,
|
||||||
|
32,
|
||||||
|
32247,
|
||||||
|
32,
|
||||||
|
38314,
|
||||||
|
32,
|
||||||
|
35892428,
|
||||||
|
10,
|
||||||
|
9462713,
|
||||||
|
1021,
|
||||||
|
10,
|
||||||
|
38887044,
|
||||||
|
32947,
|
||||||
|
10
|
||||||
|
],
|
||||||
|
"PlutusV3": [
|
||||||
|
100788,
|
||||||
|
420,
|
||||||
|
1,
|
||||||
|
1,
|
||||||
|
1000,
|
||||||
|
173,
|
||||||
|
0,
|
||||||
|
1,
|
||||||
|
1000,
|
||||||
|
59957,
|
||||||
|
4,
|
||||||
|
1,
|
||||||
|
11183,
|
||||||
|
32,
|
||||||
|
201305,
|
||||||
|
8356,
|
||||||
|
4,
|
||||||
|
16000,
|
||||||
|
100,
|
||||||
|
16000,
|
||||||
|
100,
|
||||||
|
16000,
|
||||||
|
100,
|
||||||
|
16000,
|
||||||
|
100,
|
||||||
|
16000,
|
||||||
|
100,
|
||||||
|
16000,
|
||||||
|
100,
|
||||||
|
100,
|
||||||
|
100,
|
||||||
|
16000,
|
||||||
|
100,
|
||||||
|
94375,
|
||||||
|
32,
|
||||||
|
132994,
|
||||||
|
32,
|
||||||
|
61462,
|
||||||
|
4,
|
||||||
|
72010,
|
||||||
|
178,
|
||||||
|
0,
|
||||||
|
1,
|
||||||
|
22151,
|
||||||
|
32,
|
||||||
|
91189,
|
||||||
|
769,
|
||||||
|
4,
|
||||||
|
2,
|
||||||
|
85848,
|
||||||
|
123203,
|
||||||
|
7305,
|
||||||
|
-900,
|
||||||
|
1716,
|
||||||
|
549,
|
||||||
|
57,
|
||||||
|
85848,
|
||||||
|
0,
|
||||||
|
1,
|
||||||
|
1,
|
||||||
|
1000,
|
||||||
|
42921,
|
||||||
|
4,
|
||||||
|
2,
|
||||||
|
24548,
|
||||||
|
29498,
|
||||||
|
38,
|
||||||
|
1,
|
||||||
|
898148,
|
||||||
|
27279,
|
||||||
|
1,
|
||||||
|
51775,
|
||||||
|
558,
|
||||||
|
1,
|
||||||
|
39184,
|
||||||
|
1000,
|
||||||
|
60594,
|
||||||
|
1,
|
||||||
|
141895,
|
||||||
|
32,
|
||||||
|
83150,
|
||||||
|
32,
|
||||||
|
15299,
|
||||||
|
32,
|
||||||
|
76049,
|
||||||
|
1,
|
||||||
|
13169,
|
||||||
|
4,
|
||||||
|
22100,
|
||||||
|
10,
|
||||||
|
28999,
|
||||||
|
74,
|
||||||
|
1,
|
||||||
|
28999,
|
||||||
|
74,
|
||||||
|
1,
|
||||||
|
43285,
|
||||||
|
552,
|
||||||
|
1,
|
||||||
|
44749,
|
||||||
|
541,
|
||||||
|
1,
|
||||||
|
33852,
|
||||||
|
32,
|
||||||
|
68246,
|
||||||
|
32,
|
||||||
|
72362,
|
||||||
|
32,
|
||||||
|
7243,
|
||||||
|
32,
|
||||||
|
7391,
|
||||||
|
32,
|
||||||
|
11546,
|
||||||
|
32,
|
||||||
|
85848,
|
||||||
|
123203,
|
||||||
|
7305,
|
||||||
|
-900,
|
||||||
|
1716,
|
||||||
|
549,
|
||||||
|
57,
|
||||||
|
85848,
|
||||||
|
0,
|
||||||
|
1,
|
||||||
|
90434,
|
||||||
|
519,
|
||||||
|
0,
|
||||||
|
1,
|
||||||
|
74433,
|
||||||
|
32,
|
||||||
|
85848,
|
||||||
|
123203,
|
||||||
|
7305,
|
||||||
|
-900,
|
||||||
|
1716,
|
||||||
|
549,
|
||||||
|
57,
|
||||||
|
85848,
|
||||||
|
0,
|
||||||
|
1,
|
||||||
|
1,
|
||||||
|
85848,
|
||||||
|
123203,
|
||||||
|
7305,
|
||||||
|
-900,
|
||||||
|
1716,
|
||||||
|
549,
|
||||||
|
57,
|
||||||
|
85848,
|
||||||
|
0,
|
||||||
|
1,
|
||||||
|
955506,
|
||||||
|
213312,
|
||||||
|
0,
|
||||||
|
2,
|
||||||
|
270652,
|
||||||
|
22588,
|
||||||
|
4,
|
||||||
|
1457325,
|
||||||
|
64566,
|
||||||
|
4,
|
||||||
|
20467,
|
||||||
|
1,
|
||||||
|
4,
|
||||||
|
0,
|
||||||
|
141992,
|
||||||
|
32,
|
||||||
|
100788,
|
||||||
|
420,
|
||||||
|
1,
|
||||||
|
1,
|
||||||
|
81663,
|
||||||
|
32,
|
||||||
|
59498,
|
||||||
|
32,
|
||||||
|
20142,
|
||||||
|
32,
|
||||||
|
24588,
|
||||||
|
32,
|
||||||
|
20744,
|
||||||
|
32,
|
||||||
|
25933,
|
||||||
|
32,
|
||||||
|
24623,
|
||||||
|
32,
|
||||||
|
43053543,
|
||||||
|
10,
|
||||||
|
53384111,
|
||||||
|
14333,
|
||||||
|
10,
|
||||||
|
43574283,
|
||||||
|
26308,
|
||||||
|
10,
|
||||||
|
16000,
|
||||||
|
100,
|
||||||
|
16000,
|
||||||
|
100,
|
||||||
|
962335,
|
||||||
|
18,
|
||||||
|
2780678,
|
||||||
|
6,
|
||||||
|
442008,
|
||||||
|
1,
|
||||||
|
52538055,
|
||||||
|
3756,
|
||||||
|
18,
|
||||||
|
267929,
|
||||||
|
18,
|
||||||
|
76433006,
|
||||||
|
8868,
|
||||||
|
18,
|
||||||
|
52948122,
|
||||||
|
18,
|
||||||
|
1995836,
|
||||||
|
36,
|
||||||
|
3227919,
|
||||||
|
12,
|
||||||
|
901022,
|
||||||
|
1,
|
||||||
|
166917843,
|
||||||
|
4307,
|
||||||
|
36,
|
||||||
|
284546,
|
||||||
|
36,
|
||||||
|
158221314,
|
||||||
|
26549,
|
||||||
|
36,
|
||||||
|
74698472,
|
||||||
|
36,
|
||||||
|
333849714,
|
||||||
|
1,
|
||||||
|
254006273,
|
||||||
|
72,
|
||||||
|
2174038,
|
||||||
|
72,
|
||||||
|
2261318,
|
||||||
|
64571,
|
||||||
|
4,
|
||||||
|
207616,
|
||||||
|
8310,
|
||||||
|
4,
|
||||||
|
1293828,
|
||||||
|
28716,
|
||||||
|
63,
|
||||||
|
0,
|
||||||
|
1,
|
||||||
|
1006041,
|
||||||
|
43623,
|
||||||
|
251,
|
||||||
|
0,
|
||||||
|
1,
|
||||||
|
100181,
|
||||||
|
726,
|
||||||
|
719,
|
||||||
|
0,
|
||||||
|
1,
|
||||||
|
100181,
|
||||||
|
726,
|
||||||
|
719,
|
||||||
|
0,
|
||||||
|
1,
|
||||||
|
100181,
|
||||||
|
726,
|
||||||
|
719,
|
||||||
|
0,
|
||||||
|
1,
|
||||||
|
107878,
|
||||||
|
680,
|
||||||
|
0,
|
||||||
|
1,
|
||||||
|
95336,
|
||||||
|
1,
|
||||||
|
281145,
|
||||||
|
18848,
|
||||||
|
0,
|
||||||
|
1,
|
||||||
|
180194,
|
||||||
|
159,
|
||||||
|
1,
|
||||||
|
1,
|
||||||
|
158519,
|
||||||
|
8942,
|
||||||
|
0,
|
||||||
|
1,
|
||||||
|
159378,
|
||||||
|
8813,
|
||||||
|
0,
|
||||||
|
1,
|
||||||
|
107490,
|
||||||
|
3298,
|
||||||
|
1,
|
||||||
|
106057,
|
||||||
|
655,
|
||||||
|
1,
|
||||||
|
1964219,
|
||||||
|
24520,
|
||||||
|
3
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"minFeeRefScriptCostPerByte": 15,
|
||||||
|
"drepDeposit": {
|
||||||
|
"__bigint": "1000000000000"
|
||||||
|
},
|
||||||
|
"govActionDeposit": {
|
||||||
|
"__bigint": "1000000000"
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user