@rosen-bridge/extended-minimum-fee 0.0.0
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/CHANGELOG.md +1 -0
- package/README.md +41 -0
- package/dist/errors.d.ts +4 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +6 -0
- package/dist/extendedMinimumFeeBox.d.ts +12 -0
- package/dist/extendedMinimumFeeBox.d.ts.map +1 -0
- package/dist/extendedMinimumFeeBox.js +34 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +6 -0
- package/dist/minimumFeeBoxBuilder.d.ts +54 -0
- package/dist/minimumFeeBoxBuilder.d.ts.map +1 -0
- package/dist/minimumFeeBoxBuilder.js +138 -0
- package/dist/utils.d.ts +22 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +73 -0
- package/package.json +46 -0
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# @rosen-bridge/extended-minimum-fee
|
package/README.md
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# @rosen-bridge/extended-minimum-fee
|
|
2
|
+
|
|
3
|
+
## Table of contents
|
|
4
|
+
|
|
5
|
+
- [Introduction](#introduction)
|
|
6
|
+
- [Installation](#installation)
|
|
7
|
+
- [Usage](#usage)
|
|
8
|
+
|
|
9
|
+
## Introduction
|
|
10
|
+
|
|
11
|
+
`@rosen-bridge/extended-minimum-fee` Typescript package to build and get minimum fee of the bridge for supported tokens from blockchain
|
|
12
|
+
|
|
13
|
+
## Installation
|
|
14
|
+
|
|
15
|
+
npm:
|
|
16
|
+
|
|
17
|
+
```sh
|
|
18
|
+
npm i @rosen-bridge/extended-minimum-fee
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
yarn:
|
|
22
|
+
|
|
23
|
+
```sh
|
|
24
|
+
yarn add @rosen-bridge/extended-minimum-fee
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## Usage
|
|
28
|
+
|
|
29
|
+
Here's a basic example of how to use this package:
|
|
30
|
+
|
|
31
|
+
```typescript
|
|
32
|
+
import {
|
|
33
|
+
ExtendedMinimumFeeBox,
|
|
34
|
+
MinimumFeeExplorerNetwork,
|
|
35
|
+
} from '@rosen-bridge/extended-minimum-fee';
|
|
36
|
+
|
|
37
|
+
const network = new MinimumFeeExplorerNetwork('URL');
|
|
38
|
+
const minimumFeeBox = new ExtendedMinimumFeeBox('TOKEN_ID', 'NFT', network);
|
|
39
|
+
await minimumFeeBox.fetchBox();
|
|
40
|
+
const builder = minimumFeeBox.toBuilder();
|
|
41
|
+
```
|
package/dist/errors.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../lib/errors.ts"],"names":[],"mappings":"AAAA,qBAAa,aAAc,SAAQ,KAAK;gBAC1B,GAAG,EAAE,MAAM;CAGxB"}
|
package/dist/errors.js
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export class InvalidConfig extends Error {
|
|
2
|
+
constructor(msg) {
|
|
3
|
+
super('InvalidConfig: ' + msg);
|
|
4
|
+
}
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vbGliL2Vycm9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sYUFBYyxTQUFRLEtBQUs7SUFDdEMsWUFBWSxHQUFXO1FBQ3JCLEtBQUssQ0FBQyxpQkFBaUIsR0FBRyxHQUFHLENBQUMsQ0FBQztJQUNqQyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgSW52YWxpZENvbmZpZyBleHRlbmRzIEVycm9yIHtcbiAgY29uc3RydWN0b3IobXNnOiBzdHJpbmcpIHtcbiAgICBzdXBlcignSW52YWxpZENvbmZpZzogJyArIG1zZyk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { AbstractLogger } from '@rosen-bridge/abstract-logger';
|
|
2
|
+
import { AbstractMinimumFeeNetwork, MinimumFeeBox } from '@rosen-bridge/minimum-fee';
|
|
3
|
+
import { MinimumFeeBoxBuilder } from './minimumFeeBoxBuilder';
|
|
4
|
+
export declare class ExtendedMinimumFeeBox extends MinimumFeeBox {
|
|
5
|
+
constructor(tokenId: string, minimumFeeNFT: string, network: AbstractMinimumFeeNetwork, logger?: AbstractLogger);
|
|
6
|
+
/**
|
|
7
|
+
* generates a MinimumFeeBoxBuilder using current box
|
|
8
|
+
* note that 'height' parameter of builder won't be set
|
|
9
|
+
*/
|
|
10
|
+
toBuilder: () => MinimumFeeBoxBuilder;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=extendedMinimumFeeBox.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extendedMinimumFeeBox.d.ts","sourceRoot":"","sources":["../lib/extendedMinimumFeeBox.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAE/D,OAAO,EACL,yBAAyB,EACzB,aAAa,EAEd,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAG9D,qBAAa,qBAAsB,SAAQ,aAAa;gBAEpD,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,yBAAyB,EAClC,MAAM,CAAC,EAAE,cAAc;IAKzB;;;OAGG;IACH,SAAS,QAAO,oBAAoB,CA+BlC;CACH"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { Address, ErgoTree, NetworkPrefix } from 'ergo-lib-wasm-nodejs';
|
|
2
|
+
import JsonBigInt from '@rosen-bridge/json-bigint';
|
|
3
|
+
import { MinimumFeeBox, MinimumFeeConfig, } from '@rosen-bridge/minimum-fee';
|
|
4
|
+
import { MinimumFeeBoxBuilder } from './minimumFeeBoxBuilder';
|
|
5
|
+
import { decodeRegister } from './utils';
|
|
6
|
+
export class ExtendedMinimumFeeBox extends MinimumFeeBox {
|
|
7
|
+
constructor(tokenId, minimumFeeNFT, network, logger) {
|
|
8
|
+
super(tokenId, minimumFeeNFT, network, decodeRegister, logger);
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* generates a MinimumFeeBoxBuilder using current box
|
|
12
|
+
* note that 'height' parameter of builder won't be set
|
|
13
|
+
*/
|
|
14
|
+
toBuilder = () => {
|
|
15
|
+
if (!this.box)
|
|
16
|
+
throw Error(`Box is not fetched yet`);
|
|
17
|
+
const builder = new MinimumFeeBoxBuilder(this.minimumFeeNFT, Address.recreate_from_ergo_tree(ErgoTree.from_base16_bytes(this.box.ergoTree)).to_base58(NetworkPrefix.Mainnet))
|
|
18
|
+
.setValue(this.box.value)
|
|
19
|
+
.setToken(this.tokenId);
|
|
20
|
+
this.getConfigs().forEach((fee) => {
|
|
21
|
+
this.logger.debug(`Extracted fee config from box [${this.box.boxId}]: ${JsonBigInt.stringify(fee)}`);
|
|
22
|
+
const chainFee = new MinimumFeeConfig();
|
|
23
|
+
Object.keys(fee.heights).forEach((chain) => {
|
|
24
|
+
if (Object.hasOwn(fee.configs, chain))
|
|
25
|
+
chainFee.setChainConfig(chain, fee.heights[chain], fee.configs[chain]);
|
|
26
|
+
else
|
|
27
|
+
chainFee.setChainConfig(chain, fee.heights[chain], undefined);
|
|
28
|
+
});
|
|
29
|
+
builder.addConfig(chainFee);
|
|
30
|
+
});
|
|
31
|
+
return builder;
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5kZWRNaW5pbXVtRmVlQm94LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vbGliL2V4dGVuZGVkTWluaW11bUZlZUJveC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUd4RSxPQUFPLFVBQVUsTUFBTSwyQkFBMkIsQ0FBQztBQUNuRCxPQUFPLEVBRUwsYUFBYSxFQUNiLGdCQUFnQixHQUNqQixNQUFNLDJCQUEyQixDQUFDO0FBRW5DLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzlELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFekMsTUFBTSxPQUFPLHFCQUFzQixTQUFRLGFBQWE7SUFDdEQsWUFDRSxPQUFlLEVBQ2YsYUFBcUIsRUFDckIsT0FBa0MsRUFDbEMsTUFBdUI7UUFFdkIsS0FBSyxDQUFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsU0FBUyxHQUFHLEdBQXlCLEVBQUU7UUFDckMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHO1lBQUUsTUFBTSxLQUFLLENBQUMsd0JBQXdCLENBQUMsQ0FBQztRQUVyRCxNQUFNLE9BQU8sR0FBRyxJQUFJLG9CQUFvQixDQUN0QyxJQUFJLENBQUMsYUFBYSxFQUNsQixPQUFPLENBQUMsdUJBQXVCLENBQzdCLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUM5QyxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQ25DO2FBQ0UsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDO2FBQ3hCLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFMUIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ2hDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUNmLGtDQUFrQyxJQUFJLENBQUMsR0FBSSxDQUFDLEtBQUssTUFBTSxVQUFVLENBQUMsU0FBUyxDQUN6RSxHQUFHLENBQ0osRUFBRSxDQUNKLENBQUM7WUFDRixNQUFNLFFBQVEsR0FBRyxJQUFJLGdCQUFnQixFQUFFLENBQUM7WUFDeEMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7Z0JBQ3pDLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQztvQkFDbkMsUUFBUSxDQUFDLGNBQWMsQ0FDckIsS0FBSyxFQUNMLEdBQUcsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQ2xCLEdBQUcsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQ25CLENBQUM7O29CQUNDLFFBQVEsQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFDckUsQ0FBQyxDQUFDLENBQUM7WUFDSCxPQUFPLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzlCLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQyxDQUFDO0NBQ0giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZGRyZXNzLCBFcmdvVHJlZSwgTmV0d29ya1ByZWZpeCB9IGZyb20gJ2VyZ28tbGliLXdhc20tbm9kZWpzJztcblxuaW1wb3J0IHsgQWJzdHJhY3RMb2dnZXIgfSBmcm9tICdAcm9zZW4tYnJpZGdlL2Fic3RyYWN0LWxvZ2dlcic7XG5pbXBvcnQgSnNvbkJpZ0ludCBmcm9tICdAcm9zZW4tYnJpZGdlL2pzb24tYmlnaW50JztcbmltcG9ydCB7XG4gIEFic3RyYWN0TWluaW11bUZlZU5ldHdvcmssXG4gIE1pbmltdW1GZWVCb3gsXG4gIE1pbmltdW1GZWVDb25maWcsXG59IGZyb20gJ0Byb3Nlbi1icmlkZ2UvbWluaW11bS1mZWUnO1xuXG5pbXBvcnQgeyBNaW5pbXVtRmVlQm94QnVpbGRlciB9IGZyb20gJy4vbWluaW11bUZlZUJveEJ1aWxkZXInO1xuaW1wb3J0IHsgZGVjb2RlUmVnaXN0ZXIgfSBmcm9tICcuL3V0aWxzJztcblxuZXhwb3J0IGNsYXNzIEV4dGVuZGVkTWluaW11bUZlZUJveCBleHRlbmRzIE1pbmltdW1GZWVCb3gge1xuICBjb25zdHJ1Y3RvcihcbiAgICB0b2tlbklkOiBzdHJpbmcsXG4gICAgbWluaW11bUZlZU5GVDogc3RyaW5nLFxuICAgIG5ldHdvcms6IEFic3RyYWN0TWluaW11bUZlZU5ldHdvcmssXG4gICAgbG9nZ2VyPzogQWJzdHJhY3RMb2dnZXIsXG4gICkge1xuICAgIHN1cGVyKHRva2VuSWQsIG1pbmltdW1GZWVORlQsIG5ldHdvcmssIGRlY29kZVJlZ2lzdGVyLCBsb2dnZXIpO1xuICB9XG5cbiAgLyoqXG4gICAqIGdlbmVyYXRlcyBhIE1pbmltdW1GZWVCb3hCdWlsZGVyIHVzaW5nIGN1cnJlbnQgYm94XG4gICAqICBub3RlIHRoYXQgJ2hlaWdodCcgcGFyYW1ldGVyIG9mIGJ1aWxkZXIgd29uJ3QgYmUgc2V0XG4gICAqL1xuICB0b0J1aWxkZXIgPSAoKTogTWluaW11bUZlZUJveEJ1aWxkZXIgPT4ge1xuICAgIGlmICghdGhpcy5ib3gpIHRocm93IEVycm9yKGBCb3ggaXMgbm90IGZldGNoZWQgeWV0YCk7XG5cbiAgICBjb25zdCBidWlsZGVyID0gbmV3IE1pbmltdW1GZWVCb3hCdWlsZGVyKFxuICAgICAgdGhpcy5taW5pbXVtRmVlTkZULFxuICAgICAgQWRkcmVzcy5yZWNyZWF0ZV9mcm9tX2VyZ29fdHJlZShcbiAgICAgICAgRXJnb1RyZWUuZnJvbV9iYXNlMTZfYnl0ZXModGhpcy5ib3guZXJnb1RyZWUpLFxuICAgICAgKS50b19iYXNlNTgoTmV0d29ya1ByZWZpeC5NYWlubmV0KSxcbiAgICApXG4gICAgICAuc2V0VmFsdWUodGhpcy5ib3gudmFsdWUpXG4gICAgICAuc2V0VG9rZW4odGhpcy50b2tlbklkKTtcblxuICAgIHRoaXMuZ2V0Q29uZmlncygpLmZvckVhY2goKGZlZSkgPT4ge1xuICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgIGBFeHRyYWN0ZWQgZmVlIGNvbmZpZyBmcm9tIGJveCBbJHt0aGlzLmJveCEuYm94SWR9XTogJHtKc29uQmlnSW50LnN0cmluZ2lmeShcbiAgICAgICAgICBmZWUsXG4gICAgICAgICl9YCxcbiAgICAgICk7XG4gICAgICBjb25zdCBjaGFpbkZlZSA9IG5ldyBNaW5pbXVtRmVlQ29uZmlnKCk7XG4gICAgICBPYmplY3Qua2V5cyhmZWUuaGVpZ2h0cykuZm9yRWFjaCgoY2hhaW4pID0+IHtcbiAgICAgICAgaWYgKE9iamVjdC5oYXNPd24oZmVlLmNvbmZpZ3MsIGNoYWluKSlcbiAgICAgICAgICBjaGFpbkZlZS5zZXRDaGFpbkNvbmZpZyhcbiAgICAgICAgICAgIGNoYWluLFxuICAgICAgICAgICAgZmVlLmhlaWdodHNbY2hhaW5dLFxuICAgICAgICAgICAgZmVlLmNvbmZpZ3NbY2hhaW5dLFxuICAgICAgICAgICk7XG4gICAgICAgIGVsc2UgY2hhaW5GZWUuc2V0Q2hhaW5Db25maWcoY2hhaW4sIGZlZS5oZWlnaHRzW2NoYWluXSwgdW5kZWZpbmVkKTtcbiAgICAgIH0pO1xuICAgICAgYnVpbGRlci5hZGRDb25maWcoY2hhaW5GZWUpO1xuICAgIH0pO1xuICAgIHJldHVybiBidWlsZGVyO1xuICB9O1xufVxuIl19
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,cAAc,SAAS,CAAC;AACxB,cAAc,2BAA2B,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export * from './errors';
|
|
2
|
+
export { MinimumFeeBoxBuilder } from './minimumFeeBoxBuilder';
|
|
3
|
+
export { ExtendedMinimumFeeBox } from './extendedMinimumFeeBox';
|
|
4
|
+
export * from './utils';
|
|
5
|
+
export * from '@rosen-bridge/minimum-fee';
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9saWIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxVQUFVLENBQUM7QUFDekIsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDOUQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDaEUsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYywyQkFBMkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZXJyb3JzJztcbmV4cG9ydCB7IE1pbmltdW1GZWVCb3hCdWlsZGVyIH0gZnJvbSAnLi9taW5pbXVtRmVlQm94QnVpbGRlcic7XG5leHBvcnQgeyBFeHRlbmRlZE1pbmltdW1GZWVCb3ggfSBmcm9tICcuL2V4dGVuZGVkTWluaW11bUZlZUJveCc7XG5leHBvcnQgKiBmcm9tICcuL3V0aWxzJztcbmV4cG9ydCAqIGZyb20gJ0Byb3Nlbi1icmlkZ2UvbWluaW11bS1mZWUnO1xuIl19
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { BoxValue, ErgoBoxCandidate } from 'ergo-lib-wasm-nodejs';
|
|
2
|
+
import { Fee, MinimumFeeConfig } from '@rosen-bridge/minimum-fee';
|
|
3
|
+
export declare class MinimumFeeBoxBuilder {
|
|
4
|
+
protected fees: Array<Fee>;
|
|
5
|
+
protected boxValue: BoxValue;
|
|
6
|
+
protected boxHeight: number;
|
|
7
|
+
protected tokenId: string;
|
|
8
|
+
protected minimumFeeNFT: string;
|
|
9
|
+
protected address: string;
|
|
10
|
+
constructor(minimumFeeNFT: string, address: string);
|
|
11
|
+
/**
|
|
12
|
+
* adds a feeConfig
|
|
13
|
+
* @param feeConfig
|
|
14
|
+
*/
|
|
15
|
+
addConfig: (feeConfig: MinimumFeeConfig) => MinimumFeeBoxBuilder;
|
|
16
|
+
/**
|
|
17
|
+
* removes a config by index
|
|
18
|
+
* @param index
|
|
19
|
+
*/
|
|
20
|
+
removeConfig: (index: number) => MinimumFeeBoxBuilder;
|
|
21
|
+
/**
|
|
22
|
+
* gets current feeConfig
|
|
23
|
+
*/
|
|
24
|
+
getConfigs: () => Array<Fee>;
|
|
25
|
+
/**
|
|
26
|
+
* sets ErgoBox Erg value
|
|
27
|
+
* @param nanoErg
|
|
28
|
+
* @returns
|
|
29
|
+
*/
|
|
30
|
+
setValue: (nanoErg: bigint) => MinimumFeeBoxBuilder;
|
|
31
|
+
/**
|
|
32
|
+
* sets ErgoBox creationheight
|
|
33
|
+
* @param currentHeight
|
|
34
|
+
*/
|
|
35
|
+
setHeight: (currentHeight: number) => MinimumFeeBoxBuilder;
|
|
36
|
+
/**
|
|
37
|
+
* sets config token id
|
|
38
|
+
* @param tokenId
|
|
39
|
+
*/
|
|
40
|
+
setToken: (tokenId: string) => MinimumFeeBoxBuilder;
|
|
41
|
+
/**
|
|
42
|
+
* validates some of specified configs
|
|
43
|
+
*/
|
|
44
|
+
protected validate: () => void;
|
|
45
|
+
/**
|
|
46
|
+
* removes heights and configs of all chains which don't have any configs
|
|
47
|
+
*/
|
|
48
|
+
prune: () => MinimumFeeBoxBuilder;
|
|
49
|
+
/**
|
|
50
|
+
* validates specified configs and builds ErgoBoxCandidate of config box using them
|
|
51
|
+
*/
|
|
52
|
+
build: () => ErgoBoxCandidate;
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=minimumFeeBoxBuilder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"minimumFeeBoxBuilder.d.ts","sourceRoot":"","sources":["../lib/minimumFeeBoxBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,QAAQ,EAMR,gBAAgB,EACjB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,GAAG,EACH,gBAAgB,EAEjB,MAAM,2BAA2B,CAAC;AAKnC,qBAAa,oBAAoB;IAC/B,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IAC3B,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC7B,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC;IAC5B,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,aAAa,EAAE,MAAM,CAAC;IAChC,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC;gBAEd,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAMlD;;;OAGG;IACH,SAAS,GAAI,WAAW,gBAAgB,KAAG,oBAAoB,CAG7D;IAEF;;;OAGG;IACH,YAAY,GAAI,OAAO,MAAM,KAAG,oBAAoB,CAGlD;IAEF;;OAEG;IACH,UAAU,QAAO,KAAK,CAAC,GAAG,CAAC,CAEzB;IAEF;;;;OAIG;IACH,QAAQ,GAAI,SAAS,MAAM,KAAG,oBAAoB,CAGhD;IAEF;;;OAGG;IACH,SAAS,GAAI,eAAe,MAAM,KAAG,oBAAoB,CAGvD;IAEF;;;OAGG;IACH,QAAQ,GAAI,SAAS,MAAM,KAAG,oBAAoB,CAGhD;IAEF;;OAEG;IACH,SAAS,CAAC,QAAQ,QAAO,IAAI,CA6B3B;IAEF;;OAEG;IACH,KAAK,QAAO,oBAAoB,CA8B9B;IAEF;;OAEG;IACH,KAAK,QAAO,gBAAgB,CAiC1B;CACH"}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
import { Address, BoxValue, Contract, ErgoBoxCandidateBuilder, I64, TokenAmount, TokenId, } from 'ergo-lib-wasm-nodejs';
|
|
2
|
+
import { ERGO_NATIVE_TOKEN, } from '@rosen-bridge/minimum-fee';
|
|
3
|
+
import { InvalidConfig } from './errors';
|
|
4
|
+
import { feeToRegisterValues } from './utils';
|
|
5
|
+
export class MinimumFeeBoxBuilder {
|
|
6
|
+
fees;
|
|
7
|
+
boxValue;
|
|
8
|
+
boxHeight;
|
|
9
|
+
tokenId;
|
|
10
|
+
minimumFeeNFT;
|
|
11
|
+
address;
|
|
12
|
+
constructor(minimumFeeNFT, address) {
|
|
13
|
+
this.fees = [];
|
|
14
|
+
this.minimumFeeNFT = minimumFeeNFT;
|
|
15
|
+
this.address = address;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* adds a feeConfig
|
|
19
|
+
* @param feeConfig
|
|
20
|
+
*/
|
|
21
|
+
addConfig = (feeConfig) => {
|
|
22
|
+
this.fees.push(feeConfig.getConfig());
|
|
23
|
+
return this;
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* removes a config by index
|
|
27
|
+
* @param index
|
|
28
|
+
*/
|
|
29
|
+
removeConfig = (index) => {
|
|
30
|
+
this.fees.splice(index, 1);
|
|
31
|
+
return this;
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* gets current feeConfig
|
|
35
|
+
*/
|
|
36
|
+
getConfigs = () => {
|
|
37
|
+
return this.fees;
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* sets ErgoBox Erg value
|
|
41
|
+
* @param nanoErg
|
|
42
|
+
* @returns
|
|
43
|
+
*/
|
|
44
|
+
setValue = (nanoErg) => {
|
|
45
|
+
this.boxValue = BoxValue.from_i64(I64.from_str(nanoErg.toString()));
|
|
46
|
+
return this;
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* sets ErgoBox creationheight
|
|
50
|
+
* @param currentHeight
|
|
51
|
+
*/
|
|
52
|
+
setHeight = (currentHeight) => {
|
|
53
|
+
this.boxHeight = currentHeight;
|
|
54
|
+
return this;
|
|
55
|
+
};
|
|
56
|
+
/**
|
|
57
|
+
* sets config token id
|
|
58
|
+
* @param tokenId
|
|
59
|
+
*/
|
|
60
|
+
setToken = (tokenId) => {
|
|
61
|
+
this.tokenId = tokenId;
|
|
62
|
+
return this;
|
|
63
|
+
};
|
|
64
|
+
/**
|
|
65
|
+
* validates some of specified configs
|
|
66
|
+
*/
|
|
67
|
+
validate = () => {
|
|
68
|
+
if (!this.boxValue)
|
|
69
|
+
throw new InvalidConfig(`Box value argument is not defined`);
|
|
70
|
+
if (!this.boxHeight)
|
|
71
|
+
throw new InvalidConfig(`Box creation height argument is not defined`);
|
|
72
|
+
if (!this.tokenId)
|
|
73
|
+
throw new InvalidConfig(`Config token id is not defined`);
|
|
74
|
+
if (this.fees.length === 0)
|
|
75
|
+
throw new InvalidConfig(`No config added. Please add at least one config`);
|
|
76
|
+
for (let i = 0; i < this.fees.length - 1; i++) {
|
|
77
|
+
const chains = Object.keys(this.fees[0].heights);
|
|
78
|
+
chains.forEach((chain) => {
|
|
79
|
+
if (!this.fees[i + 1].heights[chain])
|
|
80
|
+
throw new InvalidConfig(`Expected chain [${chain}] at index [${i + 1}]`);
|
|
81
|
+
if (this.fees[i + 1].heights[chain] < this.fees[i].heights[chain])
|
|
82
|
+
throw new InvalidConfig(`All heights for a chain should be ascending. Heights of chain [${chain}] at indexes [${i},${i + 1}] are invalid [${this.fees[i + 1].heights[chain]} < ${this.fees[i].heights[chain]}]`);
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
/**
|
|
87
|
+
* removes heights and configs of all chains which don't have any configs
|
|
88
|
+
*/
|
|
89
|
+
prune = () => {
|
|
90
|
+
const activeChains = [];
|
|
91
|
+
for (let i = 0; i < this.fees.length; i++) {
|
|
92
|
+
const chains = Object.keys(this.fees[i].heights);
|
|
93
|
+
chains.forEach((chain) => {
|
|
94
|
+
const feeConfig = this.fees[i].configs[chain];
|
|
95
|
+
if (feeConfig &&
|
|
96
|
+
(feeConfig.bridgeFee !== -1n ||
|
|
97
|
+
feeConfig.networkFee !== -1n ||
|
|
98
|
+
feeConfig.rsnRatio !== -1n ||
|
|
99
|
+
feeConfig.rsnRatioDivisor !== -1n ||
|
|
100
|
+
feeConfig.feeRatio !== -1n))
|
|
101
|
+
activeChains.push(chain);
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
for (let i = 0; i < this.fees.length; i++) {
|
|
105
|
+
const chains = Object.keys(this.fees[i].heights);
|
|
106
|
+
chains.forEach((chain) => {
|
|
107
|
+
if (!activeChains.includes(chain)) {
|
|
108
|
+
delete this.fees[i].heights[chain];
|
|
109
|
+
delete this.fees[i].configs[chain];
|
|
110
|
+
}
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
return this;
|
|
114
|
+
};
|
|
115
|
+
/**
|
|
116
|
+
* validates specified configs and builds ErgoBoxCandidate of config box using them
|
|
117
|
+
*/
|
|
118
|
+
build = () => {
|
|
119
|
+
this.validate();
|
|
120
|
+
// add box value, address and creation height
|
|
121
|
+
const boxBuilder = new ErgoBoxCandidateBuilder(this.boxValue, Contract.new(Address.from_base58(this.address).to_ergo_tree()), this.boxHeight);
|
|
122
|
+
// add box tokens
|
|
123
|
+
boxBuilder.add_token(TokenId.from_str(this.minimumFeeNFT), TokenAmount.from_i64(I64.from_str('1')));
|
|
124
|
+
if (this.tokenId !== ERGO_NATIVE_TOKEN)
|
|
125
|
+
boxBuilder.add_token(TokenId.from_str(this.tokenId), TokenAmount.from_i64(I64.from_str('1')));
|
|
126
|
+
// generate register values
|
|
127
|
+
const registerValues = feeToRegisterValues(this.fees);
|
|
128
|
+
// add box registers
|
|
129
|
+
boxBuilder.set_register_value(4, registerValues.R4);
|
|
130
|
+
boxBuilder.set_register_value(5, registerValues.R5);
|
|
131
|
+
boxBuilder.set_register_value(6, registerValues.R6);
|
|
132
|
+
boxBuilder.set_register_value(7, registerValues.R7);
|
|
133
|
+
boxBuilder.set_register_value(8, registerValues.R8);
|
|
134
|
+
boxBuilder.set_register_value(9, registerValues.R9);
|
|
135
|
+
return boxBuilder.build();
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWluaW11bUZlZUJveEJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9saWIvbWluaW11bUZlZUJveEJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLE9BQU8sRUFDUCxRQUFRLEVBQ1IsUUFBUSxFQUNSLHVCQUF1QixFQUN2QixHQUFHLEVBQ0gsV0FBVyxFQUNYLE9BQU8sR0FFUixNQUFNLHNCQUFzQixDQUFDO0FBRTlCLE9BQU8sRUFHTCxpQkFBaUIsR0FDbEIsTUFBTSwyQkFBMkIsQ0FBQztBQUVuQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUU5QyxNQUFNLE9BQU8sb0JBQW9CO0lBQ3JCLElBQUksQ0FBYTtJQUNqQixRQUFRLENBQVc7SUFDbkIsU0FBUyxDQUFTO0lBQ2xCLE9BQU8sQ0FBUztJQUNoQixhQUFhLENBQVM7SUFDdEIsT0FBTyxDQUFTO0lBRTFCLFlBQVksYUFBcUIsRUFBRSxPQUFlO1FBQ2hELElBQUksQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ2YsSUFBSSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUM7UUFDbkMsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7SUFDekIsQ0FBQztJQUVEOzs7T0FHRztJQUNILFNBQVMsR0FBRyxDQUFDLFNBQTJCLEVBQXdCLEVBQUU7UUFDaEUsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUM7UUFDdEMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDLENBQUM7SUFFRjs7O09BR0c7SUFDSCxZQUFZLEdBQUcsQ0FBQyxLQUFhLEVBQXdCLEVBQUU7UUFDckQsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzNCLE9BQU8s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QUMsa0JBQWtCLENBQUMsQ0FBQyxFQUFFLGNBQWMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNwRCxVQUFVLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxFQUFFLGNBQWMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNwRCxVQUFVLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxFQUFFLGNBQWMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNwRCxVQUFVLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxFQUFFLGNBQWMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNwRCxVQUFVLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxFQUFFLGNBQWMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUVwRCxPQUFPLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUM1QixDQUFDLENBQUM7Q0FDSCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFkZHJlc3MsXG4gIEJveFZhbHVlLFxuICBDb250cmFjdCxcbiAgRXJnb0JveENhbmRpZGF0ZUJ1aWxkZXIsXG4gIEk2NCxcbiAgVG9rZW5BbW91bnQsXG4gIFRva2VuSWQsXG4gIEVyZ29Cb3hDYW5kaWRhdGUsXG59IGZyb20gJ2VyZ28tbGliLXdhc20tbm9kZWpzJztcblxuaW1wb3J0IHtcbiAgRmVlLFxuICBNaW5pbXVtRmVlQ29uZmlnLFxuICBFUkdPX05BVElWRV9UT0tFTixcbn0gZnJvbSAnQHJvc2VuLWJyaWRnZS9taW5pbXVtLWZlZSc7XG5cbmltcG9ydCB7IEludmFsaWRDb25maWcgfSBmcm9tICcuL2Vycm9ycyc7XG5pbXBvcnQgeyBmZWVUb1JlZ2lzdGVyVmFsdWVzIH0gZnJvbSAnLi91dGlscyc7XG5cbmV4cG9ydCBjbGFzcyBNaW5pbXVtRmVlQm94QnVpbGRlciB7XG4gIHByb3RlY3RlZCBmZWVzOiBBcnJheTxGZWU+O1xuICBwcm90ZWN0ZWQgYm94VmFsdWU6IEJveFZhbHVlO1xuICBwcm90ZWN0ZWQgYm94SGVpZ2h0OiBudW1iZXI7XG4gIHByb3RlY3RlZCB0b2tlbklkOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBtaW5pbXVtRmVlTkZUOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBhZGRyZXNzOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IobWluaW11bUZlZU5GVDogc3RyaW5nLCBhZGRyZXNzOiBzdHJpbmcpIHtcbiAgICB0aGlzLmZlZXMgPSBbXTtcbiAgICB0aGlzLm1pbmltdW1GZWVORlQgPSBtaW5pbXVtRmVlTkZUO1xuICAgIHRoaXMuYWRkcmVzcyA9IGFkZHJlc3M7XG4gIH1cblxuICAvKipcbiAgICogYWRkcyBhIGZlZUNvbmZpZ1xuICAgKiBAcGFyYW0gZmVlQ29uZmlnXG4gICAqL1xuICBhZGRDb25maWcgPSAoZmVlQ29uZmlnOiBNaW5pbXVtRmVlQ29uZmlnKTogTWluaW11bUZlZUJveEJ1aWxkZXIgPT4ge1xuICAgIHRoaXMuZmVlcy5wdXNoKGZlZUNvbmZpZy5nZXRDb25maWcoKSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH07XG5cbiAgLyoqXG4gICAqIHJlbW92ZXMgYSBjb25maWcgYnkgaW5kZXhcbiAgICogQHBhcmFtIGluZGV4XG4gICAqL1xuICByZW1vdmVDb25maWcgPSAoaW5kZXg6IG51bWJlcik6IE1pbmltdW1GZWVCb3hCdWlsZGVyID0+IHtcbiAgICB0aGlzLmZlZXMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfTtcblxuICAvKipcbiAgICogZ2V0cyBjdXJyZW50IGZlZUNvbmZpZ1xuICAgKi9cbiAgZ2V0Q29uZmlncyA9ICgpOiBBcnJheTxGZWU+ID0+IHtcbiAgICByZXR1cm4gdGhpcy5mZWVzO1xuICB9O1xuXG4gIC8qKlxuICAgKiBzZXRzIEVyZ29Cb3ggRXJnIHZhbHVlXG4gICAqIEBwYXJhbSBuYW5vRXJnXG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBzZXRWYWx1ZSA9IChuYW5vRXJnOiBiaWdpbnQpOiBNaW5pbXVtRmVlQm94QnVpbGRlciA9PiB7XG4gICAgdGhpcy5ib3hWYWx1ZSA9IEJveFZhbHVlLmZyb21faTY0KEk2NC5mcm9tX3N0cihuYW5vRXJnLnRvU3RyaW5nKCkpKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfTtcblxuICAvKipcbiAgICogc2V0cyBFcmdvQm94IGNyZWF0aW9uaGVpZ2h0XG4gICAqIEBwYXJhbSBjdXJyZW50SGVpZ2h0XG4gICAqL1xuICBzZXRIZWlnaHQgPSAoY3VycmVudEhlaWdodDogbnVtYmVyKTogTWluaW11bUZlZUJveEJ1aWxkZXIgPT4ge1xuICAgIHRoaXMuYm94SGVpZ2h0ID0gY3VycmVudEhlaWdodDtcbiAgICByZXR1cm4gdGhpcztcbiAgfTtcblxuICAvKipcbiAgICogc2V0cyBjb25maWcgdG9rZW4gaWRcbiAgICogQHBhcmFtIHRva2VuSWRcbiAgICovXG4gIHNldFRva2VuID0gKHRva2VuSWQ6IHN0cmluZyk6IE1pbmltdW1GZWVCb3hCdWlsZGVyID0+IHtcbiAgICB0aGlzLnRva2VuSWQgPSB0b2tlbklkO1xuICAgIHJldHVybiB0aGlzO1xuICB9O1xuXG4gIC8qKlxuICAgKiB2YWxpZGF0ZXMgc29tZSBvZiBzcGVjaWZpZWQgY29uZmlnc1xuICAgKi9cbiAgcHJvdGVjdGVkIHZhbGlkYXRlID0gKCk6IHZvaWQgPT4ge1xuICAgIGlmICghdGhpcy5ib3hWYWx1ZSlcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQ29uZmlnKGBCb3ggdmFsdWUgYXJndW1lbnQgaXMgbm90IGRlZmluZWRgKTtcbiAgICBpZiAoIXRoaXMuYm94SGVpZ2h0KVxuICAgICAgdGhyb3cgbmV3IEludmFsaWRDb25maWcoYEJveCBjcmVhdGlvbiBoZWlnaHQgYXJndW1lbnQgaXMgbm90IGRlZmluZWRgKTtcbiAgICBpZiAoIXRoaXMudG9rZW5JZClcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQ29uZmlnKGBDb25maWcgdG9rZW4gaWQgaXMgbm90IGRlZmluZWRgKTtcbiAgICBpZiAodGhpcy5mZWVzLmxlbmd0aCA9PT0gMClcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQ29uZmlnKFxuICAgICAgICBgTm8gY29uZmlnIGFkZGVkLiBQbGVhc2UgYWRkIGF0IGxlYXN0IG9uZSBjb25maWdgLFxuICAgICAgKTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5mZWVzLmxlbmd0aCAtIDE7IGkrKykge1xuICAgICAgY29uc3QgY2hhaW5zID0gT2JqZWN0LmtleXModGhpcy5mZWVzWzBdLmhlaWdodHMpO1xuICAgICAgY2hhaW5zLmZvckVhY2goKGNoYWluKSA9PiB7XG4gICAgICAgIGlmICghdGhpcy5mZWVzW2kgKyAxXS5oZWlnaHRzW2NoYWluXSlcbiAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZENvbmZpZyhcbiAgICAgICAgICAgIGBFeHBlY3RlZCBjaGFpbiBbJHtjaGFpbn1dIGF0IGluZGV4IFske2kgKyAxfV1gLFxuICAgICAgICAgICk7XG4gICAgICAgIGlmICh0aGlzLmZlZXNbaSArIDFdLmhlaWdodHNbY2hhaW5dIDwgdGhpcy5mZWVzW2ldLmhlaWdodHNbY2hhaW5dKVxuICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkQ29uZmlnKFxuICAgICAgICAgICAgYEFsbCBoZWlnaHRzIGZvciBhIGNoYWluIHNob3VsZCBiZSBhc2NlbmRpbmcuIEhlaWdodHMgb2YgY2hhaW4gWyR7Y2hhaW59XSBhdCBpbmRleGVzIFske2l9LCR7XG4gICAgICAgICAgICAgIGkgKyAxXG4gICAgICAgICAgICB9XSBhcmUgaW52YWxpZCBbJHt0aGlzLmZlZXNbaSArIDFdLmhlaWdodHNbY2hhaW5dfSA8ICR7XG4gICAgICAgICAgICAgIHRoaXMuZmVlc1tpXS5oZWlnaHRzW2NoYWluXVxuICAgICAgICAgICAgfV1gLFxuICAgICAgICAgICk7XG4gICAgICB9KTtcbiAgICB9XG4gIH07XG5cbiAgLyoqXG4gICAqIHJlbW92ZXMgaGVpZ2h0cyBhbmQgY29uZmlncyBvZiBhbGwgY2hhaW5zIHdoaWNoIGRvbid0IGhhdmUgYW55IGNvbmZpZ3NcbiAgICovXG4gIHBydW5lID0gKCk6IE1pbmltdW1GZWVCb3hCdWlsZGVyID0+IHtcbiAgICBjb25zdCBhY3RpdmVDaGFpbnM6IHN0cmluZ1tdID0gW107XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuZmVlcy5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3QgY2hhaW5zID0gT2JqZWN0LmtleXModGhpcy5mZWVzW2ldLmhlaWdodHMpO1xuICAgICAgY2hhaW5zLmZvckVhY2goKGNoYWluKSA9PiB7XG4gICAgICAgIGNvbnN0IGZlZUNvbmZpZyA9IHRoaXMuZmVlc1tpXS5jb25maWdzW2NoYWluXTtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGZlZUNvbmZpZyAmJlxuICAgICAgICAgIChmZWVDb25maWcuYnJpZGdlRmVlICE9PSAtMW4gfHxcbiAgICAgICAgICAgIGZlZUNvbmZpZy5uZXR3b3JrRmVlICE9PSAtMW4gfHxcbiAgICAgICAgICAgIGZlZUNvbmZpZy5yc25SYXRpbyAhPT0gLTFuIHx8XG4gICAgICAgICAgICBmZWVDb25maWcucnNuUmF0aW9EaXZpc29yICE9PSAtMW4gfHxcbiAgICAgICAgICAgIGZlZUNvbmZpZy5mZWVSYXRpbyAhPT0gLTFuKVxuICAgICAgICApXG4gICAgICAgICAgYWN0aXZlQ2hhaW5zLnB1c2goY2hhaW4pO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmZlZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IGNoYWlucyA9IE9iamVjdC5rZXlzKHRoaXMuZmVlc1tpXS5oZWlnaHRzKTtcbiAgICAgIGNoYWlucy5mb3JFYWNoKChjaGFpbikgPT4ge1xuICAgICAgICBpZiAoIWFjdGl2ZUNoYWlucy5pbmNsdWRlcyhjaGFpbikpIHtcbiAgICAgICAgICBkZWxldGUgdGhpcy5mZWVzW2ldLmhlaWdodHNbY2hhaW5dO1xuICAgICAgICAgIGRlbGV0ZSB0aGlzLmZlZXNbaV0uY29uZmlnc1tjaGFpbl07XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzO1xuICB9O1xuXG4gIC8qKlxuICAgKiB2YWxpZGF0ZXMgc3BlY2lmaWVkIGNvbmZpZ3MgYW5kIGJ1aWxkcyBFcmdvQm94Q2FuZGlkYXRlIG9mIGNvbmZpZyBib3ggdXNpbmcgdGhlbVxuICAgKi9cbiAgYnVpbGQgPSAoKTogRXJnb0JveENhbmRpZGF0ZSA9PiB7XG4gICAgdGhpcy52YWxpZGF0ZSgpO1xuXG4gICAgLy8gYWRkIGJveCB2YWx1ZSwgYWRkcmVzcyBhbmQgY3JlYXRpb24gaGVpZ2h0XG4gICAgY29uc3QgYm94QnVpbGRlciA9IG5ldyBFcmdvQm94Q2FuZGlkYXRlQnVpbGRlcihcbiAgICAgIHRoaXMuYm94VmFsdWUsXG4gICAgICBDb250cmFjdC5uZXcoQWRkcmVzcy5mcm9tX2Jhc2U1OCh0aGlzLmFkZHJlc3MpLnRvX2VyZ29fdHJlZSgpKSxcbiAgICAgIHRoaXMuYm94SGVpZ2h0LFxuICAgICk7XG5cbiAgICAvLyBhZGQgYm94IHRva2Vuc1xuICAgIGJveEJ1aWxkZXIuYWRkX3Rva2VuKFxuICAgICAgVG9rZW5JZC5mcm9tX3N0cih0aGlzLm1pbmltdW1GZWVORlQpLFxuICAgICAgVG9rZW5BbW91bnQuZnJvbV9pNjQoSTY0LmZyb21fc3RyKCcxJykpLFxuICAgICk7XG4gICAgaWYgKHRoaXMudG9rZW5JZCAhPT0gRVJHT19OQVRJVkVfVE9LRU4pXG4gICAgICBib3hCdWlsZGVyLmFkZF90b2tlbihcbiAgICAgICAgVG9rZW5JZC5mcm9tX3N0cih0aGlzLnRva2VuSWQpLFxuICAgICAgICBUb2tlbkFtb3VudC5mcm9tX2k2NChJNjQuZnJvbV9zdHIoJzEnKSksXG4gICAgICApO1xuXG4gICAgLy8gZ2VuZXJhdGUgcmVnaXN0ZXIgdmFsdWVzXG4gICAgY29uc3QgcmVnaXN0ZXJWYWx1ZXMgPSBmZWVUb1JlZ2lzdGVyVmFsdWVzKHRoaXMuZmVlcyk7XG5cbiAgICAvLyBhZGQgYm94IHJlZ2lzdGVyc1xuICAgIGJveEJ1aWxkZXIuc2V0X3JlZ2lzdGVyX3ZhbHVlKDQsIHJlZ2lzdGVyVmFsdWVzLlI0KTtcbiAgICBib3hCdWlsZGVyLnNldF9yZWdpc3Rlcl92YWx1ZSg1LCByZWdpc3RlclZhbHVlcy5SNSk7XG4gICAgYm94QnVpbGRlci5zZXRfcmVnaXN0ZXJfdmFsdWUoNiwgcmVnaXN0ZXJWYWx1ZXMuUjYpO1xuICAgIGJveEJ1aWxkZXIuc2V0X3JlZ2lzdGVyX3ZhbHVlKDcsIHJlZ2lzdGVyVmFsdWVzLlI3KTtcbiAgICBib3hCdWlsZGVyLnNldF9yZWdpc3Rlcl92YWx1ZSg4LCByZWdpc3RlclZhbHVlcy5SOCk7XG4gICAgYm94QnVpbGRlci5zZXRfcmVnaXN0ZXJfdmFsdWUoOSwgcmVnaXN0ZXJWYWx1ZXMuUjkpO1xuXG4gICAgcmV0dXJuIGJveEJ1aWxkZXIuYnVpbGQoKTtcbiAgfTtcbn1cbiJdfQ==
|
package/dist/utils.d.ts
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Constant } from 'ergo-lib-wasm-nodejs';
|
|
2
|
+
import { Fee } from '@rosen-bridge/minimum-fee';
|
|
3
|
+
/**
|
|
4
|
+
* converts fee config to register values
|
|
5
|
+
* @param fees
|
|
6
|
+
* @returns
|
|
7
|
+
*/
|
|
8
|
+
export declare const feeToRegisterValues: (fees: Array<Fee>) => {
|
|
9
|
+
R4: Constant;
|
|
10
|
+
R5: Constant;
|
|
11
|
+
R6: Constant;
|
|
12
|
+
R7: Constant;
|
|
13
|
+
R8: Constant;
|
|
14
|
+
R9: Constant;
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* decodes register values to its original type
|
|
18
|
+
* @param register
|
|
19
|
+
* @returns
|
|
20
|
+
*/
|
|
21
|
+
export declare const decodeRegister: (register: string) => any;
|
|
22
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../lib/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEhD,OAAO,EAAE,GAAG,EAAE,MAAM,2BAA2B,CAAC;AAEhD;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,GAAI,MAAM,KAAK,CAAC,GAAG,CAAC;;;;;;;CA0DnD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,cAAc,GAAI,UAAU,MAAM,QAE9C,CAAC"}
|
package/dist/utils.js
ADDED
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { Constant } from 'ergo-lib-wasm-nodejs';
|
|
2
|
+
/**
|
|
3
|
+
* converts fee config to register values
|
|
4
|
+
* @param fees
|
|
5
|
+
* @returns
|
|
6
|
+
*/
|
|
7
|
+
export const feeToRegisterValues = (fees) => {
|
|
8
|
+
// extract chains
|
|
9
|
+
const chains = [];
|
|
10
|
+
fees.forEach((fee) => {
|
|
11
|
+
Object.keys(fee.heights).forEach((feeChain) => {
|
|
12
|
+
if (!chains.includes(feeChain))
|
|
13
|
+
chains.push(feeChain);
|
|
14
|
+
});
|
|
15
|
+
});
|
|
16
|
+
chains.sort();
|
|
17
|
+
// extract configs
|
|
18
|
+
const heights = [];
|
|
19
|
+
const bridgeFees = [];
|
|
20
|
+
const networkFees = [];
|
|
21
|
+
const rsnRatios = [];
|
|
22
|
+
const feeRatios = [];
|
|
23
|
+
fees.forEach((fee) => {
|
|
24
|
+
const heightsConfigs = [];
|
|
25
|
+
const bridgeFeesConfigs = [];
|
|
26
|
+
const networkFeesConfigs = [];
|
|
27
|
+
const rsnRatiosConfigs = [];
|
|
28
|
+
const feeRatiosConfigs = [];
|
|
29
|
+
chains.forEach((chain) => {
|
|
30
|
+
if (Object.hasOwn(fee.heights, chain))
|
|
31
|
+
heightsConfigs.push(fee.heights[chain]);
|
|
32
|
+
else
|
|
33
|
+
heightsConfigs.push(-1);
|
|
34
|
+
if (Object.hasOwn(fee.configs, chain)) {
|
|
35
|
+
bridgeFeesConfigs.push(fee.configs[chain].bridgeFee.toString());
|
|
36
|
+
networkFeesConfigs.push(fee.configs[chain].networkFee.toString());
|
|
37
|
+
rsnRatiosConfigs.push([
|
|
38
|
+
fee.configs[chain].rsnRatio.toString(),
|
|
39
|
+
fee.configs[chain].rsnRatioDivisor.toString(),
|
|
40
|
+
]);
|
|
41
|
+
feeRatiosConfigs.push(fee.configs[chain].feeRatio.toString());
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
bridgeFeesConfigs.push('-1');
|
|
45
|
+
networkFeesConfigs.push('-1');
|
|
46
|
+
rsnRatiosConfigs.push(['-1', '-1']);
|
|
47
|
+
feeRatiosConfigs.push('-1');
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
heights.push(heightsConfigs);
|
|
51
|
+
bridgeFees.push(bridgeFeesConfigs);
|
|
52
|
+
networkFees.push(networkFeesConfigs);
|
|
53
|
+
rsnRatios.push(rsnRatiosConfigs);
|
|
54
|
+
feeRatios.push(feeRatiosConfigs);
|
|
55
|
+
});
|
|
56
|
+
return {
|
|
57
|
+
R4: Constant.from_coll_coll_byte(chains.map((chain) => Buffer.from(chain))),
|
|
58
|
+
R5: Constant.from_js(heights),
|
|
59
|
+
R6: Constant.from_js(bridgeFees),
|
|
60
|
+
R7: Constant.from_js(networkFees),
|
|
61
|
+
R8: Constant.from_js(rsnRatios),
|
|
62
|
+
R9: Constant.from_js(feeRatios),
|
|
63
|
+
};
|
|
64
|
+
};
|
|
65
|
+
/**
|
|
66
|
+
* decodes register values to its original type
|
|
67
|
+
* @param register
|
|
68
|
+
* @returns
|
|
69
|
+
*/
|
|
70
|
+
export const decodeRegister = (register) => {
|
|
71
|
+
return Constant.decode_from_base16(register).to_js();
|
|
72
|
+
};
|
|
73
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9saWIvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBSWhEOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxDQUFDLElBQWdCLEVBQUUsRUFBRTtJQUN0RCxrQkFBa0I7SUFDbEIsTUFBTSxNQUFNLEdBQWtCLEVBQUUsQ0FBQztJQUNqQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7UUFDbkIsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDNUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDO2dCQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDeEQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUNILE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNkLG1CQUFtQjtJQUNuQixNQUFNLE9BQU8sR0FBeUIsRUFBRSxDQUFDO0lBQ3pDLE1BQU0sVUFBVSxHQUF5QixFQUFFLENBQUM7SUFDNUMsTUFBTSxXQUFXLEdBQXlCLEVBQUUsQ0FBQztJQUM3QyxNQUFNLFNBQVMsR0FBZ0MsRUFBRSxDQUFDO0lBQ2xELE1BQU0sU0FBUyxHQUF5QixFQUFFLENBQUM7SUFDM0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1FBQ25CLE1BQU0sY0FBYyxHQUFrQixFQUFFLENBQUM7UUFDekMsTUFBTSxpQkFBaUIsR0FBa0IsRUFBRSxDQUFDO1FBQzVDLE1BQU0sa0JBQWtCLEdBQWtCLEVBQUUsQ0FBQztRQUM3QyxNQUFNLGdCQUFnQixHQUF5QixFQUFFLENBQUM7UUFDbEQsTUFB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ImltcG9ydCB7IENvbnN0YW50IH0gZnJvbSAnZXJnby1saWItd2FzbS1ub2RlanMnO1xuXG5pbXBvcnQgeyBGZWUgfSBmcm9tICdAcm9zZW4tYnJpZGdlL21pbmltdW0tZmVlJztcblxuLyoqXG4gKiBjb252ZXJ0cyBmZWUgY29uZmlnIHRvIHJlZ2lzdGVyIHZhbHVlc1xuICogQHBhcmFtIGZlZXNcbiAqIEByZXR1cm5zXG4gKi9cbmV4cG9ydCBjb25zdCBmZWVUb1JlZ2lzdGVyVmFsdWVzID0gKGZlZXM6IEFycmF5PEZlZT4pID0+IHtcbiAgLy8gIGV4dHJhY3QgY2hhaW5zXG4gIGNvbnN0IGNoYWluczogQXJyYXk8c3RyaW5nPiA9IFtdO1xuICBmZWVzLmZvckVhY2goKGZlZSkgPT4ge1xuICAgIE9iamVjdC5rZXlzKGZlZS5oZWlnaHRzKS5mb3JFYWNoKChmZWVDaGFpbikgPT4ge1xuICAgICAgaWYgKCFjaGFpbnMuaW5jbHVkZXMoZmVlQ2hhaW4pKSBjaGFpbnMucHVzaChmZWVDaGFpbik7XG4gICAgfSk7XG4gIH0pO1xuICBjaGFpbnMuc29ydCgpO1xuICAvLyAgZXh0cmFjdCBjb25maWdzXG4gIGNvbnN0IGhlaWdodHM6IEFycmF5PEFycmF5PG51bWJlcj4+ID0gW107XG4gIGNvbnN0IGJyaWRnZUZlZXM6IEFycmF5PEFycmF5PHN0cmluZz4+ID0gW107XG4gIGNvbnN0IG5ldHdvcmtGZWVzOiBBcnJheTxBcnJheTxzdHJpbmc+PiA9IFtdO1xuICBjb25zdCByc25SYXRpb3M6IEFycmF5PEFycmF5PEFycmF5PHN0cmluZz4+PiA9IFtdO1xuICBjb25zdCBmZWVSYXRpb3M6IEFycmF5PEFycmF5PHN0cmluZz4+ID0gW107XG4gIGZlZXMuZm9yRWFjaCgoZmVlKSA9PiB7XG4gICAgY29uc3QgaGVpZ2h0c0NvbmZpZ3M6IEFycmF5PG51bWJlcj4gPSBbXTtcbiAgICBjb25zdCBicmlkZ2VGZWVzQ29uZmlnczogQXJyYXk8c3RyaW5nPiA9IFtdO1xuICAgIGNvbnN0IG5ldHdvcmtGZWVzQ29uZmlnczogQXJyYXk8c3RyaW5nPiA9IFtdO1xuICAgIGNvbnN0IHJzblJhdGlvc0NvbmZpZ3M6IEFycmF5PEFycmF5PHN0cmluZz4+ID0gW107XG4gICAgY29uc3QgZmVlUmF0aW9zQ29uZmlnczogQXJyYXk8c3RyaW5nPiA9IFtdO1xuXG4gICAgY2hhaW5zLmZvckVhY2goKGNoYWluKSA9PiB7XG4gICAgICBpZiAoT2JqZWN0Lmhhc093bihmZWUuaGVpZ2h0cywgY2hhaW4pKVxuICAgICAgICBoZWlnaHRzQ29uZmlncy5wdXNoKGZlZS5oZWlnaHRzW2NoYWluXSk7XG4gICAgICBlbHNlIGhlaWdodHNDb25maWdzLnB1c2goLTEpO1xuXG4gICAgICBpZiAoT2JqZWN0Lmhhc093bihmZWUuY29uZmlncywgY2hhaW4pKSB7XG4gICAgICAgIGJyaWRnZUZlZXNDb25maWdzLnB1c2goZmVlLmNvbmZpZ3NbY2hhaW5dLmJyaWRnZUZlZS50b1N0cmluZygpKTtcbiAgICAgICAgbmV0d29ya0ZlZXNDb25maWdzLnB1c2goZmVlLmNvbmZpZ3NbY2hhaW5dLm5ldHdvcmtGZWUudG9TdHJpbmcoKSk7XG4gICAgICAgIHJzblJhdGlvc0NvbmZpZ3MucHVzaChbXG4gICAgICAgICAgZmVlLmNvbmZpZ3NbY2hhaW5dLnJzblJhdGlvLnRvU3RyaW5nKCksXG4gICAgICAgICAgZmVlLmNvbmZpZ3NbY2hhaW5dLnJzblJhdGlvRGl2aXNvci50b1N0cmluZygpLFxuICAgICAgICBdKTtcbiAgICAgICAgZmVlUmF0aW9zQ29uZmlncy5wdXNoKGZlZS5jb25maWdzW2NoYWluXS5mZWVSYXRpby50b1N0cmluZygpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGJyaWRnZUZlZXNDb25maWdzLnB1c2goJy0xJyk7XG4gICAgICAgIG5ldHdvcmtGZWVzQ29uZmlncy5wdXNoKCctMScpO1xuICAgICAgICByc25SYXRpb3NDb25maWdzLnB1c2goWyctMScsICctMSddKTtcbiAgICAgICAgZmVlUmF0aW9zQ29uZmlncy5wdXNoKCctMScpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaGVpZ2h0cy5wdXNoKGhlaWdodHNDb25maWdzKTtcbiAgICBicmlkZ2VGZWVzLnB1c2goYnJpZGdlRmVlc0NvbmZpZ3MpO1xuICAgIG5ldHdvcmtGZWVzLnB1c2gobmV0d29ya0ZlZXNDb25maWdzKTtcbiAgICByc25SYXRpb3MucHVzaChyc25SYXRpb3NDb25maWdzKTtcbiAgICBmZWVSYXRpb3MucHVzaChmZWVSYXRpb3NDb25maWdzKTtcbiAgfSk7XG5cbiAgcmV0dXJuIHtcbiAgICBSNDogQ29uc3RhbnQuZnJvbV9jb2xsX2NvbGxfYnl0ZShjaGFpbnMubWFwKChjaGFpbikgPT4gQnVmZmVyLmZyb20oY2hhaW4pKSksXG4gICAgUjU6IENvbnN0YW50LmZyb21fanMoaGVpZ2h0cyksXG4gICAgUjY6IENvbnN0YW50LmZyb21fanMoYnJpZGdlRmVlcyksXG4gICAgUjc6IENvbnN0YW50LmZyb21fanMobmV0d29ya0ZlZXMpLFxuICAgIFI4OiBDb25zdGFudC5mcm9tX2pzKHJzblJhdGlvcyksXG4gICAgUjk6IENvbnN0YW50LmZyb21fanMoZmVlUmF0aW9zKSxcbiAgfTtcbn07XG5cbi8qKlxuICogZGVjb2RlcyByZWdpc3RlciB2YWx1ZXMgdG8gaXRzIG9yaWdpbmFsIHR5cGVcbiAqIEBwYXJhbSByZWdpc3RlclxuICogQHJldHVybnNcbiAqL1xuZXhwb3J0IGNvbnN0IGRlY29kZVJlZ2lzdGVyID0gKHJlZ2lzdGVyOiBzdHJpbmcpID0+IHtcbiAgcmV0dXJuIENvbnN0YW50LmRlY29kZV9mcm9tX2Jhc2UxNihyZWdpc3RlcikudG9fanMoKTtcbn07XG4iXX0=
|
package/package.json
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@rosen-bridge/extended-minimum-fee",
|
|
3
|
+
"version": "0.0.0",
|
|
4
|
+
"description": "this project gets minimum fee of the bridge for supported tokens from blockchain",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"rosen"
|
|
7
|
+
],
|
|
8
|
+
"repository": {
|
|
9
|
+
"type": "git",
|
|
10
|
+
"url": "git+https://github.com/rosen-bridge/utils.git"
|
|
11
|
+
},
|
|
12
|
+
"license": "MIT",
|
|
13
|
+
"author": "Rosen Team",
|
|
14
|
+
"type": "module",
|
|
15
|
+
"main": "dist/index.js",
|
|
16
|
+
"types": "dist/index.d.ts",
|
|
17
|
+
"directories": {
|
|
18
|
+
"lib": "lib",
|
|
19
|
+
"test": "tests"
|
|
20
|
+
},
|
|
21
|
+
"files": [
|
|
22
|
+
"dist",
|
|
23
|
+
"CHANGELOG.md"
|
|
24
|
+
],
|
|
25
|
+
"scripts": {
|
|
26
|
+
"build": "tsc --build tsconfig.build.json",
|
|
27
|
+
"coverage": "npm run test -- --coverage",
|
|
28
|
+
"lint": "eslint --fix . && npm run prettify",
|
|
29
|
+
"lint:check": "eslint . && npm run prettify:check",
|
|
30
|
+
"prettify": "prettier --write . --ignore-path ../../../.gitignore",
|
|
31
|
+
"prettify:check": "prettier --check . --ignore-path ../../../.gitignore",
|
|
32
|
+
"release": "npm run test && npm run build && npm publish --access public",
|
|
33
|
+
"test": "NODE_OPTIONS='--import tsx' vitest",
|
|
34
|
+
"type-check": "tsc --noEmit"
|
|
35
|
+
},
|
|
36
|
+
"dependencies": {
|
|
37
|
+
"@rosen-bridge/abstract-logger": "^4.0.0",
|
|
38
|
+
"@rosen-bridge/json-bigint": "^1.1.0",
|
|
39
|
+
"@rosen-bridge/minimum-fee": "^3.1.2",
|
|
40
|
+
"ergo-lib-wasm-nodejs": "^0.24.1"
|
|
41
|
+
},
|
|
42
|
+
"engines": {
|
|
43
|
+
"node": ">=22.18.0",
|
|
44
|
+
"npm": "11.6.2"
|
|
45
|
+
}
|
|
46
|
+
}
|