@xchainjs/xchain-thorchain 0.28.8 → 0.28.10
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/lib/client.d.ts +13 -1
- package/lib/index.esm.js +599 -553
- package/lib/index.esm.js.map +1 -1
- package/lib/index.js +599 -553
- package/lib/index.js.map +1 -1
- package/package.json +5 -5
package/lib/index.esm.js
CHANGED
|
@@ -4408,580 +4408,596 @@ function asPromise(fn, ctx/*, varargs */) {
|
|
|
4408
4408
|
|
|
4409
4409
|
var base64$1 = {};
|
|
4410
4410
|
|
|
4411
|
-
|
|
4411
|
+
var hasRequiredBase64;
|
|
4412
|
+
|
|
4413
|
+
function requireBase64 () {
|
|
4414
|
+
if (hasRequiredBase64) return base64$1;
|
|
4415
|
+
hasRequiredBase64 = 1;
|
|
4416
|
+
(function (exports) {
|
|
4412
4417
|
|
|
4413
|
-
|
|
4414
|
-
|
|
4415
|
-
|
|
4416
|
-
|
|
4417
|
-
|
|
4418
|
-
|
|
4418
|
+
/**
|
|
4419
|
+
* A minimal base64 implementation for number arrays.
|
|
4420
|
+
* @memberof util
|
|
4421
|
+
* @namespace
|
|
4422
|
+
*/
|
|
4423
|
+
var base64 = exports;
|
|
4419
4424
|
|
|
4420
|
-
|
|
4421
|
-
|
|
4422
|
-
|
|
4423
|
-
|
|
4424
|
-
|
|
4425
|
-
|
|
4426
|
-
|
|
4427
|
-
|
|
4428
|
-
|
|
4429
|
-
|
|
4430
|
-
|
|
4431
|
-
|
|
4432
|
-
|
|
4433
|
-
|
|
4425
|
+
/**
|
|
4426
|
+
* Calculates the byte length of a base64 encoded string.
|
|
4427
|
+
* @param {string} string Base64 encoded string
|
|
4428
|
+
* @returns {number} Byte length
|
|
4429
|
+
*/
|
|
4430
|
+
base64.length = function length(string) {
|
|
4431
|
+
var p = string.length;
|
|
4432
|
+
if (!p)
|
|
4433
|
+
return 0;
|
|
4434
|
+
var n = 0;
|
|
4435
|
+
while (--p % 4 > 1 && string.charAt(p) === "=")
|
|
4436
|
+
++n;
|
|
4437
|
+
return Math.ceil(string.length * 3) / 4 - n;
|
|
4438
|
+
};
|
|
4434
4439
|
|
|
4435
|
-
|
|
4436
|
-
|
|
4440
|
+
// Base64 encoding table
|
|
4441
|
+
var b64 = new Array(64);
|
|
4437
4442
|
|
|
4438
|
-
|
|
4439
|
-
|
|
4443
|
+
// Base64 decoding table
|
|
4444
|
+
var s64 = new Array(123);
|
|
4440
4445
|
|
|
4441
|
-
|
|
4442
|
-
|
|
4443
|
-
|
|
4446
|
+
// 65..90, 97..122, 48..57, 43, 47
|
|
4447
|
+
for (var i = 0; i < 64;)
|
|
4448
|
+
s64[b64[i] = i < 26 ? i + 65 : i < 52 ? i + 71 : i < 62 ? i - 4 : i - 59 | 43] = i++;
|
|
4449
|
+
|
|
4450
|
+
/**
|
|
4451
|
+
* Encodes a buffer to a base64 encoded string.
|
|
4452
|
+
* @param {Uint8Array} buffer Source buffer
|
|
4453
|
+
* @param {number} start Source start
|
|
4454
|
+
* @param {number} end Source end
|
|
4455
|
+
* @returns {string} Base64 encoded string
|
|
4456
|
+
*/
|
|
4457
|
+
base64.encode = function encode(buffer, start, end) {
|
|
4458
|
+
var parts = null,
|
|
4459
|
+
chunk = [];
|
|
4460
|
+
var i = 0, // output index
|
|
4461
|
+
j = 0, // goto index
|
|
4462
|
+
t; // temporary
|
|
4463
|
+
while (start < end) {
|
|
4464
|
+
var b = buffer[start++];
|
|
4465
|
+
switch (j) {
|
|
4466
|
+
case 0:
|
|
4467
|
+
chunk[i++] = b64[b >> 2];
|
|
4468
|
+
t = (b & 3) << 4;
|
|
4469
|
+
j = 1;
|
|
4470
|
+
break;
|
|
4471
|
+
case 1:
|
|
4472
|
+
chunk[i++] = b64[t | b >> 4];
|
|
4473
|
+
t = (b & 15) << 2;
|
|
4474
|
+
j = 2;
|
|
4475
|
+
break;
|
|
4476
|
+
case 2:
|
|
4477
|
+
chunk[i++] = b64[t | b >> 6];
|
|
4478
|
+
chunk[i++] = b64[b & 63];
|
|
4479
|
+
j = 0;
|
|
4480
|
+
break;
|
|
4481
|
+
}
|
|
4482
|
+
if (i > 8191) {
|
|
4483
|
+
(parts || (parts = [])).push(String.fromCharCode.apply(String, chunk));
|
|
4484
|
+
i = 0;
|
|
4485
|
+
}
|
|
4486
|
+
}
|
|
4487
|
+
if (j) {
|
|
4488
|
+
chunk[i++] = b64[t];
|
|
4489
|
+
chunk[i++] = 61;
|
|
4490
|
+
if (j === 1)
|
|
4491
|
+
chunk[i++] = 61;
|
|
4492
|
+
}
|
|
4493
|
+
if (parts) {
|
|
4494
|
+
if (i)
|
|
4495
|
+
parts.push(String.fromCharCode.apply(String, chunk.slice(0, i)));
|
|
4496
|
+
return parts.join("");
|
|
4497
|
+
}
|
|
4498
|
+
return String.fromCharCode.apply(String, chunk.slice(0, i));
|
|
4499
|
+
};
|
|
4500
|
+
|
|
4501
|
+
var invalidEncoding = "invalid encoding";
|
|
4502
|
+
|
|
4503
|
+
/**
|
|
4504
|
+
* Decodes a base64 encoded string to a buffer.
|
|
4505
|
+
* @param {string} string Source string
|
|
4506
|
+
* @param {Uint8Array} buffer Destination buffer
|
|
4507
|
+
* @param {number} offset Destination offset
|
|
4508
|
+
* @returns {number} Number of bytes written
|
|
4509
|
+
* @throws {Error} If encoding is invalid
|
|
4510
|
+
*/
|
|
4511
|
+
base64.decode = function decode(string, buffer, offset) {
|
|
4512
|
+
var start = offset;
|
|
4513
|
+
var j = 0, // goto index
|
|
4514
|
+
t; // temporary
|
|
4515
|
+
for (var i = 0; i < string.length;) {
|
|
4516
|
+
var c = string.charCodeAt(i++);
|
|
4517
|
+
if (c === 61 && j > 1)
|
|
4518
|
+
break;
|
|
4519
|
+
if ((c = s64[c]) === undefined)
|
|
4520
|
+
throw Error(invalidEncoding);
|
|
4521
|
+
switch (j) {
|
|
4522
|
+
case 0:
|
|
4523
|
+
t = c;
|
|
4524
|
+
j = 1;
|
|
4525
|
+
break;
|
|
4526
|
+
case 1:
|
|
4527
|
+
buffer[offset++] = t << 2 | (c & 48) >> 4;
|
|
4528
|
+
t = c;
|
|
4529
|
+
j = 2;
|
|
4530
|
+
break;
|
|
4531
|
+
case 2:
|
|
4532
|
+
buffer[offset++] = (t & 15) << 4 | (c & 60) >> 2;
|
|
4533
|
+
t = c;
|
|
4534
|
+
j = 3;
|
|
4535
|
+
break;
|
|
4536
|
+
case 3:
|
|
4537
|
+
buffer[offset++] = (t & 3) << 6 | c;
|
|
4538
|
+
j = 0;
|
|
4539
|
+
break;
|
|
4540
|
+
}
|
|
4541
|
+
}
|
|
4542
|
+
if (j === 1)
|
|
4543
|
+
throw Error(invalidEncoding);
|
|
4544
|
+
return offset - start;
|
|
4545
|
+
};
|
|
4546
|
+
|
|
4547
|
+
/**
|
|
4548
|
+
* Tests if the specified string appears to be base64 encoded.
|
|
4549
|
+
* @param {string} string String to test
|
|
4550
|
+
* @returns {boolean} `true` if probably base64 encoded, otherwise false
|
|
4551
|
+
*/
|
|
4552
|
+
base64.test = function test(string) {
|
|
4553
|
+
return /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(string);
|
|
4554
|
+
};
|
|
4555
|
+
} (base64$1));
|
|
4556
|
+
return base64$1;
|
|
4557
|
+
}
|
|
4558
|
+
|
|
4559
|
+
var eventemitter;
|
|
4560
|
+
var hasRequiredEventemitter;
|
|
4561
|
+
|
|
4562
|
+
function requireEventemitter () {
|
|
4563
|
+
if (hasRequiredEventemitter) return eventemitter;
|
|
4564
|
+
hasRequiredEventemitter = 1;
|
|
4565
|
+
eventemitter = EventEmitter;
|
|
4444
4566
|
|
|
4445
4567
|
/**
|
|
4446
|
-
*
|
|
4447
|
-
* @
|
|
4448
|
-
* @
|
|
4449
|
-
* @
|
|
4450
|
-
* @returns {string} Base64 encoded string
|
|
4568
|
+
* Constructs a new event emitter instance.
|
|
4569
|
+
* @classdesc A minimal event emitter.
|
|
4570
|
+
* @memberof util
|
|
4571
|
+
* @constructor
|
|
4451
4572
|
*/
|
|
4452
|
-
|
|
4453
|
-
var parts = null,
|
|
4454
|
-
chunk = [];
|
|
4455
|
-
var i = 0, // output index
|
|
4456
|
-
j = 0, // goto index
|
|
4457
|
-
t; // temporary
|
|
4458
|
-
while (start < end) {
|
|
4459
|
-
var b = buffer[start++];
|
|
4460
|
-
switch (j) {
|
|
4461
|
-
case 0:
|
|
4462
|
-
chunk[i++] = b64[b >> 2];
|
|
4463
|
-
t = (b & 3) << 4;
|
|
4464
|
-
j = 1;
|
|
4465
|
-
break;
|
|
4466
|
-
case 1:
|
|
4467
|
-
chunk[i++] = b64[t | b >> 4];
|
|
4468
|
-
t = (b & 15) << 2;
|
|
4469
|
-
j = 2;
|
|
4470
|
-
break;
|
|
4471
|
-
case 2:
|
|
4472
|
-
chunk[i++] = b64[t | b >> 6];
|
|
4473
|
-
chunk[i++] = b64[b & 63];
|
|
4474
|
-
j = 0;
|
|
4475
|
-
break;
|
|
4476
|
-
}
|
|
4477
|
-
if (i > 8191) {
|
|
4478
|
-
(parts || (parts = [])).push(String.fromCharCode.apply(String, chunk));
|
|
4479
|
-
i = 0;
|
|
4480
|
-
}
|
|
4481
|
-
}
|
|
4482
|
-
if (j) {
|
|
4483
|
-
chunk[i++] = b64[t];
|
|
4484
|
-
chunk[i++] = 61;
|
|
4485
|
-
if (j === 1)
|
|
4486
|
-
chunk[i++] = 61;
|
|
4487
|
-
}
|
|
4488
|
-
if (parts) {
|
|
4489
|
-
if (i)
|
|
4490
|
-
parts.push(String.fromCharCode.apply(String, chunk.slice(0, i)));
|
|
4491
|
-
return parts.join("");
|
|
4492
|
-
}
|
|
4493
|
-
return String.fromCharCode.apply(String, chunk.slice(0, i));
|
|
4494
|
-
};
|
|
4573
|
+
function EventEmitter() {
|
|
4495
4574
|
|
|
4496
|
-
|
|
4575
|
+
/**
|
|
4576
|
+
* Registered listeners.
|
|
4577
|
+
* @type {Object.<string,*>}
|
|
4578
|
+
* @private
|
|
4579
|
+
*/
|
|
4580
|
+
this._listeners = {};
|
|
4581
|
+
}
|
|
4582
|
+
|
|
4583
|
+
/**
|
|
4584
|
+
* Registers an event listener.
|
|
4585
|
+
* @param {string} evt Event name
|
|
4586
|
+
* @param {function} fn Listener
|
|
4587
|
+
* @param {*} [ctx] Listener context
|
|
4588
|
+
* @returns {util.EventEmitter} `this`
|
|
4589
|
+
*/
|
|
4590
|
+
EventEmitter.prototype.on = function on(evt, fn, ctx) {
|
|
4591
|
+
(this._listeners[evt] || (this._listeners[evt] = [])).push({
|
|
4592
|
+
fn : fn,
|
|
4593
|
+
ctx : ctx || this
|
|
4594
|
+
});
|
|
4595
|
+
return this;
|
|
4596
|
+
};
|
|
4497
4597
|
|
|
4498
4598
|
/**
|
|
4499
|
-
*
|
|
4500
|
-
* @param {string}
|
|
4501
|
-
* @param {
|
|
4502
|
-
* @
|
|
4503
|
-
* @returns {number} Number of bytes written
|
|
4504
|
-
* @throws {Error} If encoding is invalid
|
|
4599
|
+
* Removes an event listener or any matching listeners if arguments are omitted.
|
|
4600
|
+
* @param {string} [evt] Event name. Removes all listeners if omitted.
|
|
4601
|
+
* @param {function} [fn] Listener to remove. Removes all listeners of `evt` if omitted.
|
|
4602
|
+
* @returns {util.EventEmitter} `this`
|
|
4505
4603
|
*/
|
|
4506
|
-
|
|
4507
|
-
|
|
4508
|
-
|
|
4509
|
-
|
|
4510
|
-
|
|
4511
|
-
|
|
4512
|
-
|
|
4513
|
-
|
|
4514
|
-
|
|
4515
|
-
|
|
4516
|
-
|
|
4517
|
-
|
|
4518
|
-
|
|
4519
|
-
j = 1;
|
|
4520
|
-
break;
|
|
4521
|
-
case 1:
|
|
4522
|
-
buffer[offset++] = t << 2 | (c & 48) >> 4;
|
|
4523
|
-
t = c;
|
|
4524
|
-
j = 2;
|
|
4525
|
-
break;
|
|
4526
|
-
case 2:
|
|
4527
|
-
buffer[offset++] = (t & 15) << 4 | (c & 60) >> 2;
|
|
4528
|
-
t = c;
|
|
4529
|
-
j = 3;
|
|
4530
|
-
break;
|
|
4531
|
-
case 3:
|
|
4532
|
-
buffer[offset++] = (t & 3) << 6 | c;
|
|
4533
|
-
j = 0;
|
|
4534
|
-
break;
|
|
4604
|
+
EventEmitter.prototype.off = function off(evt, fn) {
|
|
4605
|
+
if (evt === undefined)
|
|
4606
|
+
this._listeners = {};
|
|
4607
|
+
else {
|
|
4608
|
+
if (fn === undefined)
|
|
4609
|
+
this._listeners[evt] = [];
|
|
4610
|
+
else {
|
|
4611
|
+
var listeners = this._listeners[evt];
|
|
4612
|
+
for (var i = 0; i < listeners.length;)
|
|
4613
|
+
if (listeners[i].fn === fn)
|
|
4614
|
+
listeners.splice(i, 1);
|
|
4615
|
+
else
|
|
4616
|
+
++i;
|
|
4535
4617
|
}
|
|
4536
4618
|
}
|
|
4537
|
-
|
|
4538
|
-
throw Error(invalidEncoding);
|
|
4539
|
-
return offset - start;
|
|
4619
|
+
return this;
|
|
4540
4620
|
};
|
|
4541
4621
|
|
|
4542
4622
|
/**
|
|
4543
|
-
*
|
|
4544
|
-
* @param {string}
|
|
4545
|
-
* @
|
|
4623
|
+
* Emits an event by calling its listeners with the specified arguments.
|
|
4624
|
+
* @param {string} evt Event name
|
|
4625
|
+
* @param {...*} args Arguments
|
|
4626
|
+
* @returns {util.EventEmitter} `this`
|
|
4546
4627
|
*/
|
|
4547
|
-
|
|
4548
|
-
|
|
4549
|
-
|
|
4550
|
-
|
|
4628
|
+
EventEmitter.prototype.emit = function emit(evt) {
|
|
4629
|
+
var listeners = this._listeners[evt];
|
|
4630
|
+
if (listeners) {
|
|
4631
|
+
var args = [],
|
|
4632
|
+
i = 1;
|
|
4633
|
+
for (; i < arguments.length;)
|
|
4634
|
+
args.push(arguments[i++]);
|
|
4635
|
+
for (i = 0; i < listeners.length;)
|
|
4636
|
+
listeners[i].fn.apply(listeners[i++].ctx, args);
|
|
4637
|
+
}
|
|
4638
|
+
return this;
|
|
4639
|
+
};
|
|
4640
|
+
return eventemitter;
|
|
4641
|
+
}
|
|
4551
4642
|
|
|
4552
|
-
var
|
|
4553
|
-
|
|
4554
|
-
/**
|
|
4555
|
-
* Constructs a new event emitter instance.
|
|
4556
|
-
* @classdesc A minimal event emitter.
|
|
4557
|
-
* @memberof util
|
|
4558
|
-
* @constructor
|
|
4559
|
-
*/
|
|
4560
|
-
function EventEmitter() {
|
|
4561
|
-
|
|
4562
|
-
/**
|
|
4563
|
-
* Registered listeners.
|
|
4564
|
-
* @type {Object.<string,*>}
|
|
4565
|
-
* @private
|
|
4566
|
-
*/
|
|
4567
|
-
this._listeners = {};
|
|
4568
|
-
}
|
|
4569
|
-
|
|
4570
|
-
/**
|
|
4571
|
-
* Registers an event listener.
|
|
4572
|
-
* @param {string} evt Event name
|
|
4573
|
-
* @param {function} fn Listener
|
|
4574
|
-
* @param {*} [ctx] Listener context
|
|
4575
|
-
* @returns {util.EventEmitter} `this`
|
|
4576
|
-
*/
|
|
4577
|
-
EventEmitter.prototype.on = function on(evt, fn, ctx) {
|
|
4578
|
-
(this._listeners[evt] || (this._listeners[evt] = [])).push({
|
|
4579
|
-
fn : fn,
|
|
4580
|
-
ctx : ctx || this
|
|
4581
|
-
});
|
|
4582
|
-
return this;
|
|
4583
|
-
};
|
|
4584
|
-
|
|
4585
|
-
/**
|
|
4586
|
-
* Removes an event listener or any matching listeners if arguments are omitted.
|
|
4587
|
-
* @param {string} [evt] Event name. Removes all listeners if omitted.
|
|
4588
|
-
* @param {function} [fn] Listener to remove. Removes all listeners of `evt` if omitted.
|
|
4589
|
-
* @returns {util.EventEmitter} `this`
|
|
4590
|
-
*/
|
|
4591
|
-
EventEmitter.prototype.off = function off(evt, fn) {
|
|
4592
|
-
if (evt === undefined)
|
|
4593
|
-
this._listeners = {};
|
|
4594
|
-
else {
|
|
4595
|
-
if (fn === undefined)
|
|
4596
|
-
this._listeners[evt] = [];
|
|
4597
|
-
else {
|
|
4598
|
-
var listeners = this._listeners[evt];
|
|
4599
|
-
for (var i = 0; i < listeners.length;)
|
|
4600
|
-
if (listeners[i].fn === fn)
|
|
4601
|
-
listeners.splice(i, 1);
|
|
4602
|
-
else
|
|
4603
|
-
++i;
|
|
4604
|
-
}
|
|
4605
|
-
}
|
|
4606
|
-
return this;
|
|
4607
|
-
};
|
|
4608
|
-
|
|
4609
|
-
/**
|
|
4610
|
-
* Emits an event by calling its listeners with the specified arguments.
|
|
4611
|
-
* @param {string} evt Event name
|
|
4612
|
-
* @param {...*} args Arguments
|
|
4613
|
-
* @returns {util.EventEmitter} `this`
|
|
4614
|
-
*/
|
|
4615
|
-
EventEmitter.prototype.emit = function emit(evt) {
|
|
4616
|
-
var listeners = this._listeners[evt];
|
|
4617
|
-
if (listeners) {
|
|
4618
|
-
var args = [],
|
|
4619
|
-
i = 1;
|
|
4620
|
-
for (; i < arguments.length;)
|
|
4621
|
-
args.push(arguments[i++]);
|
|
4622
|
-
for (i = 0; i < listeners.length;)
|
|
4623
|
-
listeners[i].fn.apply(listeners[i++].ctx, args);
|
|
4624
|
-
}
|
|
4625
|
-
return this;
|
|
4626
|
-
};
|
|
4643
|
+
var float;
|
|
4644
|
+
var hasRequiredFloat;
|
|
4627
4645
|
|
|
4628
|
-
|
|
4629
|
-
|
|
4630
|
-
|
|
4631
|
-
* Reads / writes floats / doubles from / to buffers.
|
|
4632
|
-
* @name util.float
|
|
4633
|
-
* @namespace
|
|
4634
|
-
*/
|
|
4635
|
-
|
|
4636
|
-
/**
|
|
4637
|
-
* Writes a 32 bit float to a buffer using little endian byte order.
|
|
4638
|
-
* @name util.float.writeFloatLE
|
|
4639
|
-
* @function
|
|
4640
|
-
* @param {number} val Value to write
|
|
4641
|
-
* @param {Uint8Array} buf Target buffer
|
|
4642
|
-
* @param {number} pos Target buffer offset
|
|
4643
|
-
* @returns {undefined}
|
|
4644
|
-
*/
|
|
4645
|
-
|
|
4646
|
-
/**
|
|
4647
|
-
* Writes a 32 bit float to a buffer using big endian byte order.
|
|
4648
|
-
* @name util.float.writeFloatBE
|
|
4649
|
-
* @function
|
|
4650
|
-
* @param {number} val Value to write
|
|
4651
|
-
* @param {Uint8Array} buf Target buffer
|
|
4652
|
-
* @param {number} pos Target buffer offset
|
|
4653
|
-
* @returns {undefined}
|
|
4654
|
-
*/
|
|
4655
|
-
|
|
4656
|
-
/**
|
|
4657
|
-
* Reads a 32 bit float from a buffer using little endian byte order.
|
|
4658
|
-
* @name util.float.readFloatLE
|
|
4659
|
-
* @function
|
|
4660
|
-
* @param {Uint8Array} buf Source buffer
|
|
4661
|
-
* @param {number} pos Source buffer offset
|
|
4662
|
-
* @returns {number} Value read
|
|
4663
|
-
*/
|
|
4664
|
-
|
|
4665
|
-
/**
|
|
4666
|
-
* Reads a 32 bit float from a buffer using big endian byte order.
|
|
4667
|
-
* @name util.float.readFloatBE
|
|
4668
|
-
* @function
|
|
4669
|
-
* @param {Uint8Array} buf Source buffer
|
|
4670
|
-
* @param {number} pos Source buffer offset
|
|
4671
|
-
* @returns {number} Value read
|
|
4672
|
-
*/
|
|
4673
|
-
|
|
4674
|
-
/**
|
|
4675
|
-
* Writes a 64 bit double to a buffer using little endian byte order.
|
|
4676
|
-
* @name util.float.writeDoubleLE
|
|
4677
|
-
* @function
|
|
4678
|
-
* @param {number} val Value to write
|
|
4679
|
-
* @param {Uint8Array} buf Target buffer
|
|
4680
|
-
* @param {number} pos Target buffer offset
|
|
4681
|
-
* @returns {undefined}
|
|
4682
|
-
*/
|
|
4646
|
+
function requireFloat () {
|
|
4647
|
+
if (hasRequiredFloat) return float;
|
|
4648
|
+
hasRequiredFloat = 1;
|
|
4683
4649
|
|
|
4684
|
-
|
|
4685
|
-
* Writes a 64 bit double to a buffer using big endian byte order.
|
|
4686
|
-
* @name util.float.writeDoubleBE
|
|
4687
|
-
* @function
|
|
4688
|
-
* @param {number} val Value to write
|
|
4689
|
-
* @param {Uint8Array} buf Target buffer
|
|
4690
|
-
* @param {number} pos Target buffer offset
|
|
4691
|
-
* @returns {undefined}
|
|
4692
|
-
*/
|
|
4650
|
+
float = factory(factory);
|
|
4693
4651
|
|
|
4694
|
-
/**
|
|
4695
|
-
|
|
4696
|
-
|
|
4697
|
-
|
|
4698
|
-
|
|
4699
|
-
* @param {number} pos Source buffer offset
|
|
4700
|
-
* @returns {number} Value read
|
|
4701
|
-
*/
|
|
4652
|
+
/**
|
|
4653
|
+
* Reads / writes floats / doubles from / to buffers.
|
|
4654
|
+
* @name util.float
|
|
4655
|
+
* @namespace
|
|
4656
|
+
*/
|
|
4702
4657
|
|
|
4703
|
-
/**
|
|
4704
|
-
|
|
4705
|
-
|
|
4706
|
-
|
|
4707
|
-
|
|
4708
|
-
|
|
4709
|
-
|
|
4710
|
-
|
|
4658
|
+
/**
|
|
4659
|
+
* Writes a 32 bit float to a buffer using little endian byte order.
|
|
4660
|
+
* @name util.float.writeFloatLE
|
|
4661
|
+
* @function
|
|
4662
|
+
* @param {number} val Value to write
|
|
4663
|
+
* @param {Uint8Array} buf Target buffer
|
|
4664
|
+
* @param {number} pos Target buffer offset
|
|
4665
|
+
* @returns {undefined}
|
|
4666
|
+
*/
|
|
4711
4667
|
|
|
4712
|
-
|
|
4713
|
-
|
|
4668
|
+
/**
|
|
4669
|
+
* Writes a 32 bit float to a buffer using big endian byte order.
|
|
4670
|
+
* @name util.float.writeFloatBE
|
|
4671
|
+
* @function
|
|
4672
|
+
* @param {number} val Value to write
|
|
4673
|
+
* @param {Uint8Array} buf Target buffer
|
|
4674
|
+
* @param {number} pos Target buffer offset
|
|
4675
|
+
* @returns {undefined}
|
|
4676
|
+
*/
|
|
4714
4677
|
|
|
4715
|
-
|
|
4716
|
-
|
|
4678
|
+
/**
|
|
4679
|
+
* Reads a 32 bit float from a buffer using little endian byte order.
|
|
4680
|
+
* @name util.float.readFloatLE
|
|
4681
|
+
* @function
|
|
4682
|
+
* @param {Uint8Array} buf Source buffer
|
|
4683
|
+
* @param {number} pos Source buffer offset
|
|
4684
|
+
* @returns {number} Value read
|
|
4685
|
+
*/
|
|
4717
4686
|
|
|
4718
|
-
|
|
4719
|
-
|
|
4720
|
-
|
|
4687
|
+
/**
|
|
4688
|
+
* Reads a 32 bit float from a buffer using big endian byte order.
|
|
4689
|
+
* @name util.float.readFloatBE
|
|
4690
|
+
* @function
|
|
4691
|
+
* @param {Uint8Array} buf Source buffer
|
|
4692
|
+
* @param {number} pos Source buffer offset
|
|
4693
|
+
* @returns {number} Value read
|
|
4694
|
+
*/
|
|
4721
4695
|
|
|
4722
|
-
|
|
4723
|
-
|
|
4724
|
-
|
|
4725
|
-
|
|
4726
|
-
|
|
4727
|
-
|
|
4728
|
-
|
|
4696
|
+
/**
|
|
4697
|
+
* Writes a 64 bit double to a buffer using little endian byte order.
|
|
4698
|
+
* @name util.float.writeDoubleLE
|
|
4699
|
+
* @function
|
|
4700
|
+
* @param {number} val Value to write
|
|
4701
|
+
* @param {Uint8Array} buf Target buffer
|
|
4702
|
+
* @param {number} pos Target buffer offset
|
|
4703
|
+
* @returns {undefined}
|
|
4704
|
+
*/
|
|
4729
4705
|
|
|
4730
|
-
|
|
4731
|
-
|
|
4732
|
-
|
|
4733
|
-
|
|
4734
|
-
|
|
4735
|
-
|
|
4736
|
-
|
|
4706
|
+
/**
|
|
4707
|
+
* Writes a 64 bit double to a buffer using big endian byte order.
|
|
4708
|
+
* @name util.float.writeDoubleBE
|
|
4709
|
+
* @function
|
|
4710
|
+
* @param {number} val Value to write
|
|
4711
|
+
* @param {Uint8Array} buf Target buffer
|
|
4712
|
+
* @param {number} pos Target buffer offset
|
|
4713
|
+
* @returns {undefined}
|
|
4714
|
+
*/
|
|
4737
4715
|
|
|
4738
|
-
|
|
4739
|
-
|
|
4740
|
-
|
|
4741
|
-
|
|
4742
|
-
|
|
4743
|
-
|
|
4744
|
-
|
|
4745
|
-
|
|
4746
|
-
f8b[2] = buf[pos + 2];
|
|
4747
|
-
f8b[3] = buf[pos + 3];
|
|
4748
|
-
return f32[0];
|
|
4749
|
-
}
|
|
4716
|
+
/**
|
|
4717
|
+
* Reads a 64 bit double from a buffer using little endian byte order.
|
|
4718
|
+
* @name util.float.readDoubleLE
|
|
4719
|
+
* @function
|
|
4720
|
+
* @param {Uint8Array} buf Source buffer
|
|
4721
|
+
* @param {number} pos Source buffer offset
|
|
4722
|
+
* @returns {number} Value read
|
|
4723
|
+
*/
|
|
4750
4724
|
|
|
4751
|
-
|
|
4752
|
-
|
|
4753
|
-
|
|
4754
|
-
|
|
4755
|
-
|
|
4756
|
-
|
|
4757
|
-
|
|
4725
|
+
/**
|
|
4726
|
+
* Reads a 64 bit double from a buffer using big endian byte order.
|
|
4727
|
+
* @name util.float.readDoubleBE
|
|
4728
|
+
* @function
|
|
4729
|
+
* @param {Uint8Array} buf Source buffer
|
|
4730
|
+
* @param {number} pos Source buffer offset
|
|
4731
|
+
* @returns {number} Value read
|
|
4732
|
+
*/
|
|
4758
4733
|
|
|
4759
|
-
|
|
4760
|
-
|
|
4761
|
-
/* istanbul ignore next */
|
|
4762
|
-
exports.readFloatBE = le ? readFloat_f32_rev : readFloat_f32_cpy;
|
|
4763
|
-
|
|
4764
|
-
// float: ieee754
|
|
4765
|
-
})(); else (function() {
|
|
4766
|
-
|
|
4767
|
-
function writeFloat_ieee754(writeUint, val, buf, pos) {
|
|
4768
|
-
var sign = val < 0 ? 1 : 0;
|
|
4769
|
-
if (sign)
|
|
4770
|
-
val = -val;
|
|
4771
|
-
if (val === 0)
|
|
4772
|
-
writeUint(1 / val > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos);
|
|
4773
|
-
else if (isNaN(val))
|
|
4774
|
-
writeUint(2143289344, buf, pos);
|
|
4775
|
-
else if (val > 3.4028234663852886e+38) // +-Infinity
|
|
4776
|
-
writeUint((sign << 31 | 2139095040) >>> 0, buf, pos);
|
|
4777
|
-
else if (val < 1.1754943508222875e-38) // denormal
|
|
4778
|
-
writeUint((sign << 31 | Math.round(val / 1.401298464324817e-45)) >>> 0, buf, pos);
|
|
4779
|
-
else {
|
|
4780
|
-
var exponent = Math.floor(Math.log(val) / Math.LN2),
|
|
4781
|
-
mantissa = Math.round(val * Math.pow(2, -exponent) * 8388608) & 8388607;
|
|
4782
|
-
writeUint((sign << 31 | exponent + 127 << 23 | mantissa) >>> 0, buf, pos);
|
|
4783
|
-
}
|
|
4784
|
-
}
|
|
4734
|
+
// Factory function for the purpose of node-based testing in modified global environments
|
|
4735
|
+
function factory(exports) {
|
|
4785
4736
|
|
|
4786
|
-
|
|
4787
|
-
|
|
4788
|
-
|
|
4789
|
-
function readFloat_ieee754(readUint, buf, pos) {
|
|
4790
|
-
var uint = readUint(buf, pos),
|
|
4791
|
-
sign = (uint >> 31) * 2 + 1,
|
|
4792
|
-
exponent = uint >>> 23 & 255,
|
|
4793
|
-
mantissa = uint & 8388607;
|
|
4794
|
-
return exponent === 255
|
|
4795
|
-
? mantissa
|
|
4796
|
-
? NaN
|
|
4797
|
-
: sign * Infinity
|
|
4798
|
-
: exponent === 0 // denormal
|
|
4799
|
-
? sign * 1.401298464324817e-45 * mantissa
|
|
4800
|
-
: sign * Math.pow(2, exponent - 150) * (mantissa + 8388608);
|
|
4801
|
-
}
|
|
4737
|
+
// float: typed array
|
|
4738
|
+
if (typeof Float32Array !== "undefined") (function() {
|
|
4802
4739
|
|
|
4803
|
-
|
|
4804
|
-
|
|
4740
|
+
var f32 = new Float32Array([ -0 ]),
|
|
4741
|
+
f8b = new Uint8Array(f32.buffer),
|
|
4742
|
+
le = f8b[3] === 128;
|
|
4805
4743
|
|
|
4806
|
-
|
|
4744
|
+
function writeFloat_f32_cpy(val, buf, pos) {
|
|
4745
|
+
f32[0] = val;
|
|
4746
|
+
buf[pos ] = f8b[0];
|
|
4747
|
+
buf[pos + 1] = f8b[1];
|
|
4748
|
+
buf[pos + 2] = f8b[2];
|
|
4749
|
+
buf[pos + 3] = f8b[3];
|
|
4750
|
+
}
|
|
4807
4751
|
|
|
4808
|
-
|
|
4809
|
-
|
|
4752
|
+
function writeFloat_f32_rev(val, buf, pos) {
|
|
4753
|
+
f32[0] = val;
|
|
4754
|
+
buf[pos ] = f8b[3];
|
|
4755
|
+
buf[pos + 1] = f8b[2];
|
|
4756
|
+
buf[pos + 2] = f8b[1];
|
|
4757
|
+
buf[pos + 3] = f8b[0];
|
|
4758
|
+
}
|
|
4810
4759
|
|
|
4811
|
-
|
|
4812
|
-
|
|
4813
|
-
|
|
4760
|
+
/* istanbul ignore next */
|
|
4761
|
+
exports.writeFloatLE = le ? writeFloat_f32_cpy : writeFloat_f32_rev;
|
|
4762
|
+
/* istanbul ignore next */
|
|
4763
|
+
exports.writeFloatBE = le ? writeFloat_f32_rev : writeFloat_f32_cpy;
|
|
4764
|
+
|
|
4765
|
+
function readFloat_f32_cpy(buf, pos) {
|
|
4766
|
+
f8b[0] = buf[pos ];
|
|
4767
|
+
f8b[1] = buf[pos + 1];
|
|
4768
|
+
f8b[2] = buf[pos + 2];
|
|
4769
|
+
f8b[3] = buf[pos + 3];
|
|
4770
|
+
return f32[0];
|
|
4771
|
+
}
|
|
4814
4772
|
|
|
4815
|
-
|
|
4816
|
-
|
|
4817
|
-
|
|
4818
|
-
|
|
4819
|
-
|
|
4820
|
-
|
|
4821
|
-
|
|
4822
|
-
buf[pos + 5] = f8b[5];
|
|
4823
|
-
buf[pos + 6] = f8b[6];
|
|
4824
|
-
buf[pos + 7] = f8b[7];
|
|
4825
|
-
}
|
|
4773
|
+
function readFloat_f32_rev(buf, pos) {
|
|
4774
|
+
f8b[3] = buf[pos ];
|
|
4775
|
+
f8b[2] = buf[pos + 1];
|
|
4776
|
+
f8b[1] = buf[pos + 2];
|
|
4777
|
+
f8b[0] = buf[pos + 3];
|
|
4778
|
+
return f32[0];
|
|
4779
|
+
}
|
|
4826
4780
|
|
|
4827
|
-
|
|
4828
|
-
|
|
4829
|
-
|
|
4830
|
-
|
|
4831
|
-
|
|
4832
|
-
|
|
4833
|
-
|
|
4834
|
-
|
|
4835
|
-
|
|
4836
|
-
|
|
4837
|
-
|
|
4781
|
+
/* istanbul ignore next */
|
|
4782
|
+
exports.readFloatLE = le ? readFloat_f32_cpy : readFloat_f32_rev;
|
|
4783
|
+
/* istanbul ignore next */
|
|
4784
|
+
exports.readFloatBE = le ? readFloat_f32_rev : readFloat_f32_cpy;
|
|
4785
|
+
|
|
4786
|
+
// float: ieee754
|
|
4787
|
+
})(); else (function() {
|
|
4788
|
+
|
|
4789
|
+
function writeFloat_ieee754(writeUint, val, buf, pos) {
|
|
4790
|
+
var sign = val < 0 ? 1 : 0;
|
|
4791
|
+
if (sign)
|
|
4792
|
+
val = -val;
|
|
4793
|
+
if (val === 0)
|
|
4794
|
+
writeUint(1 / val > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos);
|
|
4795
|
+
else if (isNaN(val))
|
|
4796
|
+
writeUint(2143289344, buf, pos);
|
|
4797
|
+
else if (val > 3.4028234663852886e+38) // +-Infinity
|
|
4798
|
+
writeUint((sign << 31 | 2139095040) >>> 0, buf, pos);
|
|
4799
|
+
else if (val < 1.1754943508222875e-38) // denormal
|
|
4800
|
+
writeUint((sign << 31 | Math.round(val / 1.401298464324817e-45)) >>> 0, buf, pos);
|
|
4801
|
+
else {
|
|
4802
|
+
var exponent = Math.floor(Math.log(val) / Math.LN2),
|
|
4803
|
+
mantissa = Math.round(val * Math.pow(2, -exponent) * 8388608) & 8388607;
|
|
4804
|
+
writeUint((sign << 31 | exponent + 127 << 23 | mantissa) >>> 0, buf, pos);
|
|
4805
|
+
}
|
|
4806
|
+
}
|
|
4838
4807
|
|
|
4839
|
-
|
|
4840
|
-
|
|
4841
|
-
|
|
4842
|
-
|
|
4843
|
-
|
|
4844
|
-
|
|
4845
|
-
|
|
4846
|
-
|
|
4847
|
-
|
|
4848
|
-
|
|
4849
|
-
|
|
4850
|
-
|
|
4851
|
-
|
|
4852
|
-
|
|
4853
|
-
|
|
4854
|
-
|
|
4808
|
+
exports.writeFloatLE = writeFloat_ieee754.bind(null, writeUintLE);
|
|
4809
|
+
exports.writeFloatBE = writeFloat_ieee754.bind(null, writeUintBE);
|
|
4810
|
+
|
|
4811
|
+
function readFloat_ieee754(readUint, buf, pos) {
|
|
4812
|
+
var uint = readUint(buf, pos),
|
|
4813
|
+
sign = (uint >> 31) * 2 + 1,
|
|
4814
|
+
exponent = uint >>> 23 & 255,
|
|
4815
|
+
mantissa = uint & 8388607;
|
|
4816
|
+
return exponent === 255
|
|
4817
|
+
? mantissa
|
|
4818
|
+
? NaN
|
|
4819
|
+
: sign * Infinity
|
|
4820
|
+
: exponent === 0 // denormal
|
|
4821
|
+
? sign * 1.401298464324817e-45 * mantissa
|
|
4822
|
+
: sign * Math.pow(2, exponent - 150) * (mantissa + 8388608);
|
|
4823
|
+
}
|
|
4855
4824
|
|
|
4856
|
-
|
|
4857
|
-
|
|
4858
|
-
f8b[6] = buf[pos + 1];
|
|
4859
|
-
f8b[5] = buf[pos + 2];
|
|
4860
|
-
f8b[4] = buf[pos + 3];
|
|
4861
|
-
f8b[3] = buf[pos + 4];
|
|
4862
|
-
f8b[2] = buf[pos + 5];
|
|
4863
|
-
f8b[1] = buf[pos + 6];
|
|
4864
|
-
f8b[0] = buf[pos + 7];
|
|
4865
|
-
return f64[0];
|
|
4866
|
-
}
|
|
4825
|
+
exports.readFloatLE = readFloat_ieee754.bind(null, readUintLE);
|
|
4826
|
+
exports.readFloatBE = readFloat_ieee754.bind(null, readUintBE);
|
|
4867
4827
|
|
|
4868
|
-
|
|
4869
|
-
exports.readDoubleLE = le ? readDouble_f64_cpy : readDouble_f64_rev;
|
|
4870
|
-
/* istanbul ignore next */
|
|
4871
|
-
exports.readDoubleBE = le ? readDouble_f64_rev : readDouble_f64_cpy;
|
|
4872
|
-
|
|
4873
|
-
// double: ieee754
|
|
4874
|
-
})(); else (function() {
|
|
4875
|
-
|
|
4876
|
-
function writeDouble_ieee754(writeUint, off0, off1, val, buf, pos) {
|
|
4877
|
-
var sign = val < 0 ? 1 : 0;
|
|
4878
|
-
if (sign)
|
|
4879
|
-
val = -val;
|
|
4880
|
-
if (val === 0) {
|
|
4881
|
-
writeUint(0, buf, pos + off0);
|
|
4882
|
-
writeUint(1 / val > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos + off1);
|
|
4883
|
-
} else if (isNaN(val)) {
|
|
4884
|
-
writeUint(0, buf, pos + off0);
|
|
4885
|
-
writeUint(2146959360, buf, pos + off1);
|
|
4886
|
-
} else if (val > 1.7976931348623157e+308) { // +-Infinity
|
|
4887
|
-
writeUint(0, buf, pos + off0);
|
|
4888
|
-
writeUint((sign << 31 | 2146435072) >>> 0, buf, pos + off1);
|
|
4889
|
-
} else {
|
|
4890
|
-
var mantissa;
|
|
4891
|
-
if (val < 2.2250738585072014e-308) { // denormal
|
|
4892
|
-
mantissa = val / 5e-324;
|
|
4893
|
-
writeUint(mantissa >>> 0, buf, pos + off0);
|
|
4894
|
-
writeUint((sign << 31 | mantissa / 4294967296) >>> 0, buf, pos + off1);
|
|
4895
|
-
} else {
|
|
4896
|
-
var exponent = Math.floor(Math.log(val) / Math.LN2);
|
|
4897
|
-
if (exponent === 1024)
|
|
4898
|
-
exponent = 1023;
|
|
4899
|
-
mantissa = val * Math.pow(2, -exponent);
|
|
4900
|
-
writeUint(mantissa * 4503599627370496 >>> 0, buf, pos + off0);
|
|
4901
|
-
writeUint((sign << 31 | exponent + 1023 << 20 | mantissa * 1048576 & 1048575) >>> 0, buf, pos + off1);
|
|
4902
|
-
}
|
|
4903
|
-
}
|
|
4904
|
-
}
|
|
4828
|
+
})();
|
|
4905
4829
|
|
|
4906
|
-
|
|
4907
|
-
|
|
4908
|
-
|
|
4909
|
-
function readDouble_ieee754(readUint, off0, off1, buf, pos) {
|
|
4910
|
-
var lo = readUint(buf, pos + off0),
|
|
4911
|
-
hi = readUint(buf, pos + off1);
|
|
4912
|
-
var sign = (hi >> 31) * 2 + 1,
|
|
4913
|
-
exponent = hi >>> 20 & 2047,
|
|
4914
|
-
mantissa = 4294967296 * (hi & 1048575) + lo;
|
|
4915
|
-
return exponent === 2047
|
|
4916
|
-
? mantissa
|
|
4917
|
-
? NaN
|
|
4918
|
-
: sign * Infinity
|
|
4919
|
-
: exponent === 0 // denormal
|
|
4920
|
-
? sign * 5e-324 * mantissa
|
|
4921
|
-
: sign * Math.pow(2, exponent - 1075) * (mantissa + 4503599627370496);
|
|
4922
|
-
}
|
|
4830
|
+
// double: typed array
|
|
4831
|
+
if (typeof Float64Array !== "undefined") (function() {
|
|
4923
4832
|
|
|
4924
|
-
|
|
4925
|
-
|
|
4833
|
+
var f64 = new Float64Array([-0]),
|
|
4834
|
+
f8b = new Uint8Array(f64.buffer),
|
|
4835
|
+
le = f8b[7] === 128;
|
|
4926
4836
|
|
|
4927
|
-
|
|
4837
|
+
function writeDouble_f64_cpy(val, buf, pos) {
|
|
4838
|
+
f64[0] = val;
|
|
4839
|
+
buf[pos ] = f8b[0];
|
|
4840
|
+
buf[pos + 1] = f8b[1];
|
|
4841
|
+
buf[pos + 2] = f8b[2];
|
|
4842
|
+
buf[pos + 3] = f8b[3];
|
|
4843
|
+
buf[pos + 4] = f8b[4];
|
|
4844
|
+
buf[pos + 5] = f8b[5];
|
|
4845
|
+
buf[pos + 6] = f8b[6];
|
|
4846
|
+
buf[pos + 7] = f8b[7];
|
|
4847
|
+
}
|
|
4928
4848
|
|
|
4929
|
-
|
|
4930
|
-
|
|
4849
|
+
function writeDouble_f64_rev(val, buf, pos) {
|
|
4850
|
+
f64[0] = val;
|
|
4851
|
+
buf[pos ] = f8b[7];
|
|
4852
|
+
buf[pos + 1] = f8b[6];
|
|
4853
|
+
buf[pos + 2] = f8b[5];
|
|
4854
|
+
buf[pos + 3] = f8b[4];
|
|
4855
|
+
buf[pos + 4] = f8b[3];
|
|
4856
|
+
buf[pos + 5] = f8b[2];
|
|
4857
|
+
buf[pos + 6] = f8b[1];
|
|
4858
|
+
buf[pos + 7] = f8b[0];
|
|
4859
|
+
}
|
|
4931
4860
|
|
|
4932
|
-
|
|
4861
|
+
/* istanbul ignore next */
|
|
4862
|
+
exports.writeDoubleLE = le ? writeDouble_f64_cpy : writeDouble_f64_rev;
|
|
4863
|
+
/* istanbul ignore next */
|
|
4864
|
+
exports.writeDoubleBE = le ? writeDouble_f64_rev : writeDouble_f64_cpy;
|
|
4865
|
+
|
|
4866
|
+
function readDouble_f64_cpy(buf, pos) {
|
|
4867
|
+
f8b[0] = buf[pos ];
|
|
4868
|
+
f8b[1] = buf[pos + 1];
|
|
4869
|
+
f8b[2] = buf[pos + 2];
|
|
4870
|
+
f8b[3] = buf[pos + 3];
|
|
4871
|
+
f8b[4] = buf[pos + 4];
|
|
4872
|
+
f8b[5] = buf[pos + 5];
|
|
4873
|
+
f8b[6] = buf[pos + 6];
|
|
4874
|
+
f8b[7] = buf[pos + 7];
|
|
4875
|
+
return f64[0];
|
|
4876
|
+
}
|
|
4933
4877
|
|
|
4934
|
-
function
|
|
4935
|
-
|
|
4936
|
-
|
|
4937
|
-
|
|
4938
|
-
|
|
4939
|
-
|
|
4878
|
+
function readDouble_f64_rev(buf, pos) {
|
|
4879
|
+
f8b[7] = buf[pos ];
|
|
4880
|
+
f8b[6] = buf[pos + 1];
|
|
4881
|
+
f8b[5] = buf[pos + 2];
|
|
4882
|
+
f8b[4] = buf[pos + 3];
|
|
4883
|
+
f8b[3] = buf[pos + 4];
|
|
4884
|
+
f8b[2] = buf[pos + 5];
|
|
4885
|
+
f8b[1] = buf[pos + 6];
|
|
4886
|
+
f8b[0] = buf[pos + 7];
|
|
4887
|
+
return f64[0];
|
|
4888
|
+
}
|
|
4940
4889
|
|
|
4941
|
-
|
|
4942
|
-
|
|
4943
|
-
|
|
4944
|
-
|
|
4945
|
-
|
|
4946
|
-
|
|
4890
|
+
/* istanbul ignore next */
|
|
4891
|
+
exports.readDoubleLE = le ? readDouble_f64_cpy : readDouble_f64_rev;
|
|
4892
|
+
/* istanbul ignore next */
|
|
4893
|
+
exports.readDoubleBE = le ? readDouble_f64_rev : readDouble_f64_cpy;
|
|
4894
|
+
|
|
4895
|
+
// double: ieee754
|
|
4896
|
+
})(); else (function() {
|
|
4897
|
+
|
|
4898
|
+
function writeDouble_ieee754(writeUint, off0, off1, val, buf, pos) {
|
|
4899
|
+
var sign = val < 0 ? 1 : 0;
|
|
4900
|
+
if (sign)
|
|
4901
|
+
val = -val;
|
|
4902
|
+
if (val === 0) {
|
|
4903
|
+
writeUint(0, buf, pos + off0);
|
|
4904
|
+
writeUint(1 / val > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos + off1);
|
|
4905
|
+
} else if (isNaN(val)) {
|
|
4906
|
+
writeUint(0, buf, pos + off0);
|
|
4907
|
+
writeUint(2146959360, buf, pos + off1);
|
|
4908
|
+
} else if (val > 1.7976931348623157e+308) { // +-Infinity
|
|
4909
|
+
writeUint(0, buf, pos + off0);
|
|
4910
|
+
writeUint((sign << 31 | 2146435072) >>> 0, buf, pos + off1);
|
|
4911
|
+
} else {
|
|
4912
|
+
var mantissa;
|
|
4913
|
+
if (val < 2.2250738585072014e-308) { // denormal
|
|
4914
|
+
mantissa = val / 5e-324;
|
|
4915
|
+
writeUint(mantissa >>> 0, buf, pos + off0);
|
|
4916
|
+
writeUint((sign << 31 | mantissa / 4294967296) >>> 0, buf, pos + off1);
|
|
4917
|
+
} else {
|
|
4918
|
+
var exponent = Math.floor(Math.log(val) / Math.LN2);
|
|
4919
|
+
if (exponent === 1024)
|
|
4920
|
+
exponent = 1023;
|
|
4921
|
+
mantissa = val * Math.pow(2, -exponent);
|
|
4922
|
+
writeUint(mantissa * 4503599627370496 >>> 0, buf, pos + off0);
|
|
4923
|
+
writeUint((sign << 31 | exponent + 1023 << 20 | mantissa * 1048576 & 1048575) >>> 0, buf, pos + off1);
|
|
4924
|
+
}
|
|
4925
|
+
}
|
|
4926
|
+
}
|
|
4947
4927
|
|
|
4948
|
-
|
|
4949
|
-
|
|
4950
|
-
|
|
4951
|
-
|
|
4952
|
-
|
|
4953
|
-
|
|
4928
|
+
exports.writeDoubleLE = writeDouble_ieee754.bind(null, writeUintLE, 0, 4);
|
|
4929
|
+
exports.writeDoubleBE = writeDouble_ieee754.bind(null, writeUintBE, 4, 0);
|
|
4930
|
+
|
|
4931
|
+
function readDouble_ieee754(readUint, off0, off1, buf, pos) {
|
|
4932
|
+
var lo = readUint(buf, pos + off0),
|
|
4933
|
+
hi = readUint(buf, pos + off1);
|
|
4934
|
+
var sign = (hi >> 31) * 2 + 1,
|
|
4935
|
+
exponent = hi >>> 20 & 2047,
|
|
4936
|
+
mantissa = 4294967296 * (hi & 1048575) + lo;
|
|
4937
|
+
return exponent === 2047
|
|
4938
|
+
? mantissa
|
|
4939
|
+
? NaN
|
|
4940
|
+
: sign * Infinity
|
|
4941
|
+
: exponent === 0 // denormal
|
|
4942
|
+
? sign * 5e-324 * mantissa
|
|
4943
|
+
: sign * Math.pow(2, exponent - 1075) * (mantissa + 4503599627370496);
|
|
4944
|
+
}
|
|
4954
4945
|
|
|
4955
|
-
|
|
4956
|
-
|
|
4957
|
-
|
|
4958
|
-
|
|
4959
|
-
|
|
4946
|
+
exports.readDoubleLE = readDouble_ieee754.bind(null, readUintLE, 0, 4);
|
|
4947
|
+
exports.readDoubleBE = readDouble_ieee754.bind(null, readUintBE, 4, 0);
|
|
4948
|
+
|
|
4949
|
+
})();
|
|
4950
|
+
|
|
4951
|
+
return exports;
|
|
4952
|
+
}
|
|
4953
|
+
|
|
4954
|
+
// uint helpers
|
|
4955
|
+
|
|
4956
|
+
function writeUintLE(val, buf, pos) {
|
|
4957
|
+
buf[pos ] = val & 255;
|
|
4958
|
+
buf[pos + 1] = val >>> 8 & 255;
|
|
4959
|
+
buf[pos + 2] = val >>> 16 & 255;
|
|
4960
|
+
buf[pos + 3] = val >>> 24;
|
|
4961
|
+
}
|
|
4962
|
+
|
|
4963
|
+
function writeUintBE(val, buf, pos) {
|
|
4964
|
+
buf[pos ] = val >>> 24;
|
|
4965
|
+
buf[pos + 1] = val >>> 16 & 255;
|
|
4966
|
+
buf[pos + 2] = val >>> 8 & 255;
|
|
4967
|
+
buf[pos + 3] = val & 255;
|
|
4968
|
+
}
|
|
4969
|
+
|
|
4970
|
+
function readUintLE(buf, pos) {
|
|
4971
|
+
return (buf[pos ]
|
|
4972
|
+
| buf[pos + 1] << 8
|
|
4973
|
+
| buf[pos + 2] << 16
|
|
4974
|
+
| buf[pos + 3] << 24) >>> 0;
|
|
4975
|
+
}
|
|
4976
|
+
|
|
4977
|
+
function readUintBE(buf, pos) {
|
|
4978
|
+
return (buf[pos ] << 24
|
|
4979
|
+
| buf[pos + 1] << 16
|
|
4980
|
+
| buf[pos + 2] << 8
|
|
4981
|
+
| buf[pos + 3]) >>> 0;
|
|
4982
|
+
}
|
|
4983
|
+
return float;
|
|
4960
4984
|
}
|
|
4961
4985
|
|
|
4962
|
-
var inquire_1;
|
|
4963
|
-
var hasRequiredInquire;
|
|
4964
|
-
|
|
4965
|
-
function requireInquire () {
|
|
4966
|
-
if (hasRequiredInquire) return inquire_1;
|
|
4967
|
-
hasRequiredInquire = 1;
|
|
4968
|
-
inquire_1 = inquire;
|
|
4986
|
+
var inquire_1 = inquire;
|
|
4969
4987
|
|
|
4970
|
-
|
|
4971
|
-
|
|
4972
|
-
|
|
4973
|
-
|
|
4974
|
-
|
|
4975
|
-
|
|
4976
|
-
|
|
4977
|
-
|
|
4978
|
-
|
|
4979
|
-
|
|
4980
|
-
|
|
4981
|
-
|
|
4982
|
-
|
|
4983
|
-
}
|
|
4984
|
-
return inquire_1;
|
|
4988
|
+
/**
|
|
4989
|
+
* Requires a module only if available.
|
|
4990
|
+
* @memberof util
|
|
4991
|
+
* @param {string} moduleName Module to require
|
|
4992
|
+
* @returns {?Object} Required module if available and not empty, otherwise `null`
|
|
4993
|
+
*/
|
|
4994
|
+
function inquire(moduleName) {
|
|
4995
|
+
try {
|
|
4996
|
+
var mod = eval("quire".replace(/^/,"re"))(moduleName); // eslint-disable-line no-eval
|
|
4997
|
+
if (mod && (mod.length || Object.keys(mod).length))
|
|
4998
|
+
return mod;
|
|
4999
|
+
} catch (e) {} // eslint-disable-line no-empty
|
|
5000
|
+
return null;
|
|
4985
5001
|
}
|
|
4986
5002
|
|
|
4987
5003
|
var utf8$2 = {};
|
|
@@ -5376,16 +5392,16 @@ function requireMinimal () {
|
|
|
5376
5392
|
util.asPromise = aspromise;
|
|
5377
5393
|
|
|
5378
5394
|
// converts to / from base64 encoded strings
|
|
5379
|
-
util.base64 =
|
|
5395
|
+
util.base64 = requireBase64();
|
|
5380
5396
|
|
|
5381
5397
|
// base class of rpc.Service
|
|
5382
|
-
util.EventEmitter =
|
|
5398
|
+
util.EventEmitter = requireEventemitter();
|
|
5383
5399
|
|
|
5384
5400
|
// float handling accross browsers
|
|
5385
|
-
util.float =
|
|
5401
|
+
util.float = requireFloat();
|
|
5386
5402
|
|
|
5387
5403
|
// requires modules optionally and hides the call from bundlers
|
|
5388
|
-
util.inquire =
|
|
5404
|
+
util.inquire = inquire_1;
|
|
5389
5405
|
|
|
5390
5406
|
// converts to / from utf8 encoded strings
|
|
5391
5407
|
util.utf8 = requireUtf8();
|
|
@@ -10673,7 +10689,8 @@ class Client extends BaseXChainClient {
|
|
|
10673
10689
|
transfer({ walletIndex = 0, asset = AssetRuneNative, amount, recipient, memo, gasLimit = new BigNumber(DEFAULT_GAS_LIMIT_VALUE), sequence, }) {
|
|
10674
10690
|
var _a, _b, _c, _d;
|
|
10675
10691
|
return __awaiter(this, void 0, void 0, function* () {
|
|
10676
|
-
const
|
|
10692
|
+
const sender = this.getAddress(walletIndex);
|
|
10693
|
+
const balances = yield this.getBalance(sender);
|
|
10677
10694
|
const runeBalance = (_b = (_a = balances.filter(({ asset }) => isAssetRuneNative(asset))[0]) === null || _a === void 0 ? void 0 : _a.amount) !== null && _b !== void 0 ? _b : baseAmount(0, RUNE_DECIMAL);
|
|
10678
10695
|
const assetBalance = (_d = (_c = balances.filter(({ asset: assetInList }) => assetToString(assetInList) === assetToString(asset))[0]) === null || _c === void 0 ? void 0 : _c.amount) !== null && _d !== void 0 ? _d : baseAmount(0, RUNE_DECIMAL);
|
|
10679
10696
|
const fee = (yield this.getFees()).average;
|
|
@@ -10689,35 +10706,29 @@ class Client extends BaseXChainClient {
|
|
|
10689
10706
|
throw new Error('insufficient funds');
|
|
10690
10707
|
}
|
|
10691
10708
|
}
|
|
10692
|
-
const
|
|
10693
|
-
|
|
10694
|
-
|
|
10695
|
-
|
|
10696
|
-
|
|
10697
|
-
|
|
10698
|
-
|
|
10699
|
-
|
|
10700
|
-
memo: memo,
|
|
10701
|
-
assetAmount: amount,
|
|
10702
|
-
assetDenom: denom,
|
|
10703
|
-
chainId: this.getChainId(),
|
|
10704
|
-
nodeUrl: this.getClientUrl().node,
|
|
10709
|
+
const unsignedTxData = yield this.prepareTx({
|
|
10710
|
+
sender,
|
|
10711
|
+
asset,
|
|
10712
|
+
amount,
|
|
10713
|
+
recipient,
|
|
10714
|
+
memo,
|
|
10715
|
+
gasLimit,
|
|
10716
|
+
sequence,
|
|
10705
10717
|
});
|
|
10706
|
-
const
|
|
10707
|
-
const
|
|
10718
|
+
const decodedTx = cosmosclient.proto.cosmos.tx.v1beta1.TxRaw.decode(Buffer.from(unsignedTxData.rawUnsignedTx, 'base64'));
|
|
10719
|
+
const privKey = this.getCosmosClient().getPrivKeyFromMnemonic(this.phrase, this.getFullDerivationPath(walletIndex));
|
|
10720
|
+
const authInfo = cosmosclient.proto.cosmos.tx.v1beta1.AuthInfo.decode(decodedTx.auth_info_bytes);
|
|
10721
|
+
if (!authInfo.signer_infos[0].public_key) {
|
|
10722
|
+
authInfo.signer_infos[0].public_key = cosmosclient.codec.instanceToProtoAny(privKey.pubKey());
|
|
10723
|
+
}
|
|
10724
|
+
const txBuilder = new cosmosclient.TxBuilder(this.getCosmosClient().sdk, cosmosclient.proto.cosmos.tx.v1beta1.TxBody.decode(decodedTx.body_bytes), authInfo);
|
|
10725
|
+
const { account_number: accountNumber } = yield this.getCosmosClient().getAccount(cosmosclient.AccAddress.fromString(sender));
|
|
10708
10726
|
if (!accountNumber)
|
|
10709
|
-
throw Error(`
|
|
10710
|
-
const
|
|
10711
|
-
|
|
10712
|
-
|
|
10713
|
-
|
|
10714
|
-
signerPubkey: cosmosclient.codec.instanceToProtoAny(signerPubkey),
|
|
10715
|
-
sequence: sequence ? Long$1.fromNumber(sequence) : account.sequence || Long$1.ZERO,
|
|
10716
|
-
});
|
|
10717
|
-
const txHash = yield this.cosmosClient.signAndBroadcast(txBuilder, privKey, accountNumber);
|
|
10718
|
-
if (!txHash)
|
|
10719
|
-
throw Error(`Invalid transaction hash: ${txHash}`);
|
|
10720
|
-
return txHash;
|
|
10727
|
+
throw Error(`Transfer failed - missing account number`);
|
|
10728
|
+
const signDocBytes = txBuilder.signDocBytes(accountNumber);
|
|
10729
|
+
txBuilder.addSignature(privKey.sign(signDocBytes));
|
|
10730
|
+
const signedTx = txBuilder.txBytes();
|
|
10731
|
+
return this.broadcastTx(signedTx);
|
|
10721
10732
|
});
|
|
10722
10733
|
}
|
|
10723
10734
|
broadcastTx(txHex) {
|
|
@@ -10728,6 +10739,7 @@ class Client extends BaseXChainClient {
|
|
|
10728
10739
|
/**
|
|
10729
10740
|
* Transfer without broadcast balances with MsgSend
|
|
10730
10741
|
*
|
|
10742
|
+
* @deprecated use instead prepareTx
|
|
10731
10743
|
* @param {TxOfflineParams} params The transfer offline options.
|
|
10732
10744
|
* @returns {string} The signed transaction bytes.
|
|
10733
10745
|
*/
|
|
@@ -10787,6 +10799,40 @@ class Client extends BaseXChainClient {
|
|
|
10787
10799
|
}
|
|
10788
10800
|
});
|
|
10789
10801
|
}
|
|
10802
|
+
/**
|
|
10803
|
+
* Prepare transfer.
|
|
10804
|
+
*
|
|
10805
|
+
* @param {TxParams&Address&BigNumber} params The transfer options.
|
|
10806
|
+
* @returns {PreparedTx} The raw unsigned transaction.
|
|
10807
|
+
*/
|
|
10808
|
+
prepareTx({ sender, recipient, amount, memo, asset = AssetRuneNative, gasLimit = new BigNumber(DEFAULT_GAS_LIMIT_VALUE), sequence, }) {
|
|
10809
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
10810
|
+
if (!this.validateAddress(sender))
|
|
10811
|
+
throw Error('Invalid sender address');
|
|
10812
|
+
if (!this.validateAddress(recipient))
|
|
10813
|
+
throw Error('Invalid recipient address');
|
|
10814
|
+
const denom = getDenom(asset);
|
|
10815
|
+
const txBody = yield buildTransferTx({
|
|
10816
|
+
fromAddress: sender,
|
|
10817
|
+
toAddress: recipient,
|
|
10818
|
+
memo,
|
|
10819
|
+
assetAmount: amount,
|
|
10820
|
+
assetDenom: denom,
|
|
10821
|
+
chainId: this.getChainId(),
|
|
10822
|
+
nodeUrl: this.getClientUrl().node,
|
|
10823
|
+
});
|
|
10824
|
+
const account = yield this.getCosmosClient().getAccount(cosmosclient.AccAddress.fromString(sender));
|
|
10825
|
+
const { pub_key: pubkey } = account;
|
|
10826
|
+
const txBuilder = buildUnsignedTx({
|
|
10827
|
+
cosmosSdk: this.getCosmosClient().sdk,
|
|
10828
|
+
txBody,
|
|
10829
|
+
gasLimit: Long$1.fromString(gasLimit.toString()),
|
|
10830
|
+
signerPubkey: pubkey,
|
|
10831
|
+
sequence: sequence ? Long$1.fromNumber(sequence) : account.sequence || Long$1.ZERO,
|
|
10832
|
+
});
|
|
10833
|
+
return { rawUnsignedTx: txBuilder.txBytes() };
|
|
10834
|
+
});
|
|
10835
|
+
}
|
|
10790
10836
|
}
|
|
10791
10837
|
|
|
10792
10838
|
class MsgNativeTx {
|