@bitgo-beta/sdk-coin-dot 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintignore +5 -0
- package/.mocharc.yml +8 -0
- package/CHANGELOG.md +24 -0
- package/LICENSE +191 -0
- package/README.md +30 -0
- package/dist/src/dot.d.ts +147 -0
- package/dist/src/dot.d.ts.map +1 -0
- package/dist/src/dot.js +355 -0
- package/dist/src/index.d.ts +4 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +16 -0
- package/dist/src/lib/addressInitializationBuilder.d.ts +79 -0
- package/dist/src/lib/addressInitializationBuilder.d.ts.map +1 -0
- package/dist/src/lib/addressInitializationBuilder.js +182 -0
- package/dist/src/lib/batchTransactionBuilder.d.ts +47 -0
- package/dist/src/lib/batchTransactionBuilder.d.ts.map +1 -0
- package/dist/src/lib/batchTransactionBuilder.js +122 -0
- package/dist/src/lib/claimBuilder.d.ts +58 -0
- package/dist/src/lib/claimBuilder.d.ts.map +1 -0
- package/dist/src/lib/claimBuilder.js +119 -0
- package/dist/src/lib/errors.d.ts +8 -0
- package/dist/src/lib/errors.d.ts.map +1 -0
- package/dist/src/lib/errors.js +19 -0
- package/dist/src/lib/iface.d.ts +204 -0
- package/dist/src/lib/iface.d.ts.map +1 -0
- package/dist/src/lib/iface.js +40 -0
- package/dist/src/lib/index.d.ts +18 -0
- package/dist/src/lib/index.d.ts.map +1 -0
- package/dist/src/lib/index.js +55 -0
- package/dist/src/lib/keyPair.d.ts +31 -0
- package/dist/src/lib/keyPair.d.ts.map +1 -0
- package/dist/src/lib/keyPair.js +70 -0
- package/dist/src/lib/nativeTransferBuilder.d.ts +81 -0
- package/dist/src/lib/nativeTransferBuilder.d.ts.map +1 -0
- package/dist/src/lib/nativeTransferBuilder.js +213 -0
- package/dist/src/lib/singletonRegistry.d.ts +7 -0
- package/dist/src/lib/singletonRegistry.d.ts.map +1 -0
- package/dist/src/lib/singletonRegistry.js +20 -0
- package/dist/src/lib/stakingBuilder.d.ts +58 -0
- package/dist/src/lib/stakingBuilder.d.ts.map +1 -0
- package/dist/src/lib/stakingBuilder.js +139 -0
- package/dist/src/lib/transaction.d.ts +65 -0
- package/dist/src/lib/transaction.d.ts.map +1 -0
- package/dist/src/lib/transaction.js +410 -0
- package/dist/src/lib/transactionBuilder.d.ts +131 -0
- package/dist/src/lib/transactionBuilder.d.ts.map +1 -0
- package/dist/src/lib/transactionBuilder.js +332 -0
- package/dist/src/lib/transactionBuilderFactory.d.ts +26 -0
- package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -0
- package/dist/src/lib/transactionBuilderFactory.js +95 -0
- package/dist/src/lib/transferBuilder.d.ts +11 -0
- package/dist/src/lib/transferBuilder.d.ts.map +1 -0
- package/dist/src/lib/transferBuilder.js +11 -0
- package/dist/src/lib/txnSchema.d.ts +15 -0
- package/dist/src/lib/txnSchema.d.ts.map +1 -0
- package/dist/src/lib/txnSchema.js +107 -0
- package/dist/src/lib/unnominateBuilder.d.ts +24 -0
- package/dist/src/lib/unnominateBuilder.d.ts.map +1 -0
- package/dist/src/lib/unnominateBuilder.js +50 -0
- package/dist/src/lib/unstakeBuilder.d.ts +38 -0
- package/dist/src/lib/unstakeBuilder.d.ts.map +1 -0
- package/dist/src/lib/unstakeBuilder.js +89 -0
- package/dist/src/lib/utils.d.ts +146 -0
- package/dist/src/lib/utils.d.ts.map +1 -0
- package/dist/src/lib/utils.js +287 -0
- package/dist/src/lib/withdrawUnstakedBuilder.d.ts +38 -0
- package/dist/src/lib/withdrawUnstakedBuilder.d.ts.map +1 -0
- package/dist/src/lib/withdrawUnstakedBuilder.js +90 -0
- package/dist/src/tdot.d.ts +12 -0
- package/dist/src/tdot.d.ts.map +1 -0
- package/dist/src/tdot.js +27 -0
- package/package.json +65 -0
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.ClaimTransactionSchema = exports.WithdrawUnstakedTransactionSchema = exports.UnstakeTransactionSchema = exports.ProxyTransactionSchema = exports.BatchTransactionSchema = exports.AnonymousAddressInitializationSchema = exports.AddressInitializationSchema = exports.StakeTransactionSchema = exports.TransferAllTransactionSchema = exports.TransferTransactionSchema = exports.SignedTransactionSchema = exports.SigningPayloadTransactionSchema = exports.BaseTransactionSchema = void 0;
|
|
7
|
+
const joi_1 = __importDefault(require("joi"));
|
|
8
|
+
const utils_1 = __importDefault(require("./utils"));
|
|
9
|
+
const addressSchema = joi_1.default.string().custom((addr) => utils_1.default.isValidAddress(addr));
|
|
10
|
+
const proxyTypes = [
|
|
11
|
+
'Any',
|
|
12
|
+
'NonTransfer',
|
|
13
|
+
'Governance',
|
|
14
|
+
'Staking',
|
|
15
|
+
'UnusedSudoBalances',
|
|
16
|
+
'IdentityJudgement',
|
|
17
|
+
'CancelProxy',
|
|
18
|
+
];
|
|
19
|
+
exports.BaseTransactionSchema = joi_1.default.object({
|
|
20
|
+
sender: addressSchema.required(),
|
|
21
|
+
blockNumber: joi_1.default.number().required(),
|
|
22
|
+
blockHash: joi_1.default.string().required(),
|
|
23
|
+
genesisHash: joi_1.default.string().required(),
|
|
24
|
+
specVersion: joi_1.default.number().required(),
|
|
25
|
+
specName: joi_1.default.string().valid('kusama', 'polkadot', 'westend', 'statemint', 'statemine').required(),
|
|
26
|
+
transactionVersion: joi_1.default.number().required(),
|
|
27
|
+
chainName: joi_1.default.string().required(),
|
|
28
|
+
eraPeriod: joi_1.default.number().required(),
|
|
29
|
+
nonce: joi_1.default.number().required(),
|
|
30
|
+
tip: joi_1.default.number().optional(),
|
|
31
|
+
});
|
|
32
|
+
exports.SigningPayloadTransactionSchema = joi_1.default.object({
|
|
33
|
+
eraPeriod: joi_1.default.number().optional(),
|
|
34
|
+
blockHash: joi_1.default.string().required(),
|
|
35
|
+
nonce: joi_1.default.number().required(),
|
|
36
|
+
tip: joi_1.default.number().optional(),
|
|
37
|
+
});
|
|
38
|
+
exports.SignedTransactionSchema = joi_1.default.object({
|
|
39
|
+
sender: addressSchema.required(),
|
|
40
|
+
nonce: joi_1.default.number().required(),
|
|
41
|
+
eraPeriod: joi_1.default.number().optional(),
|
|
42
|
+
tip: joi_1.default.number().optional(),
|
|
43
|
+
});
|
|
44
|
+
exports.TransferTransactionSchema = joi_1.default.object({
|
|
45
|
+
amount: joi_1.default.string().required(),
|
|
46
|
+
to: addressSchema.required(),
|
|
47
|
+
});
|
|
48
|
+
exports.TransferAllTransactionSchema = joi_1.default.object({
|
|
49
|
+
to: addressSchema.required(),
|
|
50
|
+
});
|
|
51
|
+
exports.StakeTransactionSchema = joi_1.default.object({
|
|
52
|
+
value: joi_1.default.string().required(),
|
|
53
|
+
controller: addressSchema.required(),
|
|
54
|
+
payee: [
|
|
55
|
+
joi_1.default.string(),
|
|
56
|
+
joi_1.default.object({
|
|
57
|
+
account: joi_1.default.string().optional(),
|
|
58
|
+
controller: joi_1.default.equal(null).optional(),
|
|
59
|
+
staked: joi_1.default.equal(null).optional(),
|
|
60
|
+
stash: joi_1.default.equal(null).optional(),
|
|
61
|
+
}),
|
|
62
|
+
joi_1.default.object({
|
|
63
|
+
Account: joi_1.default.string().required(),
|
|
64
|
+
}),
|
|
65
|
+
],
|
|
66
|
+
});
|
|
67
|
+
exports.AddressInitializationSchema = joi_1.default.object({
|
|
68
|
+
proxyType: joi_1.default
|
|
69
|
+
.string()
|
|
70
|
+
.valid(...proxyTypes)
|
|
71
|
+
.required(),
|
|
72
|
+
delegate: addressSchema.required(),
|
|
73
|
+
delay: joi_1.default.string().required(),
|
|
74
|
+
});
|
|
75
|
+
exports.AnonymousAddressInitializationSchema = joi_1.default.object({
|
|
76
|
+
proxyType: joi_1.default
|
|
77
|
+
.string()
|
|
78
|
+
.valid(...proxyTypes)
|
|
79
|
+
.required(),
|
|
80
|
+
index: joi_1.default.number().required(),
|
|
81
|
+
delay: joi_1.default.number().required(),
|
|
82
|
+
});
|
|
83
|
+
exports.BatchTransactionSchema = joi_1.default.object({
|
|
84
|
+
calls: joi_1.default
|
|
85
|
+
.alternatives()
|
|
86
|
+
.try(joi_1.default.array().items(joi_1.default.string()), joi_1.default.array().items(joi_1.default.object({ callIndex: joi_1.default.string(), args: joi_1.default.object() }))),
|
|
87
|
+
});
|
|
88
|
+
exports.ProxyTransactionSchema = joi_1.default.object({
|
|
89
|
+
real: addressSchema.required(),
|
|
90
|
+
forceProxyType: joi_1.default
|
|
91
|
+
.string()
|
|
92
|
+
.valid(...proxyTypes)
|
|
93
|
+
.required(),
|
|
94
|
+
amount: joi_1.default.string().required(),
|
|
95
|
+
to: addressSchema.required(),
|
|
96
|
+
});
|
|
97
|
+
exports.UnstakeTransactionSchema = joi_1.default.object({
|
|
98
|
+
value: joi_1.default.string().required(),
|
|
99
|
+
});
|
|
100
|
+
exports.WithdrawUnstakedTransactionSchema = joi_1.default.object({
|
|
101
|
+
value: joi_1.default.number().required(),
|
|
102
|
+
});
|
|
103
|
+
exports.ClaimTransactionSchema = joi_1.default.object({
|
|
104
|
+
claimEra: joi_1.default.string().required(),
|
|
105
|
+
validatorStash: addressSchema.required(),
|
|
106
|
+
});
|
|
107
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhuU2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi90eG5TY2hlbWEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsOENBQXNCO0FBQ3RCLG9EQUE0QjtBQUU1QixNQUFNLGFBQWEsR0FBRyxhQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxlQUFLLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7QUFFaEYsTUFBTSxVQUFVLEdBQUc7SUFDakIsS0FBSztJQUNMLGFBQWE7SUFDYixZQUFZO0lBQ1osU0FBUztJQUNULG9CQUFvQjtJQUNwQixtQkFBbUI7SUFDbkIsYUFBYTtDQUNkLENBQUM7QUFFVyxRQUFBLHFCQUFxQixHQUFHLGFBQUcsQ0FBQyxNQUFNLENBQUM7SUFDOUMsTUFBTSxFQUFFLGFBQWEsQ0FBQyxRQUFRLEVBQUU7SUFDaEMsV0FBVyxFQUFFLGFBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDcEMsU0FBUyxFQUFFLGFBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDbEMsV0FBVyxFQUFFLGFBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDcEMsV0FBVyxFQUFFLGFBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDcEMsUUFBUSxFQUFFLGFBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFdBQVcsQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUNsRyxrQkFBa0IsRUFBRSxhQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQzNDLFNBQVMsRUFBRSxhQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ2xDLFNBQVMsRUFBRSxhQUFH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Q0FBQyxDQUFDO0FBRVUsUUFBQSxzQkFBc0IsR0FBRyxhQUFHLENBQUMsTUFBTSxDQUFDO0lBQy9DLFFBQVEsRUFBRSxhQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ2pDLGNBQWMsRUFBRSxhQUFhLENBQUMsUUFBUSxFQUFFO0NBQ3pDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBqb2kgZnJvbSAnam9pJztcbmltcG9ydCBVdGlscyBmcm9tICcuL3V0aWxzJztcblxuY29uc3QgYWRkcmVzc1NjaGVtYSA9IGpvaS5zdHJpbmcoKS5jdXN0b20oKGFkZHIpID0+IFV0aWxzLmlzVmFsaWRBZGRyZXNzKGFkZHIpKTtcblxuY29uc3QgcHJveHlUeXBlcyA9IFtcbiAgJ0FueScsXG4gICdOb25UcmFuc2ZlcicsXG4gICdHb3Zlcm5hbmNlJyxcbiAgJ1N0YWtpbmcnLFxuICAnVW51c2VkU3Vkb0JhbGFuY2VzJyxcbiAgJ0lkZW50aXR5SnVkZ2VtZW50JyxcbiAgJ0NhbmNlbFByb3h5Jyxcbl07XG5cbmV4cG9ydCBjb25zdCBCYXNlVHJhbnNhY3Rpb25TY2hlbWEgPSBqb2kub2JqZWN0KHtcbiAgc2VuZGVyOiBhZGRyZXNzU2NoZW1hLnJlcXVpcmVkKCksXG4gIGJsb2NrTnVtYmVyOiBqb2kubnVtYmVyKCkucmVxdWlyZWQoKSxcbiAgYmxvY2tIYXNoOiBqb2kuc3RyaW5nKCkucmVxdWlyZWQoKSxcbiAgZ2VuZXNpc0hhc2g6IGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLFxuICBzcGVjVmVyc2lvbjogam9pLm51bWJlcigpLnJlcXVpcmVkKCksXG4gIHNwZWNOYW1lOiBqb2kuc3RyaW5nKCkudmFsaWQoJ2t1c2FtYScsICdwb2xrYWRvdCcsICd3ZXN0ZW5kJywgJ3N0YXRlbWludCcsICdzdGF0ZW1pbmUnKS5yZXF1aXJlZCgpLFxuICB0cmFuc2FjdGlvblZlcnNpb246IGpvaS5udW1iZXIoKS5yZXF1aXJlZCgpLFxuICBjaGFpbk5hbWU6IGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLFxuICBlcmFQZXJpb2Q6IGpvaS5udW1iZXIoKS5yZXF1aXJlZCgpLFxuICBub25jZTogam9pLm51bWJlcigpLnJlcXVpcmVkKCksXG4gIHRpcDogam9pLm51bWJlcigpLm9wdGlvbmFsKCksXG59KTtcblxuZXhwb3J0IGNvbnN0IFNpZ25pbmdQYXlsb2FkVHJhbnNhY3Rpb25TY2hlbWEgPSBqb2kub2JqZWN0KHtcbiAgZXJhUGVyaW9kOiBqb2kubnVtYmVyKCkub3B0aW9uYWwoKSxcbiAgYmxvY2tIYXNoOiBqb2kuc3RyaW5nKCkucmVxdWlyZWQoKSxcbiAgbm9uY2U6IGpvaS5udW1iZXIoKS5yZXF1aXJlZCgpLFxuICB0aXA6IGpvaS5udW1iZXIoKS5vcHRpb25hbCgpLFxufSk7XG5cbmV4cG9ydCBjb25zdCBTaWduZWRUcmFuc2FjdGlvblNjaGVtYSA9IGpvaS5vYmplY3Qoe1xuICBzZW5kZXI6IGFkZHJlc3NTY2hlbWEucmVxdWlyZWQoKSxcbiAgbm9uY2U6IGpvaS5udW1iZXIoKS5yZXF1aXJlZCgpLFxuICBlcmFQZXJpb2Q6IGpvaS5udW1iZXIoKS5vcHRpb25hbCgpLFxuICB0aXA6IGpvaS5udW1iZXIoKS5vcHRpb25hbCgpLFxufSk7XG5cbmV4cG9ydCBjb25zdCBUcmFuc2ZlclRyYW5zYWN0aW9uU2NoZW1hID0gam9pLm9iamVjdCh7XG4gIGFtb3VudDogam9pLnN0cmluZygpLnJlcXVpcmVkKCksXG4gIHRvOiBhZGRyZXNzU2NoZW1hLnJlcXVpcmVkKCksXG59KTtcblxuZXhwb3J0IGNvbnN0IFRyYW5zZmVyQWxsVHJhbnNhY3Rpb25TY2hlbWEgPSBqb2kub2JqZWN0KHtcbiAgdG86IGFkZHJlc3NTY2hlbWEucmVxdWlyZWQoKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgU3Rha2VUcmFuc2FjdGlvblNjaGVtYSA9IGpvaS5vYmplY3Qoe1xuICB2YWx1ZTogam9pLnN0cmluZygpLnJlcXVpcmVkKCksXG4gIGNvbnRyb2xsZXI6IGFkZHJlc3NTY2hlbWEucmVxdWlyZWQoKSxcbiAgcGF5ZWU6IFtcbiAgICBqb2kuc3RyaW5nKCksXG4gICAgam9pLm9iamVjdCh7XG4gICAgICBhY2NvdW50OiBqb2kuc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgICAgIGNvbnRyb2xsZXI6IGpvaS5lcXVhbChudWxsKS5vcHRpb25hbCgpLFxuICAgICAgc3Rha2VkOiBqb2kuZXF1YWwobnVsbCkub3B0aW9uYWwoKSxcbiAgICAgIHN0YXNoOiBqb2kuZXF1YWwobnVsbCkub3B0aW9uYWwoKSxcbiAgICB9KSxcbiAgICBqb2kub2JqZWN0KHtcbiAgICAgIEFjY291bnQ6IGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLFxuICAgIH0pLFxuICBdLFxufSk7XG5cbmV4cG9ydCBjb25zdCBBZGRyZXNzSW5pdGlhbGl6YXRpb25TY2hlbWEgPSBqb2kub2JqZWN0KHtcbiAgcHJveHlUeXBlOiBqb2lcbiAgICAuc3RyaW5nKClcbiAgICAudmFsaWQoLi4ucHJveHlUeXBlcylcbiAgICAucmVxdWlyZWQoKSxcbiAgZGVsZWdhdGU6IGFkZHJlc3NTY2hlbWEucmVxdWlyZWQoKSxcbiAgZGVsYXk6IGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLFxufSk7XG5cbmV4cG9ydCBjb25zdCBBbm9ueW1vdXNBZGRyZXNzSW5pdGlhbGl6YXRpb25TY2hlbWEgPSBqb2kub2JqZWN0KHtcbiAgcHJveHlUeXBlOiBqb2lcbiAgICAuc3RyaW5nKClcbiAgICAudmFsaWQoLi4ucHJveHlUeXBlcylcbiAgICAucmVxdWlyZWQoKSxcbiAgaW5kZXg6IGpvaS5udW1iZXIoKS5yZXF1aXJlZCgpLFxuICBkZWxheTogam9pLm51bWJlcigpLnJlcXVpcmVkKCksXG59KTtcblxuZXhwb3J0IGNvbnN0IEJhdGNoVHJhbnNhY3Rpb25TY2hlbWEgPSBqb2kub2JqZWN0KHtcbiAgY2FsbHM6IGpvaVxuICAgIC5hbHRlcm5hdGl2ZXMoKVxuICAgIC50cnkoXG4gICAgICBqb2kuYXJyYXkoKS5pdGVtcyhqb2kuc3RyaW5nKCkpLFxuICAgICAgam9pLmFycmF5KCkuaXRlbXMoam9pLm9iamVjdCh7IGNhbGxJbmRleDogam9pLnN0cmluZygpLCBhcmdzOiBqb2kub2JqZWN0KCkgfSkpXG4gICAgKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgUHJveHlUcmFuc2FjdGlvblNjaGVtYSA9IGpvaS5vYmplY3Qoe1xuICByZWFsOiBhZGRyZXNzU2NoZW1hLnJlcXVpcmVkKCksXG4gIGZvcmNlUHJveHlUeXBlOiBqb2lcbiAgICAuc3RyaW5nKClcbiAgICAudmFsaWQoLi4ucHJveHlUeXBlcylcbiAgICAucmVxdWlyZWQoKSxcbiAgYW1vdW50OiBqb2kuc3RyaW5nKCkucmVxdWlyZWQoKSxcbiAgdG86IGFkZHJlc3NTY2hlbWEucmVxdWlyZWQoKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgVW5zdGFrZVRyYW5zYWN0aW9uU2NoZW1hID0gam9pLm9iamVjdCh7XG4gIHZhbHVlOiBqb2kuc3RyaW5nKCkucmVxdWlyZWQoKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgV2l0aGRyYXdVbnN0YWtlZFRyYW5zYWN0aW9uU2NoZW1hID0gam9pLm9iamVjdCh7XG4gIHZhbHVlOiBqb2kubnVtYmVyKCkucmVxdWlyZWQoKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgQ2xhaW1UcmFuc2FjdGlvblNjaGVtYSA9IGpvaS5vYmplY3Qoe1xuICBjbGFpbUVyYTogam9pLnN0cmluZygpLnJlcXVpcmVkKCksXG4gIHZhbGlkYXRvclN0YXNoOiBhZGRyZXNzU2NoZW1hLnJlcXVpcmVkKCksXG59KTtcbiJdfQ==
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { TransactionType } from '@bitgo-beta/sdk-core';
|
|
2
|
+
import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
|
|
3
|
+
import { DecodedSignedTx, DecodedSigningPayload, UnsignedTransaction } from '@substrate/txwrapper-core';
|
|
4
|
+
import { Transaction } from './transaction';
|
|
5
|
+
import { TransactionBuilder } from './transactionBuilder';
|
|
6
|
+
export declare class UnnominateBuilder extends TransactionBuilder {
|
|
7
|
+
constructor(_coinConfig: Readonly<CoinConfig>);
|
|
8
|
+
/**
|
|
9
|
+
*
|
|
10
|
+
* Declare no desire to either validate or nominate.
|
|
11
|
+
* Note that no arguments are needed.
|
|
12
|
+
*
|
|
13
|
+
* @returns {UnsignedTransaction} an unsigned Dot transaction
|
|
14
|
+
*
|
|
15
|
+
* @see https://polkadot.js.org/docs/substrate/extrinsics/#chill
|
|
16
|
+
*/
|
|
17
|
+
protected buildTransaction(): UnsignedTransaction;
|
|
18
|
+
protected get transactionType(): TransactionType;
|
|
19
|
+
/** @inheritdoc */
|
|
20
|
+
validateDecodedTransaction(decodedTxn: DecodedSigningPayload | DecodedSignedTx): void;
|
|
21
|
+
/** @inheritdoc */
|
|
22
|
+
protected fromImplementation(rawTransaction: string): Transaction;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=unnominateBuilder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unnominateBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/unnominateBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAChF,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAGxG,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,qBAAa,iBAAkB,SAAQ,kBAAkB;gBAC3C,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C;;;;;;;;OAQG;IACH,SAAS,CAAC,gBAAgB,IAAI,mBAAmB;IAMjD,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;IAED,kBAAkB;IAClB,0BAA0B,CAAC,UAAU,EAAE,qBAAqB,GAAG,eAAe,GAAG,IAAI;IASrF,kBAAkB;IAClB,SAAS,CAAC,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,WAAW;CAOlE"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.UnnominateBuilder = void 0;
|
|
4
|
+
const sdk_core_1 = require("@bitgo-beta/sdk-core");
|
|
5
|
+
const txwrapper_polkadot_1 = require("@substrate/txwrapper-polkadot");
|
|
6
|
+
const iface_1 = require("./iface");
|
|
7
|
+
const transactionBuilder_1 = require("./transactionBuilder");
|
|
8
|
+
class UnnominateBuilder extends transactionBuilder_1.TransactionBuilder {
|
|
9
|
+
constructor(_coinConfig) {
|
|
10
|
+
super(_coinConfig);
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
*
|
|
14
|
+
* Declare no desire to either validate or nominate.
|
|
15
|
+
* Note that no arguments are needed.
|
|
16
|
+
*
|
|
17
|
+
* @returns {UnsignedTransaction} an unsigned Dot transaction
|
|
18
|
+
*
|
|
19
|
+
* @see https://polkadot.js.org/docs/substrate/extrinsics/#chill
|
|
20
|
+
*/
|
|
21
|
+
buildTransaction() {
|
|
22
|
+
const baseTxInfo = this.createBaseTxInfo();
|
|
23
|
+
const tx = txwrapper_polkadot_1.methods.staking.chill({}, baseTxInfo.baseTxInfo, baseTxInfo.options);
|
|
24
|
+
return tx;
|
|
25
|
+
}
|
|
26
|
+
get transactionType() {
|
|
27
|
+
return sdk_core_1.TransactionType.StakingUnvote;
|
|
28
|
+
}
|
|
29
|
+
/** @inheritdoc */
|
|
30
|
+
validateDecodedTransaction(decodedTxn) {
|
|
31
|
+
var _a;
|
|
32
|
+
if (((_a = decodedTxn.method) === null || _a === void 0 ? void 0 : _a.name) === iface_1.MethodNames.Chill) {
|
|
33
|
+
const txMethod = decodedTxn.method.args;
|
|
34
|
+
if (Object.keys(txMethod).length !== 0) {
|
|
35
|
+
throw new sdk_core_1.InvalidTransactionError(`Unnominate Transaction validation failed: Should have no args.`);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
/** @inheritdoc */
|
|
40
|
+
fromImplementation(rawTransaction) {
|
|
41
|
+
var _a, _b;
|
|
42
|
+
const tx = super.fromImplementation(rawTransaction);
|
|
43
|
+
if (((_a = this._method) === null || _a === void 0 ? void 0 : _a.name) !== iface_1.MethodNames.Chill) {
|
|
44
|
+
throw new sdk_core_1.InvalidTransactionError(`Invalid Transaction Type: ${(_b = this._method) === null || _b === void 0 ? void 0 : _b.name}. Expected chill`);
|
|
45
|
+
}
|
|
46
|
+
return tx;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
exports.UnnominateBuilder = UnnominateBuilder;
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5ub21pbmF0ZUJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3Vubm9taW5hdGVCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1EQUFnRjtBQUdoRixzRUFBd0Q7QUFDeEQsbUNBQXNDO0FBRXRDLDZEQUEwRDtBQUUxRCxNQUFhLGlCQUFrQixTQUFRLHVDQUFrQjtJQUN2RCxZQUFZLFdBQWlDO1FBQzNDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDTyxnQkFBZ0I7UUFDeEIsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDM0MsTUFBTSxFQUFFLEdBQUcsNEJBQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsRUFBRSxVQUFVLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNoRixPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCxJQUFjLGVBQWU7UUFDM0IsT0FBTywwQkFBZSxDQUFDLGFBQWEsQ0FBQztJQUN2QyxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLDBCQUEwQixDQUFDLFVBQW1EOztRQUM1RSxJQUFJLENBQUEsTUFBQSxVQUFVLENBQUMsTUFBTSwwQ0FBRSxJQUFJLE1BQUssbUJBQVcsQ0FBQyxLQUFLLEVBQUU7WUFDakQsTUFBTSxRQUFRLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7WUFDeEMsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7Z0JBQ3RDLE1BQU0sSUFBSSxrQ0FBdUIsQ0FBQyxnRUFBZ0UsQ0FBQyxDQUFDO2FBQ3JHO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsa0JBQWtCO0lBQ1Isa0JBQWtCLENBQUMsY0FBc0I7O1FBQ2pELE1BQU0sRUFBRSxHQUFHLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUEsTUFBQSxJQUFJLENBQUMsT0FBTywwQ0FBRSxJQUFJLE1BQUssbUJBQVcsQ0FBQyxLQUFLLEVBQUU7WUFDNUMsTUFBTSxJQUFJLGtDQUF1QixDQUFDLDZCQUE2QixNQUFBLElBQUksQ0FBQyxPQUFPLDBDQUFFLElBQUksa0JBQWtCLENBQUMsQ0FBQztTQUN0RztRQUNELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztDQUNGO0FBMUNELDhDQTBDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEludmFsaWRUcmFuc2FjdGlvbkVycm9yLCBUcmFuc2FjdGlvblR5cGUgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgeyBEZWNvZGVkU2lnbmVkVHgsIERlY29kZWRTaWduaW5nUGF5bG9hZCwgVW5zaWduZWRUcmFuc2FjdGlvbiB9IGZyb20gJ0BzdWJzdHJhdGUvdHh3cmFwcGVyLWNvcmUnO1xuaW1wb3J0IHsgbWV0aG9kcyB9IGZyb20gJ0BzdWJzdHJhdGUvdHh3cmFwcGVyLXBvbGthZG90JztcbmltcG9ydCB7IE1ldGhvZE5hbWVzIH0gZnJvbSAnLi9pZmFjZSc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi90cmFuc2FjdGlvbkJ1aWxkZXInO1xuXG5leHBvcnQgY2xhc3MgVW5ub21pbmF0ZUJ1aWxkZXIgZXh0ZW5kcyBUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogRGVjbGFyZSBubyBkZXNpcmUgdG8gZWl0aGVyIHZhbGlkYXRlIG9yIG5vbWluYXRlLlxuICAgKiBOb3RlIHRoYXQgbm8gYXJndW1lbnRzIGFyZSBuZWVkZWQuXG4gICAqXG4gICAqIEByZXR1cm5zIHtVbnNpZ25lZFRyYW5zYWN0aW9ufSBhbiB1bnNpZ25lZCBEb3QgdHJhbnNhY3Rpb25cbiAgICpcbiAgICogQHNlZSBodHRwczovL3BvbGthZG90LmpzLm9yZy9kb2NzL3N1YnN0cmF0ZS9leHRyaW5zaWNzLyNjaGlsbFxuICAgKi9cbiAgcHJvdGVjdGVkIGJ1aWxkVHJhbnNhY3Rpb24oKTogVW5zaWduZWRUcmFuc2FjdGlvbiB7XG4gICAgY29uc3QgYmFzZVR4SW5mbyA9IHRoaXMuY3JlYXRlQmFzZVR4SW5mbygpO1xuICAgIGNvbnN0IHR4ID0gbWV0aG9kcy5zdGFraW5nLmNoaWxsKHt9LCBiYXNlVHhJbmZvLmJhc2VUeEluZm8sIGJhc2VUeEluZm8ub3B0aW9ucyk7XG4gICAgcmV0dXJuIHR4O1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCB0cmFuc2FjdGlvblR5cGUoKTogVHJhbnNhY3Rpb25UeXBlIHtcbiAgICByZXR1cm4gVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdVbnZvdGU7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdmFsaWRhdGVEZWNvZGVkVHJhbnNhY3Rpb24oZGVjb2RlZFR4bjogRGVjb2RlZFNpZ25pbmdQYXlsb2FkIHwgRGVjb2RlZFNpZ25lZFR4KTogdm9pZCB7XG4gICAgaWYgKGRlY29kZWRUeG4ubWV0aG9kPy5uYW1lID09PSBNZXRob2ROYW1lcy5DaGlsbCkge1xuICAgICAgY29uc3QgdHhNZXRob2QgPSBkZWNvZGVkVHhuLm1ldGhvZC5hcmdzO1xuICAgICAgaWYgKE9iamVjdC5rZXlzKHR4TWV0aG9kKS5sZW5ndGggIT09IDApIHtcbiAgICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKGBVbm5vbWluYXRlIFRyYW5zYWN0aW9uIHZhbGlkYXRpb24gZmFpbGVkOiBTaG91bGQgaGF2ZSBubyBhcmdzLmApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgZnJvbUltcGxlbWVudGF0aW9uKHJhd1RyYW5zYWN0aW9uOiBzdHJpbmcpOiBUcmFuc2FjdGlvbiB7XG4gICAgY29uc3QgdHggPSBzdXBlci5mcm9tSW1wbGVtZW50YXRpb24ocmF3VHJhbnNhY3Rpb24pO1xuICAgIGlmICh0aGlzLl9tZXRob2Q/Lm5hbWUgIT09IE1ldGhvZE5hbWVzLkNoaWxsKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoYEludmFsaWQgVHJhbnNhY3Rpb24gVHlwZTogJHt0aGlzLl9tZXRob2Q/Lm5hbWV9LiBFeHBlY3RlZCBjaGlsbGApO1xuICAgIH1cbiAgICByZXR1cm4gdHg7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { TransactionType } from '@bitgo-beta/sdk-core';
|
|
2
|
+
import { DecodedSignedTx, DecodedSigningPayload, UnsignedTransaction } from '@substrate/txwrapper-core';
|
|
3
|
+
import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
|
|
4
|
+
import { Transaction } from './transaction';
|
|
5
|
+
import { TransactionBuilder } from './transactionBuilder';
|
|
6
|
+
export declare class UnstakeBuilder extends TransactionBuilder {
|
|
7
|
+
protected _amount: string;
|
|
8
|
+
constructor(_coinConfig: Readonly<CoinConfig>);
|
|
9
|
+
/**
|
|
10
|
+
*
|
|
11
|
+
* Take the origin account as a stash and lock up value of its balance.
|
|
12
|
+
* Controller will be the account that controls it.
|
|
13
|
+
*
|
|
14
|
+
* @returns {UnsignedTransaction} an unsigned Dot transaction
|
|
15
|
+
*
|
|
16
|
+
* @see https://polkadot.js.org/docs/substrate/extrinsics/#staking
|
|
17
|
+
*/
|
|
18
|
+
protected buildTransaction(): UnsignedTransaction;
|
|
19
|
+
protected get transactionType(): TransactionType;
|
|
20
|
+
/**
|
|
21
|
+
*
|
|
22
|
+
* The amount to unstake.
|
|
23
|
+
*
|
|
24
|
+
* @param {string} amount
|
|
25
|
+
* @returns {StakeBuilder} This stake builder.
|
|
26
|
+
*
|
|
27
|
+
* @see https://wiki.polkadot.network/docs/learn-nominator#required-minimum-stake
|
|
28
|
+
*/
|
|
29
|
+
amount(amount: string): this;
|
|
30
|
+
/** @inheritdoc */
|
|
31
|
+
validateDecodedTransaction(decodedTxn: DecodedSigningPayload | DecodedSignedTx): void;
|
|
32
|
+
/** @inheritdoc */
|
|
33
|
+
protected fromImplementation(rawTransaction: string): Transaction;
|
|
34
|
+
/** @inheritdoc */
|
|
35
|
+
validateTransaction(_: Transaction): void;
|
|
36
|
+
private validateFields;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=unstakeBuilder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unstakeBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/unstakeBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAChF,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACxG,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAI7D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG1D,qBAAa,cAAe,SAAQ,kBAAkB;IACpD,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC;gBAEd,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C;;;;;;;;OAQG;IACH,SAAS,CAAC,gBAAgB,IAAI,mBAAmB;IAWjD,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;IAED;;;;;;;;OAQG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAM5B,kBAAkB;IAClB,0BAA0B,CAAC,UAAU,EAAE,qBAAqB,GAAG,eAAe,GAAG,IAAI;IAWrF,kBAAkB;IAClB,SAAS,CAAC,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,WAAW;IAWjE,kBAAkB;IAClB,mBAAmB,CAAC,CAAC,EAAE,WAAW,GAAG,IAAI;IAKzC,OAAO,CAAC,cAAc;CAWvB"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.UnstakeBuilder = void 0;
|
|
7
|
+
const sdk_core_1 = require("@bitgo-beta/sdk-core");
|
|
8
|
+
const txwrapper_polkadot_1 = require("@substrate/txwrapper-polkadot");
|
|
9
|
+
const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
|
10
|
+
const iface_1 = require("./iface");
|
|
11
|
+
const transactionBuilder_1 = require("./transactionBuilder");
|
|
12
|
+
const txnSchema_1 = require("./txnSchema");
|
|
13
|
+
class UnstakeBuilder extends transactionBuilder_1.TransactionBuilder {
|
|
14
|
+
constructor(_coinConfig) {
|
|
15
|
+
super(_coinConfig);
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
*
|
|
19
|
+
* Take the origin account as a stash and lock up value of its balance.
|
|
20
|
+
* Controller will be the account that controls it.
|
|
21
|
+
*
|
|
22
|
+
* @returns {UnsignedTransaction} an unsigned Dot transaction
|
|
23
|
+
*
|
|
24
|
+
* @see https://polkadot.js.org/docs/substrate/extrinsics/#staking
|
|
25
|
+
*/
|
|
26
|
+
buildTransaction() {
|
|
27
|
+
const baseTxInfo = this.createBaseTxInfo();
|
|
28
|
+
return txwrapper_polkadot_1.methods.staking.unbond({
|
|
29
|
+
value: this._amount,
|
|
30
|
+
}, baseTxInfo.baseTxInfo, baseTxInfo.options);
|
|
31
|
+
}
|
|
32
|
+
get transactionType() {
|
|
33
|
+
return sdk_core_1.TransactionType.StakingUnlock;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
*
|
|
37
|
+
* The amount to unstake.
|
|
38
|
+
*
|
|
39
|
+
* @param {string} amount
|
|
40
|
+
* @returns {StakeBuilder} This stake builder.
|
|
41
|
+
*
|
|
42
|
+
* @see https://wiki.polkadot.network/docs/learn-nominator#required-minimum-stake
|
|
43
|
+
*/
|
|
44
|
+
amount(amount) {
|
|
45
|
+
this.validateValue(new bignumber_js_1.default(amount));
|
|
46
|
+
this._amount = amount;
|
|
47
|
+
return this;
|
|
48
|
+
}
|
|
49
|
+
/** @inheritdoc */
|
|
50
|
+
validateDecodedTransaction(decodedTxn) {
|
|
51
|
+
var _a;
|
|
52
|
+
if (((_a = decodedTxn.method) === null || _a === void 0 ? void 0 : _a.name) === iface_1.MethodNames.Unbond) {
|
|
53
|
+
const txMethod = decodedTxn.method.args;
|
|
54
|
+
const value = txMethod.value;
|
|
55
|
+
const validationResult = txnSchema_1.UnstakeTransactionSchema.validate({ value });
|
|
56
|
+
if (validationResult.error) {
|
|
57
|
+
throw new sdk_core_1.InvalidTransactionError(`Unstake Transaction validation failed: ${validationResult.error.message}`);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
/** @inheritdoc */
|
|
62
|
+
fromImplementation(rawTransaction) {
|
|
63
|
+
var _a, _b;
|
|
64
|
+
const tx = super.fromImplementation(rawTransaction);
|
|
65
|
+
if (((_a = this._method) === null || _a === void 0 ? void 0 : _a.name) === iface_1.MethodNames.Unbond) {
|
|
66
|
+
const txMethod = this._method.args;
|
|
67
|
+
this.amount(txMethod.value);
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
throw new sdk_core_1.InvalidTransactionError(`Invalid Transaction Type: ${(_b = this._method) === null || _b === void 0 ? void 0 : _b.name}. Expected unbond`);
|
|
71
|
+
}
|
|
72
|
+
return tx;
|
|
73
|
+
}
|
|
74
|
+
/** @inheritdoc */
|
|
75
|
+
validateTransaction(_) {
|
|
76
|
+
super.validateTransaction(_);
|
|
77
|
+
this.validateFields(this._amount);
|
|
78
|
+
}
|
|
79
|
+
validateFields(value) {
|
|
80
|
+
const validationResult = txnSchema_1.UnstakeTransactionSchema.validate({
|
|
81
|
+
value,
|
|
82
|
+
});
|
|
83
|
+
if (validationResult.error) {
|
|
84
|
+
throw new sdk_core_1.InvalidTransactionError(`Unstake Builder Transaction validation failed: ${validationResult.error.message}`);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
exports.UnstakeBuilder = UnstakeBuilder;
|
|
89
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5zdGFrZUJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3Vuc3Rha2VCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLG1EQUFnRjtBQUdoRixzRUFBd0Q7QUFDeEQsZ0VBQXFDO0FBQ3JDLG1DQUFtRDtBQUVuRCw2REFBMEQ7QUFDMUQsMkNBQXVEO0FBRXZELE1BQWEsY0FBZSxTQUFRLHVDQUFrQjtJQUdwRCxZQUFZLFdBQWlDO1FBQzNDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDTyxnQkFBZ0I7UUFDeEIsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDM0MsT0FBTyw0QkFBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQzNCO1lBQ0UsS0FBSyxFQUFFLElBQUksQ0FBQyxPQUFPO1NBQ3BCLEVBQ0QsVUFBVSxDQUFDLFVBQVUsRUFDckIsVUFBVSxDQUFDLE9BQU8sQ0FDbkIsQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFjLGVBQWU7UUFDM0IsT0FBTywwQkFBZSxDQUFDLGFBQWEsQ0FBQztJQUN2QyxDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSCxNQUFNLENBQUMsTUFBYztRQUNuQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksc0JBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQzFDLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO1FBQ3RCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELGtCQUFrQjtJQUNsQiwwQkFBMEIsQ0FBQyxVQUFtRDs7UUFDNUUsSUFBSSxDQUFBLE1BQUEsVUFBVSxDQUFDLE1BQU0sMENBQUUsSUFBSSxNQUFLLG1CQUFXLENBQUMsTUFBTSxFQUFFO1lBQ2xELE1BQU0sUUFBUSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBOEIsQ0FBQztZQUNsRSxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDO1lBQzdCLE1BQU0sZ0JBQWdCLEdBQUcsb0NBQXdCLENBQUMsUUFBUSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztZQUN0RSxJQUFJLGdCQUFnQixDQUFDLEtBQUssRUFBRTtnQkFDMUIsTUFBTSxJQUFJLGtDQUF1QixDQUFDLDBDQUEwQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQzthQUMvRztTQUNGO0lBQ0gsQ0FBQztJQUVELGtCQUFrQjtJQUNSLGtCQUFrQixDQUFDLGNBQXNCOztRQUNqRCxNQUFNLEVBQUUsR0FBRyxLQUFLLENBQUMsa0JBQWtCLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDcEQsSUFBSSxDQUFBLE1BQUEsSUFBSSxDQUFDLE9BQU8sMENBQUUsSUFBSSxNQUFLLG1CQUFXLENBQUMsTUFBTSxFQUFFO1lBQzdDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBbUIsQ0FBQztZQUNsRCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUM3QjthQUFNO1lBQ0wsTUFBTSxJQUFJLGtDQUF1QixDQUFDLDZCQUE2QixNQUFBLElBQUksQ0FBQyxPQUFPLDBDQUFFLElBQUksbUJBQW1CLENBQUMsQ0FBQztTQUN2RztRQUNELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVELGtCQUFrQjtJQUNsQixtQkFBbUIsQ0FBQyxDQUFjO1FBQ2hDLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM3QixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRU8sY0FBYyxDQUFDLEtBQWE7UUFDbEMsTUFBTSxnQkFBZ0IsR0FBRyxvQ0FBd0IsQ0FBQyxRQUFRLENBQUM7WUFDekQsS0FBSztTQUNOLENBQUMsQ0FBQztRQUVILElBQUksZ0JBQWdCLENBQUMsS0FBSyxFQUFFO1lBQzFCLE1BQU0sSUFBSSxrQ0FBdUIsQ0FDL0Isa0RBQWtELGdCQUFnQixDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FDbkYsQ0FBQztTQUNIO0lBQ0gsQ0FBQztDQUNGO0FBdkZELHdDQXVGQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEludmFsaWRUcmFuc2FjdGlvbkVycm9yLCBUcmFuc2FjdGlvblR5cGUgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBEZWNvZGVkU2lnbmVkVHgsIERlY29kZWRTaWduaW5nUGF5bG9hZCwgVW5zaWduZWRUcmFuc2FjdGlvbiB9IGZyb20gJ0BzdWJzdHJhdGUvdHh3cmFwcGVyLWNvcmUnO1xuaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IHsgbWV0aG9kcyB9IGZyb20gJ0BzdWJzdHJhdGUvdHh3cmFwcGVyLXBvbGthZG90JztcbmltcG9ydCBCaWdOdW1iZXIgZnJvbSAnYmlnbnVtYmVyLmpzJztcbmltcG9ydCB7IE1ldGhvZE5hbWVzLCBVbnN0YWtlQXJncyB9IGZyb20gJy4vaWZhY2UnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uQnVpbGRlciB9IGZyb20gJy4vdHJhbnNhY3Rpb25CdWlsZGVyJztcbmltcG9ydCB7IFVuc3Rha2VUcmFuc2FjdGlvblNjaGVtYSB9IGZyb20gJy4vdHhuU2NoZW1hJztcblxuZXhwb3J0IGNsYXNzIFVuc3Rha2VCdWlsZGVyIGV4dGVuZHMgVHJhbnNhY3Rpb25CdWlsZGVyIHtcbiAgcHJvdGVjdGVkIF9hbW91bnQ6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogVGFrZSB0aGUgb3JpZ2luIGFjY291bnQgYXMgYSBzdGFzaCBhbmQgbG9jayB1cCB2YWx1ZSBvZiBpdHMgYmFsYW5jZS5cbiAgICogQ29udHJvbGxlciB3aWxsIGJlIHRoZSBhY2NvdW50IHRoYXQgY29udHJvbHMgaXQuXG4gICAqXG4gICAqIEByZXR1cm5zIHtVbnNpZ25lZFRyYW5zYWN0aW9ufSBhbiB1bnNpZ25lZCBEb3QgdHJhbnNhY3Rpb25cbiAgICpcbiAgICogQHNlZSBodHRwczovL3BvbGthZG90LmpzLm9yZy9kb2NzL3N1YnN0cmF0ZS9leHRyaW5zaWNzLyNzdGFraW5nXG4gICAqL1xuICBwcm90ZWN0ZWQgYnVpbGRUcmFuc2FjdGlvbigpOiBVbnNpZ25lZFRyYW5zYWN0aW9uIHtcbiAgICBjb25zdCBiYXNlVHhJbmZvID0gdGhpcy5jcmVhdGVCYXNlVHhJbmZvKCk7XG4gICAgcmV0dXJuIG1ldGhvZHMuc3Rha2luZy51bmJvbmQoXG4gICAgICB7XG4gICAgICAgIHZhbHVlOiB0aGlzLl9hbW91bnQsXG4gICAgICB9LFxuICAgICAgYmFzZVR4SW5mby5iYXNlVHhJbmZvLFxuICAgICAgYmFzZVR4SW5mby5vcHRpb25zXG4gICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgdHJhbnNhY3Rpb25UeXBlKCk6IFRyYW5zYWN0aW9uVHlwZSB7XG4gICAgcmV0dXJuIFRyYW5zYWN0aW9uVHlwZS5TdGFraW5nVW5sb2NrO1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIFRoZSBhbW91bnQgdG8gdW5zdGFrZS5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IGFtb3VudFxuICAgKiBAcmV0dXJucyB7U3Rha2VCdWlsZGVyfSBUaGlzIHN0YWtlIGJ1aWxkZXIuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly93aWtpLnBvbGthZG90Lm5ldHdvcmsvZG9jcy9sZWFybi1ub21pbmF0b3IjcmVxdWlyZWQtbWluaW11bS1zdGFrZVxuICAgKi9cbiAgYW1vdW50KGFtb3VudDogc3RyaW5nKTogdGhpcyB7XG4gICAgdGhpcy52YWxpZGF0ZVZhbHVlKG5ldyBCaWdOdW1iZXIoYW1vdW50KSk7XG4gICAgdGhpcy5fYW1vdW50ID0gYW1vdW50O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlRGVjb2RlZFRyYW5zYWN0aW9uKGRlY29kZWRUeG46IERlY29kZWRTaWduaW5nUGF5bG9hZCB8IERlY29kZWRTaWduZWRUeCk6IHZvaWQge1xuICAgIGlmIChkZWNvZGVkVHhuLm1ldGhvZD8ubmFtZSA9PT0gTWV0aG9kTmFtZXMuVW5ib25kKSB7XG4gICAgICBjb25zdCB0eE1ldGhvZCA9IGRlY29kZWRUeG4ubWV0aG9kLmFyZ3MgYXMgdW5rbm93biBhcyBVbnN0YWtlQXJncztcbiAgICAgIGNvbnN0IHZhbHVlID0gdHhNZXRob2QudmFsdWU7XG4gICAgICBjb25zdCB2YWxpZGF0aW9uUmVzdWx0ID0gVW5zdGFrZVRyYW5zYWN0aW9uU2NoZW1hLnZhbGlkYXRlKHsgdmFsdWUgfSk7XG4gICAgICBpZiAodmFsaWRhdGlvblJlc3VsdC5lcnJvcikge1xuICAgICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoYFVuc3Rha2UgVHJhbnNhY3Rpb24gdmFsaWRhdGlvbiBmYWlsZWQ6ICR7dmFsaWRhdGlvblJlc3VsdC5lcnJvci5tZXNzYWdlfWApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgZnJvbUltcGxlbWVudGF0aW9uKHJhd1RyYW5zYWN0aW9uOiBzdHJpbmcpOiBUcmFuc2FjdGlvbiB7XG4gICAgY29uc3QgdHggPSBzdXBlci5mcm9tSW1wbGVtZW50YXRpb24ocmF3VHJhbnNhY3Rpb24pO1xuICAgIGlmICh0aGlzLl9tZXRob2Q/Lm5hbWUgPT09IE1ldGhvZE5hbWVzLlVuYm9uZCkge1xuICAgICAgY29uc3QgdHhNZXRob2QgPSB0aGlzLl9tZXRob2QuYXJncyBhcyBVbnN0YWtlQXJncztcbiAgICAgIHRoaXMuYW1vdW50KHR4TWV0aG9kLnZhbHVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKGBJbnZhbGlkIFRyYW5zYWN0aW9uIFR5cGU6ICR7dGhpcy5fbWV0aG9kPy5uYW1lfS4gRXhwZWN0ZWQgdW5ib25kYCk7XG4gICAgfVxuICAgIHJldHVybiB0eDtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB2YWxpZGF0ZVRyYW5zYWN0aW9uKF86IFRyYW5zYWN0aW9uKTogdm9pZCB7XG4gICAgc3VwZXIudmFsaWRhdGVUcmFuc2FjdGlvbihfKTtcbiAgICB0aGlzLnZhbGlkYXRlRmllbGRzKHRoaXMuX2Ftb3VudCk7XG4gIH1cblxuICBwcml2YXRlIHZhbGlkYXRlRmllbGRzKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCB2YWxpZGF0aW9uUmVzdWx0ID0gVW5zdGFrZVRyYW5zYWN0aW9uU2NoZW1hLnZhbGlkYXRlKHtcbiAgICAgIHZhbHVlLFxuICAgIH0pO1xuXG4gICAgaWYgKHZhbGlkYXRpb25SZXN1bHQuZXJyb3IpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcihcbiAgICAgICAgYFVuc3Rha2UgQnVpbGRlciBUcmFuc2FjdGlvbiB2YWxpZGF0aW9uIGZhaWxlZDogJHt2YWxpZGF0aW9uUmVzdWx0LmVycm9yLm1lc3NhZ2V9YFxuICAgICAgKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
import { DotAssetTypes, BaseUtils, DotAddressFormat, Seed } from '@bitgo-beta/sdk-core';
|
|
2
|
+
import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
|
|
3
|
+
import { KeyringPair } from '@polkadot/keyring/types';
|
|
4
|
+
import { UnsignedTransaction } from '@substrate/txwrapper-core';
|
|
5
|
+
import { DecodedSignedTx, DecodedSigningPayload, TypeRegistry } from '@substrate/txwrapper-core/lib/types';
|
|
6
|
+
import { HexString, Material, ProxyArgs, TransferAllArgs, TransferArgs, TxMethod } from './iface';
|
|
7
|
+
import { KeyPair } from '.';
|
|
8
|
+
export declare class Utils implements BaseUtils {
|
|
9
|
+
/** @inheritdoc */
|
|
10
|
+
isValidAddress(address: string): boolean;
|
|
11
|
+
/** @inheritdoc */
|
|
12
|
+
isValidBlockId(hash: string): boolean;
|
|
13
|
+
/** @inheritdoc */
|
|
14
|
+
isValidPrivateKey(key: string): boolean;
|
|
15
|
+
/** @inheritdoc */
|
|
16
|
+
isValidPublicKey(key: string): boolean;
|
|
17
|
+
/** @inheritdoc */
|
|
18
|
+
isValidSignature(signature: string): boolean;
|
|
19
|
+
/**
|
|
20
|
+
* Verifies the signature on a given message
|
|
21
|
+
*
|
|
22
|
+
* @param {string} signedMessage the signed message for the signature
|
|
23
|
+
* @param {string} signature the signature to verify
|
|
24
|
+
* @param {string} address the address of the signer
|
|
25
|
+
* @returns {boolean} whether the signature is valid or not
|
|
26
|
+
*/
|
|
27
|
+
verifySignature(signedMessage: string, signature: string, address: string): boolean;
|
|
28
|
+
/** @inheritdoc */
|
|
29
|
+
isValidTransactionId(txId: string): boolean;
|
|
30
|
+
/**
|
|
31
|
+
* decodeSeed decodes a dot seed
|
|
32
|
+
*
|
|
33
|
+
* @param {string} seed - the seed to be validated.
|
|
34
|
+
* @returns {Seed} - the object Seed
|
|
35
|
+
*/
|
|
36
|
+
decodeSeed(seed: string): Seed;
|
|
37
|
+
/**
|
|
38
|
+
* Helper function to capitalize the first letter of a string
|
|
39
|
+
*
|
|
40
|
+
* @param {string} val
|
|
41
|
+
* @returns {string}
|
|
42
|
+
*/
|
|
43
|
+
capitalizeFirstLetter(val: string): string;
|
|
44
|
+
/**
|
|
45
|
+
* Helper function to decode the internal method hex in case of a proxy transaction
|
|
46
|
+
*
|
|
47
|
+
* @param {string | UnsignedTransaction} tx
|
|
48
|
+
* @param { metadataRpc: string; registry: TypeRegistry } options
|
|
49
|
+
* @returns {TransferArgs}
|
|
50
|
+
*/
|
|
51
|
+
decodeCallMethod(tx: string | UnsignedTransaction, options: {
|
|
52
|
+
metadataRpc: string;
|
|
53
|
+
registry: TypeRegistry;
|
|
54
|
+
}): TransferArgs;
|
|
55
|
+
/**
|
|
56
|
+
* keyPairFromSeed generates an object with secretKey and publicKey using the polkadot sdk
|
|
57
|
+
* @param seed 32 bytes long seed
|
|
58
|
+
* @returns KeyPair
|
|
59
|
+
*/
|
|
60
|
+
keyPairFromSeed(seed: Uint8Array): KeyPair;
|
|
61
|
+
/**
|
|
62
|
+
* Signing function. Implement this on the OFFLINE signing device.
|
|
63
|
+
*
|
|
64
|
+
* @param {KeyringPair} pair - The signing pair.
|
|
65
|
+
* @param {string} signingPayload - Payload to sign.
|
|
66
|
+
* @param {UnsignedTransaction} transaction - raw transaction to sign
|
|
67
|
+
* @param {Object} options
|
|
68
|
+
* @param {HexString} options.metadataRpc - metadata that is needed for dot to sign
|
|
69
|
+
* @param {TypeRegistry} options.registry - metadata that is needed for dot to sign
|
|
70
|
+
*/
|
|
71
|
+
createSignedTx(pair: KeyringPair, signingPayload: string, transaction: UnsignedTransaction, options: {
|
|
72
|
+
metadataRpc: HexString;
|
|
73
|
+
registry: TypeRegistry;
|
|
74
|
+
}): string;
|
|
75
|
+
/**
|
|
76
|
+
* Serializes the signed transaction
|
|
77
|
+
*
|
|
78
|
+
* @param transaction Transaction to serialize
|
|
79
|
+
* @param signature Signature of the message
|
|
80
|
+
* @param metadataRpc Network metadata
|
|
81
|
+
* @param registry Transaction registry
|
|
82
|
+
* @returns string Serialized transaction
|
|
83
|
+
*/
|
|
84
|
+
serializeSignedTransaction(transaction: any, signature: any, metadataRpc: `0x${string}`, registry: any): string;
|
|
85
|
+
/**
|
|
86
|
+
* Decodes the dot address from the given format
|
|
87
|
+
*
|
|
88
|
+
* @param {string} address
|
|
89
|
+
* @param {number} [ss58Format]
|
|
90
|
+
* @returns {string}
|
|
91
|
+
*/
|
|
92
|
+
decodeDotAddress(address: string, ss58Format: number): string;
|
|
93
|
+
/**
|
|
94
|
+
* Decodes the dot address from the given format
|
|
95
|
+
*
|
|
96
|
+
* @param {string} address
|
|
97
|
+
* @param {number} [ss58Format]
|
|
98
|
+
* @returns {string}
|
|
99
|
+
*/
|
|
100
|
+
encodeDotAddress(address: string, ss58Format?: number): string;
|
|
101
|
+
/**
|
|
102
|
+
* Retrieves the txHash of a signed txHex
|
|
103
|
+
*
|
|
104
|
+
* @param txHex signed transaction hex
|
|
105
|
+
* @returns {string}
|
|
106
|
+
*/
|
|
107
|
+
getTxHash(txHex: string): string;
|
|
108
|
+
getMaterial(coinConfig: Readonly<CoinConfig>): Material;
|
|
109
|
+
isSigningPayload(payload: DecodedSigningPayload | DecodedSignedTx): payload is DecodedSigningPayload;
|
|
110
|
+
isProxyTransfer(arg: TxMethod['args']): arg is ProxyArgs;
|
|
111
|
+
isTransfer(arg: TxMethod['args']): arg is TransferArgs;
|
|
112
|
+
isTransferAll(arg: TxMethod['args']): arg is TransferAllArgs;
|
|
113
|
+
/**
|
|
114
|
+
* extracts and returns the signature in hex format given a raw signed transaction
|
|
115
|
+
*
|
|
116
|
+
* @param {string} rawTx signed raw transaction
|
|
117
|
+
* @param options registry dot registry used to retrieve the signature
|
|
118
|
+
*/
|
|
119
|
+
recoverSignatureFromRawTx(rawTx: string, options: {
|
|
120
|
+
registry: TypeRegistry;
|
|
121
|
+
}): string;
|
|
122
|
+
/**
|
|
123
|
+
* Decodes the dot address from the given format
|
|
124
|
+
*
|
|
125
|
+
* @param {string} address
|
|
126
|
+
* @param {number} [ss58Format]
|
|
127
|
+
* @returns {KeyPair}
|
|
128
|
+
*/
|
|
129
|
+
decodeDotAddressToKeyPair(address: string, ss58Format?: number): KeyPair;
|
|
130
|
+
/**
|
|
131
|
+
* Checks whether the given input is a hex string with with 0 value
|
|
132
|
+
* used to check whether a given transaction is immortal or mortal
|
|
133
|
+
* @param hexValue
|
|
134
|
+
*/
|
|
135
|
+
isZeroHex(hexValue: string): boolean;
|
|
136
|
+
/**
|
|
137
|
+
* Takes an asset name and returns the respective address to format to
|
|
138
|
+
* since polkadot addresses differ depending on the network
|
|
139
|
+
* ref: https://wiki.polkadot.network/docs/learn-accounts
|
|
140
|
+
* @param networkCoinName
|
|
141
|
+
*/
|
|
142
|
+
getAddressFormat(networkCoinName: DotAssetTypes): DotAddressFormat;
|
|
143
|
+
}
|
|
144
|
+
declare const utils: Utils;
|
|
145
|
+
export default utils;
|
|
146
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/lib/utils.ts"],"names":[],"mappings":"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"}
|