@rosen-bridge/collateral 0.1.0-ad18b004
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 +7 -0
- package/README.md +25 -0
- package/dist/collateral.d.ts +41 -0
- package/dist/collateral.d.ts.map +1 -0
- package/dist/collateral.js +78 -0
- package/dist/collateralBuilder.d.ts +35 -0
- package/dist/collateralBuilder.d.ts.map +1 -0
- package/dist/collateralBuilder.js +75 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +3 -0
- package/package.json +43 -0
package/CHANGELOG.md
ADDED
package/README.md
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# @rosen-bridge/collateral
|
|
2
|
+
|
|
3
|
+
## Table of contents
|
|
4
|
+
|
|
5
|
+
- [Introduction](#introduction)
|
|
6
|
+
- [Installation](#installation)
|
|
7
|
+
|
|
8
|
+
## Introduction
|
|
9
|
+
|
|
10
|
+
provides a structured and reusable way to work with collateral boxes.
|
|
11
|
+
The first class is responsible for reading and exposing all collateral box properties in a clear and consistent manner. The second class is a builder that constructs the final collateral box based on those properties.
|
|
12
|
+
|
|
13
|
+
## Installation
|
|
14
|
+
|
|
15
|
+
npm:
|
|
16
|
+
|
|
17
|
+
```sh
|
|
18
|
+
npm i @rosen-bridge/collateral
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
yarn:
|
|
22
|
+
|
|
23
|
+
```sh
|
|
24
|
+
yarn add @rosen-bridge/collateral
|
|
25
|
+
```
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { AbstractLogger } from '@rosen-bridge/abstract-logger';
|
|
2
|
+
import * as ergoLib from 'ergo-lib-wasm-nodejs';
|
|
3
|
+
import { CollateralBoxBuilder } from './collateralBuilder';
|
|
4
|
+
export declare class CollateralBox {
|
|
5
|
+
protected box: ergoLib.ErgoBox;
|
|
6
|
+
private logger;
|
|
7
|
+
private readonly wid;
|
|
8
|
+
private readonly rsnAmount;
|
|
9
|
+
constructor(box: ergoLib.ErgoBox, logger?: AbstractLogger);
|
|
10
|
+
/**
|
|
11
|
+
* Creates an instance of CollateralBoxBuilder using current instance's properties
|
|
12
|
+
*
|
|
13
|
+
* @return {CollateralBoxBuilder}
|
|
14
|
+
*/
|
|
15
|
+
toBuilder: () => CollateralBoxBuilder;
|
|
16
|
+
/**
|
|
17
|
+
* @returns ErgoTree of the box
|
|
18
|
+
*/
|
|
19
|
+
getErgoTree: () => string;
|
|
20
|
+
/**
|
|
21
|
+
* @returns Owner WID extracted from R4
|
|
22
|
+
*/
|
|
23
|
+
getOwnerWid: () => Uint8Array;
|
|
24
|
+
/**
|
|
25
|
+
* @returns RSN amount stored in R5
|
|
26
|
+
*/
|
|
27
|
+
getRsnAmount: () => bigint;
|
|
28
|
+
/**
|
|
29
|
+
* @returns X-AWC NFT token ID
|
|
30
|
+
*/
|
|
31
|
+
getAwcNftId: () => string;
|
|
32
|
+
/**
|
|
33
|
+
* @returns RSN token ID
|
|
34
|
+
*/
|
|
35
|
+
getRsnId: () => string;
|
|
36
|
+
/**
|
|
37
|
+
* @returns Amount of RSN tokens locked in the box as collateral
|
|
38
|
+
*/
|
|
39
|
+
getLockedRsnAmount: () => bigint;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=collateral.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collateral.d.ts","sourceRoot":"","sources":["../lib/collateral.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAe,MAAM,+BAA+B,CAAC;AAC5E,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAE3D,qBAAa,aAAa;IAKtB,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO;IAC9B,OAAO,CAAC,MAAM;IALhB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAa;IACjC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;gBAGvB,GAAG,EAAE,OAAO,CAAC,OAAO,EACtB,MAAM,GAAE,cAAkC;IA4BpD;;;;OAIG;IACH,SAAS,QAAO,oBAAoB,CAUlC;IAEF;;OAEG;IACH,WAAW,QAAO,MAAM,CAEtB;IACF;;OAEG;IACH,WAAW,QAAO,UAAU,CAE1B;IAEF;;OAEG;IACH,YAAY,QAAO,MAAM,CAEvB;IACF;;OAEG;IACH,WAAW,QAAO,MAAM,CAEtB;IAEF;;OAEG;IACH,QAAQ,QAAO,MAAM,CAEnB;IACF;;OAEG;IACH,kBAAkB,QAAO,MAAM,CAG7B;CACH"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { DummyLogger } from '@rosen-bridge/abstract-logger';
|
|
2
|
+
import { CollateralBoxBuilder } from './collateralBuilder';
|
|
3
|
+
export class CollateralBox {
|
|
4
|
+
box;
|
|
5
|
+
logger;
|
|
6
|
+
wid;
|
|
7
|
+
rsnAmount;
|
|
8
|
+
constructor(box, logger = new DummyLogger()) {
|
|
9
|
+
this.box = box;
|
|
10
|
+
this.logger = logger;
|
|
11
|
+
try {
|
|
12
|
+
const widReg = this.box.register_value(4);
|
|
13
|
+
if (!widReg) {
|
|
14
|
+
throw new Error('missing R4 register');
|
|
15
|
+
}
|
|
16
|
+
this.wid = widReg.to_byte_array();
|
|
17
|
+
const rsnAmount = this.box.register_value(5);
|
|
18
|
+
if (!rsnAmount) {
|
|
19
|
+
throw new Error('missing R5 register');
|
|
20
|
+
}
|
|
21
|
+
this.rsnAmount = BigInt(rsnAmount.to_i64().to_str());
|
|
22
|
+
if (this.box.tokens().len() < 1) {
|
|
23
|
+
throw new Error('expected at least 1 token (X-AWC NFT)');
|
|
24
|
+
}
|
|
25
|
+
this.logger.debug(`CollateralBox created wid=[${Buffer.from(this.wid).toString('hex')}] Rsn=[${this.rsnAmount}]`);
|
|
26
|
+
}
|
|
27
|
+
catch (e) {
|
|
28
|
+
throw Error(`Failed to create CollateralBox: ${e}`);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Creates an instance of CollateralBoxBuilder using current instance's properties
|
|
33
|
+
*
|
|
34
|
+
* @return {CollateralBoxBuilder}
|
|
35
|
+
*/
|
|
36
|
+
toBuilder = () => {
|
|
37
|
+
return new CollateralBoxBuilder(this.getErgoTree(), this.getAwcNftId(), this.getRsnAmount(), this.getRsnId(), this.getLockedRsnAmount(), this.wid, this.logger);
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* @returns ErgoTree of the box
|
|
41
|
+
*/
|
|
42
|
+
getErgoTree = () => {
|
|
43
|
+
return this.box.ergo_tree().to_base16_bytes();
|
|
44
|
+
};
|
|
45
|
+
/**
|
|
46
|
+
* @returns Owner WID extracted from R4
|
|
47
|
+
*/
|
|
48
|
+
getOwnerWid = () => {
|
|
49
|
+
return this.wid;
|
|
50
|
+
};
|
|
51
|
+
/**
|
|
52
|
+
* @returns RSN amount stored in R5
|
|
53
|
+
*/
|
|
54
|
+
getRsnAmount = () => {
|
|
55
|
+
return this.rsnAmount;
|
|
56
|
+
};
|
|
57
|
+
/**
|
|
58
|
+
* @returns X-AWC NFT token ID
|
|
59
|
+
*/
|
|
60
|
+
getAwcNftId = () => {
|
|
61
|
+
return this.box.tokens().get(0).id().to_str();
|
|
62
|
+
};
|
|
63
|
+
/**
|
|
64
|
+
* @returns RSN token ID
|
|
65
|
+
*/
|
|
66
|
+
getRsnId = () => {
|
|
67
|
+
return this.box.tokens().get(1).id().to_str();
|
|
68
|
+
};
|
|
69
|
+
/**
|
|
70
|
+
* @returns Amount of RSN tokens locked in the box as collateral
|
|
71
|
+
*/
|
|
72
|
+
getLockedRsnAmount = () => {
|
|
73
|
+
if (this.box.tokens().len() < 2)
|
|
74
|
+
return 0n;
|
|
75
|
+
return BigInt(this.box.tokens().get(1).amount().as_i64().to_str());
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGF0ZXJhbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL2xpYi9jb2xsYXRlcmFsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBa0IsV0FBVyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFNUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFM0QsTUFBTSxPQUFPLGFBQWE7SUFLWjtJQUNGO0lBTE8sR0FBRyxDQUFhO0lBQ2hCLFNBQVMsQ0FBUztJQUVuQyxZQUNZLEdBQW9CLEVBQ3RCLFNBQXlCLElBQUksV0FBVyxFQUFFO1FBRHhDLFFBQUcsR0FBSCxHQUFHLENBQWlCO1FBQ3RCLFdBQU0sR0FBTixNQUFNLENBQW9DO1FBRWxELElBQUksQ0FBQztZQUNILE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDWixNQUFNLElBQUksS0FBSyxDQUFDLHFCQUFxQixDQUFDLENBQUM7WUFDekMsQ0FBQztZQUNELElBQUksQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBRWxDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzdDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDZixNQUFNLElBQUksS0FBSyxDQUFDLHFCQUFxQixDQUFDLENBQUM7WUFDekMsQ0FBQztZQUNELElBQUksQ0FBQyxTQUFTLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1lBRXJELElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDaEMsTUFBTSxJQUFJLEtBQUssQ0FBQyx1Q0FBdUMsQ0FBQyxDQUFDO1lBQzNELENBQUM7WUFFRCxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FDZiw4QkFBOEIsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUMxRCxLQUFLLENBQ04sVUFBVSxJQUFJLENBQUMsU0FBUyxHQUFHLENBQzdCLENBQUM7UUFDSixDQUFDO1FBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNYLE1BQU0sS0FBSyxDQUFDLG1DQUFtQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3RELENBQUM7SUFDSCxDQUFDO0lBQ0Q7Ozs7T0FJRztJQUNILFNBQVMsR0FBRyxHQUF5QixFQUFFO1FBQ3JDLE9BQU8sSUFBSSxvQkFBb0IsQ0FDN0IsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUNsQixJQUFJLENBQUMsV0FBVyxFQUFFLEVBQ2xCLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFDbkIsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUNmLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxFQUN6QixJQUFJLENBQUMsR0FBRyxFQUNSLElBQUksQ0FBQyxNQUFNLENBQ1osQ0FBQztJQUNKLENBQUMsQ0FBQztJQUVGOztPQUVHO0lBQ0gsV0FBVyxHQUFHLEdBQVcsRUFBRTtRQUN6QixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDaEQsQ0FBQyxDQUFDO0lBQ0Y7O09BRUc7SUFDSCxXQUFXLEdBQUcsR0FBZSxFQUFFO1FBQzdCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQztJQUNsQixDQUFDLENBQUM7SUFFRjs7T0FFRztJQUNILFlBQVksR0FBRyxHQUFXLEVBQUU7UUFDMUIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUMsQ0FBQztJQUNGOztPQUVHO0lBQ0gsV0FBVyxHQUFHLEdBQVcsRUFBRTtRQUN6QixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ2hELENBQUMsQ0FBQztJQUVGOztPQUVHO0lBQ0gsUUFBUSxHQUFHLEdBQVcsRUFBRTtRQUN0QixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ2hELENBQUMsQ0FBQztJQUNGOztPQUVHO0lBQ0gsa0JBQWtCLEdBQUcsR0FBVyxFQUFFO1FBQ2hDLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDO1lBQUUsT0FBTyxFQUFFLENBQUM7UUFDM0MsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUNyRSxDQUFDLENBQUM7Q0FDSCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFic3RyYWN0TG9nZ2VyLCBEdW1teUxvZ2dlciB9IGZyb20gJ0Byb3Nlbi1icmlkZ2UvYWJzdHJhY3QtbG9nZ2VyJztcbmltcG9ydCAqIGFzIGVyZ29MaWIgZnJvbSAnZXJnby1saWItd2FzbS1ub2RlanMnO1xuaW1wb3J0IHsgQ29sbGF0ZXJhbEJveEJ1aWxkZXIgfSBmcm9tICcuL2NvbGxhdGVyYWxCdWlsZGVyJztcblxuZXhwb3J0IGNsYXNzIENvbGxhdGVyYWxCb3gge1xuICBwcml2YXRlIHJlYWRvbmx5IHdpZDogVWludDhBcnJheTtcbiAgcHJpdmF0ZSByZWFkb25seSByc25BbW91bnQ6IGJpZ2ludDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgYm94OiBlcmdvTGliLkVyZ29Cb3gsXG4gICAgcHJpdmF0ZSBsb2dnZXI6IEFic3RyYWN0TG9nZ2VyID0gbmV3IER1bW15TG9nZ2VyKCksXG4gICkge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCB3aWRSZWcgPSB0aGlzLmJveC5yZWdpc3Rlcl92YWx1ZSg0KTtcbiAgICAgIGlmICghd2lkUmVnKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignbWlzc2luZyBSNCByZWdpc3RlcicpO1xuICAgICAgfVxuICAgICAgdGhpcy53aWQgPSB3aWRSZWcudG9fYnl0ZV9hcnJheSgpO1xuXG4gICAgICBjb25zdCByc25BbW91bnQgPSB0aGlzLmJveC5yZWdpc3Rlcl92YWx1ZSg1KTtcbiAgICAgIGlmICghcnNuQW1vdW50KSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignbWlzc2luZyBSNSByZWdpc3RlcicpO1xuICAgICAgfVxuICAgICAgdGhpcy5yc25BbW91bnQgPSBCaWdJbnQocnNuQW1vdW50LnRvX2k2NCgpLnRvX3N0cigpKTtcblxuICAgICAgaWYgKHRoaXMuYm94LnRva2VucygpLmxlbigpIDwgMSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2V4cGVjdGVkIGF0IGxlYXN0IDEgdG9rZW4gKFgtQVdDIE5GVCknKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgIGBDb2xsYXRlcmFsQm94IGNyZWF0ZWQgd2lkPVske0J1ZmZlci5mcm9tKHRoaXMud2lkKS50b1N0cmluZyhcbiAgICAgICAgICAnaGV4JyxcbiAgICAgICAgKX1dIFJzbj1bJHt0aGlzLnJzbkFtb3VudH1dYCxcbiAgICAgICk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhyb3cgRXJyb3IoYEZhaWxlZCB0byBjcmVhdGUgQ29sbGF0ZXJhbEJveDogJHtlfWApO1xuICAgIH1cbiAgfVxuICAvKipcbiAgICogQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiBDb2xsYXRlcmFsQm94QnVpbGRlciB1c2luZyBjdXJyZW50IGluc3RhbmNlJ3MgcHJvcGVydGllc1xuICAgKlxuICAgKiBAcmV0dXJuIHtDb2xsYXRlcmFsQm94QnVpbGRlcn1cbiAgICovXG4gIHRvQnVpbGRlciA9ICgpOiBDb2xsYXRlcmFsQm94QnVpbGRlciA9PiB7XG4gICAgcmV0dXJuIG5ldyBDb2xsYXRlcmFsQm94QnVpbGRlcihcbiAgICAgIHRoaXMuZ2V0RXJnb1RyZWUoKSxcbiAgICAgIHRoaXMuZ2V0QXdjTmZ0SWQoKSxcbiAgICAgIHRoaXMuZ2V0UnNuQW1vdW50KCksXG4gICAgICB0aGlzLmdldFJzbklkKCksXG4gICAgICB0aGlzLmdldExvY2tlZFJzbkFtb3VudCgpLFxuICAgICAgdGhpcy53aWQsXG4gICAgICB0aGlzLmxvZ2dlcixcbiAgICApO1xuICB9O1xuXG4gIC8qKlxuICAgKiBAcmV0dXJucyBFcmdvVHJlZSBvZiB0aGUgYm94XG4gICAqL1xuICBnZXRFcmdvVHJlZSA9ICgpOiBzdHJpbmcgPT4ge1xuICAgIHJldHVybiB0aGlzLmJveC5lcmdvX3RyZWUoKS50b19iYXNlMTZfYnl0ZXMoKTtcbiAgfTtcbiAgLyoqXG4gICAqIEByZXR1cm5zIE93bmVyIFdJRCBleHRyYWN0ZWQgZnJvbSBSNFxuICAgKi9cbiAgZ2V0T3duZXJXaWQgPSAoKTogVWludDhBcnJheSA9PiB7XG4gICAgcmV0dXJuIHRoaXMud2lkO1xuICB9O1xuXG4gIC8qKlxuICAgKiBAcmV0dXJucyBSU04gYW1vdW50IHN0b3JlZCBpbiBSNVxuICAgKi9cbiAgZ2V0UnNuQW1vdW50ID0gKCk6IGJpZ2ludCA9PiB7XG4gICAgcmV0dXJuIHRoaXMucnNuQW1vdW50O1xuICB9O1xuICAvKipcbiAgICogQHJldHVybnMgWC1BV0MgTkZUIHRva2VuIElEXG4gICAqL1xuICBnZXRBd2NOZnRJZCA9ICgpOiBzdHJpbmcgPT4ge1xuICAgIHJldHVybiB0aGlzLmJveC50b2tlbnMoKS5nZXQoMCkuaWQoKS50b19zdHIoKTtcbiAgfTtcblxuICAvKipcbiAgICogQHJldHVybnMgUlNOIHRva2VuIElEXG4gICAqL1xuICBnZXRSc25JZCA9ICgpOiBzdHJpbmcgPT4ge1xuICAgIHJldHVybiB0aGlzLmJveC50b2tlbnMoKS5nZXQoMSkuaWQoKS50b19zdHIoKTtcbiAgfTtcbiAgLyoqXG4gICAqIEByZXR1cm5zIEFtb3VudCBvZiBSU04gdG9rZW5zIGxvY2tlZCBpbiB0aGUgYm94IGFzIGNvbGxhdGVyYWxcbiAgICovXG4gIGdldExvY2tlZFJzbkFtb3VudCA9ICgpOiBiaWdpbnQgPT4ge1xuICAgIGlmICh0aGlzLmJveC50b2tlbnMoKS5sZW4oKSA8IDIpIHJldHVybiAwbjtcbiAgICByZXR1cm4gQmlnSW50KHRoaXMuYm94LnRva2VucygpLmdldCgxKS5hbW91bnQoKS5hc19pNjQoKS50b19zdHIoKSk7XG4gIH07XG59XG4iXX0=
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { AbstractLogger } from '@rosen-bridge/abstract-logger';
|
|
2
|
+
import * as ergoLib from 'ergo-lib-wasm-nodejs';
|
|
3
|
+
export declare class CollateralBoxBuilder {
|
|
4
|
+
private collateralErgoTree;
|
|
5
|
+
private awcNftId;
|
|
6
|
+
private rsnAmount;
|
|
7
|
+
private lockedRsnTokenId;
|
|
8
|
+
private lockedRsnTokenAmount;
|
|
9
|
+
private wid;
|
|
10
|
+
private logger;
|
|
11
|
+
private value?;
|
|
12
|
+
private height?;
|
|
13
|
+
constructor(collateralErgoTree: string, awcNftId: string, rsnAmount: bigint, lockedRsnTokenId: string, lockedRsnTokenAmount: bigint | undefined, wid: Uint8Array, logger?: AbstractLogger);
|
|
14
|
+
/**
|
|
15
|
+
* increase a watcher permits (increase locked RSN amount)
|
|
16
|
+
* @param {bigint} amount rwt amount to allocate to the new watcher
|
|
17
|
+
* @returns Updated CollateralBoxBuilder instance
|
|
18
|
+
*/
|
|
19
|
+
lockRsn: (amount: bigint) => CollateralBoxBuilder;
|
|
20
|
+
/**
|
|
21
|
+
* Return permits a watcher (decrease locked RSN amount)
|
|
22
|
+
* @param {bigint} amount rwt amount to return from the watcher
|
|
23
|
+
* @returns Updated CollateralBoxBuilder instance
|
|
24
|
+
*/
|
|
25
|
+
unlockRsn: (amount: bigint) => CollateralBoxBuilder;
|
|
26
|
+
/**
|
|
27
|
+
* creates a CollateralBox from the properties of this CollateralBoxBuilder instance
|
|
28
|
+
*
|
|
29
|
+
* @return {ergoLib.ErgoBoxCandidate}
|
|
30
|
+
*/
|
|
31
|
+
build: () => ergoLib.ErgoBoxCandidate;
|
|
32
|
+
setValue: (value: bigint) => void;
|
|
33
|
+
setHeight: (height: number) => void;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=collateralBuilder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collateralBuilder.d.ts","sourceRoot":"","sources":["../lib/collateralBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAe,MAAM,+BAA+B,CAAC;AAC5E,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAEhD,qBAAa,oBAAoB;IAK7B,OAAO,CAAC,kBAAkB;IAC1B,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,oBAAoB;IAC5B,OAAO,CAAC,GAAG;IACX,OAAO,CAAC,MAAM;IAVhB,OAAO,CAAC,KAAK,CAAC,CAAS;IACvB,OAAO,CAAC,MAAM,CAAC,CAAS;gBAGd,kBAAkB,EAAE,MAAM,EAC1B,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,gBAAgB,EAAE,MAAM,EACxB,oBAAoB,EAAE,MAAM,YAAK,EACjC,GAAG,EAAE,UAAU,EACf,MAAM,GAAE,cAAkC;IAGpD;;;;OAIG;IACH,OAAO,GAAI,QAAQ,MAAM,KAAG,oBAAoB,CAQ9C;IAEF;;;;OAIG;IACH,SAAS,GAAI,QAAQ,MAAM,KAAG,oBAAoB,CAahD;IAEF;;;;OAIG;IACH,KAAK,QAAO,OAAO,CAAC,gBAAgB,CAsClC;IAEF,QAAQ,GAAI,OAAO,MAAM,UAGvB;IAEF,SAAS,GAAI,QAAQ,MAAM,UAGzB;CACH"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { DummyLogger } from '@rosen-bridge/abstract-logger';
|
|
2
|
+
import * as ergoLib from 'ergo-lib-wasm-nodejs';
|
|
3
|
+
export class CollateralBoxBuilder {
|
|
4
|
+
collateralErgoTree;
|
|
5
|
+
awcNftId;
|
|
6
|
+
rsnAmount;
|
|
7
|
+
lockedRsnTokenId;
|
|
8
|
+
lockedRsnTokenAmount;
|
|
9
|
+
wid;
|
|
10
|
+
logger;
|
|
11
|
+
value;
|
|
12
|
+
height;
|
|
13
|
+
constructor(collateralErgoTree, awcNftId, rsnAmount, lockedRsnTokenId, lockedRsnTokenAmount = 0n, wid, logger = new DummyLogger()) {
|
|
14
|
+
this.collateralErgoTree = collateralErgoTree;
|
|
15
|
+
this.awcNftId = awcNftId;
|
|
16
|
+
this.rsnAmount = rsnAmount;
|
|
17
|
+
this.lockedRsnTokenId = lockedRsnTokenId;
|
|
18
|
+
this.lockedRsnTokenAmount = lockedRsnTokenAmount;
|
|
19
|
+
this.wid = wid;
|
|
20
|
+
this.logger = logger;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* increase a watcher permits (increase locked RSN amount)
|
|
24
|
+
* @param {bigint} amount rwt amount to allocate to the new watcher
|
|
25
|
+
* @returns Updated CollateralBoxBuilder instance
|
|
26
|
+
*/
|
|
27
|
+
lockRsn = (amount) => {
|
|
28
|
+
if (amount <= 0n)
|
|
29
|
+
throw new Error('amount must be positive');
|
|
30
|
+
this.rsnAmount += amount;
|
|
31
|
+
this.logger.debug(`locked RSN increased by ${amount}, total=${this.rsnAmount}`);
|
|
32
|
+
return this;
|
|
33
|
+
};
|
|
34
|
+
/**
|
|
35
|
+
* Return permits a watcher (decrease locked RSN amount)
|
|
36
|
+
* @param {bigint} amount rwt amount to return from the watcher
|
|
37
|
+
* @returns Updated CollateralBoxBuilder instance
|
|
38
|
+
*/
|
|
39
|
+
unlockRsn = (amount) => {
|
|
40
|
+
if (amount <= 0n)
|
|
41
|
+
throw new Error('amount must be positive');
|
|
42
|
+
if (this.rsnAmount < amount)
|
|
43
|
+
throw new Error(`locked RSN [${this.rsnAmount}] < unlock amount [${amount}]`);
|
|
44
|
+
this.rsnAmount -= amount;
|
|
45
|
+
this.logger.debug(`locked RSN decreased by ${amount}, total=${this.rsnAmount}`);
|
|
46
|
+
return this;
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* creates a CollateralBox from the properties of this CollateralBoxBuilder instance
|
|
50
|
+
*
|
|
51
|
+
* @return {ergoLib.ErgoBoxCandidate}
|
|
52
|
+
*/
|
|
53
|
+
build = () => {
|
|
54
|
+
if (this.value === undefined || this.height === undefined) {
|
|
55
|
+
throw new Error(`value and height must be set before build`);
|
|
56
|
+
}
|
|
57
|
+
const boxBuilder = new ergoLib.ErgoBoxCandidateBuilder(ergoLib.BoxValue.from_i64(ergoLib.I64.from_str(this.value.toString())), ergoLib.Contract.new(ergoLib.ErgoTree.from_base16_bytes(this.collateralErgoTree)), this.height);
|
|
58
|
+
boxBuilder.set_register_value(4, ergoLib.Constant.from_byte_array(this.wid));
|
|
59
|
+
boxBuilder.set_register_value(5, ergoLib.Constant.from_i64(ergoLib.I64.from_str(this.rsnAmount.toString())));
|
|
60
|
+
boxBuilder.add_token(ergoLib.TokenId.from_str(this.awcNftId), ergoLib.TokenAmount.from_i64(ergoLib.I64.from_str('1')));
|
|
61
|
+
boxBuilder.add_token(ergoLib.TokenId.from_str(this.lockedRsnTokenId), ergoLib.TokenAmount.from_i64(ergoLib.I64.from_str(this.lockedRsnTokenAmount.toString())));
|
|
62
|
+
return boxBuilder.build();
|
|
63
|
+
};
|
|
64
|
+
setValue = (value) => {
|
|
65
|
+
if (value < 0n)
|
|
66
|
+
throw new Error('value cannot be negative');
|
|
67
|
+
this.value = value;
|
|
68
|
+
};
|
|
69
|
+
setHeight = (height) => {
|
|
70
|
+
if (height < 1)
|
|
71
|
+
throw new Error('height must be positive');
|
|
72
|
+
this.height = height;
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGF0ZXJhbEJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9saWIvY29sbGF0ZXJhbEJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFrQixXQUFXLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM1RSxPQUFPLEtBQUssT0FBTyxNQUFNLHNCQUFzQixDQUFDO0FBRWhELE1BQU0sT0FBTyxvQkFBb0I7SUFLckI7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFWRixLQUFLLENBQVU7SUFDZixNQUFNLENBQVU7SUFFeEIsWUFDVSxrQkFBMEIsRUFDMUIsUUFBZ0IsRUFDaEIsU0FBaUIsRUFDakIsZ0JBQXdCLEVBQ3hCLHVCQUErQixFQUFFLEVBQ2pDLEdBQWUsRUFDZixTQUF5QixJQUFJLFdBQVcsRUFBRTtRQU4xQyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQVE7UUFDMUIsYUFBUSxHQUFSLFFBQVEsQ0FBUTtRQUNoQixjQUFTLEdBQVQsU0FBUyxDQUFRO1FBQ2pCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBUTtRQUN4Qix5QkFBb0IsR0FBcEIsb0JBQW9CLENBQWE7UUFDakMsUUFBRyxHQUFILEdBQUcsQ0FBWTtRQUNmLFdBQU0sR0FBTixNQUFNLENBQW9DO0lBQ2pELENBQUM7SUFFSjs7OztPQUlHO0lBQ0gsT0FBTyxHQUFHLENBQUMsTUFBYyxFQUF3QixFQUFFO1FBQ2pELElBQUksTUFBTSxJQUFJLEVBQUU7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7UUFFN0QsSUFBSSxDQUFDLFNBQVMsSUFBSSxNQUFNLENBQUM7UUFDekIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQ2YsMkJBQTJCLE1BQU0sV0FBVyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQzdELENBQUM7UUFDRixPQUFPLElBQUksQ0FBQztJQUNkLENBQUMsQ0FBQztJQUVGOzs7O09BSUc7SUFDSCxTQUFTLEdBQUcsQ0FBQyxNQUFjLEVBQXdCLEVBQUU7UUFDbkQsSUFBSSxNQUFNLElBQUksRUFBRTtZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQztRQUU3RCxJQUFJLElBQUksQ0FBQyxTQUFTLEdBQUcsTUFBTTtZQUN6QixNQUFNLElBQUksS0FBSyxDQUNiLGVBQWUsSUFBSSxDQUFDLFNBQVMsc0JBQXNCLE1BQU0sR0FBRyxDQUM3RCxDQUFDO1FBRUosSUFBSSxDQUFDLFNBQVMsSUFBSSxNQUFNLENBQUM7UUFDekIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQ2YsMkJBQTJCLE1BQU0sV0FBVyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQzdELENBQUM7UUFDRixPQUFPLElBQUksQ0FBQztJQUNkLENBQUMsQ0FBQztJQUVGOzs7O09BSUc7SUFDSCxLQUFLLEdBQUcsR0FBNkIsRUFBRTtRQUNyQyxJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssU0FBUyxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDMUQsTUFBTSxJQUFJLEtBQUssQ0FBQywyQ0FBMkMsQ0FBQyxDQUFDO1FBQy9ELENBQUM7UUFFRCxNQUFNLFVBQVUsR0FBRyxJQUFJLE9BQU8sQ0FBQyx1QkFBdUIsQ0FDcEQsT0FBTyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLEVBQ3RFLE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUNsQixPQUFPLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUM1RCxFQUNELElBQUksQ0FBQyxNQUFNLENBQ1osQ0FBQztRQUVGLFVBQVUsQ0FBQyxrQkFBa0IsQ0FDM0IsQ0FBQyxFQUNELE9BQU8sQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FDM0MsQ0FBQztRQUVGLFVBQVUsQ0FBQyxrQkFBa0IsQ0FDM0IsQ0FBQyxFQUNELE9BQU8sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUN2QixPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQ2hELENBQ0YsQ0FBQztRQUVGLFVBQVUsQ0FBQyxTQUFTLENBQ2xCLE9BQU8sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFDdkMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FDeEQsQ0FBQztRQUVGLFVBQVUsQ0FBQyxTQUFTLENBQ2xCLE9BQU8sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxFQUMvQyxPQUFPLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FDMUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFFBQVEsRUFBRSxDQUFDLENBQzNELENBQ0YsQ0FBQztRQUVGLE9BQU8sVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzVCLENBQUMsQ0FBQztJQUVGLFFBQVEsR0FBRyxDQUFDLEtBQWEsRUFBRSxFQUFFO1FBQzNCLElBQUksS0FBSyxHQUFHLEVBQUU7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLDBCQUEwQixDQUFDLENBQUM7UUFDNUQsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDckIsQ0FBQyxDQUFDO0lBRUYsU0FBUyxHQUFHLENBQUMsTUFBYyxFQUFFLEVBQUU7UUFDN0IsSUFBSSxNQUFNLEdBQUcsQ0FBQztZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQztRQUMzRCxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUN2QixDQUFDLENBQUM7Q0FDSCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFic3RyYWN0TG9nZ2VyLCBEdW1teUxvZ2dlciB9IGZyb20gJ0Byb3Nlbi1icmlkZ2UvYWJzdHJhY3QtbG9nZ2VyJztcbmltcG9ydCAqIGFzIGVyZ29MaWIgZnJvbSAnZXJnby1saWItd2FzbS1ub2RlanMnO1xuXG5leHBvcnQgY2xhc3MgQ29sbGF0ZXJhbEJveEJ1aWxkZXIge1xuICBwcml2YXRlIHZhbHVlPzogYmlnaW50O1xuICBwcml2YXRlIGhlaWdodD86IG51bWJlcjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNvbGxhdGVyYWxFcmdvVHJlZTogc3RyaW5nLFxuICAgIHByaXZhdGUgYXdjTmZ0SWQ6IHN0cmluZyxcbiAgICBwcml2YXRlIHJzbkFtb3VudDogYmlnaW50LFxuICAgIHByaXZhdGUgbG9ja2VkUnNuVG9rZW5JZDogc3RyaW5nLFxuICAgIHByaXZhdGUgbG9ja2VkUnNuVG9rZW5BbW91bnQ6IGJpZ2ludCA9IDBuLFxuICAgIHByaXZhdGUgd2lkOiBVaW50OEFycmF5LFxuICAgIHByaXZhdGUgbG9nZ2VyOiBBYnN0cmFjdExvZ2dlciA9IG5ldyBEdW1teUxvZ2dlcigpLFxuICApIHt9XG5cbiAgLyoqXG4gICAqIGluY3JlYXNlIGEgd2F0Y2hlciBwZXJtaXRzIChpbmNyZWFzZSBsb2NrZWQgUlNOIGFtb3VudClcbiAgICogQHBhcmFtIHtiaWdpbnR9IGFtb3VudCByd3QgYW1vdW50IHRvIGFsbG9jYXRlIHRvIHRoZSBuZXcgd2F0Y2hlclxuICAgKiBAcmV0dXJucyBVcGRhdGVkIENvbGxhdGVyYWxCb3hCdWlsZGVyIGluc3RhbmNlXG4gICAqL1xuICBsb2NrUnNuID0gKGFtb3VudDogYmlnaW50KTogQ29sbGF0ZXJhbEJveEJ1aWxkZXIgPT4ge1xuICAgIGlmIChhbW91bnQgPD0gMG4pIHRocm93IG5ldyBFcnJvcignYW1vdW50IG11c3QgYmUgcG9zaXRpdmUnKTtcblxuICAgIHRoaXMucnNuQW1vdW50ICs9IGFtb3VudDtcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgIGBsb2NrZWQgUlNOIGluY3JlYXNlZCBieSAke2Ftb3VudH0sIHRvdGFsPSR7dGhpcy5yc25BbW91bnR9YCxcbiAgICApO1xuICAgIHJldHVybiB0aGlzO1xuICB9O1xuXG4gIC8qKlxuICAgKiBSZXR1cm4gcGVybWl0cyBhIHdhdGNoZXIgKGRlY3JlYXNlIGxvY2tlZCBSU04gYW1vdW50KVxuICAgKiBAcGFyYW0ge2JpZ2ludH0gYW1vdW50IHJ3dCBhbW91bnQgdG8gcmV0dXJuIGZyb20gdGhlIHdhdGNoZXJcbiAgICogQHJldHVybnMgVXBkYXRlZCBDb2xsYXRlcmFsQm94QnVpbGRlciBpbnN0YW5jZVxuICAgKi9cbiAgdW5sb2NrUnNuID0gKGFtb3VudDogYmlnaW50KTogQ29sbGF0ZXJhbEJveEJ1aWxkZXIgPT4ge1xuICAgIGlmIChhbW91bnQgPD0gMG4pIHRocm93IG5ldyBFcnJvcignYW1vdW50IG11c3QgYmUgcG9zaXRpdmUnKTtcblxuICAgIGlmICh0aGlzLnJzbkFtb3VudCA8IGFtb3VudClcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYGxvY2tlZCBSU04gWyR7dGhpcy5yc25BbW91bnR9XSA8IHVubG9jayBhbW91bnQgWyR7YW1vdW50fV1gLFxuICAgICAgKTtcblxuICAgIHRoaXMucnNuQW1vdW50IC09IGFtb3VudDtcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgIGBsb2NrZWQgUlNOIGRlY3JlYXNlZCBieSAke2Ftb3VudH0sIHRvdGFsPSR7dGhpcy5yc25BbW91bnR9YCxcbiAgICApO1xuICAgIHJldHVybiB0aGlzO1xuICB9O1xuXG4gIC8qKlxuICAgKiBjcmVhdGVzIGEgQ29sbGF0ZXJhbEJveCBmcm9tIHRoZSBwcm9wZXJ0aWVzIG9mIHRoaXMgQ29sbGF0ZXJhbEJveEJ1aWxkZXIgaW5zdGFuY2VcbiAgICpcbiAgICogQHJldHVybiB7ZXJnb0xpYi5FcmdvQm94Q2FuZGlkYXRlfVxuICAgKi9cbiAgYnVpbGQgPSAoKTogZXJnb0xpYi5FcmdvQm94Q2FuZGlkYXRlID0+IHtcbiAgICBpZiAodGhpcy52YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHRoaXMuaGVpZ2h0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgdmFsdWUgYW5kIGhlaWdodCBtdXN0IGJlIHNldCBiZWZvcmUgYnVpbGRgKTtcbiAgICB9XG5cbiAgICBjb25zdCBib3hCdWlsZGVyID0gbmV3IGVyZ29MaWIuRXJnb0JveENhbmRpZGF0ZUJ1aWxkZXIoXG4gICAgICBlcmdvTGliLkJveFZhbHVlLmZyb21faTY0KGVyZ29MaWIuSTY0LmZyb21fc3RyKHRoaXMudmFsdWUudG9TdHJpbmcoKSkpLFxuICAgICAgZXJnb0xpYi5Db250cmFjdC5uZXcoXG4gICAgICAgIGVyZ29MaWIuRXJnb1RyZWUuZnJvbV9iYXNlMTZfYnl0ZXModGhpcy5jb2xsYXRlcmFsRXJnb1RyZWUpLFxuICAgICAgKSxcbiAgICAgIHRoaXMuaGVpZ2h0LFxuICAgICk7XG5cbiAgICBib3hCdWlsZGVyLnNldF9yZWdpc3Rlcl92YWx1ZShcbiAgICAgIDQsXG4gICAgICBlcmdvTGliLkNvbnN0YW50LmZyb21fYnl0ZV9hcnJheSh0aGlzLndpZCksXG4gICAgKTtcblxuICAgIGJveEJ1aWxkZXIuc2V0X3JlZ2lzdGVyX3ZhbHVlKFxuICAgICAgNSxcbiAgICAgIGVyZ29MaWIuQ29uc3RhbnQuZnJvbV9pNjQoXG4gICAgICAgIGVyZ29MaWIuSTY0LmZyb21fc3RyKHRoaXMucnNuQW1vdW50LnRvU3RyaW5nKCkpLFxuICAgICAgKSxcbiAgICApO1xuXG4gICAgYm94QnVpbGRlci5hZGRfdG9rZW4oXG4gICAgICBlcmdvTGliLlRva2VuSWQuZnJvbV9zdHIodGhpcy5hd2NOZnRJZCksXG4gICAgICBlcmdvTGliLlRva2VuQW1vdW50LmZyb21faTY0KGVyZ29MaWIuSTY0LmZyb21fc3RyKCcxJykpLFxuICAgICk7XG5cbiAgICBib3hCdWlsZGVyLmFkZF90b2tlbihcbiAgICAgIGVyZ29MaWIuVG9rZW5JZC5mcm9tX3N0cih0aGlzLmxvY2tlZFJzblRva2VuSWQpLFxuICAgICAgZXJnb0xpYi5Ub2tlbkFtb3VudC5mcm9tX2k2NChcbiAgICAgICAgZXJnb0xpYi5JNjQuZnJvbV9zdHIodGhpcy5sb2NrZWRSc25Ub2tlbkFtb3VudC50b1N0cmluZygpKSxcbiAgICAgICksXG4gICAgKTtcblxuICAgIHJldHVybiBib3hCdWlsZGVyLmJ1aWxkKCk7XG4gIH07XG5cbiAgc2V0VmFsdWUgPSAodmFsdWU6IGJpZ2ludCkgPT4ge1xuICAgIGlmICh2YWx1ZSA8IDBuKSB0aHJvdyBuZXcgRXJyb3IoJ3ZhbHVlIGNhbm5vdCBiZSBuZWdhdGl2ZScpO1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgfTtcblxuICBzZXRIZWlnaHQgPSAoaGVpZ2h0OiBudW1iZXIpID0+IHtcbiAgICBpZiAoaGVpZ2h0IDwgMSkgdGhyb3cgbmV3IEVycm9yKCdoZWlnaHQgbXVzdCBiZSBwb3NpdGl2ZScpO1xuICAgIHRoaXMuaGVpZ2h0ID0gaGVpZ2h0O1xuICB9O1xufVxuIl19
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export { CollateralBox } from './collateral';
|
|
2
|
+
export { CollateralBoxBuilder } from './collateralBuilder';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9saWIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM3QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IENvbGxhdGVyYWxCb3ggfSBmcm9tICcuL2NvbGxhdGVyYWwnO1xuZXhwb3J0IHsgQ29sbGF0ZXJhbEJveEJ1aWxkZXIgfSBmcm9tICcuL2NvbGxhdGVyYWxCdWlsZGVyJztcbiJdfQ==
|
package/package.json
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@rosen-bridge/collateral",
|
|
3
|
+
"version": "0.1.0-ad18b004",
|
|
4
|
+
"description": "a package to manage collateral box",
|
|
5
|
+
"repository": {
|
|
6
|
+
"type": "git",
|
|
7
|
+
"url": "git+https://github.com/rosen-bridge/utils.git"
|
|
8
|
+
},
|
|
9
|
+
"license": "MIT",
|
|
10
|
+
"author": "Rosen Team",
|
|
11
|
+
"type": "module",
|
|
12
|
+
"main": "dist/index.js",
|
|
13
|
+
"types": "dist/index.d.ts",
|
|
14
|
+
"files": [
|
|
15
|
+
"dist",
|
|
16
|
+
"CHANGELOG.md"
|
|
17
|
+
],
|
|
18
|
+
"scripts": {
|
|
19
|
+
"build": "tsc --build tsconfig.build.json",
|
|
20
|
+
"lint": "eslint --fix . && npm run prettify",
|
|
21
|
+
"lint:check": "eslint . && npm run prettify:check",
|
|
22
|
+
"prettify": "prettier --write . --ignore-path ../../../.gitignore",
|
|
23
|
+
"prettify:check": "prettier --check . --ignore-path ../../../.gitignore",
|
|
24
|
+
"test": "NODE_OPTIONS='--import tsx' vitest",
|
|
25
|
+
"coverage": "npm run test -- --run --coverage",
|
|
26
|
+
"release": "npm run clean && npm run build && npm publish --access public",
|
|
27
|
+
"type-check": "tsc --noEmit"
|
|
28
|
+
},
|
|
29
|
+
"engines": {
|
|
30
|
+
"node": ">=22.18.0",
|
|
31
|
+
"npm": "11.6.2"
|
|
32
|
+
},
|
|
33
|
+
"devDependencies": {
|
|
34
|
+
"@rosen-bridge/json-bigint": "^1.1.0",
|
|
35
|
+
"@vitest/coverage-istanbul": "^3.1.4",
|
|
36
|
+
"tsx": "^4.20.5",
|
|
37
|
+
"vitest": "^3.1.4"
|
|
38
|
+
},
|
|
39
|
+
"dependencies": {
|
|
40
|
+
"ergo-lib-wasm-nodejs": "^0.24.1",
|
|
41
|
+
"@rosen-bridge/abstract-logger": "^4.0.0"
|
|
42
|
+
}
|
|
43
|
+
}
|