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