@bitgo-beta/utxo-staking 1.1.1-beta.0 → 1.1.1-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/coreDao/index.d.ts +1 -0
- package/dist/src/coreDao/index.d.ts.map +1 -1
- package/dist/src/coreDao/index.js +2 -1
- package/dist/src/coreDao/opReturn.d.ts +1 -1
- package/dist/src/coreDao/opReturn.d.ts.map +1 -1
- package/dist/src/coreDao/opReturn.js +1 -1
- package/dist/src/coreDao/transaction.d.ts +20 -0
- package/dist/src/coreDao/transaction.d.ts.map +1 -0
- package/dist/src/coreDao/transaction.js +26 -0
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +16 -1
- package/dist/src/transaction.d.ts +34 -0
- package/dist/src/transaction.d.ts.map +1 -0
- package/dist/src/transaction.js +55 -0
- package/package.json +4 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/coreDao/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/coreDao/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC"}
|
|
@@ -16,4 +16,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./opReturn"), exports);
|
|
18
18
|
__exportStar(require("./descriptor"), exports);
|
|
19
|
-
|
|
19
|
+
__exportStar(require("./transaction"), exports);
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29yZURhby9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNkNBQTJCO0FBQzNCLCtDQUE2QjtBQUM3QixnREFBOEIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL29wUmV0dXJuJztcbmV4cG9ydCAqIGZyb20gJy4vZGVzY3JpcHRvcic7XG5leHBvcnQgKiBmcm9tICcuL3RyYW5zYWN0aW9uJztcbiJdfQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opReturn.d.ts","sourceRoot":"","sources":["../../../src/coreDao/opReturn.ts"],"names":[],"mappings":";;AAGA,eAAO,MAAM,yBAAyB,QAA6B,CAAC;AACpE,eAAO,MAAM,yBAAyB,QAA6B,CAAC;AACpE,eAAO,MAAM,gCAAgC,QAAiC,CAAC;AAI/E,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAIvD;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAKrD;AAED,KAAK,UAAU,GAAG;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,
|
|
1
|
+
{"version":3,"file":"opReturn.d.ts","sourceRoot":"","sources":["../../../src/coreDao/opReturn.ts"],"names":[],"mappings":";;AAGA,eAAO,MAAM,yBAAyB,QAA6B,CAAC;AACpE,eAAO,MAAM,yBAAyB,QAA6B,CAAC;AACpE,eAAO,MAAM,gCAAgC,QAAiC,CAAC;AAI/E,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAIvD;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAKrD;AAED,KAAK,UAAU,GAAG;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG,CAAC;IAAE,YAAY,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAE5F;;;;;;;;;;;GAWG;AACH,wBAAgB,iCAAiC,CAAC,EAChD,OAAO,EACP,OAAO,EACP,SAAS,EACT,SAAS,EACT,GAAG,EACH,GAAG,IAAI,EACR,EAAE,cAAc,GAAG,MAAM,CAgFzB;AAED;;;;GAIG;AACH,wBAAgB,gCAAgC,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,CAyD/E;AAED,wBAAgB,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAUvD"}
|
|
@@ -172,4 +172,4 @@ function toString(params) {
|
|
|
172
172
|
});
|
|
173
173
|
}
|
|
174
174
|
exports.toString = toString;
|
|
175
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BSZXR1cm4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29yZURhby9vcFJldHVybi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtREFBMEQ7QUFFMUQsMEVBQTBFO0FBQzdELFFBQUEseUJBQXlCLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDdkQsUUFBQSx5QkFBeUIsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztBQUN2RCxRQUFBLGdDQUFnQyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQy9FLDJHQUEyRztBQUMzRyxNQUFNLG9CQUFvQixHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBRXRELFNBQWdCLGNBQWMsQ0FBQyxRQUFnQjtJQUM3QyxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzdCLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDN0IsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBSkQsd0NBSUM7QUFFRCxTQUFnQixjQUFjLENBQUMsTUFBYztJQUMzQyxJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1FBQ3ZCLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztLQUNuRDtJQUNELE9BQU8sTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDO0FBQy9CLENBQUM7QUFMRCx3Q0FLQztBQVlEOzs7Ozs7Ozs7OztHQVdHO0FBQ0gsU0FBZ0IsaUNBQWlDLENBQUMsRUFDaEQsT0FBTyxFQUNQLE9BQU8sRUFDUCxTQUFTLEVBQ1QsU0FBUyxFQUNULEdBQUcsRUFDSCxHQUFHLElBQUksRUFDUTtJQUNmOzs7Ozs7Ozs7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QU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQztLQUNsRjtBQUNILENBQUM7QUF6REQsNEVBeURDO0FBRUQsU0FBZ0IsUUFBUSxDQUFDLE1BQXNCO0lBQzdDLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUNwQixPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU87UUFDdkIsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQztRQUN2QyxTQUFTLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO1FBQzNDLFNBQVMsRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7UUFDM0MsR0FBRyxFQUFFLE1BQU0sQ0FBQyxHQUFHO1FBQ2YsR0FBRyxDQUFDLGNBQWMsSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsWUFBWSxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUMxRixHQUFHLENBQUMsVUFBVSxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7S0FDL0QsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQVZELDRCQVVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcGF5bWVudHMsIG5ldHdvcmtzIH0gZnJvbSAnQGJpdGdvLWJldGEvdXR4by1saWInO1xuXG4vLyBTb3VyY2U6IGh0dHBzOi8vZG9jcy5jb3JlZGFvLm9yZy9kb2NzL0xlYXJuL3Byb2R1Y3RzL2J0Yy1zdGFraW5nL2Rlc2lnblxuZXhwb3J0IGNvbnN0IENPUkVfREFPX1RFU1RORVRfQ0hBSU5fSUQgPSBCdWZmZXIuZnJvbSgnMDQ1YicsICdoZXgnKTtcbmV4cG9ydCBjb25zdCBDT1JFX0RBT19NQUlOTkVUX0NIQUlOX0lEID0gQnVmZmVyLmZyb20oJzA0NWMnLCAnaGV4Jyk7XG5leHBvcnQgY29uc3QgQ09SRV9EQU9fU0FUT1NISV9QTFVTX0lERU5USUZJRVIgPSBCdWZmZXIuZnJvbSgnNTM0MTU0MmInLCAnaGV4Jyk7XG4vLyBodHRwczovL2dpdGh1Yi5jb20vYml0Y29pbi9iaXRjb2luL2Jsb2IvNTk2MWIyMzg5OGVlN2MwYWYyNjI2YzQ2ZDVkNzBlODAxMzY1NzhkMy9zcmMvc2NyaXB0L3NjcmlwdC5oI0w0N1xuY29uc3QgT1BfUkVUVVJOX0lERU5USUZJRVIgPSBCdWZmZXIuZnJvbSgnNmEnLCAnaGV4Jyk7XG5cbmV4cG9ydCBmdW5jdGlvbiBlbmNvZGVUaW1lbG9jayh0aW1lbG9jazogbnVtYmVyKTogQnVmZmVyIHtcbiAgY29uc3QgYnVmZiA9IEJ1ZmZlci5hbGxvYyg0KTtcbiAgYnVmZi53cml0ZVVJbnQzMkxFKHRpbWVsb2NrKTtcbiAgcmV0dXJuIGJ1ZmY7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkZWNvZGVUaW1lbG9jayhidWZmZXI6IEJ1ZmZlcik6IG51bWJlciB7XG4gIGlmIChidWZmZXIubGVuZ3RoICE9PSA0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIHRpbWVsb2NrIGJ1ZmZlciBsZW5ndGgnKTtcbiAgfVxuICByZXR1cm4gYnVmZmVyLnJlYWRVSW50MzJMRSgpO1xufVxuXG50eXBlIEJhc2VQYXJhbXMgPSB7XG4gIHZlcnNpb246IG51bWJlcjtcbiAgY2hhaW5JZDogQnVmZmVyO1xuICBkZWxlZ2F0b3I6IEJ1ZmZlcjtcbiAgdmFsaWRhdG9yOiBCdWZmZXI7XG4gIGZlZTogbnVtYmVyO1xufTtcblxudHlwZSBPcFJldHVyblBhcmFtcyA9IEJhc2VQYXJhbXMgJiAoeyByZWRlZW1TY3JpcHQ6IEJ1ZmZlciB9IHwgeyB0aW1lbG9jazogbnVtYmVyIH0pO1xuXG4vKipcbiAqIENyZWF0ZSBhIENvcmVEQU8gT1BfUkVUVVJOIG91dHB1dCBzY3JpcHRcbiAqXG4gKiBAcGFyYW0gdmVyc2lvbiBWZXJzaW9uIG9mIHRoZSBPUF9SRVRVUk5cbiAqIEBwYXJhbSBjaGFpbklkIENoYWluIElEXG4gKiBAcGFyYW0gZGVsZWdhdG9yIERlbGVnYXRvciBhZGRyZXNzXG4gKiBAcGFyYW0gdmFsaWRhdG9yIFZhbGlkYXRvciBhZGRyZXNzXG4gKiBAcGFyYW0gZmVlIEZlZSBmb3IgcmVsYXllclxuICogQHBhcmFtIHJlZGVlbVNjcmlwdCBSZWRlZW0gc2NyaXB0IG9mIHRoZSBzdGFraW5nIG91dHB1dFxuICogQHBhcmFtIHRpbWVsb2NrIFRpbWVsb2NrIGZvciB0aGUgc3Rha2luZyBvdXRwdXRcbiAqIEByZXR1cm5zIEJ1ZmZlciBPUF9SRVRVUk4gYnVmZmVyXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVDb3JlRGFvT3BSZXR1cm5PdXRwdXRTY3JpcHQoe1xuICB2ZXJzaW9uLFxuICBjaGFpbklkLFxuICBkZWxlZ2F0b3IsXG4gIHZhbGlkYXRvcixcbiAgZmVlLFxuICAuLi5yZXN0XG59OiBPcFJldHVyblBhcmFtcyk6IEJ1ZmZlciB7XG4gIC8qKlxuICAgKiBBcyBvZiB2MiwgdGhpcyBpcyB0aGUgY29uc3RydWN0aW9uIG9mIHRoZSBPUF9SRVRVUk46XG4gICAqIFNvdXJjZTogaHR0cHM6Ly9kb2NzLmNvcmVkYW8ub3JnL2RvY3MvTGVhcm4vcHJvZHVjdHMvYnRjLXN0YWtpbmcvZGVzaWduI29wX3JldHVybi1vdXRwdXRcbiAgICpcbiAgICogVGhlIE9QX1JFVFVSTiBvdXRwdXQgc2hvdWxkIGNvbnRhaW4gYWxsIHN0YWtpbmcgaW5mb3JtYXRpb24gaW4gb3JkZXIsIGFuZCBiZSBjb21wb3NlZCBpbiB0aGUgZm9sbG93aW5nIGZvcm1hdDpcbiAgICpcbiAgICogU2F0b3NoaSBQbHVzIElkZW50aWZpZXI6IChTQVQrKSA0IGJ5dGVzXG4gICAqIFZlcnNpb246ICgweDAxKSAxIGJ5dGVcbiAgICogQ2hhaW4gSUQ6ICgweDA0NWIgKDExMTUpIGZvciBDb3JlIFRlc3RuZXQgYW5kIDB4MDQ1YyAoMTExNikgZm9yIENvcmUgTWFpbm5ldCkgMiBieXRlc1xuICAgKiBEZWxlZ2F0b3I6IFRoZSBDb3JlIGFkZHJlc3MgdG8gcmVjZWl2ZSByZXdhcmRzLCAyMCBieXRlc1xuICAgKiBWYWxpZGF0b3I6IFRoZSBDb3JlIHZhbGlkYXRvciBhZGRyZXNzIHRvIHN0YWtlIHRvLCAyMCBieXRlc1xuICAgKiBGZWU6IEZlZSBmb3IgcmVsYXllciwgMSBieXRlLCByYW5nZSBbMCwyNTVdLCBtZWFzdXJlZCBpbiBDT1JFXG4gICAqIChPcHRpb25hbCkgUmVkZWVtU2NyaXB0XG4gICAqIChPcHRpb25hbCkgVGltZWxvY2s6IDQgYnl0ZXNcbiAgICpcbiAgICogRWl0aGVyIFJlZGVlbVNjcmlwdCBvciBUaW1lbG9jayBtdXN0IGJlIGF2YWlsYWJsZSwgdGhlIHB1cnBvc2UgaXMgdG8gYWxsb3cgcmVsYXllciB0b1xuICAgKiBvYnRhaW4gdGhlIFJlZGVlbVNjcmlwdCBhbmQgc3VibWl0IHRyYW5zYWN0aW9ucyBvbiBDb3JlLiBJZiBhIFJlZGVlbVNjcmlwdCBpcyBwcm92aWRlZCxcbiAgICogcmVsYXllciB3aWxsIHVzZSBpdCBkaXJlY3RseS4gT3RoZXJ3aXNlLCByZWxheWVyIHdpbGwgY29uc3RydWN0IHRoZSByZWRlZW0gc2NyaXB0IGJhc2VkXG4gICAqIG9uIHRoZSB0aW1lbG9jayBhbmQgdGhlIGluZm9ybWF0aW9uIGluIHRoZSB0cmFuc2FjdGlvbiBpbnB1dHMuXG4gICAqXG4gICAqIE5vdGUgdGhhdCBhbnkgbGVuZ3RoID4gODAgYnl0ZXMgd29udCBiZSByZWxheWVkIGJ5IG5vZGVzIGFuZCB0aGVyZWZvcmUgd2Ugd2lsbCB0aHJvdyBhbiBlcnJvci5cbiAgICovXG4gIGlmICh2ZXJzaW9uIDwgMCB8fCB2ZXJzaW9uID4gMjU1KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIHZlcnNpb24gLSBvdXQgb2YgcmFuZ2UnKTtcbiAgfVxuICBjb25zdCB2ZXJzaW9uQnVmZmVyID0gQnVmZmVyLmFsbG9jKDEsIHZlcnNpb24pO1xuXG4gIGlmICghKGNoYWluSWQuZXF1YWxzKENPUkVfREFPX1RFU1RORVRfQ0hBSU5fSUQpIHx8IGNoYWluSWQuZXF1YWxzKENPUkVfREFPX01BSU5ORVRfQ0hBSU5fSUQpKSkge1xuICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBjaGFpbiBJRCcpO1xuICB9XG5cbiAgaWYgKGRlbGVnYXRvci5sZW5ndGggIT09IDIwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGRlbGVnYXRvciBhZGRyZXNzJyk7XG4gIH1cblxuICBpZiAodmFsaWRhdG9yLmxlbmd0aCAhPT0gMjApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgdmFsaWRhdG9yIGFkZHJlc3MnKTtcbiAgfVxuXG4gIGlmIChmZWUgPCAwIHx8IGZlZSA+IDI1NSkge1xuICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBmZWUgLSBvdXQgb2YgcmFuZ2UnKTtcbiAgfVxuICBjb25zdCBmZWVCdWZmZXIgPSBCdWZmZXIuYWxsb2MoMSwgZmVlKTtcblxuICBpZiAoZmVlQnVmZmVyLmxlbmd0aCAhPT0gMSkge1xuICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBmZWUnKTtcbiAgfVxuXG4gIGNvbnN0IHJlZGVlbVNjcmlwdEJ1ZmZlciA9ICdyZWRlZW1TY3JpcHQnIGluIHJlc3QgPyByZXN0LnJlZGVlbVNjcmlwdCA6IEJ1ZmZlci5mcm9tKFtdKTtcbiAgaWYgKCd0aW1lbG9jaycgaW4gcmVzdCAmJiAocmVzdC50aW1lbG9jayA8IDAgfHwgcmVzdC50aW1lbG9jayA+IDQyOTQ5NjcyOTUpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIHRpbWVsb2NrIC0gb3V0IG9mIHJhbmdlJyk7XG4gIH1cblxuICAvLyBlbmNvZGUgdGhlIG51bWJlciBpbnRvIGEgNC1ieXRlIGJ1ZmZlclxuICAvLyBpZiB0aW1lbG9jayBpcyBwcm92aWRlZCwgd3JpdGUgaXQgaW50byAzMi1iaXQgbGl0dGxlLWVuZGlhblxuICBjb25zdCB0aW1lbG9ja0J1ZmZlciA9ICd0aW1lbG9jaycgaW4gcmVzdCA/IGVuY29kZVRpbWVsb2NrKHJlc3QudGltZWxvY2spIDogQnVmZmVyLmZyb20oW10pO1xuICBjb25zdCBkYXRhID0gQnVmZmVyLmNvbmNhdChbXG4gICAgQ09SRV9EQU9fU0FUT1NISV9QTFVTX0lERU5USUZJRVIsXG4gICAgdmVyc2lvbkJ1ZmZlcixcbiAgICBjaGFpbklkLFxuICAgIGRlbGVnYXRvcixcbiAgICB2YWxpZGF0b3IsXG4gICAgZmVlQnVmZmVyLFxuICAgIHJlZGVlbVNjcmlwdEJ1ZmZlcixcbiAgICB0aW1lbG9ja0J1ZmZlcixcbiAgXSk7XG4gIGlmIChkYXRhLmxlbmd0aCA+IDgwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdPUF9SRVRVUk4gb3V0cHV0cyBjYW5ub3QgaGF2ZSBhIGxlbmd0aCBsYXJnZXIgdGhhbiA4MCBieXRlcycpO1xuICB9XG5cbiAgY29uc3QgcGF5bWVudCA9IHBheW1lbnRzLmVtYmVkKHtcbiAgICBkYXRhOiBbZGF0YV0sXG4gICAgbmV0d29yazogY2hhaW5JZC5lcXVhbHMoQ09SRV9EQU9fVEVTVE5FVF9DSEFJTl9JRCkgPyBuZXR3b3Jrcy50ZXN0bmV0IDogbmV0d29ya3MuYml0Y29pbixcbiAgfSk7XG4gIGlmICghcGF5bWVudC5vdXRwdXQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1VuYWJsZSB0byBjcmVhdGUgT1BfUkVUVVJOIG91dHB1dCcpO1xuICB9XG5cbiAgcmV0dXJuIHBheW1lbnQub3V0cHV0O1xufVxuXG4vKipcbiAqIFBhcnNlIGEgQ29yZURBTyBPUF9SRVRVUk4gb3V0cHV0IHNjcmlwdCBpbnRvIHRoZSBjb25zdGl0dWVudCBwYXJ0c1xuICogQHBhcmFtIHNjcmlwdFxuICogQHJldHVybnMgT3BSZXR1cm5QYXJhbXNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlQ29yZURhb09wUmV0dXJuT3V0cHV0U2NyaXB0KHNjcmlwdDogQnVmZmVyKTogT3BSZXR1cm5QYXJhbXMge1xuICBpZiAoIXNjcmlwdC5zdWJhcnJheSgwLCAxKS5lcXVhbHMoT1BfUkVUVVJOX0lERU5USUZJRVIpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdGaXJzdCBieXRlIG11c3QgYmUgYW4gT1BfUkVUVVJOJyk7XG4gIH1cblxuICBjb25zdCBwYXltZW50ID0gcGF5bWVudHMuZW1iZWQoe1xuICAgIG91dHB1dDogc2NyaXB0LFxuICB9KTtcbiAgY29uc3QgZGF0YSA9IHBheW1lbnQuZGF0YTtcbiAgaWYgKCFkYXRhIHx8IGRhdGEubGVuZ3RoICE9PSAxKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIE9QX1JFVFVSTiBvdXRwdXQnKTtcbiAgfVxuICBjb25zdCBkYXRhQnVmZmVyID0gZGF0YVswXTtcbiAgaWYgKGRhdGFCdWZmZXIubGVuZ3RoID4gODApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYE9QX1JFVFVSTiBvdXRwdXRzIGNhbm5vdCBoYXZlIGEgbGVuZ3RoIGxhcmdlciB0aGFuIDgwIGJ5dGVzYCk7XG4gIH1cbiAgbGV0IG9mZnNldCA9IDA7XG5cbiAgLy8gRGVjb2RlIHNhdG9zaGkrIGlkZW50aWZpZXJcbiAgaWYgKCFkYXRhQnVmZmVyLnN1YmFycmF5KG9mZnNldCwgb2Zmc2V0ICsgNCkuZXF1YWxzKENPUkVfREFPX1NBVE9TSElfUExVU19JREVOVElGSUVSKSkge1xuICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBzYXRvc2hpKyBpZGVudGlmaWVyJyk7XG4gIH1cbiAgb2Zmc2V0ICs9IDQ7XG5cbiAgLy8gRGVjb2RlIHZlcnNpb25cbiAgY29uc3QgdmVyc2lvbiA9IGRhdGFCdWZmZXJbb2Zmc2V0XTtcbiAgb2Zmc2V0ICs9IDE7XG5cbiAgLy8gRGVjb2RlIGNoYWluSWRcbiAgY29uc3QgY2hhaW5JZCA9IEJ1ZmZlci5mcm9tKGRhdGFCdWZmZXIuc3ViYXJyYXkob2Zmc2V0LCBvZmZzZXQgKyAyKSk7XG4gIGlmICghKGNoYWluSWQuZXF1YWxzKENPUkVfREFPX1RFU1RORVRfQ0hBSU5fSUQpIHx8IGNoYWluSWQuZXF1YWxzKENPUkVfREFPX01BSU5ORVRfQ0hBSU5fSUQpKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBJbnZhbGlkIENoYWluSUQ6ICR7Y2hhaW5JZC50b1N0cmluZygnaGV4Jyl9LiBNdXN0IGJlIGVpdGhlciAweDA0NWIgKHRlc3RuZXQpIG9yIDB4MDQ1YyAobWFpbm5ldCkuYFxuICAgICk7XG4gIH1cbiAgb2Zmc2V0ICs9IDI7XG5cbiAgLy8gRGVjb2RlIGRlbGVnYXRvclxuICBjb25zdCBkZWxlZ2F0b3IgPSBCdWZmZXIuZnJvbShkYXRhQnVmZmVyLnN1YmFycmF5KG9mZnNldCwgb2Zmc2V0ICsgMjApKTtcbiAgb2Zmc2V0ICs9IDIwO1xuXG4gIC8vIERlY29kZSB2YWxpZGF0b3JcbiAgY29uc3QgdmFsaWRhdG9yID0gQnVmZmVyLmZyb20oZGF0YUJ1ZmZlci5zdWJhcnJheShvZmZzZXQsIG9mZnNldCArIDIwKSk7XG4gIG9mZnNldCArPSAyMDtcblxuICAvLyBEZWNvZGUgZmVlXG4gIGNvbnN0IGZlZSA9IGRhdGFCdWZmZXJbb2Zmc2V0XTtcbiAgb2Zmc2V0ICs9IDE7XG5cbiAgY29uc3QgYmFzZVBhcmFtcyA9IHsgdmVyc2lvbiwgY2hhaW5JZCwgZGVsZWdhdG9yLCB2YWxpZGF0b3IsIGZlZSB9O1xuXG4gIC8vIERlY29kZSByZWRlZW1TY3JpcHQgb3IgdGltZWxvY2tcbiAgaWYgKG9mZnNldCA9PT0gZGF0YUJ1ZmZlci5sZW5ndGggLSA0KSB7XG4gICAgcmV0dXJuIHsgLi4uYmFzZVBhcmFtcywgdGltZWxvY2s6IGRlY29kZVRpbWVsb2NrKGRhdGFCdWZmZXIuc3ViYXJyYXkob2Zmc2V0KSkgfTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4geyAuLi5iYXNlUGFyYW1zLCByZWRlZW1TY3JpcHQ6IEJ1ZmZlci5mcm9tKGRhdGFCdWZmZXIuc3ViYXJyYXkob2Zmc2V0KSkgfTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdG9TdHJpbmcocGFyYW1zOiBPcFJldHVyblBhcmFtcyk6IHN0cmluZyB7XG4gIHJldHVybiBKU09OLnN0cmluZ2lmeSh7XG4gICAgdmVyc2lvbjogcGFyYW1zLnZlcnNpb24sXG4gICAgY2hhaW5JZDogcGFyYW1zLmNoYWluSWQudG9TdHJpbmcoJ2hleCcpLFxuICAgIGRlbGVnYXRvcjogcGFyYW1zLmRlbGVnYXRvci50b1N0cmluZygnaGV4JyksXG4gICAgdmFsaWRhdG9yOiBwYXJhbXMudmFsaWRhdG9yLnRvU3RyaW5nKCdoZXgnKSxcbiAgICBmZWU6IHBhcmFtcy5mZWUsXG4gICAgLi4uKCdyZWRlZW1TY3JpcHQnIGluIHBhcmFtcyA/IHsgcmVkZWVtU2NyaXB0OiBwYXJhbXMucmVkZWVtU2NyaXB0LnRvU3RyaW5nKCdoZXgnKSB9IDoge30pLFxuICAgIC4uLigndGltZWxvY2snIGluIHBhcmFtcyA/IHsgdGltZWxvY2s6IHBhcmFtcy50aW1lbG9jayB9IDoge30pLFxuICB9KTtcbn1cbiJdfQ==
|
|
175
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BSZXR1cm4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29yZURhby9vcFJldHVybi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtREFBMEQ7QUFFMUQsMEVBQTBFO0FBQzdELFFBQUEseUJBQXlCLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDdkQsUUFBQSx5QkFBeUIsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztBQUN2RCxRQUFBLGdDQUFnQyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQy9FLDJHQUEyRztBQUMzRyxNQUFNLG9CQUFvQixHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBRXRELFNBQWdCLGNBQWMsQ0FBQyxRQUFnQjtJQUM3QyxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzdCLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDN0IsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBSkQsd0NBSUM7QUFFRCxTQUFnQixjQUFjLENBQUMsTUFBYztJQUMzQyxJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1FBQ3ZCLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztLQUNuRDtJQUNELE9BQU8sTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDO0FBQy9CLENBQUM7QUFMRCx3Q0FLQztBQVlEOzs7Ozs7Ozs7OztHQVdHO0FBQ0gsU0FBZ0IsaUNBQWlDLENBQUMsRUFDaEQsT0FBTyxFQUNQLE9BQU8sRUFDUCxTQUFTLEVBQ1QsU0FBUyxFQUNULEdBQUcsRUFDSCxHQUFHLElBQUksRUFDUTtJQUNmOzs7Ozs7Ozs7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QU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQztLQUNsRjtBQUNILENBQUM7QUF6REQsNEVBeURDO0FBRUQsU0FBZ0IsUUFBUSxDQUFDLE1BQXNCO0lBQzdDLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUNwQixPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU87UUFDdkIsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQztRQUN2QyxTQUFTLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO1FBQzNDLFNBQVMsRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7UUFDM0MsR0FBRyxFQUFFLE1BQU0sQ0FBQyxHQUFHO1FBQ2YsR0FBRyxDQUFDLGNBQWMsSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsWUFBWSxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUMxRixHQUFHLENBQUMsVUFBVSxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7S0FDL0QsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQVZELDRCQVVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcGF5bWVudHMsIG5ldHdvcmtzIH0gZnJvbSAnQGJpdGdvLWJldGEvdXR4by1saWInO1xuXG4vLyBTb3VyY2U6IGh0dHBzOi8vZG9jcy5jb3JlZGFvLm9yZy9kb2NzL0xlYXJuL3Byb2R1Y3RzL2J0Yy1zdGFraW5nL2Rlc2lnblxuZXhwb3J0IGNvbnN0IENPUkVfREFPX1RFU1RORVRfQ0hBSU5fSUQgPSBCdWZmZXIuZnJvbSgnMDQ1YicsICdoZXgnKTtcbmV4cG9ydCBjb25zdCBDT1JFX0RBT19NQUlOTkVUX0NIQUlOX0lEID0gQnVmZmVyLmZyb20oJzA0NWMnLCAnaGV4Jyk7XG5leHBvcnQgY29uc3QgQ09SRV9EQU9fU0FUT1NISV9QTFVTX0lERU5USUZJRVIgPSBCdWZmZXIuZnJvbSgnNTM0MTU0MmInLCAnaGV4Jyk7XG4vLyBodHRwczovL2dpdGh1Yi5jb20vYml0Y29pbi9iaXRjb2luL2Jsb2IvNTk2MWIyMzg5OGVlN2MwYWYyNjI2YzQ2ZDVkNzBlODAxMzY1NzhkMy9zcmMvc2NyaXB0L3NjcmlwdC5oI0w0N1xuY29uc3QgT1BfUkVUVVJOX0lERU5USUZJRVIgPSBCdWZmZXIuZnJvbSgnNmEnLCAnaGV4Jyk7XG5cbmV4cG9ydCBmdW5jdGlvbiBlbmNvZGVUaW1lbG9jayh0aW1lbG9jazogbnVtYmVyKTogQnVmZmVyIHtcbiAgY29uc3QgYnVmZiA9IEJ1ZmZlci5hbGxvYyg0KTtcbiAgYnVmZi53cml0ZVVJbnQzMkxFKHRpbWVsb2NrKTtcbiAgcmV0dXJuIGJ1ZmY7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkZWNvZGVUaW1lbG9jayhidWZmZXI6IEJ1ZmZlcik6IG51bWJlciB7XG4gIGlmIChidWZmZXIubGVuZ3RoICE9PSA0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIHRpbWVsb2NrIGJ1ZmZlciBsZW5ndGgnKTtcbiAgfVxuICByZXR1cm4gYnVmZmVyLnJlYWRVSW50MzJMRSgpO1xufVxuXG50eXBlIEJhc2VQYXJhbXMgPSB7XG4gIHZlcnNpb246IG51bWJlcjtcbiAgY2hhaW5JZDogQnVmZmVyO1xuICBkZWxlZ2F0b3I6IEJ1ZmZlcjtcbiAgdmFsaWRhdG9yOiBCdWZmZXI7XG4gIGZlZTogbnVtYmVyO1xufTtcblxuZXhwb3J0IHR5cGUgT3BSZXR1cm5QYXJhbXMgPSBCYXNlUGFyYW1zICYgKHsgcmVkZWVtU2NyaXB0OiBCdWZmZXIgfSB8IHsgdGltZWxvY2s6IG51bWJlciB9KTtcblxuLyoqXG4gKiBDcmVhdGUgYSBDb3JlREFPIE9QX1JFVFVSTiBvdXRwdXQgc2NyaXB0XG4gKlxuICogQHBhcmFtIHZlcnNpb24gVmVyc2lvbiBvZiB0aGUgT1BfUkVUVVJOXG4gKiBAcGFyYW0gY2hhaW5JZCBDaGFpbiBJRFxuICogQHBhcmFtIGRlbGVnYXRvciBEZWxlZ2F0b3IgYWRkcmVzc1xuICogQHBhcmFtIHZhbGlkYXRvciBWYWxpZGF0b3IgYWRkcmVzc1xuICogQHBhcmFtIGZlZSBGZWUgZm9yIHJlbGF5ZXJcbiAqIEBwYXJhbSByZWRlZW1TY3JpcHQgUmVkZWVtIHNjcmlwdCBvZiB0aGUgc3Rha2luZyBvdXRwdXRcbiAqIEBwYXJhbSB0aW1lbG9jayBUaW1lbG9jayBmb3IgdGhlIHN0YWtpbmcgb3V0cHV0XG4gKiBAcmV0dXJucyBCdWZmZXIgT1BfUkVUVVJOIGJ1ZmZlclxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQ29yZURhb09wUmV0dXJuT3V0cHV0U2NyaXB0KHtcbiAgdmVyc2lvbixcbiAgY2hhaW5JZCxcbiAgZGVsZWdhdG9yLFxuICB2YWxpZGF0b3IsXG4gIGZlZSxcbiAgLi4ucmVzdFxufTogT3BSZXR1cm5QYXJhbXMpOiBCdWZmZXIge1xuICAvKipcbiAgICogQXMgb2YgdjIsIHRoaXMgaXMgdGhlIGNvbnN0cnVjdGlvbiBvZiB0aGUgT1BfUkVUVVJOOlxuICAgKiBTb3VyY2U6IGh0dHBzOi8vZG9jcy5jb3JlZGFvLm9yZy9kb2NzL0xlYXJuL3Byb2R1Y3RzL2J0Yy1zdGFraW5nL2Rlc2lnbiNvcF9yZXR1cm4tb3V0cHV0XG4gICAqXG4gICAqIFRoZSBPUF9SRVRVUk4gb3V0cHV0IHNob3VsZCBjb250YWluIGFsbCBzdGFraW5nIGluZm9ybWF0aW9uIGluIG9yZGVyLCBhbmQgYmUgY29tcG9zZWQgaW4gdGhlIGZvbGxvd2luZyBmb3JtYXQ6XG4gICAqXG4gICAqIFNhdG9zaGkgUGx1cyBJZGVudGlmaWVyOiAoU0FUKykgNCBieXRlc1xuICAgKiBWZXJzaW9uOiAoMHgwMSkgMSBieXRlXG4gICAqIENoYWluIElEOiAoMHgwNDViICgxMTE1KSBmb3IgQ29yZSBUZXN0bmV0IGFuZCAweDA0NWMgKDExMTYpIGZvciBDb3JlIE1haW5uZXQpIDIgYnl0ZXNcbiAgICogRGVsZWdhdG9yOiBUaGUgQ29yZSBhZGRyZXNzIHRvIHJlY2VpdmUgcmV3YXJkcywgMjAgYnl0ZXNcbiAgICogVmFsaWRhdG9yOiBUaGUgQ29yZSB2YWxpZGF0b3IgYWRkcmVzcyB0byBzdGFrZSB0bywgMjAgYnl0ZXNcbiAgICogRmVlOiBGZWUgZm9yIHJlbGF5ZXIsIDEgYnl0ZSwgcmFuZ2UgWzAsMjU1XSwgbWVhc3VyZWQgaW4gQ09SRVxuICAgKiAoT3B0aW9uYWwpIFJlZGVlbVNjcmlwdFxuICAgKiAoT3B0aW9uYWwpIFRpbWVsb2NrOiA0IGJ5dGVzXG4gICAqXG4gICAqIEVpdGhlciBSZWRlZW1TY3JpcHQgb3IgVGltZWxvY2sgbXVzdCBiZSBhdmFpbGFibGUsIHRoZSBwdXJwb3NlIGlzIHRvIGFsbG93IHJlbGF5ZXIgdG9cbiAgICogb2J0YWluIHRoZSBSZWRlZW1TY3JpcHQgYW5kIHN1Ym1pdCB0cmFuc2FjdGlvbnMgb24gQ29yZS4gSWYgYSBSZWRlZW1TY3JpcHQgaXMgcHJvdmlkZWQsXG4gICAqIHJlbGF5ZXIgd2lsbCB1c2UgaXQgZGlyZWN0bHkuIE90aGVyd2lzZSwgcmVsYXllciB3aWxsIGNvbnN0cnVjdCB0aGUgcmVkZWVtIHNjcmlwdCBiYXNlZFxuICAgKiBvbiB0aGUgdGltZWxvY2sgYW5kIHRoZSBpbmZvcm1hdGlvbiBpbiB0aGUgdHJhbnNhY3Rpb24gaW5wdXRzLlxuICAgKlxuICAgKiBOb3RlIHRoYXQgYW55IGxlbmd0aCA+IDgwIGJ5dGVzIHdvbnQgYmUgcmVsYXllZCBieSBub2RlcyBhbmQgdGhlcmVmb3JlIHdlIHdpbGwgdGhyb3cgYW4gZXJyb3IuXG4gICAqL1xuICBpZiAodmVyc2lvbiA8IDAgfHwgdmVyc2lvbiA+IDI1NSkge1xuICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCB2ZXJzaW9uIC0gb3V0IG9mIHJhbmdlJyk7XG4gIH1cbiAgY29uc3QgdmVyc2lvbkJ1ZmZlciA9IEJ1ZmZlci5hbGxvYygxLCB2ZXJzaW9uKTtcblxuICBpZiAoIShjaGFpbklkLmVxdWFscyhDT1JFX0RBT19URVNUTkVUX0NIQUlOX0lEKSB8fCBjaGFpbklkLmVxdWFscyhDT1JFX0RBT19NQUlOTkVUX0NIQUlOX0lEKSkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgY2hhaW4gSUQnKTtcbiAgfVxuXG4gIGlmIChkZWxlZ2F0b3IubGVuZ3RoICE9PSAyMCkge1xuICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBkZWxlZ2F0b3IgYWRkcmVzcycpO1xuICB9XG5cbiAgaWYgKHZhbGlkYXRvci5sZW5ndGggIT09IDIwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIHZhbGlkYXRvciBhZGRyZXNzJyk7XG4gIH1cblxuICBpZiAoZmVlIDwgMCB8fCBmZWUgPiAyNTUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgZmVlIC0gb3V0IG9mIHJhbmdlJyk7XG4gIH1cbiAgY29uc3QgZmVlQnVmZmVyID0gQnVmZmVyLmFsbG9jKDEsIGZlZSk7XG5cbiAgaWYgKGZlZUJ1ZmZlci5sZW5ndGggIT09IDEpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgZmVlJyk7XG4gIH1cblxuICBjb25zdCByZWRlZW1TY3JpcHRCdWZmZXIgPSAncmVkZWVtU2NyaXB0JyBpbiByZXN0ID8gcmVzdC5yZWRlZW1TY3JpcHQgOiBCdWZmZXIuZnJvbShbXSk7XG4gIGlmICgndGltZWxvY2snIGluIHJlc3QgJiYgKHJlc3QudGltZWxvY2sgPCAwIHx8IHJlc3QudGltZWxvY2sgPiA0Mjk0OTY3Mjk1KSkge1xuICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCB0aW1lbG9jayAtIG91dCBvZiByYW5nZScpO1xuICB9XG5cbiAgLy8gZW5jb2RlIHRoZSBudW1iZXIgaW50byBhIDQtYnl0ZSBidWZmZXJcbiAgLy8gaWYgdGltZWxvY2sgaXMgcHJvdmlkZWQsIHdyaXRlIGl0IGludG8gMzItYml0IGxpdHRsZS1lbmRpYW5cbiAgY29uc3QgdGltZWxvY2tCdWZmZXIgPSAndGltZWxvY2snIGluIHJlc3QgPyBlbmNvZGVUaW1lbG9jayhyZXN0LnRpbWVsb2NrKSA6IEJ1ZmZlci5mcm9tKFtdKTtcbiAgY29uc3QgZGF0YSA9IEJ1ZmZlci5jb25jYXQoW1xuICAgIENPUkVfREFPX1NBVE9TSElfUExVU19JREVOVElGSUVSLFxuICAgIHZlcnNpb25CdWZmZXIsXG4gICAgY2hhaW5JZCxcbiAgICBkZWxlZ2F0b3IsXG4gICAgdmFsaWRhdG9yLFxuICAgIGZlZUJ1ZmZlcixcbiAgICByZWRlZW1TY3JpcHRCdWZmZXIsXG4gICAgdGltZWxvY2tCdWZmZXIsXG4gIF0pO1xuICBpZiAoZGF0YS5sZW5ndGggPiA4MCkge1xuICAgIHRocm93IG5ldyBFcnJvcignT1BfUkVUVVJOIG91dHB1dHMgY2Fubm90IGhhdmUgYSBsZW5ndGggbGFyZ2VyIHRoYW4gODAgYnl0ZXMnKTtcbiAgfVxuXG4gIGNvbnN0IHBheW1lbnQgPSBwYXltZW50cy5lbWJlZCh7XG4gICAgZGF0YTogW2RhdGFdLFxuICAgIG5ldHdvcms6IGNoYWluSWQuZXF1YWxzKENPUkVfREFPX1RFU1RORVRfQ0hBSU5fSUQpID8gbmV0d29ya3MudGVzdG5ldCA6IG5ldHdvcmtzLmJpdGNvaW4sXG4gIH0pO1xuICBpZiAoIXBheW1lbnQub3V0cHV0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdVbmFibGUgdG8gY3JlYXRlIE9QX1JFVFVSTiBvdXRwdXQnKTtcbiAgfVxuXG4gIHJldHVybiBwYXltZW50Lm91dHB1dDtcbn1cblxuLyoqXG4gKiBQYXJzZSBhIENvcmVEQU8gT1BfUkVUVVJOIG91dHB1dCBzY3JpcHQgaW50byB0aGUgY29uc3RpdHVlbnQgcGFydHNcbiAqIEBwYXJhbSBzY3JpcHRcbiAqIEByZXR1cm5zIE9wUmV0dXJuUGFyYW1zXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUNvcmVEYW9PcFJldHVybk91dHB1dFNjcmlwdChzY3JpcHQ6IEJ1ZmZlcik6IE9wUmV0dXJuUGFyYW1zIHtcbiAgaWYgKCFzY3JpcHQuc3ViYXJyYXkoMCwgMSkuZXF1YWxzKE9QX1JFVFVSTl9JREVOVElGSUVSKSkge1xuICAgIHRocm93IG5ldyBFcnJvcignRmlyc3QgYnl0ZSBtdXN0IGJlIGFuIE9QX1JFVFVSTicpO1xuICB9XG5cbiAgY29uc3QgcGF5bWVudCA9IHBheW1lbnRzLmVtYmVkKHtcbiAgICBvdXRwdXQ6IHNjcmlwdCxcbiAgfSk7XG4gIGNvbnN0IGRhdGEgPSBwYXltZW50LmRhdGE7XG4gIGlmICghZGF0YSB8fCBkYXRhLmxlbmd0aCAhPT0gMSkge1xuICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBPUF9SRVRVUk4gb3V0cHV0Jyk7XG4gIH1cbiAgY29uc3QgZGF0YUJ1ZmZlciA9IGRhdGFbMF07XG4gIGlmIChkYXRhQnVmZmVyLmxlbmd0aCA+IDgwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBPUF9SRVRVUk4gb3V0cHV0cyBjYW5ub3QgaGF2ZSBhIGxlbmd0aCBsYXJnZXIgdGhhbiA4MCBieXRlc2ApO1xuICB9XG4gIGxldCBvZmZzZXQgPSAwO1xuXG4gIC8vIERlY29kZSBzYXRvc2hpKyBpZGVudGlmaWVyXG4gIGlmICghZGF0YUJ1ZmZlci5zdWJhcnJheShvZmZzZXQsIG9mZnNldCArIDQpLmVxdWFscyhDT1JFX0RBT19TQVRPU0hJX1BMVVNfSURFTlRJRklFUikpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgc2F0b3NoaSsgaWRlbnRpZmllcicpO1xuICB9XG4gIG9mZnNldCArPSA0O1xuXG4gIC8vIERlY29kZSB2ZXJzaW9uXG4gIGNvbnN0IHZlcnNpb24gPSBkYXRhQnVmZmVyW29mZnNldF07XG4gIG9mZnNldCArPSAxO1xuXG4gIC8vIERlY29kZSBjaGFpbklkXG4gIGNvbnN0IGNoYWluSWQgPSBCdWZmZXIuZnJvbShkYXRhQnVmZmVyLnN1YmFycmF5KG9mZnNldCwgb2Zmc2V0ICsgMikpO1xuICBpZiAoIShjaGFpbklkLmVxdWFscyhDT1JFX0RBT19URVNUTkVUX0NIQUlOX0lEKSB8fCBjaGFpbklkLmVxdWFscyhDT1JFX0RBT19NQUlOTkVUX0NIQUlOX0lEKSkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgSW52YWxpZCBDaGFpbklEOiAke2NoYWluSWQudG9TdHJpbmcoJ2hleCcpfS4gTXVzdCBiZSBlaXRoZXIgMHgwNDViICh0ZXN0bmV0KSBvciAweDA0NWMgKG1haW5uZXQpLmBcbiAgICApO1xuICB9XG4gIG9mZnNldCArPSAyO1xuXG4gIC8vIERlY29kZSBkZWxlZ2F0b3JcbiAgY29uc3QgZGVsZWdhdG9yID0gQnVmZmVyLmZyb20oZGF0YUJ1ZmZlci5zdWJhcnJheShvZmZzZXQsIG9mZnNldCArIDIwKSk7XG4gIG9mZnNldCArPSAyMDtcblxuICAvLyBEZWNvZGUgdmFsaWRhdG9yXG4gIGNvbnN0IHZhbGlkYXRvciA9IEJ1ZmZlci5mcm9tKGRhdGFCdWZmZXIuc3ViYXJyYXkob2Zmc2V0LCBvZmZzZXQgKyAyMCkpO1xuICBvZmZzZXQgKz0gMjA7XG5cbiAgLy8gRGVjb2RlIGZlZVxuICBjb25zdCBmZWUgPSBkYXRhQnVmZmVyW29mZnNldF07XG4gIG9mZnNldCArPSAxO1xuXG4gIGNvbnN0IGJhc2VQYXJhbXMgPSB7IHZlcnNpb24sIGNoYWluSWQsIGRlbGVnYXRvciwgdmFsaWRhdG9yLCBmZWUgfTtcblxuICAvLyBEZWNvZGUgcmVkZWVtU2NyaXB0IG9yIHRpbWVsb2NrXG4gIGlmIChvZmZzZXQgPT09IGRhdGFCdWZmZXIubGVuZ3RoIC0gNCkge1xuICAgIHJldHVybiB7IC4uLmJhc2VQYXJhbXMsIHRpbWVsb2NrOiBkZWNvZGVUaW1lbG9jayhkYXRhQnVmZmVyLnN1YmFycmF5KG9mZnNldCkpIH07XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHsgLi4uYmFzZVBhcmFtcywgcmVkZWVtU2NyaXB0OiBCdWZmZXIuZnJvbShkYXRhQnVmZmVyLnN1YmFycmF5KG9mZnNldCkpIH07XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRvU3RyaW5nKHBhcmFtczogT3BSZXR1cm5QYXJhbXMpOiBzdHJpbmcge1xuICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoe1xuICAgIHZlcnNpb246IHBhcmFtcy52ZXJzaW9uLFxuICAgIGNoYWluSWQ6IHBhcmFtcy5jaGFpbklkLnRvU3RyaW5nKCdoZXgnKSxcbiAgICBkZWxlZ2F0b3I6IHBhcmFtcy5kZWxlZ2F0b3IudG9TdHJpbmcoJ2hleCcpLFxuICAgIHZhbGlkYXRvcjogcGFyYW1zLnZhbGlkYXRvci50b1N0cmluZygnaGV4JyksXG4gICAgZmVlOiBwYXJhbXMuZmVlLFxuICAgIC4uLigncmVkZWVtU2NyaXB0JyBpbiBwYXJhbXMgPyB7IHJlZGVlbVNjcmlwdDogcGFyYW1zLnJlZGVlbVNjcmlwdC50b1N0cmluZygnaGV4JykgfSA6IHt9KSxcbiAgICAuLi4oJ3RpbWVsb2NrJyBpbiBwYXJhbXMgPyB7IHRpbWVsb2NrOiBwYXJhbXMudGltZWxvY2sgfSA6IHt9KSxcbiAgfSk7XG59XG4iXX0=
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
/// <reference types="node" />
|
|
3
|
+
import { OpReturnParams } from './opReturn';
|
|
4
|
+
/**
|
|
5
|
+
* Create the staking outputs for a CoreDAO staking transaction. This is the ordering
|
|
6
|
+
* in which to add into the transaction.
|
|
7
|
+
* @param stakingParams how to create the timelocked stake output
|
|
8
|
+
* @param stakingParams.descriptor if stakingParams.index is not provided, then this is assumed to be a `definite` descriptor.
|
|
9
|
+
* If stakingParams.index is provided, then this is assumed to be a `derivable` descriptor.
|
|
10
|
+
* @param opReturnParams to create the OP_RETURN output
|
|
11
|
+
*/
|
|
12
|
+
export declare function createStakingOutputs(stakingParams: {
|
|
13
|
+
value: bigint;
|
|
14
|
+
descriptor: string;
|
|
15
|
+
index?: number;
|
|
16
|
+
}, opReturnParams: OpReturnParams): {
|
|
17
|
+
script: Buffer;
|
|
18
|
+
value: bigint;
|
|
19
|
+
}[];
|
|
20
|
+
//# sourceMappingURL=transaction.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../src/coreDao/transaction.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAqC,cAAc,EAAE,MAAM,YAAY,CAAC;AAG/E;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAClC,aAAa,EAAE;IACb,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,EACD,cAAc,EAAE,cAAc,GAC7B;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAAE,CAiBrC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createStakingOutputs = void 0;
|
|
4
|
+
const opReturn_1 = require("./opReturn");
|
|
5
|
+
const wasm_miniscript_1 = require("@bitgo/wasm-miniscript");
|
|
6
|
+
/**
|
|
7
|
+
* Create the staking outputs for a CoreDAO staking transaction. This is the ordering
|
|
8
|
+
* in which to add into the transaction.
|
|
9
|
+
* @param stakingParams how to create the timelocked stake output
|
|
10
|
+
* @param stakingParams.descriptor if stakingParams.index is not provided, then this is assumed to be a `definite` descriptor.
|
|
11
|
+
* If stakingParams.index is provided, then this is assumed to be a `derivable` descriptor.
|
|
12
|
+
* @param opReturnParams to create the OP_RETURN output
|
|
13
|
+
*/
|
|
14
|
+
function createStakingOutputs(stakingParams, opReturnParams) {
|
|
15
|
+
const descriptor = wasm_miniscript_1.Descriptor.fromString(stakingParams.descriptor, stakingParams.index === undefined ? 'definite' : 'derivable');
|
|
16
|
+
const outputScript = Buffer.from(stakingParams.index === undefined
|
|
17
|
+
? descriptor.scriptPubkey()
|
|
18
|
+
: descriptor.atDerivationIndex(stakingParams.index).scriptPubkey());
|
|
19
|
+
const opReturnScript = (0, opReturn_1.createCoreDaoOpReturnOutputScript)(opReturnParams);
|
|
20
|
+
return [
|
|
21
|
+
{ script: outputScript, value: stakingParams.value },
|
|
22
|
+
{ script: opReturnScript, value: BigInt(0) },
|
|
23
|
+
];
|
|
24
|
+
}
|
|
25
|
+
exports.createStakingOutputs = createStakingOutputs;
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29yZURhby90cmFuc2FjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5Q0FBK0U7QUFDL0UsNERBQW9EO0FBRXBEOzs7Ozs7O0dBT0c7QUFDSCxTQUFnQixvQkFBb0IsQ0FDbEMsYUFJQyxFQUNELGNBQThCO0lBRTlCLE1BQU0sVUFBVSxHQUFHLDRCQUFVLENBQUMsVUFBVSxDQUN0QyxhQUFhLENBQUMsVUFBVSxFQUN4QixhQUFhLENBQUMsS0FBSyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQzdELENBQUM7SUFFRixNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUM5QixhQUFhLENBQUMsS0FBSyxLQUFLLFNBQVM7UUFDL0IsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxZQUFZLEVBQUU7UUFDM0IsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUMsWUFBWSxFQUFFLENBQ3JFLENBQUM7SUFDRixNQUFNLGNBQWMsR0FBRyxJQUFBLDRDQUFpQyxFQUFDLGNBQWMsQ0FBQyxDQUFDO0lBRXpFLE9BQU87UUFDTCxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLGFBQWEsQ0FBQyxLQUFLLEVBQUU7UUFDcEQsRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUU7S0FDN0MsQ0FBQztBQUNKLENBQUM7QUF4QkQsb0RBd0JDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlQ29yZURhb09wUmV0dXJuT3V0cHV0U2NyaXB0LCBPcFJldHVyblBhcmFtcyB9IGZyb20gJy4vb3BSZXR1cm4nO1xuaW1wb3J0IHsgRGVzY3JpcHRvciB9IGZyb20gJ0BiaXRnby93YXNtLW1pbmlzY3JpcHQnO1xuXG4vKipcbiAqIENyZWF0ZSB0aGUgc3Rha2luZyBvdXRwdXRzIGZvciBhIENvcmVEQU8gc3Rha2luZyB0cmFuc2FjdGlvbi4gVGhpcyBpcyB0aGUgb3JkZXJpbmdcbiAqIGluIHdoaWNoIHRvIGFkZCBpbnRvIHRoZSB0cmFuc2FjdGlvbi5cbiAqIEBwYXJhbSBzdGFraW5nUGFyYW1zIGhvdyB0byBjcmVhdGUgdGhlIHRpbWVsb2NrZWQgc3Rha2Ugb3V0cHV0XG4gKiBAcGFyYW0gc3Rha2luZ1BhcmFtcy5kZXNjcmlwdG9yIGlmIHN0YWtpbmdQYXJhbXMuaW5kZXggaXMgbm90IHByb3ZpZGVkLCB0aGVuIHRoaXMgaXMgYXNzdW1lZCB0byBiZSBhIGBkZWZpbml0ZWAgZGVzY3JpcHRvci5cbiAqIElmIHN0YWtpbmdQYXJhbXMuaW5kZXggaXMgcHJvdmlkZWQsIHRoZW4gdGhpcyBpcyBhc3N1bWVkIHRvIGJlIGEgYGRlcml2YWJsZWAgZGVzY3JpcHRvci5cbiAqIEBwYXJhbSBvcFJldHVyblBhcmFtcyB0byBjcmVhdGUgdGhlIE9QX1JFVFVSTiBvdXRwdXRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVN0YWtpbmdPdXRwdXRzKFxuICBzdGFraW5nUGFyYW1zOiB7XG4gICAgdmFsdWU6IGJpZ2ludDtcbiAgICBkZXNjcmlwdG9yOiBzdHJpbmc7XG4gICAgaW5kZXg/OiBudW1iZXI7XG4gIH0sXG4gIG9wUmV0dXJuUGFyYW1zOiBPcFJldHVyblBhcmFtc1xuKTogeyBzY3JpcHQ6IEJ1ZmZlcjsgdmFsdWU6IGJpZ2ludCB9W10ge1xuICBjb25zdCBkZXNjcmlwdG9yID0gRGVzY3JpcHRvci5mcm9tU3RyaW5nKFxuICAgIHN0YWtpbmdQYXJhbXMuZGVzY3JpcHRvcixcbiAgICBzdGFraW5nUGFyYW1zLmluZGV4ID09PSB1bmRlZmluZWQgPyAnZGVmaW5pdGUnIDogJ2Rlcml2YWJsZSdcbiAgKTtcblxuICBjb25zdCBvdXRwdXRTY3JpcHQgPSBCdWZmZXIuZnJvbShcbiAgICBzdGFraW5nUGFyYW1zLmluZGV4ID09PSB1bmRlZmluZWRcbiAgICAgID8gZGVzY3JpcHRvci5zY3JpcHRQdWJrZXkoKVxuICAgICAgOiBkZXNjcmlwdG9yLmF0RGVyaXZhdGlvbkluZGV4KHN0YWtpbmdQYXJhbXMuaW5kZXgpLnNjcmlwdFB1YmtleSgpXG4gICk7XG4gIGNvbnN0IG9wUmV0dXJuU2NyaXB0ID0gY3JlYXRlQ29yZURhb09wUmV0dXJuT3V0cHV0U2NyaXB0KG9wUmV0dXJuUGFyYW1zKTtcblxuICByZXR1cm4gW1xuICAgIHsgc2NyaXB0OiBvdXRwdXRTY3JpcHQsIHZhbHVlOiBzdGFraW5nUGFyYW1zLnZhbHVlIH0sXG4gICAgeyBzY3JpcHQ6IG9wUmV0dXJuU2NyaXB0LCB2YWx1ZTogQmlnSW50KDApIH0sXG4gIF07XG59XG4iXX0=
|
package/dist/src/index.d.ts
CHANGED
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AAErC,cAAc,eAAe,CAAC"}
|
package/dist/src/index.js
CHANGED
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
2
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
17
|
exports.coreDao = void 0;
|
|
4
18
|
exports.coreDao = require("./coreDao");
|
|
5
|
-
|
|
19
|
+
__exportStar(require("./transaction"), exports);
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSx1Q0FBcUM7QUFFckMsZ0RBQThCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogYXMgY29yZURhbyBmcm9tICcuL2NvcmVEYW8nO1xuXG5leHBvcnQgKiBmcm9tICcuL3RyYW5zYWN0aW9uJztcbiJdfQ==
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
/// <reference types="node" />
|
|
3
|
+
import * as utxolib from '@bitgo-beta/utxo-lib';
|
|
4
|
+
/**
|
|
5
|
+
* Build a staking transaction for a wallet that assumes 2-of-3 multisig for the inputs
|
|
6
|
+
*
|
|
7
|
+
* Given the inputs and the staking outputs, we will create the PSBT with the desired fee rate.
|
|
8
|
+
* We always add the change address as the last output.
|
|
9
|
+
*
|
|
10
|
+
* @param rootWalletKeys
|
|
11
|
+
* @param unspents
|
|
12
|
+
* @param createStakingOutputs
|
|
13
|
+
* @param changeAddressInfo
|
|
14
|
+
* @param feeRateSatKB
|
|
15
|
+
* @param network
|
|
16
|
+
*/
|
|
17
|
+
export declare function buildFixedWalletStakingPsbt({ rootWalletKeys, unspents, outputs, changeAddressInfo, feeRateSatKB, network, skipNonWitnessUtxo, dustAmount, }: {
|
|
18
|
+
rootWalletKeys: utxolib.bitgo.RootWalletKeys;
|
|
19
|
+
unspents: utxolib.bitgo.WalletUnspent<bigint>[];
|
|
20
|
+
outputs: {
|
|
21
|
+
script: Buffer;
|
|
22
|
+
value: bigint;
|
|
23
|
+
}[];
|
|
24
|
+
changeAddressInfo: {
|
|
25
|
+
chain: utxolib.bitgo.ChainCode;
|
|
26
|
+
index: number;
|
|
27
|
+
address: string;
|
|
28
|
+
};
|
|
29
|
+
feeRateSatKB: number;
|
|
30
|
+
network: utxolib.Network;
|
|
31
|
+
skipNonWitnessUtxo?: boolean;
|
|
32
|
+
dustAmount?: bigint;
|
|
33
|
+
}): utxolib.bitgo.UtxoPsbt;
|
|
34
|
+
//# sourceMappingURL=transaction.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../src/transaction.ts"],"names":[],"mappings":";;AAAA,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAGhD;;;;;;;;;;;;GAYG;AACH,wBAAgB,2BAA2B,CAAC,EAC1C,cAAc,EACd,QAAQ,EACR,OAAO,EACP,iBAAiB,EACjB,YAAY,EACZ,OAAO,EACP,kBAAkB,EAClB,UAAsB,GACvB,EAAE;IACD,cAAc,EAAE,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC;IAC7C,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;IAChD,OAAO,EAAE;QACP,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;KACf,EAAE,CAAC;IACJ,iBAAiB,EAAE;QACjB,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC;QAC/B,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC;IACzB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,CA0DzB"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.buildFixedWalletStakingPsbt = void 0;
|
|
4
|
+
const utxolib = require("@bitgo-beta/utxo-lib");
|
|
5
|
+
const unspents_1 = require("@bitgo-beta/unspents");
|
|
6
|
+
/**
|
|
7
|
+
* Build a staking transaction for a wallet that assumes 2-of-3 multisig for the inputs
|
|
8
|
+
*
|
|
9
|
+
* Given the inputs and the staking outputs, we will create the PSBT with the desired fee rate.
|
|
10
|
+
* We always add the change address as the last output.
|
|
11
|
+
*
|
|
12
|
+
* @param rootWalletKeys
|
|
13
|
+
* @param unspents
|
|
14
|
+
* @param createStakingOutputs
|
|
15
|
+
* @param changeAddressInfo
|
|
16
|
+
* @param feeRateSatKB
|
|
17
|
+
* @param network
|
|
18
|
+
*/
|
|
19
|
+
function buildFixedWalletStakingPsbt({ rootWalletKeys, unspents, outputs, changeAddressInfo, feeRateSatKB, network, skipNonWitnessUtxo, dustAmount = BigInt(0), }) {
|
|
20
|
+
if (feeRateSatKB < 1000) {
|
|
21
|
+
throw new Error('Fee rate must be at least 1 sat/vbyte');
|
|
22
|
+
}
|
|
23
|
+
if (unspents.length === 0 || outputs.length === 0) {
|
|
24
|
+
throw new Error('Must have at least one input and one output');
|
|
25
|
+
}
|
|
26
|
+
// Check the change address info
|
|
27
|
+
const changeScript = utxolib.bitgo.outputScripts.createOutputScript2of3(rootWalletKeys.deriveForChainAndIndex(changeAddressInfo.chain, changeAddressInfo.index).publicKeys, utxolib.bitgo.scriptTypeForChain(changeAddressInfo.chain), network).scriptPubKey;
|
|
28
|
+
if (!changeScript.equals(utxolib.addressFormat.toOutputScriptTryFormats(changeAddressInfo.address, network))) {
|
|
29
|
+
throw new Error('Change address info does not match the derived change script');
|
|
30
|
+
}
|
|
31
|
+
const psbt = utxolib.bitgo.createPsbtForNetwork({ network });
|
|
32
|
+
utxolib.bitgo.addXpubsToPsbt(psbt, rootWalletKeys);
|
|
33
|
+
const inputAmount = unspents.reduce((sum, unspent) => sum + unspent.value, BigInt(0));
|
|
34
|
+
const outputAmount = outputs.reduce((sum, output) => sum + output.value, BigInt(0));
|
|
35
|
+
unspents.forEach((unspent) => utxolib.bitgo.addWalletUnspentToPsbt(psbt, unspent, rootWalletKeys, 'user', 'bitgo', {
|
|
36
|
+
isReplaceableByFee: true,
|
|
37
|
+
skipNonWitnessUtxo,
|
|
38
|
+
}));
|
|
39
|
+
outputs.forEach((output) => psbt.addOutput(output));
|
|
40
|
+
const fee = Math.ceil((unspents_1.Dimensions.fromPsbt(psbt)
|
|
41
|
+
.plus(unspents_1.Dimensions.fromOutput({ script: changeScript }))
|
|
42
|
+
.getVSize() *
|
|
43
|
+
feeRateSatKB) /
|
|
44
|
+
1000);
|
|
45
|
+
const changeAmount = inputAmount - (outputAmount + BigInt(fee));
|
|
46
|
+
if (changeAmount < BigInt(0)) {
|
|
47
|
+
throw new Error(`Input amount ${inputAmount.toString()} cannot cover the staking amount ${outputAmount} and the fee: ${fee}`);
|
|
48
|
+
}
|
|
49
|
+
if (changeAmount > dustAmount) {
|
|
50
|
+
utxolib.bitgo.addWalletOutputToPsbt(psbt, rootWalletKeys, changeAddressInfo.chain, changeAddressInfo.index, changeAmount);
|
|
51
|
+
}
|
|
52
|
+
return psbt;
|
|
53
|
+
}
|
|
54
|
+
exports.buildFixedWalletStakingPsbt = buildFixedWalletStakingPsbt;
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHJhbnNhY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsZ0RBQWdEO0FBQ2hELG1EQUFrRDtBQUVsRDs7Ozs7Ozs7Ozs7O0dBWUc7QUFDSCxTQUFnQiwyQkFBMkIsQ0FBQyxFQUMxQyxjQUFjLEVBQ2QsUUFBUSxFQUNSLE9BQU8sRUFDUCxpQkFBaUIsRUFDakIsWUFBWSxFQUNaLE9BQU8sRUFDUCxrQkFBa0IsRUFDbEIsVUFBVSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FpQnZCO0lBQ0MsSUFBSSxZQUFZLEdBQUcsSUFBSSxFQUFFO1FBQ3ZCLE1BQU0sSUFBSSxLQUFLLENBQUMsdUNBQXVDLENBQUMsQ0FBQztLQUMxRDtJQUNELElBQUksUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksT0FBTyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7UUFDakQsTUFBTSxJQUFJLEtBQUssQ0FBQyw2Q0FBNkMsQ0FBQyxDQUFDO0tBQ2hFO0lBRUQsZ0NBQWdDO0lBQ2hDLE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLHNCQUFzQixDQUNyRSxjQUFjLENBQUMsc0JBQXNCLENBQUMsaUJBQWlCLENBQUMsS0FBSyxFQUFFLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDLFVBQVUsRUFDbEcsT0FBTyxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsRUFDekQsT0FBTyxDQUNSLENBQUMsWUFBWSxDQUFDO0lBQ2YsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyx3QkFBd0IsQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsRUFBRTtRQUM1RyxNQUFNLElBQUksS0FBSyxDQUFDLDhEQUE4RCxDQUFDLENBQUM7S0FDakY7SUFFRCxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLG9CQUFvQixDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUM3RCxPQUFPLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFFbkQsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxPQUFPLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3RGLE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUVwRixRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FDM0IsT0FBTyxDQUFDLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFO1FBQ25GLGtCQUFrQixFQUFFLElBQUk7UUFDeEIsa0JBQWtCO0tBQ25CLENBQUMsQ0FDSCxDQUFDO0lBQ0YsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBRXBELE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQ25CLENBQUMscUJBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO1NBQ3ZCLElBQUksQ0FBQyxxQkFBVSxDQUFDLFVBQVUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFDO1NBQ3JELFFBQVEsRUFBRTtRQUNYLFlBQVksQ0FBQztRQUNiLElBQUksQ0FDUCxDQUFDO0lBRUYsTUFBTSxZQUFZLEdBQUcsV0FBVyxHQUFHLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ2hFLElBQUksWUFBWSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRTtRQUM1QixNQUFNLElBQUksS0FBSyxDQUNiLGdCQUFnQixXQUFXLENBQUMsUUFBUSxFQUFFLG9DQUFvQyxZQUFZLGtCQUFrQixHQUFHLEVBQUUsQ0FDOUcsQ0FBQztLQUNIO0lBRUQsSUFBSSxZQUFZLEdBQUcsVUFBVSxFQUFFO1FBQzdCLE9BQU8sQ0FBQyxLQUFLLENBQUMscUJBQXFCLENBQ2pDLElBQUksRUFDSixjQUFjLEVBQ2QsaUJBQWlCLENBQUMsS0FBSyxFQUN2QixpQkFBaUIsQ0FBQyxLQUFLLEVBQ3ZCLFlBQVksQ0FDYixDQUFDO0tBQ0g7SUFFRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUM7QUFuRkQsa0VBbUZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgdXR4b2xpYiBmcm9tICdAYml0Z28tYmV0YS91dHhvLWxpYic7XG5pbXBvcnQgeyBEaW1lbnNpb25zIH0gZnJvbSAnQGJpdGdvLWJldGEvdW5zcGVudHMnO1xuXG4vKipcbiAqIEJ1aWxkIGEgc3Rha2luZyB0cmFuc2FjdGlvbiBmb3IgYSB3YWxsZXQgdGhhdCBhc3N1bWVzIDItb2YtMyBtdWx0aXNpZyBmb3IgdGhlIGlucHV0c1xuICpcbiAqIEdpdmVuIHRoZSBpbnB1dHMgYW5kIHRoZSBzdGFraW5nIG91dHB1dHMsIHdlIHdpbGwgY3JlYXRlIHRoZSBQU0JUIHdpdGggdGhlIGRlc2lyZWQgZmVlIHJhdGUuXG4gKiBXZSBhbHdheXMgYWRkIHRoZSBjaGFuZ2UgYWRkcmVzcyBhcyB0aGUgbGFzdCBvdXRwdXQuXG4gKlxuICogQHBhcmFtIHJvb3RXYWxsZXRLZXlzXG4gKiBAcGFyYW0gdW5zcGVudHNcbiAqIEBwYXJhbSBjcmVhdGVTdGFraW5nT3V0cHV0c1xuICogQHBhcmFtIGNoYW5nZUFkZHJlc3NJbmZvXG4gKiBAcGFyYW0gZmVlUmF0ZVNhdEtCXG4gKiBAcGFyYW0gbmV0d29ya1xuICovXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRGaXhlZFdhbGxldFN0YWtpbmdQc2J0KHtcbiAgcm9vdFdhbGxldEtleXMsXG4gIHVuc3BlbnRzLFxuICBvdXRwdXRzLFxuICBjaGFuZ2VBZGRyZXNzSW5mbyxcbiAgZmVlUmF0ZVNhdEtCLFxuICBuZXR3b3JrLFxuICBza2lwTm9uV2l0bmVzc1V0eG8sXG4gIGR1c3RBbW91bnQgPSBCaWdJbnQoMCksXG59OiB7XG4gIHJvb3RXYWxsZXRLZXlzOiB1dHhvbGliLmJpdGdvLlJvb3RXYWxsZXRLZXlzO1xuICB1bnNwZW50czogdXR4b2xpYi5iaXRnby5XYWxsZXRVbnNwZW50PGJpZ2ludD5bXTtcbiAgb3V0cHV0czoge1xuICAgIHNjcmlwdDogQnVmZmVyO1xuICAgIHZhbHVlOiBiaWdpbnQ7XG4gIH1bXTtcbiAgY2hhbmdlQWRkcmVzc0luZm86IHtcbiAgICBjaGFpbjogdXR4b2xpYi5iaXRnby5DaGFpbkNvZGU7XG4gICAgaW5kZXg6IG51bWJlcjtcbiAgICBhZGRyZXNzOiBzdHJpbmc7XG4gIH07XG4gIGZlZVJhdGVTYXRLQjogbnVtYmVyO1xuICBuZXR3b3JrOiB1dHhvbGliLk5ldHdvcms7XG4gIHNraXBOb25XaXRuZXNzVXR4bz86IGJvb2xlYW47XG4gIGR1c3RBbW91bnQ/OiBiaWdpbnQ7XG59KTogdXR4b2xpYi5iaXRnby5VdHhvUHNidCB7XG4gIGlmIChmZWVSYXRlU2F0S0IgPCAxMDAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdGZWUgcmF0ZSBtdXN0IGJlIGF0IGxlYXN0IDEgc2F0L3ZieXRlJyk7XG4gIH1cbiAgaWYgKHVuc3BlbnRzLmxlbmd0aCA9PT0gMCB8fCBvdXRwdXRzLmxlbmd0aCA9PT0gMCkge1xuICAgIHRocm93IG5ldyBFcnJvcignTXVzdCBoYXZlIGF0IGxlYXN0IG9uZSBpbnB1dCBhbmQgb25lIG91dHB1dCcpO1xuICB9XG5cbiAgLy8gQ2hlY2sgdGhlIGNoYW5nZSBhZGRyZXNzIGluZm9cbiAgY29uc3QgY2hhbmdlU2NyaXB0ID0gdXR4b2xpYi5iaXRnby5vdXRwdXRTY3JpcHRzLmNyZWF0ZU91dHB1dFNjcmlwdDJvZjMoXG4gICAgcm9vdFdhbGxldEtleXMuZGVyaXZlRm9yQ2hhaW5BbmRJbmRleChjaGFuZ2VBZGRyZXNzSW5mby5jaGFpbiwgY2hhbmdlQWRkcmVzc0luZm8uaW5kZXgpLnB1YmxpY0tleXMsXG4gICAgdXR4b2xpYi5iaXRnby5zY3JpcHRUeXBlRm9yQ2hhaW4oY2hhbmdlQWRkcmVzc0luZm8uY2hhaW4pLFxuICAgIG5ldHdvcmtcbiAgKS5zY3JpcHRQdWJLZXk7XG4gIGlmICghY2hhbmdlU2NyaXB0LmVxdWFscyh1dHhvbGliLmFkZHJlc3NGb3JtYXQudG9PdXRwdXRTY3JpcHRUcnlGb3JtYXRzKGNoYW5nZUFkZHJlc3NJbmZvLmFkZHJlc3MsIG5ldHdvcmspKSkge1xuICAgIHRocm93IG5ldyBFcnJvcignQ2hhbmdlIGFkZHJlc3MgaW5mbyBkb2VzIG5vdCBtYXRjaCB0aGUgZGVyaXZlZCBjaGFuZ2Ugc2NyaXB0Jyk7XG4gIH1cblxuICBjb25zdCBwc2J0ID0gdXR4b2xpYi5iaXRnby5jcmVhdGVQc2J0Rm9yTmV0d29yayh7IG5ldHdvcmsgfSk7XG4gIHV0eG9saWIuYml0Z28uYWRkWHB1YnNUb1BzYnQocHNidCwgcm9vdFdhbGxldEtleXMpO1xuXG4gIGNvbnN0IGlucHV0QW1vdW50ID0gdW5zcGVudHMucmVkdWNlKChzdW0sIHVuc3BlbnQpID0+IHN1bSArIHVuc3BlbnQudmFsdWUsIEJpZ0ludCgwKSk7XG4gIGNvbnN0IG91dHB1dEFtb3VudCA9IG91dHB1dHMucmVkdWNlKChzdW0sIG91dHB1dCkgPT4gc3VtICsgb3V0cHV0LnZhbHVlLCBCaWdJbnQoMCkpO1xuXG4gIHVuc3BlbnRzLmZvckVhY2goKHVuc3BlbnQpID0+XG4gICAgdXR4b2xpYi5iaXRnby5hZGRXYWxsZXRVbnNwZW50VG9Qc2J0KHBzYnQsIHVuc3BlbnQsIHJvb3RXYWxsZXRLZXlzLCAndXNlcicsICdiaXRnbycsIHtcbiAgICAgIGlzUmVwbGFjZWFibGVCeUZlZTogdHJ1ZSxcbiAgICAgIHNraXBOb25XaXRuZXNzVXR4byxcbiAgICB9KVxuICApO1xuICBvdXRwdXRzLmZvckVhY2goKG91dHB1dCkgPT4gcHNidC5hZGRPdXRwdXQob3V0cHV0KSk7XG5cbiAgY29uc3QgZmVlID0gTWF0aC5jZWlsKFxuICAgIChEaW1lbnNpb25zLmZyb21Qc2J0KHBzYnQpXG4gICAgICAucGx1cyhEaW1lbnNpb25zLmZyb21PdXRwdXQoeyBzY3JpcHQ6IGNoYW5nZVNjcmlwdCB9KSlcbiAgICAgIC5nZXRWU2l6ZSgpICpcbiAgICAgIGZlZVJhdGVTYXRLQikgL1xuICAgICAgMTAwMFxuICApO1xuXG4gIGNvbnN0IGNoYW5nZUFtb3VudCA9IGlucHV0QW1vdW50IC0gKG91dHB1dEFtb3VudCArIEJpZ0ludChmZWUpKTtcbiAgaWYgKGNoYW5nZUFtb3VudCA8IEJpZ0ludCgwKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBJbnB1dCBhbW91bnQgJHtpbnB1dEFtb3VudC50b1N0cmluZygpfSBjYW5ub3QgY292ZXIgdGhlIHN0YWtpbmcgYW1vdW50ICR7b3V0cHV0QW1vdW50fSBhbmQgIHRoZSBmZWU6ICR7ZmVlfWBcbiAgICApO1xuICB9XG5cbiAgaWYgKGNoYW5nZUFtb3VudCA+IGR1c3RBbW91bnQpIHtcbiAgICB1dHhvbGliLmJpdGdvLmFkZFdhbGxldE91dHB1dFRvUHNidChcbiAgICAgIHBzYnQsXG4gICAgICByb290V2FsbGV0S2V5cyxcbiAgICAgIGNoYW5nZUFkZHJlc3NJbmZvLmNoYWluLFxuICAgICAgY2hhbmdlQWRkcmVzc0luZm8uaW5kZXgsXG4gICAgICBjaGFuZ2VBbW91bnRcbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIHBzYnQ7XG59XG4iXX0=
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bitgo-beta/utxo-staking",
|
|
3
|
-
"version": "1.1.1-beta.
|
|
3
|
+
"version": "1.1.1-beta.1",
|
|
4
4
|
"description": "BitGo SDK for build UTXO staking transactions",
|
|
5
5
|
"main": "./dist/src/index.js",
|
|
6
6
|
"types": "./dist/src/index.d.ts",
|
|
@@ -40,8 +40,9 @@
|
|
|
40
40
|
]
|
|
41
41
|
},
|
|
42
42
|
"dependencies": {
|
|
43
|
-
"@bitgo-beta/
|
|
43
|
+
"@bitgo-beta/unspents": "0.13.2-beta.560",
|
|
44
|
+
"@bitgo-beta/utxo-lib": "8.0.3-beta.561",
|
|
44
45
|
"@bitgo/wasm-miniscript": "^2.0.0-beta.2"
|
|
45
46
|
},
|
|
46
|
-
"gitHead": "
|
|
47
|
+
"gitHead": "a637092b62735ed07f78cf58ca422f87c17bdba2"
|
|
47
48
|
}
|