@airgap/icp 0.13.15-beta.3 → 0.13.15-beta.5

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.
@@ -1,11 +1,11 @@
1
1
  import { DelegateeDetails, DelegationDetails, DelegatorDetails } from '@airgap/coinlib-core';
2
- import BigNumber from '@airgap/coinlib-core/dependencies/src/bignumber.js-9.0.0/bignumber';
3
2
  import { Address, AirGapProtocol, AirGapTransaction, AirGapTransactionsWithCursor, Amount, Balance, CryptoDerivative, FeeDefaults, KeyPair, ProtocolAccountMetadata, ProtocolMetadata, ProtocolTransactionMetadata, PublicKey, RecursivePartial, SecretKey, TransactionConfiguration, TransactionDetails } from '@airgap/module-kit';
4
3
  import { AirGapDelegateProtocol } from '@airgap/module-kit/internal';
4
+ import { ICPStakingActionType } from '../module';
5
5
  import { ICPCryptoConfiguration } from '../types/crypto';
6
- import { KnownNeuron, NeuronInfo } from '../types/governance';
6
+ import { KnownNeuron, Neuron } from '../types/governance';
7
7
  import { ICPProtocolNetwork, ICPProtocolOptions, ICPUnits } from '../types/protocol';
8
- import { ICPActionType, ICPSignedTransaction, ICPTransactionCursor, ICPUnsignedTransaction } from '../types/transaction';
8
+ import { ICPSignedTransaction, ICPTransactionCursor, ICPUnsignedTransaction } from '../types/transaction';
9
9
  export interface ICPProtocol extends AirGapProtocol<{
10
10
  AddressResult: Address;
11
11
  ProtocolNetwork: ICPProtocolNetwork;
@@ -16,10 +16,9 @@ export interface ICPProtocol extends AirGapProtocol<{
16
16
  FeeEstimation: FeeDefaults<ICPUnits>;
17
17
  UnsignedTransaction: ICPUnsignedTransaction;
18
18
  }, 'FetchDataForAddress'>, AirGapDelegateProtocol {
19
- fetchValidators(): Promise<KnownNeuron[]>;
20
- fetchVotingPower(neuronID: string): Promise<BigNumber>;
21
- fetchNeuron(publicKey: string): Promise<NeuronInfo | undefined>;
22
- fetchSubaccountBalance(publicKey: string): Promise<Balance<ICPUnits>>;
19
+ getKnownNeurons(): Promise<KnownNeuron[]>;
20
+ getNeuronVotingPower(neuronId: string): Promise<string>;
21
+ getNeuronBalance(publicKey: string): Promise<Balance<ICPUnits>>;
23
22
  }
24
23
  export declare const ICP_DERIVATION_PATH: string;
25
24
  export declare const ICP_ACCOUNT_METADATA: ProtocolAccountMetadata;
@@ -49,21 +48,30 @@ export declare class ICPProtocolImpl implements ICPProtocol {
49
48
  prepareTransactionWithPublicKey(publicKey: PublicKey, details: TransactionDetails<ICPUnits>[], configuration?: TransactionConfiguration<ICPUnits>): Promise<ICPUnsignedTransaction>;
50
49
  broadcastTransaction(transaction: ICPSignedTransaction): Promise<string>;
51
50
  getDefaultDelegatee(): Promise<string>;
52
- getCurrentDelegateesForPublicKey(publicKey: PublicKey): Promise<string[]>;
53
- getCurrentDelegateesForAddress(address: string): Promise<string[]>;
54
- getDelegateeDetails(address: string): Promise<DelegateeDetails>;
55
- isPublicKeyDelegating(publicKey: PublicKey): Promise<boolean>;
56
- isAddressDelegating(address: Address): Promise<boolean>;
57
- getDelegatorDetailsFromPublicKey(publicKey: PublicKey): Promise<DelegatorDetails>;
58
- getDelegatorDetailsFromAddress(address: Address): Promise<DelegatorDetails>;
59
- getDelegationDetailsFromPublicKey(publicKey: PublicKey, delegatees: Address[]): Promise<DelegationDetails>;
60
- getDelegationDetailsFromAddress(address: Address, delegatees: Address[]): Promise<DelegationDetails>;
51
+ getCurrentDelegateesForPublicKey(publicKey: PublicKey, data?: {
52
+ neuron?: Neuron;
53
+ }): Promise<string[]>;
54
+ getCurrentDelegateesForAddress(_address: string, _data?: any): Promise<string[]>;
55
+ getDelegateeDetails(address: string, data?: any): Promise<DelegateeDetails>;
56
+ isPublicKeyDelegating(publicKey: PublicKey, data?: {
57
+ neuron?: Neuron;
58
+ }): Promise<boolean>;
59
+ isAddressDelegating(_address: Address, data?: any): Promise<boolean>;
60
+ getDelegatorDetailsFromPublicKey(publicKey: PublicKey, data?: {
61
+ neuron?: Neuron;
62
+ }): Promise<DelegatorDetails>;
63
+ getDelegatorDetailsFromAddress(_address: Address, data?: any): Promise<DelegatorDetails>;
64
+ getDelegationDetailsFromPublicKey(publicKey: PublicKey, delegatees: Address[], data?: any): Promise<DelegationDetails>;
65
+ getDelegationDetailsFromAddress(_address: Address, _delegatees: Address[], _data?: any): Promise<DelegationDetails>;
61
66
  private getAvailableDelegatorActions;
62
- prepareDelegatorActionFromPublicKey(publicKey: PublicKey, type: ICPActionType, data?: any): Promise<ICPUnsignedTransaction[]>;
63
- fetchValidators(): Promise<KnownNeuron[]>;
64
- fetchVotingPower(neuronId: string): Promise<BigNumber>;
65
- fetchNeuron(publicKey: string): Promise<NeuronInfo | undefined>;
66
- fetchSubaccountBalance(publicKey: string): Promise<Balance<ICPUnits>>;
67
+ prepareDelegatorActionFromPublicKey(publicKey: PublicKey, type: ICPStakingActionType, data?: any): Promise<ICPUnsignedTransaction[]>;
68
+ getKnownNeurons(): Promise<KnownNeuron[]>;
69
+ getNeuronVotingPower(neuronId: string): Promise<string>;
70
+ private getNeuron;
71
+ getNeuronBalance(publicKey: string): Promise<Balance<ICPUnits>>;
72
+ private getNeuronFollowees;
73
+ private isNeuronDissolving;
74
+ private canNeuronDisburse;
67
75
  }
68
76
  export declare function createICPProtocol(options?: RecursivePartial<ICPProtocolOptions>): ICPProtocol;
69
77
  export declare const ICP_MAINNET_PROTOCOL_NETWORK: ICPProtocolNetwork;
@@ -17,9 +17,11 @@ const coinlib_core_1 = require("@airgap/coinlib-core");
17
17
  const index_1 = __importDefault(require("@airgap/coinlib-core/dependencies/src/axios-0.19.0/index"));
18
18
  const bignumber_1 = __importDefault(require("@airgap/coinlib-core/dependencies/src/bignumber.js-9.0.0/bignumber"));
19
19
  const errors_1 = require("@airgap/coinlib-core/errors");
20
+ const assert_1 = require("@airgap/coinlib-core/utils/assert");
20
21
  const array_1 = require("@airgap/coinlib-core/utils/array");
21
22
  const crypto_1 = require("@airgap/crypto");
22
23
  const module_kit_1 = require("@airgap/module-kit");
24
+ const module_1 = require("../module");
23
25
  const transaction_1 = require("../types/transaction");
24
26
  const account_1 = require("../utils/account");
25
27
  const principal_1 = require("../utils/principal");
@@ -105,16 +107,16 @@ class ICPProtocolImpl {
105
107
  case transaction_1.ICPActionType.GET_NEURON_INFO:
106
108
  return (0, ICPGovernance_1.getDetailsFromSignedTransactionGetNeuronInfo)(publicKey.value, this.options.network);
107
109
  case transaction_1.ICPActionType.TRANSFER_TO_SUBACCOUNT:
108
- return (0, ICPGovernance_1.getDetailsFromSignedTransactionTransferToSubaccount)(encoded, publicKey.value, this.options.network);
110
+ return (0, ICPGovernance_1.getDetailsFromSignedTransferToSubaccount)(encoded, publicKey.value, this.options.network);
109
111
  case transaction_1.ICPActionType.CLAIM_GOVERNANCE:
110
- return (0, ICPGovernance_1.getDetailsFromSignedTransactionClaimGovernance)(publicKey.value, this.options.network);
112
+ return (0, ICPGovernance_1.getDetailsFromTransactionClaimGovernance)(publicKey.value, this.options.network);
111
113
  case transaction_1.ICPActionType.FOLLOW_NEURON:
112
- return (0, ICPGovernance_1.getDetailsFromSignedTransactionFollowNeuron)(publicKey.value, this.options.network);
114
+ return (0, ICPGovernance_1.getDetailsFromSignedFollowNeuron)(publicKey.value, this.options.network);
113
115
  case transaction_1.ICPActionType.INCREASE_STAKE:
114
116
  throw new Error('TODO: implement');
115
- case transaction_1.ICPActionType.REMOVE_STAKE:
117
+ case transaction_1.ICPActionType.DISBURSE:
116
118
  return (0, ICPGovernance_1.getDetailsFromSignedTransactionRemoveStake)(publicKey.value, this.options.network);
117
- case transaction_1.ICPActionType.INCREASE_DELAY:
119
+ case transaction_1.ICPActionType.INCREASE_DISSOLVING_DELAY:
118
120
  return (0, ICPGovernance_1.getDetailsFromSignedTransactionIncreaseDelay)(publicKey.value, this.options.network);
119
121
  case transaction_1.ICPActionType.START_DISSOLVING:
120
122
  return (0, ICPGovernance_1.getDetailsFromSignedTransactionStartDissolving)(publicKey.value, this.options.network);
@@ -137,21 +139,21 @@ class ICPProtocolImpl {
137
139
  case transaction_1.ICPActionType.GET_NEURON_INFO:
138
140
  return (0, ICPGovernance_1.getDetailsFromUnsignedTransactionGetNeuronInfo)(publicKey.value, this.options.network);
139
141
  case transaction_1.ICPActionType.TRANSFER_TO_SUBACCOUNT:
140
- return (0, ICPGovernance_1.getDetailsFromUnsignedTransactionTransferToSubaccount)(encoded, publicKey.value, this.options.network);
142
+ return (0, ICPGovernance_1.getDetailsFromUnsignedTransferToSubaccount)(encoded, publicKey.value, this.options.network);
141
143
  case transaction_1.ICPActionType.CLAIM_GOVERNANCE:
142
- return (0, ICPGovernance_1.getDetailsFromUnsignedTransactionClaimGovernance)(publicKey.value, this.options.network);
144
+ return (0, ICPGovernance_1.getDetailsFromUnsignedClaimGovernance)(publicKey.value, this.options.network);
143
145
  case transaction_1.ICPActionType.INCREASE_STAKE:
144
146
  throw new Error('TODO: implement');
145
- case transaction_1.ICPActionType.REMOVE_STAKE:
147
+ case transaction_1.ICPActionType.DISBURSE:
146
148
  return (0, ICPGovernance_1.getDetailsFromUnsignedTransactionRemoveStake)(publicKey.value, this.options.network);
147
- case transaction_1.ICPActionType.INCREASE_DELAY:
149
+ case transaction_1.ICPActionType.INCREASE_DISSOLVING_DELAY:
148
150
  return (0, ICPGovernance_1.getDetailsFromUnsignedTransactionIncreaseDelay)(publicKey.value, this.options.network);
149
151
  case transaction_1.ICPActionType.START_DISSOLVING:
150
152
  return (0, ICPGovernance_1.getDetailsFromUnsignedTransactionStartDissolving)(publicKey.value, this.options.network);
151
153
  case transaction_1.ICPActionType.STOP_DISSOLVING:
152
154
  return (0, ICPGovernance_1.getDetailsFromUnsignedTransactionStopDissolving)(publicKey.value, this.options.network);
153
155
  case transaction_1.ICPActionType.FOLLOW_NEURON:
154
- return (0, ICPGovernance_1.getDetailsFromUnsignedTransactionFollowNeuron)(publicKey.value, this.options.network);
156
+ return (0, ICPGovernance_1.getDetailsFromUnsignedFollowNeuron)(publicKey.value, this.options.network);
155
157
  case transaction_1.ICPActionType.RESTAKE_MATURITY:
156
158
  return (0, ICPGovernance_1.getDetailsFromUnsignedTransactionRestakeMaturity)(publicKey.value, this.options.network);
157
159
  default:
@@ -186,64 +188,54 @@ class ICPProtocolImpl {
186
188
  case transaction_1.ICPActionType.TRANSFER:
187
189
  return {
188
190
  actionType,
189
- encoded: yield (0, ICPImplementation_1.signTransactionTransfer)(encoded, secretKey.value, this.options.network.ledgerCanisterId),
190
- requestType: 'update'
191
+ encoded: yield (0, ICPImplementation_1.signTransactionTransfer)(encoded, secretKey.value, this.options.network.ledgerCanisterId)
191
192
  };
192
193
  case transaction_1.ICPActionType.GET_NEURON_INFO:
193
194
  return {
194
195
  actionType,
195
- encoded: yield (0, ICPGovernance_1.signTransactionGetNeuronInfo)(encoded, secretKey.value, this.options.network.governanceCanisterId),
196
- requestType: 'query'
196
+ encoded: yield (0, ICPGovernance_1.signTransactionGetNeuronInfo)(encoded, secretKey.value, this.options.network.governanceCanisterId)
197
197
  };
198
198
  case transaction_1.ICPActionType.TRANSFER_TO_SUBACCOUNT:
199
199
  return {
200
200
  actionType,
201
- encoded: yield (0, ICPGovernance_1.signTransactionTransferToSubaccount)(encoded, secretKey.value, this.options.network.ledgerCanisterId),
202
- requestType: 'update'
201
+ encoded: yield (0, ICPGovernance_1.signTransferToSubaccount)(encoded, secretKey.value, this.options.network.ledgerCanisterId)
203
202
  };
204
203
  case transaction_1.ICPActionType.CLAIM_GOVERNANCE:
205
204
  return {
206
205
  actionType,
207
- encoded: yield (0, ICPGovernance_1.signTransactionClaimGovernance)(encoded, secretKey.value, this.options.network.ledgerCanisterId),
208
- requestType: 'update'
206
+ encoded: yield (0, ICPGovernance_1.signClaimGovernance)(encoded, secretKey.value, this.options.network.ledgerCanisterId)
209
207
  };
210
208
  case transaction_1.ICPActionType.INCREASE_STAKE:
211
209
  throw new Error('TODO: implement');
212
- case transaction_1.ICPActionType.REMOVE_STAKE:
210
+ case transaction_1.ICPActionType.DISBURSE:
213
211
  return {
214
212
  actionType,
215
- encoded: yield (0, ICPGovernance_1.signTransactionRemoveStake)(encoded, secretKey.value, this.options.network.ledgerCanisterId),
216
- requestType: 'update'
213
+ encoded: yield (0, ICPGovernance_1.signTransactionRemoveStake)(encoded, secretKey.value, this.options.network.ledgerCanisterId)
217
214
  };
218
- case transaction_1.ICPActionType.INCREASE_DELAY:
215
+ case transaction_1.ICPActionType.INCREASE_DISSOLVING_DELAY:
219
216
  return {
220
217
  actionType,
221
- encoded: yield (0, ICPGovernance_1.signTransactionIncreaseDelay)(encoded, secretKey.value, this.options.network.ledgerCanisterId),
222
- requestType: 'update'
218
+ encoded: yield (0, ICPGovernance_1.signTransactionIncreaseDelay)(encoded, secretKey.value, this.options.network.ledgerCanisterId)
223
219
  };
224
220
  case transaction_1.ICPActionType.START_DISSOLVING:
225
221
  return {
226
222
  actionType,
227
- encoded: yield (0, ICPGovernance_1.signTransactionStartDissolving)(encoded, secretKey.value, this.options.network.ledgerCanisterId),
228
- requestType: 'update'
223
+ encoded: yield (0, ICPGovernance_1.signTransactionStartDissolving)(encoded, secretKey.value, this.options.network.ledgerCanisterId)
229
224
  };
230
225
  case transaction_1.ICPActionType.STOP_DISSOLVING:
231
226
  return {
232
227
  actionType,
233
- encoded: yield (0, ICPGovernance_1.signTransactionStopDissolving)(encoded, secretKey.value, this.options.network.ledgerCanisterId),
234
- requestType: 'update'
228
+ encoded: yield (0, ICPGovernance_1.signTransactionStopDissolving)(encoded, secretKey.value, this.options.network.ledgerCanisterId)
235
229
  };
236
230
  case transaction_1.ICPActionType.FOLLOW_NEURON:
237
231
  return {
238
232
  actionType,
239
- encoded: yield (0, ICPGovernance_1.signTransactionFollowNeuron)(encoded, secretKey.value, this.options.network.ledgerCanisterId),
240
- requestType: 'update'
233
+ encoded: yield (0, ICPGovernance_1.signFollowNeuron)(encoded, secretKey.value, this.options.network.ledgerCanisterId)
241
234
  };
242
235
  case transaction_1.ICPActionType.RESTAKE_MATURITY:
243
236
  return {
244
237
  actionType,
245
- encoded: yield (0, ICPGovernance_1.signTransactionRestakeMaturity)(encoded, secretKey.value, this.options.network.ledgerCanisterId),
246
- requestType: 'update'
238
+ encoded: yield (0, ICPGovernance_1.signTransactionRestakeMaturity)(encoded, secretKey.value, this.options.network.ledgerCanisterId)
247
239
  };
248
240
  default:
249
241
  (0, coinlib_core_1.assertNever)(actionType);
@@ -400,13 +392,7 @@ class ICPProtocolImpl {
400
392
  return (id === null || id === void 0 ? void 0 : id.toString()) || '';
401
393
  });
402
394
  }
403
- getCurrentDelegateesForPublicKey(publicKey) {
404
- return __awaiter(this, void 0, void 0, function* () {
405
- const address = yield this.getAddressFromPublicKey(publicKey);
406
- return this.getCurrentDelegateesForAddress(address);
407
- });
408
- }
409
- getCurrentDelegateesForAddress(address) {
395
+ getCurrentDelegateesForPublicKey(publicKey, data) {
410
396
  return __awaiter(this, void 0, void 0, function* () {
411
397
  // Fetch neurons of address from governance canister (listNeurons)
412
398
  // Fetch followees from each neuron (get_full_neuron_by_id_or_subaccount)
@@ -414,65 +400,76 @@ class ICPProtocolImpl {
414
400
  return [];
415
401
  });
416
402
  }
417
- getDelegateeDetails(address) {
403
+ getCurrentDelegateesForAddress(_address, _data) {
404
+ return __awaiter(this, void 0, void 0, function* () {
405
+ throw new errors_1.UnsupportedError(coinlib_core_1.Domain.ICP, '`getCurrentDelegateesForAddress` is not supported');
406
+ });
407
+ }
408
+ getDelegateeDetails(address, data) {
418
409
  var _a, _b;
419
410
  return __awaiter(this, void 0, void 0, function* () {
420
- const neuron = yield (0, ICPImplementation_1.getNeuronInfo)(address, this.options.network.rpcUrl, this.options.network.governanceCanisterId);
411
+ const partialNeuron = yield (0, ICPImplementation_1.getNeuronInfo)(address, this.options.network.rpcUrl, this.options.network.governanceCanisterId);
421
412
  return {
422
- name: ((_b = (_a = neuron === null || neuron === void 0 ? void 0 : neuron.known_neuron_data) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.name) || '',
413
+ name: ((_b = (_a = partialNeuron === null || partialNeuron === void 0 ? void 0 : partialNeuron.known_neuron_data) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.name) || '',
423
414
  address: address
424
415
  };
425
416
  });
426
417
  }
427
- isPublicKeyDelegating(publicKey) {
418
+ isPublicKeyDelegating(publicKey, data) {
419
+ var _a, _b;
428
420
  return __awaiter(this, void 0, void 0, function* () {
429
- const address = yield this.getAddressFromPublicKey(publicKey);
430
- return this.isAddressDelegating(address);
421
+ const partialNeuron = yield this.getNeuron(publicKey.value);
422
+ if (partialNeuron === undefined) {
423
+ return false;
424
+ }
425
+ const neuron = data === null || data === void 0 ? void 0 : data.neuron;
426
+ // This case is valid for the `undelegated`/`delegated` badge in
427
+ // without full neuron data we can't be sure if we're actually delegating,
428
+ // i.e. the neuron has followees
429
+ // should we return `true` or `false` here?
430
+ if (neuron === undefined) {
431
+ return true;
432
+ }
433
+ // We should check if partial and full neuron data describe the same neuron
434
+ // but there's no neuron ID in partial neuron data
435
+ if (((_a = partialNeuron.known_neuron_data[0]) === null || _a === void 0 ? void 0 : _a.name) !== ((_b = neuron.known_neuron_data[0]) === null || _b === void 0 ? void 0 : _b.name)) {
436
+ return true;
437
+ }
438
+ return this.getNeuronFollowees(neuron).length > 0;
431
439
  });
432
440
  }
433
- isAddressDelegating(address) {
441
+ isAddressDelegating(_address, data) {
434
442
  return __awaiter(this, void 0, void 0, function* () {
435
- // Fetch neurons of address from governance canister (listNeurons)
436
- // Fetch followees from each neuron (get_full_neuron_by_id_or_subaccount)
437
- // If each neuron as followes then it is delegating
438
- // If no neuron has followes then it is not delegating
439
- // If some, but not all, neurons have followes then it is partially delegating
440
- return false;
443
+ throw new errors_1.UnsupportedError(coinlib_core_1.Domain.ICP, '`isAddressDelegating` is not supported');
441
444
  });
442
445
  }
443
- getDelegatorDetailsFromPublicKey(publicKey) {
446
+ getDelegatorDetailsFromPublicKey(publicKey, data) {
444
447
  return __awaiter(this, void 0, void 0, function* () {
445
448
  const address = yield this.getAddressFromPublicKey(publicKey);
446
- return this.getDelegatorDetailsFromAddress(address);
447
- });
448
- }
449
- getDelegatorDetailsFromAddress(address) {
450
- return __awaiter(this, void 0, void 0, function* () {
451
- const metadata = yield this.getMetadata();
452
449
  const availableBalance = yield this.getBalanceOfAddress(address);
453
- const availableActions = yield this.getAvailableDelegatorActions();
454
- const totalBalance = (0, module_kit_1.newAmount)(availableBalance.total).blockchain(metadata.units);
450
+ const followees = (data === null || data === void 0 ? void 0 : data.neuron) ? this.getNeuronFollowees(data.neuron) : [];
451
+ const availableActions = yield this.getAvailableDelegatorActions(publicKey.value, data === null || data === void 0 ? void 0 : data.neuron);
452
+ const totalBalance = (0, module_kit_1.newAmount)(availableBalance.total).blockchain(this.units);
455
453
  return {
456
454
  address,
457
455
  balance: totalBalance.value,
458
- delegatees: [],
456
+ delegatees: followees,
459
457
  availableActions: availableActions
460
458
  };
461
459
  });
462
460
  }
463
- getDelegationDetailsFromPublicKey(publicKey, delegatees) {
461
+ getDelegatorDetailsFromAddress(_address, data) {
464
462
  return __awaiter(this, void 0, void 0, function* () {
465
- const address = yield this.getAddressFromPublicKey(publicKey);
466
- return this.getDelegationDetailsFromAddress(address, delegatees);
463
+ throw new errors_1.UnsupportedError(coinlib_core_1.Domain.ICP, '`getDelegatorDetailsFromAddress` is not supported');
467
464
  });
468
465
  }
469
- getDelegationDetailsFromAddress(address, delegatees) {
466
+ getDelegationDetailsFromPublicKey(publicKey, delegatees, data) {
470
467
  return __awaiter(this, void 0, void 0, function* () {
471
468
  if (delegatees.length > 1) {
472
469
  return Promise.reject('Multiple validators for a single delegation are not supported.');
473
470
  }
474
471
  const validator = delegatees[0];
475
- const results = yield Promise.all([this.getDelegatorDetailsFromAddress(address), this.getDelegateeDetails(validator)]);
472
+ const results = yield Promise.all([this.getDelegatorDetailsFromPublicKey(publicKey), this.getDelegateeDetails(validator)]);
476
473
  const delegatorDetails = results[0];
477
474
  const validatorDetails = results[1];
478
475
  return {
@@ -481,100 +478,107 @@ class ICPProtocolImpl {
481
478
  };
482
479
  });
483
480
  }
484
- getAvailableDelegatorActions() {
481
+ getDelegationDetailsFromAddress(_address, _delegatees, _data) {
482
+ return __awaiter(this, void 0, void 0, function* () {
483
+ throw new errors_1.UnsupportedError(coinlib_core_1.Domain.ICP, '`getDelegationDetailsFromAddress` is not supported');
484
+ });
485
+ }
486
+ getAvailableDelegatorActions(publicKey, neuron) {
485
487
  return __awaiter(this, void 0, void 0, function* () {
486
488
  const actions = [];
487
- actions.push({
488
- type: transaction_1.ICPActionType.GET_NEURON_INFO
489
- });
490
- actions.push({
491
- type: transaction_1.ICPActionType.TRANSFER_TO_SUBACCOUNT,
492
- args: ['amount']
493
- });
494
- actions.push({
495
- type: transaction_1.ICPActionType.CLAIM_GOVERNANCE
496
- });
497
- actions.push({
498
- type: transaction_1.ICPActionType.INCREASE_DELAY,
499
- args: ['delaySeconds']
500
- });
501
- actions.push({
502
- type: transaction_1.ICPActionType.START_DISSOLVING
503
- });
504
- actions.push({
505
- type: transaction_1.ICPActionType.STOP_DISSOLVING
506
- });
507
- actions.push({
508
- type: transaction_1.ICPActionType.FOLLOW_NEURON,
509
- args: ['neuronId']
510
- });
511
- actions.push({
512
- type: transaction_1.ICPActionType.RESTAKE_MATURITY,
513
- args: ['percentageStake']
514
- });
515
- actions.push({
516
- type: transaction_1.ICPActionType.REMOVE_STAKE
517
- });
489
+ const hasNeuron = yield this.getNeuronBalance(publicKey).then((balance) => new bignumber_1.default(balance.total.value).gt(0));
490
+ const claimedGovernance = yield this.getNeuron(publicKey).then((neuron) => neuron !== undefined);
491
+ const isFollowing = neuron ? this.getNeuronFollowees(neuron).length > 0 : false;
492
+ const isDissolving = neuron ? this.isNeuronDissolving(neuron) : false;
493
+ const canDisburse = neuron ? this.canNeuronDisburse(neuron) : false;
494
+ if (!hasNeuron) {
495
+ actions.push({
496
+ type: module_1.ICPStakingActionType.CREATE_NEURON,
497
+ args: ['followee', 'amount', 'delay']
498
+ });
499
+ }
500
+ if (hasNeuron && !claimedGovernance) {
501
+ actions.push({
502
+ type: module_1.ICPStakingActionType.CLAIM_GOVERNANCE,
503
+ args: ['followee', 'amount', 'delay']
504
+ });
505
+ }
506
+ if (claimedGovernance && !isFollowing && neuron !== undefined) {
507
+ actions.push({
508
+ type: module_1.ICPStakingActionType.FOLLOW_NEURON,
509
+ args: ['followee', 'amount', 'delay']
510
+ });
511
+ }
512
+ if (isFollowing) {
513
+ actions.push({
514
+ type: module_1.ICPStakingActionType.CHANGE_FOLLOWEE,
515
+ args: ['followee', 'amount', 'delay']
516
+ });
517
+ }
518
+ if (claimedGovernance) {
519
+ actions.push({
520
+ type: module_1.ICPStakingActionType.GET_STAKING_DETAILS
521
+ });
522
+ }
523
+ if (claimedGovernance && !isDissolving) {
524
+ actions.push({
525
+ type: module_1.ICPStakingActionType.INCREASE_DISSOLVING_DELAY
526
+ }, {
527
+ type: module_1.ICPStakingActionType.START_DISSOLVING
528
+ });
529
+ }
530
+ if (isDissolving) {
531
+ actions.push({
532
+ type: module_1.ICPStakingActionType.STOP_DISSOLVING
533
+ });
534
+ }
535
+ if (canDisburse) {
536
+ actions.push({
537
+ type: module_1.ICPStakingActionType.DISBURSE
538
+ });
539
+ }
518
540
  return actions;
519
541
  });
520
542
  }
521
543
  prepareDelegatorActionFromPublicKey(publicKey, type, data) {
522
544
  return __awaiter(this, void 0, void 0, function* () {
523
545
  switch (type) {
524
- case transaction_1.ICPActionType.GET_NEURON_INFO:
525
- return [yield (0, ICPGovernance_1.createUnsignedTransactionGetNeuronInfo)()];
526
- case transaction_1.ICPActionType.TRANSFER_TO_SUBACCOUNT:
527
- // TODO : get amount from data and fee form defaults
528
- const amount = BigInt(0);
529
- const fee = BigInt(0);
530
- return [yield (0, ICPGovernance_1.createUnsignedTransactionTransferToSubaccount)(publicKey.value, this.options.network.ledgerCanisterId, amount, fee)];
531
- case transaction_1.ICPActionType.CLAIM_GOVERNANCE:
532
- return [yield (0, ICPGovernance_1.createUnsignedTransactionClaimGovernance)(publicKey.value)];
533
- case transaction_1.ICPActionType.INCREASE_DELAY:
534
- // TODO : get delaySeconds from data
535
- const delaySeconds = 0;
536
- return [yield (0, ICPGovernance_1.createUnsignedTransactionIncreaseDelay)(publicKey.value, delaySeconds)];
537
- case transaction_1.ICPActionType.START_DISSOLVING:
538
- return [yield (0, ICPGovernance_1.createUnsignedTransactionStartDissolving)(publicKey.value)];
539
- case transaction_1.ICPActionType.STOP_DISSOLVING:
540
- return [yield (0, ICPGovernance_1.createUnsignedTransactionStopDissolving)(publicKey.value)];
541
- case transaction_1.ICPActionType.FOLLOW_NEURON:
542
- // TODO : get neuronId from data
543
- const neuronId = 0;
544
- return [yield (0, ICPGovernance_1.createUnsignedTransactionFollowNeuron)(publicKey.value, neuronId)];
545
- case transaction_1.ICPActionType.RESTAKE_MATURITY:
546
- // TODO : get percentageStake from data
547
- const percentageStake = 0;
548
- return [yield (0, ICPGovernance_1.createUnsignedTransactionRestakeMaturity)(publicKey.value, percentageStake)];
549
- case transaction_1.ICPActionType.REMOVE_STAKE:
550
- return [yield (0, ICPGovernance_1.createUnsignedTransactionRemoveStake)(publicKey.value)];
546
+ case module_1.ICPStakingActionType.CREATE_NEURON:
547
+ (0, assert_1.assertFields)(`${type} action`, data, 'followee', 'amount', 'delay');
548
+ return [
549
+ (0, module_kit_1.newUnsignedTransaction)({
550
+ transactions: yield Promise.all([
551
+ (0, ICPGovernance_1.prepareTransferToSubaccount)(publicKey.value, this.options.network.ledgerCanisterId, BigInt(data.amount), BigInt((0, module_kit_1.newAmount)(this.feeDefaults.medium).blockchain(this.units).value)),
552
+ (0, ICPGovernance_1.prepareClaimGovernance)(publicKey.value)
553
+ ])
554
+ })
555
+ ];
551
556
  default:
552
557
  return Promise.reject(`Delegator action type ${type} is not supported.`);
553
558
  }
554
559
  });
555
560
  }
556
- fetchValidators() {
561
+ getKnownNeurons() {
557
562
  return __awaiter(this, void 0, void 0, function* () {
558
563
  return (0, ICPImplementation_1.listKnownNeurons)(this.options.network.rpcUrl, this.options.network.governanceCanisterId);
559
564
  });
560
565
  }
561
- fetchVotingPower(neuronId) {
566
+ getNeuronVotingPower(neuronId) {
562
567
  return __awaiter(this, void 0, void 0, function* () {
563
568
  const neuron = yield (0, ICPImplementation_1.getNeuronInfo)(neuronId, this.options.network.rpcUrl, this.options.network.governanceCanisterId);
564
- if (neuron) {
565
- return new bignumber_1.default(neuron.voting_power.toString()).div(new bignumber_1.default(10 ** this.units.ICP.decimals));
569
+ if (neuron === undefined) {
570
+ return '0';
566
571
  }
567
- else
568
- return new bignumber_1.default(0);
572
+ return new bignumber_1.default(neuron.voting_power.toString()).shiftedBy(-this.units.ICP.decimals).toString();
569
573
  });
570
574
  }
571
- fetchNeuron(publicKey) {
575
+ getNeuron(publicKey) {
572
576
  return __awaiter(this, void 0, void 0, function* () {
573
577
  const neuron = yield (0, ICPImplementation_1.getNeuronInfoBySubAccount)(publicKey, this.options.network.rpcUrl, this.options.network.governanceCanisterId);
574
578
  return neuron;
575
579
  });
576
580
  }
577
- fetchSubaccountBalance(publicKey) {
581
+ getNeuronBalance(publicKey) {
578
582
  return __awaiter(this, void 0, void 0, function* () {
579
583
  // Create subaccount from publicKey
580
584
  const { subAccount, nonce: _ } = (0, ICPImplementation_1.getFixedSubaccountFromPublicKey)(publicKey);
@@ -585,6 +589,21 @@ class ICPProtocolImpl {
585
589
  return this.getBalanceOfAddress(accountIdentifier.toHex());
586
590
  });
587
591
  }
592
+ getNeuronFollowees(neuron) {
593
+ return (0, array_1.flattenArray)(neuron.followees.map(([_, { followees }]) => followees.map(({ id }) => id.toString())));
594
+ }
595
+ isNeuronDissolving(neuron) {
596
+ const dissolveState = neuron.dissolve_state[0];
597
+ return (dissolveState !== undefined &&
598
+ 'WhenDissolvedTimestampSeconds' in dissolveState &&
599
+ dissolveState.WhenDissolvedTimestampSeconds > BigInt(0));
600
+ }
601
+ canNeuronDisburse(neuron) {
602
+ const dissolveState = neuron.dissolve_state[0];
603
+ return (dissolveState !== undefined &&
604
+ 'WhenDissolvedTimestampSeconds' in dissolveState &&
605
+ dissolveState.WhenDissolvedTimestampSeconds === BigInt(0));
606
+ }
588
607
  }
589
608
  exports.ICPProtocolImpl = ICPProtocolImpl;
590
609
  // Factory
@@ -1 +1 @@
1
- {"version":3,"file":"ICPProtocol.js","sourceRoot":"","sources":["../../../src/v1/protocol/ICPProtocol.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ICPProtocol.js","sourceRoot":"","sources":["../../../src/v1/protocol/ICPProtocol.ts"],"names":[],"mappings":"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"}