@bitgo/account-lib 2.17.2-rc.1 → 2.17.2-rc.2
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/browser/bitgo-account-lib.min.js +1 -1
- package/dist/package.json +7 -3
- package/dist/src/coin/baseCoin/baseTransactionBuilder.d.ts.map +1 -1
- package/dist/src/coin/baseCoin/baseTransactionBuilder.js +1 -1
- package/dist/src/coin/cspr/utils.js +2 -2
- package/dist/src/coin/dot/errors.d.ts +3 -0
- package/dist/src/coin/dot/errors.d.ts.map +1 -1
- package/dist/src/coin/dot/errors.js +12 -2
- package/dist/src/coin/dot/iface.d.ts +1 -1
- package/dist/src/coin/dot/iface.d.ts.map +1 -1
- package/dist/src/coin/dot/iface.js +1 -1
- package/dist/src/coin/dot/index.d.ts +5 -0
- package/dist/src/coin/dot/index.d.ts.map +1 -1
- package/dist/src/coin/dot/index.js +12 -2
- package/dist/src/coin/dot/keyPair.d.ts +15 -2
- package/dist/src/coin/dot/keyPair.d.ts.map +1 -1
- package/dist/src/coin/dot/keyPair.js +41 -6
- package/dist/src/coin/dot/transaction.d.ts +31 -3
- package/dist/src/coin/dot/transaction.d.ts.map +1 -1
- package/dist/src/coin/dot/transaction.js +269 -7
- package/dist/src/coin/dot/transactionBuilder.d.ts +102 -9
- package/dist/src/coin/dot/transactionBuilder.d.ts.map +1 -1
- package/dist/src/coin/dot/transactionBuilder.js +309 -15
- package/dist/src/coin/dot/transactionBuilderFactory.d.ts +13 -16
- package/dist/src/coin/dot/transactionBuilderFactory.d.ts.map +1 -1
- package/dist/src/coin/dot/transactionBuilderFactory.js +60 -25
- package/dist/src/coin/dot/transferBuilder.d.ts +62 -4
- package/dist/src/coin/dot/transferBuilder.d.ts.map +1 -1
- package/dist/src/coin/dot/transferBuilder.js +161 -44
- package/dist/src/coin/dot/utils.d.ts +69 -0
- package/dist/src/coin/dot/utils.d.ts.map +1 -1
- package/dist/src/coin/dot/utils.js +144 -4
- package/dist/src/coin/dot/walletInitializationBuilder.d.ts +51 -5
- package/dist/src/coin/dot/walletInitializationBuilder.d.ts.map +1 -1
- package/dist/src/coin/dot/walletInitializationBuilder.js +112 -44
- package/dist/src/coin/sol/constants.d.ts +24 -0
- package/dist/src/coin/sol/constants.d.ts.map +1 -0
- package/dist/src/coin/sol/constants.js +35 -0
- package/dist/src/coin/sol/iface.d.ts +46 -0
- package/dist/src/coin/sol/iface.d.ts.map +1 -1
- package/dist/src/coin/sol/iface.js +3 -1
- package/dist/src/coin/sol/instructionParamsFactory.d.ts +12 -0
- package/dist/src/coin/sol/instructionParamsFactory.d.ts.map +1 -0
- package/dist/src/coin/sol/instructionParamsFactory.js +99 -0
- package/dist/src/coin/sol/keyPair.d.ts +32 -6
- package/dist/src/coin/sol/keyPair.d.ts.map +1 -1
- package/dist/src/coin/sol/keyPair.js +107 -29
- package/dist/src/coin/sol/solInstructionFactory.d.ts +10 -0
- package/dist/src/coin/sol/solInstructionFactory.d.ts.map +1 -0
- package/dist/src/coin/sol/solInstructionFactory.js +102 -0
- package/dist/src/coin/sol/transaction.d.ts +29 -17
- package/dist/src/coin/sol/transaction.d.ts.map +1 -1
- package/dist/src/coin/sol/transaction.js +202 -20
- package/dist/src/coin/sol/transactionBuilder.d.ts +61 -3
- package/dist/src/coin/sol/transactionBuilder.d.ts.map +1 -1
- package/dist/src/coin/sol/transactionBuilder.js +210 -10
- package/dist/src/coin/sol/transactionBuilderFactory.d.ts +13 -3
- package/dist/src/coin/sol/transactionBuilderFactory.d.ts.map +1 -1
- package/dist/src/coin/sol/transactionBuilderFactory.js +36 -6
- package/dist/src/coin/sol/transferBuilder.d.ts +15 -8
- package/dist/src/coin/sol/transferBuilder.d.ts.map +1 -1
- package/dist/src/coin/sol/transferBuilder.js +62 -15
- package/dist/src/coin/sol/utils.d.ts +84 -2
- package/dist/src/coin/sol/utils.d.ts.map +1 -1
- package/dist/src/coin/sol/utils.js +162 -6
- package/dist/src/coin/sol/walletInitializationBuilder.d.ts +15 -8
- package/dist/src/coin/sol/walletInitializationBuilder.d.ts.map +1 -1
- package/dist/src/coin/sol/walletInitializationBuilder.js +61 -13
- package/dist/src/index.d.ts +2 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +6 -2
- package/dist/src/utils/crypto.d.ts +8 -0
- package/dist/src/utils/crypto.d.ts.map +1 -1
- package/dist/src/utils/crypto.js +13 -2
- package/package.json +7 -3
- package/resources/dot/index.ts +2 -0
- package/resources/dot/mainnet.ts +2 -0
- package/resources/dot/westend.ts +2 -0
|
@@ -1,14 +1,60 @@
|
|
|
1
1
|
import { BaseCoin as CoinConfig } from '@bitgo/statics';
|
|
2
|
-
import { BaseKey } from '../baseCoin/iface';
|
|
3
|
-
import { Transaction } from './transaction';
|
|
4
2
|
import { TransactionBuilder } from './transactionBuilder';
|
|
3
|
+
import { Transaction } from './transaction';
|
|
4
|
+
import { UnsignedTransaction } from '@substrate/txwrapper-core';
|
|
5
|
+
import { TransactionType } from '../baseCoin';
|
|
6
|
+
import { proxyType } from './iface';
|
|
7
|
+
import { BaseAddress } from '../baseCoin/iface';
|
|
5
8
|
export declare class WalletInitializationBuilder extends TransactionBuilder {
|
|
9
|
+
protected _delegate: string;
|
|
10
|
+
protected _proxyType: proxyType;
|
|
11
|
+
protected _delay: string;
|
|
6
12
|
constructor(_coinConfig: Readonly<CoinConfig>);
|
|
13
|
+
/**
|
|
14
|
+
* Register a proxy account for the sender that is able to make calls on its behalf.
|
|
15
|
+
*
|
|
16
|
+
* @returns {UnsignedTransaction} an unsigned Dot transaction
|
|
17
|
+
*
|
|
18
|
+
* @see https://polkadot.js.org/docs/substrate/extrinsics/#proxy
|
|
19
|
+
*/
|
|
20
|
+
protected buildTransaction(): UnsignedTransaction;
|
|
21
|
+
protected get transactionType(): TransactionType;
|
|
22
|
+
/**
|
|
23
|
+
* The account to delegate auth to.
|
|
24
|
+
*
|
|
25
|
+
* @param {BaseAddress} owner
|
|
26
|
+
* @returns {WalletInitializationBuilder} This builder.
|
|
27
|
+
*
|
|
28
|
+
* @see https://wiki.polkadot.network/docs/learn-proxies#why-use-a-proxy
|
|
29
|
+
*/
|
|
30
|
+
owner(owner: BaseAddress): this;
|
|
31
|
+
/**
|
|
32
|
+
* The proxy type to add.
|
|
33
|
+
*
|
|
34
|
+
* @param {proxyType} proxyType
|
|
35
|
+
* @returns {WalletInitializationBuilder} This builder.
|
|
36
|
+
*
|
|
37
|
+
* @see https://wiki.polkadot.network/docs/learn-proxies#proxy-types
|
|
38
|
+
*/
|
|
39
|
+
type(proxyType: proxyType): this;
|
|
40
|
+
/**
|
|
41
|
+
* The number of blocks that an announcement must be in place for.
|
|
42
|
+
* before the corresponding call may be dispatched.
|
|
43
|
+
* If zero, then no announcement is needed.
|
|
44
|
+
* TODO: move to the validity window method once it has been standardized
|
|
45
|
+
*
|
|
46
|
+
* @param {string} delay
|
|
47
|
+
* @returns {WalletInitializationBuilder} This transfer builder.
|
|
48
|
+
*
|
|
49
|
+
* @see https://wiki.polkadot.network/docs/learn-proxies#time-delayed-proxies
|
|
50
|
+
*/
|
|
51
|
+
delay(delay: string): this;
|
|
7
52
|
/** @inheritdoc */
|
|
8
|
-
|
|
53
|
+
validateRawTransaction(rawTransaction: string): void;
|
|
9
54
|
/** @inheritdoc */
|
|
10
|
-
protected fromImplementation(rawTransaction:
|
|
55
|
+
protected fromImplementation(rawTransaction: string): Transaction;
|
|
11
56
|
/** @inheritdoc */
|
|
12
|
-
|
|
57
|
+
validateTransaction(_: Transaction): void;
|
|
58
|
+
private validateFields;
|
|
13
59
|
}
|
|
14
60
|
//# sourceMappingURL=walletInitializationBuilder.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"walletInitializationBuilder.d.ts","sourceRoot":"","sources":["../../../../src/coin/dot/walletInitializationBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"walletInitializationBuilder.d.ts","sourceRoot":"","sources":["../../../../src/coin/dot/walletInitializationBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAIxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAA6B,SAAS,EAAE,MAAM,SAAS,CAAC;AAE/D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,qBAAa,2BAA4B,SAAQ,kBAAkB;IACjE,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC;IAC5B,SAAS,CAAC,UAAU,EAAE,SAAS,CAAC;IAChC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;gBAEb,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C;;;;;;OAMG;IACH,SAAS,CAAC,gBAAgB,IAAI,mBAAmB;IAajD,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IAM/B;;;;;;;OAOG;IACH,IAAI,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;IAKhC;;;;;;;;;;OAUG;IACH,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAM1B,kBAAkB;IAClB,sBAAsB,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IAkBpD,kBAAkB;IAClB,SAAS,CAAC,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,WAAW;IAejE,kBAAkB;IAClB,mBAAmB,CAAC,CAAC,EAAE,WAAW,GAAG,IAAI;IAKzC,OAAO,CAAC,cAAc;CAavB"}
|
|
@@ -14,68 +14,136 @@ var __extends = (this && this.__extends) || (function () {
|
|
|
14
14
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
15
15
|
};
|
|
16
16
|
})();
|
|
17
|
-
var
|
|
18
|
-
|
|
19
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
20
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
21
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
22
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
23
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
24
|
-
});
|
|
25
|
-
};
|
|
26
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
27
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
28
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
29
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
30
|
-
function step(op) {
|
|
31
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
32
|
-
while (_) try {
|
|
33
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
34
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
35
|
-
switch (op[0]) {
|
|
36
|
-
case 0: case 1: t = op; break;
|
|
37
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
38
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
39
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
40
|
-
default:
|
|
41
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
42
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
43
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
44
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
45
|
-
if (t[2]) _.ops.pop();
|
|
46
|
-
_.trys.pop(); continue;
|
|
47
|
-
}
|
|
48
|
-
op = body.call(thisArg, _);
|
|
49
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
50
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
51
|
-
}
|
|
17
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
18
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
52
19
|
};
|
|
53
20
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
54
21
|
exports.WalletInitializationBuilder = void 0;
|
|
22
|
+
var txwrapper_polkadot_1 = require("@substrate/txwrapper-polkadot");
|
|
23
|
+
var bignumber_js_1 = __importDefault(require("bignumber.js"));
|
|
55
24
|
var errors_1 = require("../baseCoin/errors");
|
|
56
25
|
var transactionBuilder_1 = require("./transactionBuilder");
|
|
26
|
+
var baseCoin_1 = require("../baseCoin");
|
|
27
|
+
var iface_1 = require("./iface");
|
|
28
|
+
var txnSchema_1 = require("./txnSchema");
|
|
57
29
|
var WalletInitializationBuilder = /** @class */ (function (_super) {
|
|
58
30
|
__extends(WalletInitializationBuilder, _super);
|
|
59
31
|
function WalletInitializationBuilder(_coinConfig) {
|
|
60
32
|
return _super.call(this, _coinConfig) || this;
|
|
61
33
|
}
|
|
34
|
+
/**
|
|
35
|
+
* Register a proxy account for the sender that is able to make calls on its behalf.
|
|
36
|
+
*
|
|
37
|
+
* @returns {UnsignedTransaction} an unsigned Dot transaction
|
|
38
|
+
*
|
|
39
|
+
* @see https://polkadot.js.org/docs/substrate/extrinsics/#proxy
|
|
40
|
+
*/
|
|
41
|
+
WalletInitializationBuilder.prototype.buildTransaction = function () {
|
|
42
|
+
var baseTxInfo = this.createBaseTxInfo();
|
|
43
|
+
return txwrapper_polkadot_1.methods.proxy.addProxy({
|
|
44
|
+
delegate: this._delegate,
|
|
45
|
+
proxyType: this._proxyType,
|
|
46
|
+
delay: this._delay,
|
|
47
|
+
}, baseTxInfo.baseTxInfo, baseTxInfo.options);
|
|
48
|
+
};
|
|
49
|
+
Object.defineProperty(WalletInitializationBuilder.prototype, "transactionType", {
|
|
50
|
+
get: function () {
|
|
51
|
+
return baseCoin_1.TransactionType.WalletInitialization;
|
|
52
|
+
},
|
|
53
|
+
enumerable: false,
|
|
54
|
+
configurable: true
|
|
55
|
+
});
|
|
56
|
+
/**
|
|
57
|
+
* The account to delegate auth to.
|
|
58
|
+
*
|
|
59
|
+
* @param {BaseAddress} owner
|
|
60
|
+
* @returns {WalletInitializationBuilder} This builder.
|
|
61
|
+
*
|
|
62
|
+
* @see https://wiki.polkadot.network/docs/learn-proxies#why-use-a-proxy
|
|
63
|
+
*/
|
|
64
|
+
WalletInitializationBuilder.prototype.owner = function (owner) {
|
|
65
|
+
this.validateAddress({ address: owner.address });
|
|
66
|
+
this._delegate = owner.address;
|
|
67
|
+
return this;
|
|
68
|
+
};
|
|
69
|
+
/**
|
|
70
|
+
* The proxy type to add.
|
|
71
|
+
*
|
|
72
|
+
* @param {proxyType} proxyType
|
|
73
|
+
* @returns {WalletInitializationBuilder} This builder.
|
|
74
|
+
*
|
|
75
|
+
* @see https://wiki.polkadot.network/docs/learn-proxies#proxy-types
|
|
76
|
+
*/
|
|
77
|
+
WalletInitializationBuilder.prototype.type = function (proxyType) {
|
|
78
|
+
this._proxyType = proxyType;
|
|
79
|
+
return this;
|
|
80
|
+
};
|
|
81
|
+
/**
|
|
82
|
+
* The number of blocks that an announcement must be in place for.
|
|
83
|
+
* before the corresponding call may be dispatched.
|
|
84
|
+
* If zero, then no announcement is needed.
|
|
85
|
+
* TODO: move to the validity window method once it has been standardized
|
|
86
|
+
*
|
|
87
|
+
* @param {string} delay
|
|
88
|
+
* @returns {WalletInitializationBuilder} This transfer builder.
|
|
89
|
+
*
|
|
90
|
+
* @see https://wiki.polkadot.network/docs/learn-proxies#time-delayed-proxies
|
|
91
|
+
*/
|
|
92
|
+
WalletInitializationBuilder.prototype.delay = function (delay) {
|
|
93
|
+
this.validateValue(new bignumber_js_1.default(parseInt(delay, 10)));
|
|
94
|
+
this._delay = delay;
|
|
95
|
+
return this;
|
|
96
|
+
};
|
|
62
97
|
/** @inheritdoc */
|
|
63
|
-
WalletInitializationBuilder.prototype.
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
98
|
+
WalletInitializationBuilder.prototype.validateRawTransaction = function (rawTransaction) {
|
|
99
|
+
var _a;
|
|
100
|
+
_super.prototype.validateRawTransaction.call(this, rawTransaction);
|
|
101
|
+
var decodedTxn = txwrapper_polkadot_1.decode(rawTransaction, {
|
|
102
|
+
metadataRpc: this._metadataRpc,
|
|
103
|
+
registry: this._registry,
|
|
68
104
|
});
|
|
105
|
+
if (((_a = decodedTxn.method) === null || _a === void 0 ? void 0 : _a.name) === iface_1.MethodNames.AddProxy) {
|
|
106
|
+
var txMethod = decodedTxn.method.args;
|
|
107
|
+
var delegate = txMethod.delegate;
|
|
108
|
+
var proxyType = txMethod.proxyType;
|
|
109
|
+
var delay = txMethod.delay;
|
|
110
|
+
var validationResult = txnSchema_1.WalletInitializationSchema.validate({ delegate: delegate, proxyType: proxyType, delay: delay });
|
|
111
|
+
if (validationResult.error) {
|
|
112
|
+
throw new errors_1.InvalidTransactionError("Transaction validation failed: " + validationResult.error.message);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
69
115
|
};
|
|
70
116
|
/** @inheritdoc */
|
|
71
117
|
WalletInitializationBuilder.prototype.fromImplementation = function (rawTransaction) {
|
|
72
|
-
|
|
118
|
+
var _a, _b;
|
|
119
|
+
var tx = _super.prototype.fromImplementation.call(this, rawTransaction);
|
|
120
|
+
if (((_a = this._method) === null || _a === void 0 ? void 0 : _a.name) === iface_1.MethodNames.AddProxy) {
|
|
121
|
+
var txMethod = this._method.args;
|
|
122
|
+
this.owner({ address: txMethod.delegate });
|
|
123
|
+
this.type(txMethod.proxyType);
|
|
124
|
+
this.delay(new bignumber_js_1.default(txMethod.delay).toString());
|
|
125
|
+
}
|
|
126
|
+
else {
|
|
127
|
+
throw new errors_1.InvalidTransactionError("Invalid Transaction Type: " + ((_b = this._method) === null || _b === void 0 ? void 0 : _b.name) + ". Expected Wallet initialization");
|
|
128
|
+
}
|
|
129
|
+
return tx;
|
|
73
130
|
};
|
|
74
131
|
/** @inheritdoc */
|
|
75
|
-
WalletInitializationBuilder.prototype.
|
|
76
|
-
|
|
132
|
+
WalletInitializationBuilder.prototype.validateTransaction = function (_) {
|
|
133
|
+
_super.prototype.validateTransaction.call(this, _);
|
|
134
|
+
this.validateFields(this._delegate, this._proxyType, this._delay);
|
|
135
|
+
};
|
|
136
|
+
WalletInitializationBuilder.prototype.validateFields = function (delegate, proxyType, delay) {
|
|
137
|
+
var validationResult = txnSchema_1.WalletInitializationSchema.validate({
|
|
138
|
+
delegate: delegate,
|
|
139
|
+
proxyType: proxyType,
|
|
140
|
+
delay: delay,
|
|
141
|
+
});
|
|
142
|
+
if (validationResult.error) {
|
|
143
|
+
throw new errors_1.InvalidTransactionError("WalletInitialization Transaction validation failed: " + validationResult.error.message);
|
|
144
|
+
}
|
|
77
145
|
};
|
|
78
146
|
return WalletInitializationBuilder;
|
|
79
147
|
}(transactionBuilder_1.TransactionBuilder));
|
|
80
148
|
exports.WalletInitializationBuilder = WalletInitializationBuilder;
|
|
81
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FsbGV0SW5pdGlhbGl6YXRpb25CdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvaW4vZG90L3dhbGxldEluaXRpYWxpemF0aW9uQnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFQSw2Q0FBeUQ7QUFFekQsMkRBQTBEO0FBRTFEO0lBQWlELCtDQUFrQjtJQUNqRSxxQ0FBWSxXQUFpQztlQUMzQyxrQkFBTSxXQUFXLENBQUM7SUFDcEIsQ0FBQztJQUVELGtCQUFrQjtJQUNGLHlEQUFtQixHQUFuQzs7O2dCQUNFLE1BQU0sSUFBSSw0QkFBbUIsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDOzs7S0FDekQ7SUFFRCxrQkFBa0I7SUFDUix3REFBa0IsR0FBNUIsVUFBNkIsY0FBbUI7UUFDOUMsTUFBTSxJQUFJLDRCQUFtQixDQUFDLHdCQUF3QixDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVELGtCQUFrQjtJQUNSLHdEQUFrQixHQUE1QixVQUE2QixHQUFZO1FBQ3ZDLE1BQU0sSUFBSSw0QkFBbUIsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFDSCxrQ0FBQztBQUFELENBQUMsQUFuQkQsQ0FBaUQsdUNBQWtCLEdBbUJsRTtBQW5CWSxrRUFBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvL3N0YXRpY3MnO1xuaW1wb3J0IHsgQmFzZUtleSB9IGZyb20gJy4uL2Jhc2VDb2luL2lmYWNlJztcbmltcG9ydCB7IE5vdEltcGxlbWVudGVkRXJyb3IgfSBmcm9tICcuLi9iYXNlQ29pbi9lcnJvcnMnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uQnVpbGRlciB9IGZyb20gJy4vdHJhbnNhY3Rpb25CdWlsZGVyJztcblxuZXhwb3J0IGNsYXNzIFdhbGxldEluaXRpYWxpemF0aW9uQnVpbGRlciBleHRlbmRzIFRyYW5zYWN0aW9uQnVpbGRlciB7XG4gIGNvbnN0cnVjdG9yKF9jb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKF9jb2luQ29uZmlnKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgYXN5bmMgYnVpbGRJbXBsZW1lbnRhdGlvbigpOiBQcm9taXNlPFRyYW5zYWN0aW9uPiB7XG4gICAgdGhyb3cgbmV3IE5vdEltcGxlbWVudGVkRXJyb3IoJ21ldGhvZCBub3QgaW1wbGVtZW50ZWQnKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgZnJvbUltcGxlbWVudGF0aW9uKHJhd1RyYW5zYWN0aW9uOiBhbnkpOiBUcmFuc2FjdGlvbiB7XG4gICAgdGhyb3cgbmV3IE5vdEltcGxlbWVudGVkRXJyb3IoJ21ldGhvZCBub3QgaW1wbGVtZW50ZWQnKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgc2lnbkltcGxlbWVudGF0aW9uKGtleTogQmFzZUtleSk6IFRyYW5zYWN0aW9uIHtcbiAgICB0aHJvdyBuZXcgTm90SW1wbGVtZW50ZWRFcnJvcignbWV0aG9kIG5vdCBpbXBsZW1lbnRlZCcpO1xuICB9XG59XG4iXX0=
|
|
149
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FsbGV0SW5pdGlhbGl6YXRpb25CdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvaW4vZG90L3dhbGxldEluaXRpYWxpemF0aW9uQnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSxvRUFBZ0U7QUFDaEUsOERBQXFDO0FBQ3JDLDZDQUE2RDtBQUM3RCwyREFBMEQ7QUFHMUQsd0NBQThDO0FBQzlDLGlDQUErRDtBQUMvRCx5Q0FBeUQ7QUFHekQ7SUFBaUQsK0NBQWtCO0lBS2pFLHFDQUFZLFdBQWlDO2VBQzNDLGtCQUFNLFdBQVcsQ0FBQztJQUNwQixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ08sc0RBQWdCLEdBQTFCO1FBQ0UsSUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDM0MsT0FBTyw0QkFBTyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQzNCO1lBQ0UsUUFBUSxFQUFFLElBQUksQ0FBQyxTQUFTO1lBQ3hCLFNBQVMsRUFBRSxJQUFJLENBQUMsVUFBVTtZQUMxQixLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU07U0FDbkIsRUFDRCxVQUFVLENBQUMsVUFBVSxFQUNyQixVQUFVLENBQUMsT0FBTyxDQUNuQixDQUFDO0lBQ0osQ0FBQztJQUVELHNCQUFjLHdEQUFlO2FBQTdCO1lBQ0UsT0FBTywwQkFBZSxDQUFDLG9CQUFvQixDQUFDO1FBQzlDLENBQUM7OztPQUFBO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILDJDQUFLLEdBQUwsVUFBTSxLQUFrQjtRQUN0QixJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUUsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQ2pELElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQztRQUMvQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7Ozs7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Q0FBMEIsQ0FBQyxRQUFRLENBQUM7WUFDM0QsUUFBUSxVQUFBO1lBQ1IsU0FBUyxXQUFBO1lBQ1QsS0FBSyxPQUFBO1NBQ04sQ0FBQyxDQUFDO1FBRUgsSUFBSSxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUU7WUFDMUIsTUFBTSxJQUFJLGdDQUF1QixDQUMvQix5REFBdUQsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLE9BQVMsQ0FDeEYsQ0FBQztTQUNIO0lBQ0gsQ0FBQztJQUNILGtDQUFDO0FBQUQsQ0FBQyxBQW5JRCxDQUFpRCx1Q0FBa0IsR0FtSWxFO0FBbklZLGtFQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28vc3RhdGljcyc7XG5pbXBvcnQgeyBkZWNvZGUsIG1ldGhvZHMgfSBmcm9tICdAc3Vic3RyYXRlL3R4d3JhcHBlci1wb2xrYWRvdCc7XG5pbXBvcnQgQmlnTnVtYmVyIGZyb20gJ2JpZ251bWJlci5qcyc7XG5pbXBvcnQgeyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvciB9IGZyb20gJy4uL2Jhc2VDb2luL2Vycm9ycyc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuL3RyYW5zYWN0aW9uQnVpbGRlcic7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgVW5zaWduZWRUcmFuc2FjdGlvbiB9IGZyb20gJ0BzdWJzdHJhdGUvdHh3cmFwcGVyLWNvcmUnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnLi4vYmFzZUNvaW4nO1xuaW1wb3J0IHsgQWRkUHJveHlBcmdzLCBNZXRob2ROYW1lcywgcHJveHlUeXBlIH0gZnJvbSAnLi9pZmFjZSc7XG5pbXBvcnQgeyBXYWxsZXRJbml0aWFsaXphdGlvblNjaGVtYSB9IGZyb20gJy4vdHhuU2NoZW1hJztcbmltcG9ydCB7IEJhc2VBZGRyZXNzIH0gZnJvbSAnLi4vYmFzZUNvaW4vaWZhY2UnO1xuXG5leHBvcnQgY2xhc3MgV2FsbGV0SW5pdGlhbGl6YXRpb25CdWlsZGVyIGV4dGVuZHMgVHJhbnNhY3Rpb25CdWlsZGVyIHtcbiAgcHJvdGVjdGVkIF9kZWxlZ2F0ZTogc3RyaW5nO1xuICBwcm90ZWN0ZWQgX3Byb3h5VHlwZTogcHJveHlUeXBlO1xuICBwcm90ZWN0ZWQgX2RlbGF5OiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoX2NvaW5Db25maWcpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlZ2lzdGVyIGEgcHJveHkgYWNjb3VudCBmb3IgdGhlIHNlbmRlciB0aGF0IGlzIGFibGUgdG8gbWFrZSBjYWxscyBvbiBpdHMgYmVoYWxmLlxuICAgKlxuICAgKiBAcmV0dXJucyB7VW5zaWduZWRUcmFuc2FjdGlvbn0gYW4gdW5zaWduZWQgRG90IHRyYW5zYWN0aW9uXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9wb2xrYWRvdC5qcy5vcmcvZG9jcy9zdWJzdHJhdGUvZXh0cmluc2ljcy8jcHJveHlcbiAgICovXG4gIHByb3RlY3RlZCBidWlsZFRyYW5zYWN0aW9uKCk6IFVuc2lnbmVkVHJhbnNhY3Rpb24ge1xuICAgIGNvbnN0IGJhc2VUeEluZm8gPSB0aGlzLmNyZWF0ZUJhc2VUeEluZm8oKTtcbiAgICByZXR1cm4gbWV0aG9kcy5wcm94eS5hZGRQcm94eShcbiAgICAgIHtcbiAgICAgICAgZGVsZWdhdGU6IHRoaXMuX2RlbGVnYXRlLFxuICAgICAgICBwcm94eVR5cGU6IHRoaXMuX3Byb3h5VHlwZSxcbiAgICAgICAgZGVsYXk6IHRoaXMuX2RlbGF5LFxuICAgICAgfSxcbiAgICAgIGJhc2VUeEluZm8uYmFzZVR4SW5mbyxcbiAgICAgIGJhc2VUeEluZm8ub3B0aW9ucyxcbiAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCB0cmFuc2FjdGlvblR5cGUoKTogVHJhbnNhY3Rpb25UeXBlIHtcbiAgICByZXR1cm4gVHJhbnNhY3Rpb25UeXBlLldhbGxldEluaXRpYWxpemF0aW9uO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBhY2NvdW50IHRvIGRlbGVnYXRlIGF1dGggdG8uXG4gICAqXG4gICAqIEBwYXJhbSB7QmFzZUFkZHJlc3N9IG93bmVyXG4gICAqIEByZXR1cm5zIHtXYWxsZXRJbml0aWFsaXphdGlvbkJ1aWxkZXJ9IFRoaXMgYnVpbGRlci5cbiAgICpcbiAgICogQHNlZSBodHRwczovL3dpa2kucG9sa2Fkb3QubmV0d29yay9kb2NzL2xlYXJuLXByb3hpZXMjd2h5LXVzZS1hLXByb3h5XG4gICAqL1xuICBvd25lcihvd25lcjogQmFzZUFkZHJlc3MpOiB0aGlzIHtcbiAgICB0aGlzLnZhbGlkYXRlQWRkcmVzcyh7IGFkZHJlc3M6IG93bmVyLmFkZHJlc3MgfSk7XG4gICAgdGhpcy5fZGVsZWdhdGUgPSBvd25lci5hZGRyZXNzO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBwcm94eSB0eXBlIHRvIGFkZC5cbiAgICpcbiAgICogQHBhcmFtIHtwcm94eVR5cGV9IHByb3h5VHlwZVxuICAgKiBAcmV0dXJucyB7V2FsbGV0SW5pdGlhbGl6YXRpb25CdWlsZGVyfSBUaGlzIGJ1aWxkZXIuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly93aWtpLnBvbGthZG90Lm5ldHdvcmsvZG9jcy9sZWFybi1wcm94aWVzI3Byb3h5LXR5cGVzXG4gICAqL1xuICB0eXBlKHByb3h5VHlwZTogcHJveHlUeXBlKTogdGhpcyB7XG4gICAgdGhpcy5fcHJveHlUeXBlID0gcHJveHlUeXBlO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2YgYmxvY2tzIHRoYXQgYW4gYW5ub3VuY2VtZW50IG11c3QgYmUgaW4gcGxhY2UgZm9yLlxuICAgKiBiZWZvcmUgdGhlIGNvcnJlc3BvbmRpbmcgY2FsbCBtYXkgYmUgZGlzcGF0Y2hlZC5cbiAgICogSWYgemVybywgdGhlbiBubyBhbm5vdW5jZW1lbnQgaXMgbmVlZGVkLlxuICAgKiBUT0RPOiBtb3ZlIHRvIHRoZSB2YWxpZGl0eSB3aW5kb3cgbWV0aG9kIG9uY2UgaXQgaGFzIGJlZW4gc3RhbmRhcmRpemVkXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBkZWxheVxuICAgKiBAcmV0dXJucyB7V2FsbGV0SW5pdGlhbGl6YXRpb25CdWlsZGVyfSBUaGlzIHRyYW5zZmVyIGJ1aWxkZXIuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly93aWtpLnBvbGthZG90Lm5ldHdvcmsvZG9jcy9sZWFybi1wcm94aWVzI3RpbWUtZGVsYXllZC1wcm94aWVzXG4gICAqL1xuICBkZWxheShkZWxheTogc3RyaW5nKTogdGhpcyB7XG4gICAgdGhpcy52YWxpZGF0ZVZhbHVlKG5ldyBCaWdOdW1iZXIocGFyc2VJbnQoZGVsYXksIDEwKSkpO1xuICAgIHRoaXMuX2RlbGF5ID0gZGVsYXk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdmFsaWRhdGVSYXdUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbjogc3RyaW5nKTogdm9pZCB7XG4gICAgc3VwZXIudmFsaWRhdGVSYXdUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbik7XG4gICAgY29uc3QgZGVjb2RlZFR4biA9IGRlY29kZShyYXdUcmFuc2FjdGlvbiwge1xuICAgICAgbWV0YWRhdGFScGM6IHRoaXMuX21ldGFkYXRhUnBjLFxuICAgICAgcmVnaXN0cnk6IHRoaXMuX3JlZ2lzdHJ5LFxuICAgIH0pO1xuICAgIGlmIChkZWNvZGVkVHhuLm1ldGhvZD8ubmFtZSA9PT0gTWV0aG9kTmFtZXMuQWRkUHJveHkpIHtcbiAgICAgIGNvbnN0IHR4TWV0aG9kID0gZGVjb2RlZFR4bi5tZXRob2QuYXJncyBhcyB1bmtub3duIGFzIEFkZFByb3h5QXJncztcbiAgICAgIGNvbnN0IGRlbGVnYXRlID0gdHhNZXRob2QuZGVsZWdhdGU7XG4gICAgICBjb25zdCBwcm94eVR5cGUgPSB0eE1ldGhvZC5wcm94eVR5cGU7XG4gICAgICBjb25zdCBkZWxheSA9IHR4TWV0aG9kLmRlbGF5O1xuICAgICAgY29uc3QgdmFsaWRhdGlvblJlc3VsdCA9IFdhbGxldEluaXRpYWxpemF0aW9uU2NoZW1hLnZhbGlkYXRlKHsgZGVsZWdhdGUsIHByb3h5VHlwZSwgZGVsYXkgfSk7XG4gICAgICBpZiAodmFsaWRhdGlvblJlc3VsdC5lcnJvcikge1xuICAgICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoYFRyYW5zYWN0aW9uIHZhbGlkYXRpb24gZmFpbGVkOiAke3ZhbGlkYXRpb25SZXN1bHQuZXJyb3IubWVzc2FnZX1gKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIGZyb21JbXBsZW1lbnRhdGlvbihyYXdUcmFuc2FjdGlvbjogc3RyaW5nKTogVHJhbnNhY3Rpb24ge1xuICAgIGNvbnN0IHR4ID0gc3VwZXIuZnJvbUltcGxlbWVudGF0aW9uKHJhd1RyYW5zYWN0aW9uKTtcbiAgICBpZiAodGhpcy5fbWV0aG9kPy5uYW1lID09PSBNZXRob2ROYW1lcy5BZGRQcm94eSkge1xuICAgICAgY29uc3QgdHhNZXRob2QgPSB0aGlzLl9tZXRob2QuYXJncyBhcyBBZGRQcm94eUFyZ3M7XG4gICAgICB0aGlzLm93bmVyKHsgYWRkcmVzczogdHhNZXRob2QuZGVsZWdhdGUgfSk7XG4gICAgICB0aGlzLnR5cGUodHhNZXRob2QucHJveHlUeXBlKTtcbiAgICAgIHRoaXMuZGVsYXkobmV3IEJpZ051bWJlcih0eE1ldGhvZC5kZWxheSkudG9TdHJpbmcoKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcihcbiAgICAgICAgYEludmFsaWQgVHJhbnNhY3Rpb24gVHlwZTogJHt0aGlzLl9tZXRob2Q/Lm5hbWV9LiBFeHBlY3RlZCBXYWxsZXQgaW5pdGlhbGl6YXRpb25gLFxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIHR4O1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlVHJhbnNhY3Rpb24oXzogVHJhbnNhY3Rpb24pOiB2b2lkIHtcbiAgICBzdXBlci52YWxpZGF0ZVRyYW5zYWN0aW9uKF8pO1xuICAgIHRoaXMudmFsaWRhdGVGaWVsZHModGhpcy5fZGVsZWdhdGUsIHRoaXMuX3Byb3h5VHlwZSwgdGhpcy5fZGVsYXkpO1xuICB9XG5cbiAgcHJpdmF0ZSB2YWxpZGF0ZUZpZWxkcyhkZWxlZ2F0ZTogc3RyaW5nLCBwcm94eVR5cGU6IHN0cmluZywgZGVsYXk6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IHZhbGlkYXRpb25SZXN1bHQgPSBXYWxsZXRJbml0aWFsaXphdGlvblNjaGVtYS52YWxpZGF0ZSh7XG4gICAgICBkZWxlZ2F0ZSxcbiAgICAgIHByb3h5VHlwZSxcbiAgICAgIGRlbGF5LFxuICAgIH0pO1xuXG4gICAgaWYgKHZhbGlkYXRpb25SZXN1bHQuZXJyb3IpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcihcbiAgICAgICAgYFdhbGxldEluaXRpYWxpemF0aW9uIFRyYW5zYWN0aW9uIHZhbGlkYXRpb24gZmFpbGVkOiAke3ZhbGlkYXRpb25SZXN1bHQuZXJyb3IubWVzc2FnZX1gLFxuICAgICAgKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { ValidInstructionTypes } from './iface';
|
|
2
|
+
export declare const MEMO_PROGRAM_PK = "MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr";
|
|
3
|
+
export declare const SEED_LENGTH = 32;
|
|
4
|
+
export declare const MAX_MEMO_LENGTH = 100;
|
|
5
|
+
export declare enum ValidInstructionTypesEnum {
|
|
6
|
+
AdvanceNonceAccount = "AdvanceNonceAccount",
|
|
7
|
+
Create = "Create",
|
|
8
|
+
InitializeNonceAccount = "InitializeNonceAccount",
|
|
9
|
+
Transfer = "Transfer",
|
|
10
|
+
Memo = "Memo"
|
|
11
|
+
}
|
|
12
|
+
export declare enum InstructionBuilderTypes {
|
|
13
|
+
CreateNonceAccount = "CreateNonceAccount",
|
|
14
|
+
Transfer = "Transfer",
|
|
15
|
+
Memo = "Memo",
|
|
16
|
+
NonceAdvance = "NonceAdvance"
|
|
17
|
+
}
|
|
18
|
+
export declare const VALID_SYSTEM_INSTRUCTION_TYPES: ValidInstructionTypes[];
|
|
19
|
+
export declare enum walletInitInstructionIndexes {
|
|
20
|
+
Create = 0,
|
|
21
|
+
InitializeNonce = 1,
|
|
22
|
+
Memo = 2
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/coin/sol/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAEhD,eAAO,MAAM,eAAe,gDAAgD,CAAC;AAE7E,eAAO,MAAM,WAAW,KAAK,CAAC;AAE9B,eAAO,MAAM,eAAe,MAAM,CAAC;AAEnC,oBAAY,yBAAyB;IACnC,mBAAmB,wBAAwB;IAC3C,MAAM,WAAW;IACjB,sBAAsB,2BAA2B;IACjD,QAAQ,aAAa;IACrB,IAAI,SAAS;CACd;AAED,oBAAY,uBAAuB;IACjC,kBAAkB,uBAAuB;IACzC,QAAQ,aAAa;IACrB,IAAI,SAAS;IACb,YAAY,iBAAiB;CAC9B;AAED,eAAO,MAAM,8BAA8B,EAAE,qBAAqB,EAMjE,CAAC;AAEF,oBAAY,4BAA4B;IACtC,MAAM,IAAI;IACV,eAAe,IAAI;IACnB,IAAI,IAAI;CACT"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.walletInitInstructionIndexes = exports.VALID_SYSTEM_INSTRUCTION_TYPES = exports.InstructionBuilderTypes = exports.ValidInstructionTypesEnum = exports.MAX_MEMO_LENGTH = exports.SEED_LENGTH = exports.MEMO_PROGRAM_PK = void 0;
|
|
4
|
+
exports.MEMO_PROGRAM_PK = 'MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr';
|
|
5
|
+
exports.SEED_LENGTH = 32;
|
|
6
|
+
exports.MAX_MEMO_LENGTH = 100;
|
|
7
|
+
var ValidInstructionTypesEnum;
|
|
8
|
+
(function (ValidInstructionTypesEnum) {
|
|
9
|
+
ValidInstructionTypesEnum["AdvanceNonceAccount"] = "AdvanceNonceAccount";
|
|
10
|
+
ValidInstructionTypesEnum["Create"] = "Create";
|
|
11
|
+
ValidInstructionTypesEnum["InitializeNonceAccount"] = "InitializeNonceAccount";
|
|
12
|
+
ValidInstructionTypesEnum["Transfer"] = "Transfer";
|
|
13
|
+
ValidInstructionTypesEnum["Memo"] = "Memo";
|
|
14
|
+
})(ValidInstructionTypesEnum = exports.ValidInstructionTypesEnum || (exports.ValidInstructionTypesEnum = {}));
|
|
15
|
+
var InstructionBuilderTypes;
|
|
16
|
+
(function (InstructionBuilderTypes) {
|
|
17
|
+
InstructionBuilderTypes["CreateNonceAccount"] = "CreateNonceAccount";
|
|
18
|
+
InstructionBuilderTypes["Transfer"] = "Transfer";
|
|
19
|
+
InstructionBuilderTypes["Memo"] = "Memo";
|
|
20
|
+
InstructionBuilderTypes["NonceAdvance"] = "NonceAdvance";
|
|
21
|
+
})(InstructionBuilderTypes = exports.InstructionBuilderTypes || (exports.InstructionBuilderTypes = {}));
|
|
22
|
+
exports.VALID_SYSTEM_INSTRUCTION_TYPES = [
|
|
23
|
+
ValidInstructionTypesEnum.AdvanceNonceAccount,
|
|
24
|
+
ValidInstructionTypesEnum.Create,
|
|
25
|
+
ValidInstructionTypesEnum.Transfer,
|
|
26
|
+
ValidInstructionTypesEnum.InitializeNonceAccount,
|
|
27
|
+
ValidInstructionTypesEnum.Memo,
|
|
28
|
+
];
|
|
29
|
+
var walletInitInstructionIndexes;
|
|
30
|
+
(function (walletInitInstructionIndexes) {
|
|
31
|
+
walletInitInstructionIndexes[walletInitInstructionIndexes["Create"] = 0] = "Create";
|
|
32
|
+
walletInitInstructionIndexes[walletInitInstructionIndexes["InitializeNonce"] = 1] = "InitializeNonce";
|
|
33
|
+
walletInitInstructionIndexes[walletInitInstructionIndexes["Memo"] = 2] = "Memo";
|
|
34
|
+
})(walletInitInstructionIndexes = exports.walletInitInstructionIndexes || (exports.walletInitInstructionIndexes = {}));
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvaW4vc29sL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFYSxRQUFBLGVBQWUsR0FBRyw2Q0FBNkMsQ0FBQztBQUVoRSxRQUFBLFdBQVcsR0FBRyxFQUFFLENBQUM7QUFFakIsUUFBQSxlQUFlLEdBQUcsR0FBRyxDQUFDO0FBRW5DLElBQVkseUJBTVg7QUFORCxXQUFZLHlCQUF5QjtJQUNuQyx3RUFBMkMsQ0FBQTtJQUMzQyw4Q0FBaUIsQ0FBQTtJQUNqQiw4RUFBaUQsQ0FBQTtJQUNqRCxrREFBcUIsQ0FBQTtJQUNyQiwwQ0FBYSxDQUFBO0FBQ2YsQ0FBQyxFQU5XLHlCQUF5QixHQUF6QixpQ0FBeUIsS0FBekIsaUNBQXlCLFFBTXBDO0FBRUQsSUFBWSx1QkFLWDtBQUxELFdBQVksdUJBQXVCO0lBQ2pDLG9FQUF5QyxDQUFBO0lBQ3pDLGdEQUFxQixDQUFBO0lBQ3JCLHdDQUFhLENBQUE7SUFDYix3REFBNkIsQ0FBQTtBQUMvQixDQUFDLEVBTFcsdUJBQXVCLEdBQXZCLCtCQUF1QixLQUF2QiwrQkFBdUIsUUFLbEM7QUFFWSxRQUFBLDhCQUE4QixHQUE0QjtJQUNyRSx5QkFBeUIsQ0FBQyxtQkFBbUI7SUFDN0MseUJBQXlCLENBQUMsTUFBTTtJQUNoQyx5QkFBeUIsQ0FBQyxRQUFRO0lBQ2xDLHlCQUF5QixDQUFDLHNCQUFzQjtJQUNoRCx5QkFBeUIsQ0FBQyxJQUFJO0NBQy9CLENBQUM7QUFFRixJQUFZLDRCQUlYO0FBSkQsV0FBWSw0QkFBNEI7SUFDdEMsbUZBQVUsQ0FBQTtJQUNWLHFHQUFtQixDQUFBO0lBQ25CLCtFQUFRLENBQUE7QUFDVixDQUFDLEVBSlcsNEJBQTRCLEdBQTVCLG9DQUE0QixLQUE1QixvQ0FBNEIsUUFJdkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBWYWxpZEluc3RydWN0aW9uVHlwZXMgfSBmcm9tICcuL2lmYWNlJztcblxuZXhwb3J0IGNvbnN0IE1FTU9fUFJPR1JBTV9QSyA9ICdNZW1vU3E0Z3FBQkFYS2I5NnFuSDhUeXNOY1d4TXlXQ3FYZ0RMR21mY0hyJztcblxuZXhwb3J0IGNvbnN0IFNFRURfTEVOR1RIID0gMzI7XG5cbmV4cG9ydCBjb25zdCBNQVhfTUVNT19MRU5HVEggPSAxMDA7XG5cbmV4cG9ydCBlbnVtIFZhbGlkSW5zdHJ1Y3Rpb25UeXBlc0VudW0ge1xuICBBZHZhbmNlTm9uY2VBY2NvdW50ID0gJ0FkdmFuY2VOb25jZUFjY291bnQnLFxuICBDcmVhdGUgPSAnQ3JlYXRlJyxcbiAgSW5pdGlhbGl6ZU5vbmNlQWNjb3VudCA9ICdJbml0aWFsaXplTm9uY2VBY2NvdW50JyxcbiAgVHJhbnNmZXIgPSAnVHJhbnNmZXInLFxuICBNZW1vID0gJ01lbW8nLFxufVxuXG5leHBvcnQgZW51bSBJbnN0cnVjdGlvbkJ1aWxkZXJUeXBlcyB7XG4gIENyZWF0ZU5vbmNlQWNjb3VudCA9ICdDcmVhdGVOb25jZUFjY291bnQnLFxuICBUcmFuc2ZlciA9ICdUcmFuc2ZlcicsXG4gIE1lbW8gPSAnTWVtbycsXG4gIE5vbmNlQWR2YW5jZSA9ICdOb25jZUFkdmFuY2UnLFxufVxuXG5leHBvcnQgY29uc3QgVkFMSURfU1lTVEVNX0lOU1RSVUNUSU9OX1RZUEVTOiBWYWxpZEluc3RydWN0aW9uVHlwZXNbXSA9IFtcbiAgVmFsaWRJbnN0cnVjdGlvblR5cGVzRW51bS5BZHZhbmNlTm9uY2VBY2NvdW50LFxuICBWYWxpZEluc3RydWN0aW9uVHlwZXNFbnVtLkNyZWF0ZSxcbiAgVmFsaWRJbnN0cnVjdGlvblR5cGVzRW51bS5UcmFuc2ZlcixcbiAgVmFsaWRJbnN0cnVjdGlvblR5cGVzRW51bS5Jbml0aWFsaXplTm9uY2VBY2NvdW50LFxuICBWYWxpZEluc3RydWN0aW9uVHlwZXNFbnVtLk1lbW8sXG5dO1xuXG5leHBvcnQgZW51bSB3YWxsZXRJbml0SW5zdHJ1Y3Rpb25JbmRleGVzIHtcbiAgQ3JlYXRlID0gMCxcbiAgSW5pdGlhbGl6ZU5vbmNlID0gMSxcbiAgTWVtbyA9IDIsXG59XG4iXX0=
|
|
@@ -1 +1,47 @@
|
|
|
1
|
+
import { Blockhash, SystemInstructionType, TransactionSignature } from '@solana/web3.js';
|
|
2
|
+
import { InstructionBuilderTypes } from './constants';
|
|
3
|
+
export interface SolanaKeys {
|
|
4
|
+
prv?: Uint8Array | string;
|
|
5
|
+
pub: string;
|
|
6
|
+
}
|
|
7
|
+
export interface DurableNonceParams {
|
|
8
|
+
walletNonceAddress: string;
|
|
9
|
+
authWalletAddress: string;
|
|
10
|
+
}
|
|
11
|
+
export interface TxData {
|
|
12
|
+
id?: TransactionSignature;
|
|
13
|
+
feePayer?: string;
|
|
14
|
+
numSignatures: number;
|
|
15
|
+
nonce: Blockhash;
|
|
16
|
+
instructionsData: InstructionParams[];
|
|
17
|
+
}
|
|
18
|
+
export declare type InstructionParams = Nonce | Memo | WalletInit | Transfer;
|
|
19
|
+
export interface Memo {
|
|
20
|
+
type: InstructionBuilderTypes.Memo;
|
|
21
|
+
params: {
|
|
22
|
+
memo: string;
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
export interface Nonce {
|
|
26
|
+
type: InstructionBuilderTypes.NonceAdvance;
|
|
27
|
+
params: DurableNonceParams;
|
|
28
|
+
}
|
|
29
|
+
export interface WalletInit {
|
|
30
|
+
type: InstructionBuilderTypes.CreateNonceAccount;
|
|
31
|
+
params: {
|
|
32
|
+
fromAddress: string;
|
|
33
|
+
nonceAddress: string;
|
|
34
|
+
authAddress: string;
|
|
35
|
+
amount: string;
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
export interface Transfer {
|
|
39
|
+
type: InstructionBuilderTypes.Transfer;
|
|
40
|
+
params: {
|
|
41
|
+
fromAddress: string;
|
|
42
|
+
toAddress: string;
|
|
43
|
+
amount: string;
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
export declare type ValidInstructionTypes = SystemInstructionType | 'Memo';
|
|
1
47
|
//# sourceMappingURL=iface.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"iface.d.ts","sourceRoot":"","sources":["../../../../src/coin/sol/iface.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"iface.d.ts","sourceRoot":"","sources":["../../../../src/coin/sol/iface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACzF,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAGtD,MAAM,WAAW,UAAU;IACzB,GAAG,CAAC,EAAE,UAAU,GAAG,MAAM,CAAC;IAC1B,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,kBAAkB;IACjC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,MAAM;IACrB,EAAE,CAAC,EAAE,oBAAoB,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,SAAS,CAAC;IACjB,gBAAgB,EAAE,iBAAiB,EAAE,CAAC;CACvC;AAED,oBAAY,iBAAiB,GAAG,KAAK,GAAG,IAAI,GAAG,UAAU,GAAG,QAAQ,CAAC;AAErE,MAAM,WAAW,IAAI;IACnB,IAAI,EAAE,uBAAuB,CAAC,IAAI,CAAC;IACnC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CAC1B;AAED,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,uBAAuB,CAAC,YAAY,CAAC;IAC3C,MAAM,EAAE,kBAAkB,CAAC;CAC5B;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,uBAAuB,CAAC,kBAAkB,CAAC;IACjD,MAAM,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CAC5F;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,uBAAuB,CAAC,QAAQ,CAAC;IACvC,MAAM,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CACpE;AAED,oBAAY,qBAAqB,GAAG,qBAAqB,GAAG,MAAM,CAAC"}
|
|
@@ -1 +1,3 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29pbi9zb2wvaWZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJsb2NraGFzaCwgU3lzdGVtSW5zdHJ1Y3Rpb25UeXBlLCBUcmFuc2FjdGlvblNpZ25hdHVyZSB9IGZyb20gJ0Bzb2xhbmEvd2ViMy5qcyc7XG5pbXBvcnQgeyBJbnN0cnVjdGlvbkJ1aWxkZXJUeXBlcyB9IGZyb20gJy4vY29uc3RhbnRzJztcblxuLy8gVE9ETyhTVExYLTk4OTApOiBBZGQgdGhlIGludGVyZmFjZXMgZm9yIHZhbGlkaXR5V2luZG93LCBmZWVPcHRpb25zIGFuZCBTZXF1ZW5jZUlkXG5leHBvcnQgaW50ZXJmYWNlIFNvbGFuYUtleXMge1xuICBwcnY/OiBVaW50OEFycmF5IHwgc3RyaW5nO1xuICBwdWI6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEdXJhYmxlTm9uY2VQYXJhbXMge1xuICB3YWxsZXROb25jZUFkZHJlc3M6IHN0cmluZztcbiAgYXV0aFdhbGxldEFkZHJlc3M6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUeERhdGEge1xuICBpZD86IFRyYW5zYWN0aW9uU2lnbmF0dXJlO1xuICBmZWVQYXllcj86IHN0cmluZztcbiAgbnVtU2lnbmF0dXJlczogbnVtYmVyO1xuICBub25jZTogQmxvY2toYXNoO1xuICBpbnN0cnVjdGlvbnNEYXRhOiBJbnN0cnVjdGlvblBhcmFtc1tdO1xufVxuXG5leHBvcnQgdHlwZSBJbnN0cnVjdGlvblBhcmFtcyA9IE5vbmNlIHwgTWVtbyB8IFdhbGxldEluaXQgfCBUcmFuc2ZlcjtcblxuZXhwb3J0IGludGVyZmFjZSBNZW1vIHtcbiAgdHlwZTogSW5zdHJ1Y3Rpb25CdWlsZGVyVHlwZXMuTWVtbztcbiAgcGFyYW1zOiB7IG1lbW86IHN0cmluZyB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE5vbmNlIHtcbiAgdHlwZTogSW5zdHJ1Y3Rpb25CdWlsZGVyVHlwZXMuTm9uY2VBZHZhbmNlO1xuICBwYXJhbXM6IER1cmFibGVOb25jZVBhcmFtcztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBXYWxsZXRJbml0IHtcbiAgdHlwZTogSW5zdHJ1Y3Rpb25CdWlsZGVyVHlwZXMuQ3JlYXRlTm9uY2VBY2NvdW50O1xuICBwYXJhbXM6IHsgZnJvbUFkZHJlc3M6IHN0cmluZzsgbm9uY2VBZGRyZXNzOiBzdHJpbmc7IGF1dGhBZGRyZXNzOiBzdHJpbmc7IGFtb3VudDogc3RyaW5nIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHJhbnNmZXIge1xuICB0eXBlOiBJbnN0cnVjdGlvbkJ1aWxkZXJUeXBlcy5UcmFuc2ZlcjtcbiAgcGFyYW1zOiB7IGZyb21BZGRyZXNzOiBzdHJpbmc7IHRvQWRkcmVzczogc3RyaW5nOyBhbW91bnQ6IHN0cmluZyB9O1xufVxuXG5leHBvcnQgdHlwZSBWYWxpZEluc3RydWN0aW9uVHlwZXMgPSBTeXN0ZW1JbnN0cnVjdGlvblR5cGUgfCAnTWVtbyc7XG4iXX0=
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { TransactionInstruction } from '@solana/web3.js';
|
|
2
|
+
import { TransactionType } from '../baseCoin';
|
|
3
|
+
import { InstructionParams } from './iface';
|
|
4
|
+
/**
|
|
5
|
+
* Construct instructions params from Solana instructions
|
|
6
|
+
*
|
|
7
|
+
* @param {TransactionType} type - the transaction type
|
|
8
|
+
* @param {TransactionInstruction[]} instructions - solana instructions
|
|
9
|
+
* @returns {InstructionParams[]} An array containing instruction params
|
|
10
|
+
*/
|
|
11
|
+
export declare function instructionParamsFactory(type: TransactionType, instructions: TransactionInstruction[]): InstructionParams[];
|
|
12
|
+
//# sourceMappingURL=instructionParamsFactory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"instructionParamsFactory.d.ts","sourceRoot":"","sources":["../../../../src/coin/sol/instructionParamsFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAE5E,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAG9C,OAAO,EAAE,iBAAiB,EAAqC,MAAM,SAAS,CAAC;AAG/E;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,eAAe,EACrB,YAAY,EAAE,sBAAsB,EAAE,GACrC,iBAAiB,EAAE,CASrB"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.instructionParamsFactory = void 0;
|
|
4
|
+
var web3_js_1 = require("@solana/web3.js");
|
|
5
|
+
var baseCoin_1 = require("../baseCoin");
|
|
6
|
+
var errors_1 = require("../baseCoin/errors");
|
|
7
|
+
var constants_1 = require("./constants");
|
|
8
|
+
var utils_1 = require("./utils");
|
|
9
|
+
/**
|
|
10
|
+
* Construct instructions params from Solana instructions
|
|
11
|
+
*
|
|
12
|
+
* @param {TransactionType} type - the transaction type
|
|
13
|
+
* @param {TransactionInstruction[]} instructions - solana instructions
|
|
14
|
+
* @returns {InstructionParams[]} An array containing instruction params
|
|
15
|
+
*/
|
|
16
|
+
function instructionParamsFactory(type, instructions) {
|
|
17
|
+
switch (type) {
|
|
18
|
+
case baseCoin_1.TransactionType.WalletInitialization:
|
|
19
|
+
return parseWalletInitInstructions(instructions);
|
|
20
|
+
case baseCoin_1.TransactionType.Send:
|
|
21
|
+
return parseSendInstructions(instructions);
|
|
22
|
+
default:
|
|
23
|
+
throw new errors_1.NotSupported('Invalid transaction, transaction type not supported: ' + type);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
exports.instructionParamsFactory = instructionParamsFactory;
|
|
27
|
+
/**
|
|
28
|
+
* Parses Solana instructions to Wallet initialization tx instructions params
|
|
29
|
+
*
|
|
30
|
+
* @param {TransactionInstruction[]} instructions - containing create and initialize nonce solana instructions
|
|
31
|
+
* @returns {InstructionParams[]} An array containing instruction params for Wallet initialization tx
|
|
32
|
+
*/
|
|
33
|
+
function parseWalletInitInstructions(instructions) {
|
|
34
|
+
var instructionData = [];
|
|
35
|
+
var createInstruction = web3_js_1.SystemInstruction.decodeCreateAccount(instructions[constants_1.walletInitInstructionIndexes.Create]);
|
|
36
|
+
var nonceInitInstruction = web3_js_1.SystemInstruction.decodeNonceInitialize(instructions[constants_1.walletInitInstructionIndexes.InitializeNonce]);
|
|
37
|
+
var walletInit = {
|
|
38
|
+
type: constants_1.InstructionBuilderTypes.CreateNonceAccount,
|
|
39
|
+
params: {
|
|
40
|
+
fromAddress: createInstruction.fromPubkey.toString(),
|
|
41
|
+
nonceAddress: nonceInitInstruction.noncePubkey.toString(),
|
|
42
|
+
authAddress: nonceInitInstruction.authorizedPubkey.toString(),
|
|
43
|
+
amount: createInstruction.lamports.toString(),
|
|
44
|
+
},
|
|
45
|
+
};
|
|
46
|
+
instructionData.push(walletInit);
|
|
47
|
+
if (instructions.length === 3 && instructions[2]) {
|
|
48
|
+
var memo = { type: constants_1.InstructionBuilderTypes.Memo, params: { memo: instructions[2].data.toString() } };
|
|
49
|
+
instructionData.push(memo);
|
|
50
|
+
}
|
|
51
|
+
return instructionData;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Parses Solana instructions to Send tx instructions params
|
|
55
|
+
* Only supports Memo, Transfer and Advance Nonce Solana instructions
|
|
56
|
+
*
|
|
57
|
+
* @param {TransactionInstruction[]} instructions - an array of supported Solana instructions
|
|
58
|
+
* @returns {InstructionParams[]} An array containing instruction params for Send tx
|
|
59
|
+
*/
|
|
60
|
+
function parseSendInstructions(instructions) {
|
|
61
|
+
var instructionData = [];
|
|
62
|
+
for (var _i = 0, instructions_1 = instructions; _i < instructions_1.length; _i++) {
|
|
63
|
+
var instruction = instructions_1[_i];
|
|
64
|
+
var type = utils_1.getInstructionType(instruction);
|
|
65
|
+
switch (type) {
|
|
66
|
+
case constants_1.ValidInstructionTypesEnum.Memo:
|
|
67
|
+
var memo = { type: constants_1.InstructionBuilderTypes.Memo, params: { memo: instruction.data.toString() } };
|
|
68
|
+
instructionData.push(memo);
|
|
69
|
+
break;
|
|
70
|
+
case constants_1.ValidInstructionTypesEnum.AdvanceNonceAccount:
|
|
71
|
+
var advanceNonceInstruction = web3_js_1.SystemInstruction.decodeNonceAdvance(instruction);
|
|
72
|
+
var nonce = {
|
|
73
|
+
type: constants_1.InstructionBuilderTypes.NonceAdvance,
|
|
74
|
+
params: {
|
|
75
|
+
walletNonceAddress: advanceNonceInstruction.noncePubkey.toString(),
|
|
76
|
+
authWalletAddress: advanceNonceInstruction.authorizedPubkey.toString(),
|
|
77
|
+
},
|
|
78
|
+
};
|
|
79
|
+
instructionData.push(nonce);
|
|
80
|
+
break;
|
|
81
|
+
case constants_1.ValidInstructionTypesEnum.Transfer:
|
|
82
|
+
var transferInstruction = web3_js_1.SystemInstruction.decodeTransfer(instruction);
|
|
83
|
+
var transfer = {
|
|
84
|
+
type: constants_1.InstructionBuilderTypes.Transfer,
|
|
85
|
+
params: {
|
|
86
|
+
fromAddress: transferInstruction.fromPubkey.toString(),
|
|
87
|
+
toAddress: transferInstruction.toPubkey.toString(),
|
|
88
|
+
amount: transferInstruction.lamports.toString(),
|
|
89
|
+
},
|
|
90
|
+
};
|
|
91
|
+
instructionData.push(transfer);
|
|
92
|
+
break;
|
|
93
|
+
default:
|
|
94
|
+
throw new errors_1.NotSupported('Invalid transaction, instruction type not supported: ' + utils_1.getInstructionType(instruction));
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
return instructionData;
|
|
98
|
+
}
|
|
99
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdHJ1Y3Rpb25QYXJhbXNGYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvaW4vc29sL2luc3RydWN0aW9uUGFyYW1zRmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwyQ0FBNEU7QUFFNUUsd0NBQThDO0FBQzlDLDZDQUFrRDtBQUNsRCx5Q0FBK0c7QUFFL0csaUNBQTZDO0FBRTdDOzs7Ozs7R0FNRztBQUNILFNBQWdCLHdCQUF3QixDQUN0QyxJQUFxQixFQUNyQixZQUFzQztJQUV0QyxRQUFRLElBQUksRUFBRTtRQUNaLEtBQUssMEJBQWUsQ0FBQyxvQkFBb0I7WUFDdkMsT0FBTywyQkFBMkIsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNuRCxLQUFLLDBCQUFlLENBQUMsSUFBSTtZQUN2QixPQUFPLHFCQUFxQixDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzdDO1lBQ0UsTUFBTSxJQUFJLHFCQUFZLENBQUMsdURBQXVELEdBQUcsSUFBSSxDQUFDLENBQUM7S0FDMUY7QUFDSCxDQUFDO0FBWkQsNERBWUM7QUFFRDs7Ozs7R0FLRztBQUNILFNBQVMsMkJBQTJCLENBQUMsWUFBc0M7SUFDekUsSUFBTSxlQUFlLEdBQTZCLEVBQUUsQ0FBQztJQUNyRCxJQUFNLGlCQUFpQixHQUFHLDJCQUFpQixDQUFDLG1CQUFtQixDQUFDLFlBQVksQ0FBQyx3Q0FBNEIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ25ILElBQU0sb0JBQW9CLEdBQUcsMkJBQWlCLENBQUMscUJBQXFCLENBQ2xFLFlBQVksQ0FBQyx3Q0FBNEIsQ0FBQyxlQUFlLENBQUMsQ0FDM0QsQ0FBQztJQUVGLElBQU0sVUFBVSxHQUFlO1FBQzdCLElBQUksRUFBRSxtQ0FBdUIsQ0FBQyxrQkFBa0I7UUFDaEQsTUFBTSxFQUFFO1lBQ04sV0FBVyxFQUFFLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUU7WUFDcEQsWUFB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Y3Rpb25JbnN0cnVjdGlvbiB9IGZyb20gJ0Bzb2xhbmEvd2ViMy5qcyc7XG5cbmltcG9ydCB7IFRyYW5zYWN0aW9uVHlwZSB9IGZyb20gJy4uL2Jhc2VDb2luJztcbmltcG9ydCB7IE5vdFN1cHBvcnRlZCB9IGZyb20gJy4uL2Jhc2VDb2luL2Vycm9ycyc7XG5pbXBvcnQgeyBJbnN0cnVjdGlvbkJ1aWxkZXJUeXBlcywgVmFsaWRJbnN0cnVjdGlvblR5cGVzRW51bSwgd2FsbGV0SW5pdEluc3RydWN0aW9uSW5kZXhlcyB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7IEluc3RydWN0aW9uUGFyYW1zLCBXYWxsZXRJbml0LCBUcmFuc2ZlciwgTm9uY2UsIE1lbW8gfSBmcm9tICcuL2lmYWNlJztcbmltcG9ydCB7IGdldEluc3RydWN0aW9uVHlwZSB9IGZyb20gJy4vdXRpbHMnO1xuXG4vKipcbiAqIENvbnN0cnVjdCBpbnN0cnVjdGlvbnMgcGFyYW1zIGZyb20gU29sYW5hIGluc3RydWN0aW9uc1xuICpcbiAqIEBwYXJhbSB7VHJhbnNhY3Rpb25UeXBlfSB0eXBlIC0gdGhlIHRyYW5zYWN0aW9uIHR5cGVcbiAqIEBwYXJhbSB7VHJhbnNhY3Rpb25JbnN0cnVjdGlvbltdfSBpbnN0cnVjdGlvbnMgLSBzb2xhbmEgaW5zdHJ1Y3Rpb25zXG4gKiBAcmV0dXJucyB7SW5zdHJ1Y3Rpb25QYXJhbXNbXX0gQW4gYXJyYXkgY29udGFpbmluZyBpbnN0cnVjdGlvbiBwYXJhbXNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGluc3RydWN0aW9uUGFyYW1zRmFjdG9yeShcbiAgdHlwZTogVHJhbnNhY3Rpb25UeXBlLFxuICBpbnN0cnVjdGlvbnM6IFRyYW5zYWN0aW9uSW5zdHJ1Y3Rpb25bXSxcbik6IEluc3RydWN0aW9uUGFyYW1zW10ge1xuICBzd2l0Y2ggKHR5cGUpIHtcbiAgICBjYXNlIFRyYW5zYWN0aW9uVHlwZS5XYWxsZXRJbml0aWFsaXphdGlvbjpcbiAgICAgIHJldHVybiBwYXJzZVdhbGxldEluaXRJbnN0cnVjdGlvbnMoaW5zdHJ1Y3Rpb25zKTtcbiAgICBjYXNlIFRyYW5zYWN0aW9uVHlwZS5TZW5kOlxuICAgICAgcmV0dXJuIHBhcnNlU2VuZEluc3RydWN0aW9ucyhpbnN0cnVjdGlvbnMpO1xuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyBuZXcgTm90U3VwcG9ydGVkKCdJbnZhbGlkIHRyYW5zYWN0aW9uLCB0cmFuc2FjdGlvbiB0eXBlIG5vdCBzdXBwb3J0ZWQ6ICcgKyB0eXBlKTtcbiAgfVxufVxuXG4vKipcbiAqIFBhcnNlcyBTb2xhbmEgaW5zdHJ1Y3Rpb25zIHRvIFdhbGxldCBpbml0aWFsaXphdGlvbiB0eCBpbnN0cnVjdGlvbnMgcGFyYW1zXG4gKlxuICogQHBhcmFtIHtUcmFuc2FjdGlvbkluc3RydWN0aW9uW119IGluc3RydWN0aW9ucyAtIGNvbnRhaW5pbmcgY3JlYXRlIGFuZCBpbml0aWFsaXplIG5vbmNlIHNvbGFuYSBpbnN0cnVjdGlvbnNcbiAqIEByZXR1cm5zIHtJbnN0cnVjdGlvblBhcmFtc1tdfSBBbiBhcnJheSBjb250YWluaW5nIGluc3RydWN0aW9uIHBhcmFtcyBmb3IgV2FsbGV0IGluaXRpYWxpemF0aW9uIHR4XG4gKi9cbmZ1bmN0aW9uIHBhcnNlV2FsbGV0SW5pdEluc3RydWN0aW9ucyhpbnN0cnVjdGlvbnM6IFRyYW5zYWN0aW9uSW5zdHJ1Y3Rpb25bXSk6IEFycmF5PFdhbGxldEluaXQgfCBNZW1vPiB7XG4gIGNvbnN0IGluc3RydWN0aW9uRGF0YTogQXJyYXk8V2FsbGV0SW5pdCB8IE1lbW8+ID0gW107XG4gIGNvbnN0IGNyZWF0ZUluc3RydWN0aW9uID0gU3lzdGVtSW5zdHJ1Y3Rpb24uZGVjb2RlQ3JlYXRlQWNjb3VudChpbnN0cnVjdGlvbnNbd2FsbGV0SW5pdEluc3RydWN0aW9uSW5kZXhlcy5DcmVhdGVdKTtcbiAgY29uc3Qgbm9uY2VJbml0SW5zdHJ1Y3Rpb24gPSBTeXN0ZW1JbnN0cnVjdGlvbi5kZWNvZGVOb25jZUluaXRpYWxpemUoXG4gICAgaW5zdHJ1Y3Rpb25zW3dhbGxldEluaXRJbnN0cnVjdGlvbkluZGV4ZXMuSW5pdGlhbGl6ZU5vbmNlXSxcbiAgKTtcblxuICBjb25zdCB3YWxsZXRJbml0OiBXYWxsZXRJbml0ID0ge1xuICAgIHR5cGU6IEluc3RydWN0aW9uQnVpbGRlclR5cGVzLkNyZWF0ZU5vbmNlQWNjb3VudCxcbiAgICBwYXJhbXM6IHtcbiAgICAgIGZyb21BZGRyZXNzOiBjcmVhdGVJbnN0cnVjdGlvbi5mcm9tUHVia2V5LnRvU3RyaW5nKCksXG4gICAgICBub25jZUFkZHJlc3M6IG5vbmNlSW5pdEluc3RydWN0aW9uLm5vbmNlUHVia2V5LnRvU3RyaW5nKCksXG4gICAgICBhdXRoQWRkcmVzczogbm9uY2VJbml0SW5zdHJ1Y3Rpb24uYXV0aG9yaXplZFB1YmtleS50b1N0cmluZygpLFxuICAgICAgYW1vdW50OiBjcmVhdGVJbnN0cnVjdGlvbi5sYW1wb3J0cy50b1N0cmluZygpLFxuICAgIH0sXG4gIH07XG4gIGluc3RydWN0aW9uRGF0YS5wdXNoKHdhbGxldEluaXQpO1xuXG4gIGlmIChpbnN0cnVjdGlvbnMubGVuZ3RoID09PSAzICYmIGluc3RydWN0aW9uc1syXSkge1xuICAgIGNvbnN0IG1lbW86IE1lbW8gPSB7IHR5cGU6IEluc3RydWN0aW9uQnVpbGRlclR5cGVzLk1lbW8sIHBhcmFtczogeyBtZW1vOiBpbnN0cnVjdGlvbnNbMl0uZGF0YS50b1N0cmluZygpIH0gfTtcbiAgICBpbnN0cnVjdGlvbkRhdGEucHVzaChtZW1vKTtcbiAgfVxuXG4gIHJldHVybiBpbnN0cnVjdGlvbkRhdGE7XG59XG5cbi8qKlxuICogUGFyc2VzIFNvbGFuYSBpbnN0cnVjdGlvbnMgdG8gU2VuZCB0eCBpbnN0cnVjdGlvbnMgcGFyYW1zXG4gKiBPbmx5IHN1cHBvcnRzIE1lbW8sIFRyYW5zZmVyIGFuZCBBZHZhbmNlIE5vbmNlIFNvbGFuYSBpbnN0cnVjdGlvbnNcbiAqXG4gKiBAcGFyYW0ge1RyYW5zYWN0aW9uSW5zdHJ1Y3Rpb25bXX0gaW5zdHJ1Y3Rpb25zIC0gYW4gYXJyYXkgb2Ygc3VwcG9ydGVkIFNvbGFuYSBpbnN0cnVjdGlvbnNcbiAqIEByZXR1cm5zIHtJbnN0cnVjdGlvblBhcmFtc1tdfSBBbiBhcnJheSBjb250YWluaW5nIGluc3RydWN0aW9uIHBhcmFtcyBmb3IgU2VuZCB0eFxuICovXG5mdW5jdGlvbiBwYXJzZVNlbmRJbnN0cnVjdGlvbnMoaW5zdHJ1Y3Rpb25zOiBUcmFuc2FjdGlvbkluc3RydWN0aW9uW10pOiBBcnJheTxOb25jZSB8IE1lbW8gfCBUcmFuc2Zlcj4ge1xuICBjb25zdCBpbnN0cnVjdGlvbkRhdGE6IEFycmF5PE5vbmNlIHwgTWVtbyB8IFRyYW5zZmVyPiA9IFtdO1xuICBmb3IgKGNvbnN0IGluc3RydWN0aW9uIG9mIGluc3RydWN0aW9ucykge1xuICAgIGNvbnN0IHR5cGUgPSBnZXRJbnN0cnVjdGlvblR5cGUoaW5zdHJ1Y3Rpb24pO1xuICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgY2FzZSBWYWxpZEluc3RydWN0aW9uVHlwZXNFbnVtLk1lbW86XG4gICAgICAgIGNvbnN0IG1lbW86IE1lbW8gPSB7IHR5cGU6IEluc3RydWN0aW9uQnVpbGRlclR5cGVzLk1lbW8sIHBhcmFtczogeyBtZW1vOiBpbnN0cnVjdGlvbi5kYXRhLnRvU3RyaW5nKCkgfSB9O1xuICAgICAgICBpbnN0cnVjdGlvbkRhdGEucHVzaChtZW1vKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFZhbGlkSW5zdHJ1Y3Rpb25UeXBlc0VudW0uQWR2YW5jZU5vbmNlQWNjb3VudDpcbiAgICAgICAgY29uc3QgYWR2YW5jZU5vbmNlSW5zdHJ1Y3Rpb24gPSBTeXN0ZW1JbnN0cnVjdGlvbi5kZWNvZGVOb25jZUFkdmFuY2UoaW5zdHJ1Y3Rpb24pO1xuICAgICAgICBjb25zdCBub25jZTogTm9uY2UgPSB7XG4gICAgICAgICAgdHlwZTogSW5zdHJ1Y3Rpb25CdWlsZGVyVHlwZXMuTm9uY2VBZHZhbmNlLFxuICAgICAgICAgIHBhcmFtczoge1xuICAgICAgICAgICAgd2FsbGV0Tm9uY2VBZGRyZXNzOiBhZHZhbmNlTm9uY2VJbnN0cnVjdGlvbi5ub25jZVB1YmtleS50b1N0cmluZygpLFxuICAgICAgICAgICAgYXV0aFdhbGxldEFkZHJlc3M6IGFkdmFuY2VOb25jZUluc3RydWN0aW9uLmF1dGhvcml6ZWRQdWJrZXkudG9TdHJpbmcoKSxcbiAgICAgICAgICB9LFxuICAgICAgICB9O1xuICAgICAgICBpbnN0cnVjdGlvbkRhdGEucHVzaChub25jZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBWYWxpZEluc3RydWN0aW9uVHlwZXNFbnVtLlRyYW5zZmVyOlxuICAgICAgICBjb25zdCB0cmFuc2Zlckluc3RydWN0aW9uID0gU3lzdGVtSW5zdHJ1Y3Rpb24uZGVjb2RlVHJhbnNmZXIoaW5zdHJ1Y3Rpb24pO1xuICAgICAgICBjb25zdCB0cmFuc2ZlcjogVHJhbnNmZXIgPSB7XG4gICAgICAgICAgdHlwZTogSW5zdHJ1Y3Rpb25CdWlsZGVyVHlwZXMuVHJhbnNmZXIsXG4gICAgICAgICAgcGFyYW1zOiB7XG4gICAgICAgICAgICBmcm9tQWRkcmVzczogdHJhbnNmZXJJbnN0cnVjdGlvbi5mcm9tUHVia2V5LnRvU3RyaW5nKCksXG4gICAgICAgICAgICB0b0FkZHJlc3M6IHRyYW5zZmVySW5zdHJ1Y3Rpb24udG9QdWJrZXkudG9TdHJpbmcoKSxcbiAgICAgICAgICAgIGFtb3VudDogdHJhbnNmZXJJbnN0cnVjdGlvbi5sYW1wb3J0cy50b1N0cmluZygpLFxuICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgICAgIGluc3RydWN0aW9uRGF0YS5wdXNoKHRyYW5zZmVyKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBuZXcgTm90U3VwcG9ydGVkKFxuICAgICAgICAgICdJbnZhbGlkIHRyYW5zYWN0aW9uLCBpbnN0cnVjdGlvbiB0eXBlIG5vdCBzdXBwb3J0ZWQ6ICcgKyBnZXRJbnN0cnVjdGlvblR5cGUoaW5zdHJ1Y3Rpb24pLFxuICAgICAgICApO1xuICAgIH1cbiAgfVxuICByZXR1cm4gaW5zdHJ1Y3Rpb25EYXRhO1xufVxuIl19
|
|
@@ -1,19 +1,45 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { BaseKeyPair } from '../baseCoin';
|
|
2
2
|
import { DefaultKeys, KeyPairOptions } from '../baseCoin/iface';
|
|
3
|
-
|
|
3
|
+
import { SolanaKeys } from './iface';
|
|
4
|
+
export declare class KeyPair implements BaseKeyPair {
|
|
5
|
+
protected keyPair: DefaultKeys;
|
|
6
|
+
protected source?: KeyPairOptions;
|
|
4
7
|
/**
|
|
5
8
|
* Public constructor. By default, creates a key pair with a random master seed.
|
|
6
9
|
*
|
|
7
10
|
* @param { KeyPairOptions } source Either a master seed, a private key, or a public key
|
|
8
11
|
*/
|
|
9
12
|
constructor(source?: KeyPairOptions);
|
|
13
|
+
private setKP;
|
|
10
14
|
/** @inheritdoc */
|
|
11
|
-
|
|
15
|
+
recordKeysFromPrivateKey(prv: string): void;
|
|
12
16
|
/** @inheritdoc */
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
|
|
17
|
+
recordKeysFromPublicKey(pub: string): void;
|
|
18
|
+
/**
|
|
19
|
+
* Solana default keys format public key as a base58 string and secret key as Uint8Array
|
|
20
|
+
*
|
|
21
|
+
* @param {boolean} raw defines if the prv key is returned in Uint8Array, default is base58
|
|
22
|
+
* @returns {SolanaKeys} The keys in the defined format
|
|
23
|
+
*/
|
|
24
|
+
getKeys(raw?: boolean): SolanaKeys;
|
|
16
25
|
/** @inheritdoc */
|
|
17
26
|
getAddress(): string;
|
|
27
|
+
/**
|
|
28
|
+
* Generates a signature for an arbitrary string with the current private key using the ed25519 public-key signature
|
|
29
|
+
* system.
|
|
30
|
+
*
|
|
31
|
+
* @param {string} message to produce a signature for
|
|
32
|
+
* @returns {Uint8Array} The signature produced for the message
|
|
33
|
+
* @throws if there is no private key
|
|
34
|
+
*/
|
|
35
|
+
signMessage(message: string): Uint8Array;
|
|
36
|
+
/**
|
|
37
|
+
* Verifies a message signature using the current public key.
|
|
38
|
+
*
|
|
39
|
+
* @param {string} message signed
|
|
40
|
+
* @param {Uint8Array} signature to verify
|
|
41
|
+
* @returns {boolean} True if the message was signed with the current key pair
|
|
42
|
+
*/
|
|
43
|
+
verifySignature(message: Uint8Array | string, signature: Uint8Array): boolean;
|
|
18
44
|
}
|
|
19
45
|
//# sourceMappingURL=keyPair.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keyPair.d.ts","sourceRoot":"","sources":["../../../../src/coin/sol/keyPair.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"keyPair.d.ts","sourceRoot":"","sources":["../../../../src/coin/sol/keyPair.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,OAAO,EAAE,WAAW,EAAqC,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnG,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAKrC,qBAAa,OAAQ,YAAW,WAAW;IACzC,SAAS,CAAC,OAAO,EAAE,WAAW,CAAC;IAC/B,SAAS,CAAC,MAAM,CAAC,EAAE,cAAc,CAAC;IAClC;;;;OAIG;gBACS,MAAM,CAAC,EAAE,cAAc;IAiBnC,OAAO,CAAC,KAAK;IAOb,kBAAkB;IAClB,wBAAwB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAU3C,kBAAkB;IAClB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAQ1C;;;;;OAKG;IACH,OAAO,CAAC,GAAG,UAAQ,GAAG,UAAU;IAYhC,kBAAkB;IAClB,UAAU,IAAI,MAAM;IAKpB;;;;;;;OAOG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU;IASxC;;;;;;OAMG;IACH,eAAe,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM,EAAE,SAAS,EAAE,UAAU,GAAG,OAAO;CAU9E"}
|