@astrox/connection 0.0.13

Sign up to get free protection for your applications and to get access to all the features.
Files changed (119) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +23 -0
  3. package/lib/cjs/canisters/internet_identity_idl.d.ts +7 -0
  4. package/lib/cjs/canisters/internet_identity_idl.js +101 -0
  5. package/lib/cjs/canisters/internet_identity_idl.js.map +1 -0
  6. package/lib/cjs/canisters/ledger.idl.d.ts +7 -0
  7. package/lib/cjs/canisters/ledger.idl.js +81 -0
  8. package/lib/cjs/canisters/ledger.idl.js.map +1 -0
  9. package/lib/cjs/canisters/me.idl.d.ts +7 -0
  10. package/lib/cjs/canisters/me.idl.js +125 -0
  11. package/lib/cjs/canisters/me.idl.js.map +1 -0
  12. package/lib/cjs/canisters/nns-dapp-cert.idl.d.ts +7 -0
  13. package/lib/cjs/canisters/nns-dapp-cert.idl.js +86 -0
  14. package/lib/cjs/canisters/nns-dapp-cert.idl.js.map +1 -0
  15. package/lib/cjs/canisters/nns-dapp.idl.d.ts +7 -0
  16. package/lib/cjs/canisters/nns-dapp.idl.js +184 -0
  17. package/lib/cjs/canisters/nns-dapp.idl.js.map +1 -0
  18. package/lib/cjs/connections/baseConnection.d.ts +52 -0
  19. package/lib/cjs/connections/baseConnection.js +87 -0
  20. package/lib/cjs/connections/baseConnection.js.map +1 -0
  21. package/lib/cjs/connections/ledgerConnection.d.ts +57 -0
  22. package/lib/cjs/connections/ledgerConnection.js +135 -0
  23. package/lib/cjs/connections/ledgerConnection.js.map +1 -0
  24. package/lib/cjs/connections/nnsConnection.d.ts +62 -0
  25. package/lib/cjs/connections/nnsConnection.js +166 -0
  26. package/lib/cjs/connections/nnsConnection.js.map +1 -0
  27. package/lib/cjs/ic/icAuthClient.d.ts +31 -0
  28. package/lib/cjs/ic/icAuthClient.js +233 -0
  29. package/lib/cjs/ic/icAuthClient.js.map +1 -0
  30. package/lib/cjs/ic/icConnect.d.ts +32 -0
  31. package/lib/cjs/ic/icConnect.js +181 -0
  32. package/lib/cjs/ic/icConnect.js.map +1 -0
  33. package/lib/cjs/ic/icStorage.d.ts +16 -0
  34. package/lib/cjs/ic/icStorage.js +49 -0
  35. package/lib/cjs/ic/icStorage.js.map +1 -0
  36. package/lib/cjs/ic/icWindow.d.ts +7 -0
  37. package/lib/cjs/ic/icWindow.js +20 -0
  38. package/lib/cjs/ic/icWindow.js.map +1 -0
  39. package/lib/cjs/ic/index.d.ts +2 -0
  40. package/lib/cjs/ic/index.js +7 -0
  41. package/lib/cjs/ic/index.js.map +1 -0
  42. package/lib/cjs/ic/types.d.ts +129 -0
  43. package/lib/cjs/ic/types.js +17 -0
  44. package/lib/cjs/ic/types.js.map +1 -0
  45. package/lib/cjs/index.d.ts +5 -0
  46. package/lib/cjs/index.js +18 -0
  47. package/lib/cjs/index.js.map +1 -0
  48. package/lib/cjs/utils/common/types.d.ts +15 -0
  49. package/lib/cjs/utils/common/types.js +12 -0
  50. package/lib/cjs/utils/common/types.js.map +1 -0
  51. package/lib/cjs/utils/constants.d.ts +6 -0
  52. package/lib/cjs/utils/constants.js +13 -0
  53. package/lib/cjs/utils/constants.js.map +1 -0
  54. package/lib/cjs/utils/converter.d.ts +32 -0
  55. package/lib/cjs/utils/converter.js +130 -0
  56. package/lib/cjs/utils/converter.js.map +1 -0
  57. package/lib/cjs/utils/index.d.ts +3 -0
  58. package/lib/cjs/utils/index.js +16 -0
  59. package/lib/cjs/utils/index.js.map +1 -0
  60. package/lib/esm/canisters/internet_identity_idl.d.ts +7 -0
  61. package/lib/esm/canisters/internet_identity_idl.js +98 -0
  62. package/lib/esm/canisters/internet_identity_idl.js.map +1 -0
  63. package/lib/esm/canisters/ledger.idl.d.ts +7 -0
  64. package/lib/esm/canisters/ledger.idl.js +78 -0
  65. package/lib/esm/canisters/ledger.idl.js.map +1 -0
  66. package/lib/esm/canisters/me.idl.d.ts +7 -0
  67. package/lib/esm/canisters/me.idl.js +122 -0
  68. package/lib/esm/canisters/me.idl.js.map +1 -0
  69. package/lib/esm/canisters/nns-dapp-cert.idl.d.ts +7 -0
  70. package/lib/esm/canisters/nns-dapp-cert.idl.js +83 -0
  71. package/lib/esm/canisters/nns-dapp-cert.idl.js.map +1 -0
  72. package/lib/esm/canisters/nns-dapp.idl.d.ts +7 -0
  73. package/lib/esm/canisters/nns-dapp.idl.js +181 -0
  74. package/lib/esm/canisters/nns-dapp.idl.js.map +1 -0
  75. package/lib/esm/connections/baseConnection.d.ts +52 -0
  76. package/lib/esm/connections/baseConnection.js +80 -0
  77. package/lib/esm/connections/baseConnection.js.map +1 -0
  78. package/lib/esm/connections/ledgerConnection.d.ts +57 -0
  79. package/lib/esm/connections/ledgerConnection.js +128 -0
  80. package/lib/esm/connections/ledgerConnection.js.map +1 -0
  81. package/lib/esm/connections/nnsConnection.d.ts +62 -0
  82. package/lib/esm/connections/nnsConnection.js +159 -0
  83. package/lib/esm/connections/nnsConnection.js.map +1 -0
  84. package/lib/esm/ic/icAuthClient.d.ts +31 -0
  85. package/lib/esm/ic/icAuthClient.js +229 -0
  86. package/lib/esm/ic/icAuthClient.js.map +1 -0
  87. package/lib/esm/ic/icConnect.d.ts +32 -0
  88. package/lib/esm/ic/icConnect.js +177 -0
  89. package/lib/esm/ic/icConnect.js.map +1 -0
  90. package/lib/esm/ic/icStorage.d.ts +16 -0
  91. package/lib/esm/ic/icStorage.js +44 -0
  92. package/lib/esm/ic/icStorage.js.map +1 -0
  93. package/lib/esm/ic/icWindow.d.ts +7 -0
  94. package/lib/esm/ic/icWindow.js +16 -0
  95. package/lib/esm/ic/icWindow.js.map +1 -0
  96. package/lib/esm/ic/index.d.ts +2 -0
  97. package/lib/esm/ic/index.js +3 -0
  98. package/lib/esm/ic/index.js.map +1 -0
  99. package/lib/esm/ic/types.d.ts +129 -0
  100. package/lib/esm/ic/types.js +14 -0
  101. package/lib/esm/ic/types.js.map +1 -0
  102. package/lib/esm/index.d.ts +5 -0
  103. package/lib/esm/index.js +6 -0
  104. package/lib/esm/index.js.map +1 -0
  105. package/lib/esm/utils/common/types.d.ts +15 -0
  106. package/lib/esm/utils/common/types.js +9 -0
  107. package/lib/esm/utils/common/types.js.map +1 -0
  108. package/lib/esm/utils/constants.d.ts +6 -0
  109. package/lib/esm/utils/constants.js +10 -0
  110. package/lib/esm/utils/constants.js.map +1 -0
  111. package/lib/esm/utils/converter.d.ts +32 -0
  112. package/lib/esm/utils/converter.js +124 -0
  113. package/lib/esm/utils/converter.js.map +1 -0
  114. package/lib/esm/utils/index.d.ts +3 -0
  115. package/lib/esm/utils/index.js +4 -0
  116. package/lib/esm/utils/index.js.map +1 -0
  117. package/lib/tsconfig-cjs.tsbuildinfo +2834 -0
  118. package/lib/tsconfig.tsbuildinfo +2833 -0
  119. package/package.json +53 -0
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.init = void 0;
4
+ exports.default = ({ IDL }) => {
5
+ const AccountIdentifier = IDL.Text;
6
+ const SubAccount = IDL.Vec(IDL.Nat8);
7
+ const SubAccountDetails = IDL.Record({
8
+ name: IDL.Text,
9
+ sub_account: SubAccount,
10
+ account_identifier: AccountIdentifier,
11
+ });
12
+ const HardwareWalletAccountDetails = IDL.Record({
13
+ principal: IDL.Principal,
14
+ name: IDL.Text,
15
+ account_identifier: AccountIdentifier,
16
+ });
17
+ const AccountDetails = IDL.Record({
18
+ principal: IDL.Principal,
19
+ account_identifier: AccountIdentifier,
20
+ hardware_wallet_accounts: IDL.Vec(HardwareWalletAccountDetails),
21
+ sub_accounts: IDL.Vec(SubAccountDetails),
22
+ });
23
+ const GetAccountResponse = IDL.Variant({
24
+ Ok: AccountDetails,
25
+ AccountNotFound: IDL.Null,
26
+ });
27
+ const CanisterDetails = IDL.Record({
28
+ name: IDL.Text,
29
+ canister_id: IDL.Principal,
30
+ });
31
+ const BlockHeight = IDL.Nat64;
32
+ const CanisterId = IDL.Principal;
33
+ const GetTransactionsRequest = IDL.Record({
34
+ page_size: IDL.Nat8,
35
+ offset: IDL.Nat32,
36
+ account_identifier: AccountIdentifier,
37
+ });
38
+ const TransactionType = IDL.Variant({
39
+ Burn: IDL.Null,
40
+ Mint: IDL.Null,
41
+ Send: IDL.Null,
42
+ StakeNeuronNotification: IDL.Null,
43
+ TopUpCanister: CanisterId,
44
+ CreateCanister: IDL.Null,
45
+ TopUpNeuron: IDL.Null,
46
+ StakeNeuron: IDL.Null,
47
+ });
48
+ const Timestamp = IDL.Record({ timestamp_nanos: IDL.Nat64 });
49
+ const ICPTs = IDL.Record({ e8s: IDL.Nat64 });
50
+ const Send = IDL.Record({
51
+ to: AccountIdentifier,
52
+ fee: ICPTs,
53
+ amount: ICPTs,
54
+ });
55
+ const Receive = IDL.Record({
56
+ fee: ICPTs,
57
+ from: AccountIdentifier,
58
+ amount: ICPTs,
59
+ });
60
+ const Transfer = IDL.Variant({
61
+ Burn: IDL.Record({ amount: ICPTs }),
62
+ Mint: IDL.Record({ amount: ICPTs }),
63
+ Send: Send,
64
+ Receive: Receive,
65
+ });
66
+ const Transaction = IDL.Record({
67
+ transaction_type: IDL.Opt(TransactionType),
68
+ memo: IDL.Nat64,
69
+ timestamp: Timestamp,
70
+ block_height: BlockHeight,
71
+ transfer: Transfer,
72
+ });
73
+ const GetTransactionsResponse = IDL.Record({
74
+ total: IDL.Nat32,
75
+ transactions: IDL.Vec(Transaction),
76
+ });
77
+ return IDL.Service({
78
+ get_account: IDL.Func([], [GetAccountResponse]),
79
+ get_canisters: IDL.Func([], [IDL.Vec(CanisterDetails)]),
80
+ get_transactions: IDL.Func([GetTransactionsRequest], [GetTransactionsResponse]),
81
+ });
82
+ };
83
+ exports.init = ({ IDL }) => {
84
+ return [];
85
+ };
86
+ //# sourceMappingURL=nns-dapp-cert.idl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nns-dapp-cert.idl.js","sourceRoot":"","sources":["../../../src/canisters/nns-dapp-cert.idl.js"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ declare function _default({ IDL }: {
2
+ IDL: any;
3
+ }): any;
4
+ export default _default;
5
+ export function init({ IDL }: {
6
+ IDL: any;
7
+ }): never[];
@@ -0,0 +1,184 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.init = void 0;
4
+ exports.default = ({ IDL }) => {
5
+ const AccountIdentifier = IDL.Text;
6
+ const AttachCanisterRequest = IDL.Record({
7
+ name: IDL.Text,
8
+ canister_id: IDL.Principal,
9
+ });
10
+ const AttachCanisterResponse = IDL.Variant({
11
+ Ok: IDL.Null,
12
+ CanisterAlreadyAttached: IDL.Null,
13
+ NameAlreadyTaken: IDL.Null,
14
+ NameTooLong: IDL.Null,
15
+ CanisterLimitExceeded: IDL.Null,
16
+ });
17
+ const SubAccount = IDL.Vec(IDL.Nat8);
18
+ const SubAccountDetails = IDL.Record({
19
+ name: IDL.Text,
20
+ sub_account: SubAccount,
21
+ account_identifier: AccountIdentifier,
22
+ });
23
+ const CreateSubAccountResponse = IDL.Variant({
24
+ Ok: SubAccountDetails,
25
+ AccountNotFound: IDL.Null,
26
+ NameTooLong: IDL.Null,
27
+ SubAccountLimitExceeded: IDL.Null,
28
+ });
29
+ const DetachCanisterRequest = IDL.Record({ canister_id: IDL.Principal });
30
+ const DetachCanisterResponse = IDL.Variant({
31
+ Ok: IDL.Null,
32
+ CanisterNotFound: IDL.Null,
33
+ });
34
+ const HardwareWalletAccountDetails = IDL.Record({
35
+ principal: IDL.Principal,
36
+ name: IDL.Text,
37
+ account_identifier: AccountIdentifier,
38
+ });
39
+ const AccountDetails = IDL.Record({
40
+ principal: IDL.Principal,
41
+ account_identifier: AccountIdentifier,
42
+ hardware_wallet_accounts: IDL.Vec(HardwareWalletAccountDetails),
43
+ sub_accounts: IDL.Vec(SubAccountDetails),
44
+ });
45
+ const GetAccountResponse = IDL.Variant({
46
+ Ok: AccountDetails,
47
+ AccountNotFound: IDL.Null,
48
+ });
49
+ const CanisterDetails = IDL.Record({
50
+ name: IDL.Text,
51
+ canister_id: IDL.Principal,
52
+ });
53
+ const BlockHeight = IDL.Nat64;
54
+ const MultiPartTransactionError = IDL.Record({
55
+ error_message: IDL.Text,
56
+ block_height: BlockHeight,
57
+ });
58
+ const CanisterId = IDL.Principal;
59
+ const NeuronId = IDL.Nat64;
60
+ const MultiPartTransactionStatus = IDL.Variant({
61
+ Queued: IDL.Null,
62
+ Error: IDL.Text,
63
+ Refunded: IDL.Tuple(BlockHeight, IDL.Text),
64
+ CanisterCreated: CanisterId,
65
+ Complete: IDL.Null,
66
+ NotFound: IDL.Null,
67
+ NeuronCreated: NeuronId,
68
+ PendingSync: IDL.Null,
69
+ ErrorWithRefundPending: IDL.Text,
70
+ });
71
+ const Stats = IDL.Record({
72
+ latest_transaction_block_height: BlockHeight,
73
+ seconds_since_last_ledger_sync: IDL.Nat64,
74
+ sub_accounts_count: IDL.Nat64,
75
+ neurons_topped_up_count: IDL.Nat64,
76
+ transactions_to_process_queue_length: IDL.Nat32,
77
+ neurons_created_count: IDL.Nat64,
78
+ hardware_wallet_accounts_count: IDL.Nat64,
79
+ accounts_count: IDL.Nat64,
80
+ earliest_transaction_block_height: BlockHeight,
81
+ transactions_count: IDL.Nat64,
82
+ block_height_synced_up_to: IDL.Opt(IDL.Nat64),
83
+ latest_transaction_timestamp_nanos: IDL.Nat64,
84
+ earliest_transaction_timestamp_nanos: IDL.Nat64,
85
+ });
86
+ const GetTransactionsRequest = IDL.Record({
87
+ page_size: IDL.Nat8,
88
+ offset: IDL.Nat32,
89
+ account_identifier: AccountIdentifier,
90
+ });
91
+ const TransactionType = IDL.Variant({
92
+ Burn: IDL.Null,
93
+ Mint: IDL.Null,
94
+ Send: IDL.Null,
95
+ StakeNeuronNotification: IDL.Null,
96
+ TopUpCanister: CanisterId,
97
+ CreateCanister: IDL.Null,
98
+ TopUpNeuron: IDL.Null,
99
+ StakeNeuron: IDL.Null,
100
+ });
101
+ const Timestamp = IDL.Record({ timestamp_nanos: IDL.Nat64 });
102
+ const ICPTs = IDL.Record({ e8s: IDL.Nat64 });
103
+ const Send = IDL.Record({
104
+ to: AccountIdentifier,
105
+ fee: ICPTs,
106
+ amount: ICPTs,
107
+ });
108
+ const Receive = IDL.Record({
109
+ fee: ICPTs,
110
+ from: AccountIdentifier,
111
+ amount: ICPTs,
112
+ });
113
+ const Transfer = IDL.Variant({
114
+ Burn: IDL.Record({ amount: ICPTs }),
115
+ Mint: IDL.Record({ amount: ICPTs }),
116
+ Send: Send,
117
+ Receive: Receive,
118
+ });
119
+ const Transaction = IDL.Record({
120
+ transaction_type: IDL.Opt(TransactionType),
121
+ memo: IDL.Nat64,
122
+ timestamp: Timestamp,
123
+ block_height: BlockHeight,
124
+ transfer: Transfer,
125
+ });
126
+ const GetTransactionsResponse = IDL.Record({
127
+ total: IDL.Nat32,
128
+ transactions: IDL.Vec(Transaction),
129
+ });
130
+ const HeaderField = IDL.Tuple(IDL.Text, IDL.Text);
131
+ const HttpRequest = IDL.Record({
132
+ url: IDL.Text,
133
+ method: IDL.Text,
134
+ body: IDL.Vec(IDL.Nat8),
135
+ headers: IDL.Vec(HeaderField),
136
+ });
137
+ const HttpResponse = IDL.Record({
138
+ body: IDL.Vec(IDL.Nat8),
139
+ headers: IDL.Vec(HeaderField),
140
+ status_code: IDL.Nat16,
141
+ });
142
+ const RegisterHardwareWalletRequest = IDL.Record({
143
+ principal: IDL.Principal,
144
+ name: IDL.Text,
145
+ });
146
+ const RegisterHardwareWalletResponse = IDL.Variant({
147
+ Ok: IDL.Null,
148
+ AccountNotFound: IDL.Null,
149
+ HardwareWalletAlreadyRegistered: IDL.Null,
150
+ HardwareWalletLimitExceeded: IDL.Null,
151
+ NameTooLong: IDL.Null,
152
+ });
153
+ const RenameSubAccountRequest = IDL.Record({
154
+ new_name: IDL.Text,
155
+ account_identifier: AccountIdentifier,
156
+ });
157
+ const RenameSubAccountResponse = IDL.Variant({
158
+ Ok: IDL.Null,
159
+ AccountNotFound: IDL.Null,
160
+ SubAccountNotFound: IDL.Null,
161
+ NameTooLong: IDL.Null,
162
+ });
163
+ return IDL.Service({
164
+ add_account: IDL.Func([], [AccountIdentifier], []),
165
+ add_stable_asset: IDL.Func([IDL.Vec(IDL.Nat8)], [], []),
166
+ attach_canister: IDL.Func([AttachCanisterRequest], [AttachCanisterResponse], []),
167
+ create_sub_account: IDL.Func([IDL.Text], [CreateSubAccountResponse], []),
168
+ detach_canister: IDL.Func([DetachCanisterRequest], [DetachCanisterResponse], []),
169
+ get_account: IDL.Func([], [GetAccountResponse], ['query']),
170
+ get_canisters: IDL.Func([], [IDL.Vec(CanisterDetails)], ['query']),
171
+ get_icp_to_cycles_conversion_rate: IDL.Func([], [IDL.Nat64], ['query']),
172
+ get_multi_part_transaction_errors: IDL.Func([], [IDL.Vec(MultiPartTransactionError)], ['query']),
173
+ get_multi_part_transaction_status: IDL.Func([IDL.Principal, BlockHeight], [MultiPartTransactionStatus], ['query']),
174
+ get_stats: IDL.Func([], [Stats], ['query']),
175
+ get_transactions: IDL.Func([GetTransactionsRequest], [GetTransactionsResponse], ['query']),
176
+ http_request: IDL.Func([HttpRequest], [HttpResponse], ['query']),
177
+ register_hardware_wallet: IDL.Func([RegisterHardwareWalletRequest], [RegisterHardwareWalletResponse], []),
178
+ rename_sub_account: IDL.Func([RenameSubAccountRequest], [RenameSubAccountResponse], []),
179
+ });
180
+ };
181
+ exports.init = ({ IDL }) => {
182
+ return [];
183
+ };
184
+ //# sourceMappingURL=nns-dapp.idl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nns-dapp.idl.js","sourceRoot":"","sources":["../../../src/canisters/nns-dapp.idl.js"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ import { ActorSubclass, HttpAgent, SignIdentity } from '@dfinity/agent';
2
+ import { InterfaceFactory } from '@dfinity/candid/lib/cjs/idl';
3
+ import { DelegationChain, DelegationIdentity } from '@dfinity/identity';
4
+ import { Principal } from '@dfinity/principal';
5
+ export interface CreateActorResult<T> {
6
+ actor: ActorSubclass<T>;
7
+ agent: HttpAgent;
8
+ }
9
+ export declare function createConnection<T>(identity: SignIdentity, delegationIdentity: DelegationIdentity, canisterId: string, interfaceFactory: InterfaceFactory, actor?: ActorSubclass<T>, agent?: HttpAgent): BaseConnection<T>;
10
+ export declare const requestDelegation: (identity: SignIdentity, { canisterId, date }: {
11
+ canisterId?: string | undefined;
12
+ date?: Date | undefined;
13
+ }) => Promise<DelegationIdentity>;
14
+ export declare function _createActor<T>(interfaceFactory: InterfaceFactory, canisterId: string, identity?: SignIdentity): Promise<CreateActorResult<T>>;
15
+ export interface AbstractConnection<T> {
16
+ identity: SignIdentity;
17
+ delegationIdentity: DelegationIdentity;
18
+ actor?: ActorSubclass<T>;
19
+ agent?: HttpAgent;
20
+ canisterId?: string;
21
+ getActor(): Promise<ActorSubclass<T>>;
22
+ }
23
+ export declare class BaseConnection<T> implements AbstractConnection<T> {
24
+ identity: SignIdentity;
25
+ delegationIdentity: DelegationIdentity;
26
+ canisterId: string;
27
+ interfaceFactory: InterfaceFactory;
28
+ actor?: ActorSubclass<T> | undefined;
29
+ agent?: HttpAgent | undefined;
30
+ constructor(identity: SignIdentity, delegationIdentity: DelegationIdentity, canisterId: string, interfaceFactory: InterfaceFactory, actor?: ActorSubclass<T> | undefined, agent?: HttpAgent | undefined);
31
+ getActor(): Promise<ActorSubclass<T>>;
32
+ protected _getActor(canisterId: string, interfaceFactory: InterfaceFactory, date?: Date): Promise<ActorSubclass<T>>;
33
+ }
34
+ export interface IIDelegationResult {
35
+ delegation: {
36
+ pubkey: Uint8Array;
37
+ expiration: bigint;
38
+ targets?: Principal[];
39
+ };
40
+ signature: Uint8Array;
41
+ }
42
+ export interface DelegationMessage {
43
+ kind: string;
44
+ delegations: IIDelegationResult[];
45
+ userPublicKey: Uint8Array;
46
+ }
47
+ export interface DelegationResult {
48
+ delegationIdentity: DelegationIdentity;
49
+ delegationChain: DelegationChain;
50
+ }
51
+ export declare function handleDelegation(message: DelegationMessage, key: SignIdentity): Promise<DelegationResult>;
52
+ export declare const executeWithLogging: <T>(func: () => Promise<T>) => Promise<T>;
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.executeWithLogging = exports.handleDelegation = exports.BaseConnection = exports._createActor = exports.requestDelegation = exports.createConnection = void 0;
4
+ const agent_1 = require("@dfinity/agent");
5
+ const identity_1 = require("@dfinity/identity");
6
+ const principal_1 = require("@dfinity/principal");
7
+ function createConnection(identity, delegationIdentity, canisterId, interfaceFactory, actor, agent) {
8
+ return new BaseConnection(identity, delegationIdentity, canisterId, interfaceFactory, actor, agent);
9
+ }
10
+ exports.createConnection = createConnection;
11
+ exports.requestDelegation = async (identity, { canisterId, date }) => {
12
+ const sessionKey = identity_1.Ed25519KeyIdentity.generate();
13
+ const chain = await identity_1.DelegationChain.create(identity, sessionKey.getPublicKey(), date || new Date(Date.parse('2100-01-01')), {
14
+ targets: canisterId != undefined ? [principal_1.Principal.fromText(canisterId)] : undefined,
15
+ });
16
+ return identity_1.DelegationIdentity.fromDelegation(sessionKey, chain);
17
+ };
18
+ async function _createActor(interfaceFactory, canisterId, identity) {
19
+ const agent = new agent_1.HttpAgent({ identity });
20
+ // Only fetch the root key when we're not in prod
21
+ if (process.env.II_ENV === 'development') {
22
+ await agent.fetchRootKey();
23
+ }
24
+ const actor = agent_1.Actor.createActor(interfaceFactory, {
25
+ agent,
26
+ canisterId,
27
+ });
28
+ return { actor, agent };
29
+ }
30
+ exports._createActor = _createActor;
31
+ class BaseConnection {
32
+ constructor(identity, delegationIdentity, canisterId, interfaceFactory, actor, agent) {
33
+ this.identity = identity;
34
+ this.delegationIdentity = delegationIdentity;
35
+ this.canisterId = canisterId;
36
+ this.interfaceFactory = interfaceFactory;
37
+ this.actor = actor;
38
+ this.agent = agent;
39
+ }
40
+ async getActor() {
41
+ throw new Error('Method not implemented.');
42
+ }
43
+ async _getActor(canisterId, interfaceFactory, date) {
44
+ var _a, _b;
45
+ for (const { delegation } of this.delegationIdentity.getDelegation().delegations) {
46
+ // prettier-ignore
47
+ if (+new Date(Number(delegation.expiration / BigInt(1000000))) <= +Date.now()) {
48
+ this.actor = undefined;
49
+ break;
50
+ }
51
+ }
52
+ if (this.actor === undefined) {
53
+ // Create our actor with a DelegationIdentity to avoid re-prompting auth
54
+ this.delegationIdentity = await exports.requestDelegation(this.identity, {
55
+ canisterId: (_a = this.canisterId) !== null && _a !== void 0 ? _a : canisterId,
56
+ date: date !== null && date !== void 0 ? date : undefined,
57
+ });
58
+ this.actor = (await _createActor(interfaceFactory, (_b = this.canisterId) !== null && _b !== void 0 ? _b : canisterId, this.delegationIdentity)).actor;
59
+ }
60
+ return this.actor;
61
+ }
62
+ }
63
+ exports.BaseConnection = BaseConnection;
64
+ async function handleDelegation(message, key) {
65
+ const delegations = message.delegations.map(signedDelegation => {
66
+ return {
67
+ delegation: new identity_1.Delegation(signedDelegation.delegation.pubkey, signedDelegation.delegation.expiration, signedDelegation.delegation.targets),
68
+ signature: signedDelegation.signature.buffer,
69
+ };
70
+ });
71
+ const delegationChain = identity_1.DelegationChain.fromDelegations(delegations, message.userPublicKey.buffer);
72
+ return {
73
+ delegationChain,
74
+ delegationIdentity: identity_1.DelegationIdentity.fromDelegation(key, delegationChain),
75
+ };
76
+ }
77
+ exports.handleDelegation = handleDelegation;
78
+ exports.executeWithLogging = async (func) => {
79
+ try {
80
+ return await func();
81
+ }
82
+ catch (e) {
83
+ console.log(e);
84
+ throw e;
85
+ }
86
+ };
87
+ //# sourceMappingURL=baseConnection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"baseConnection.js","sourceRoot":"","sources":["../../../src/connections/baseConnection.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,57 @@
1
+ import { BaseConnection, CreateActorResult } from './baseConnection';
2
+ import LEDGER_SERVICE, { AccountIdentifier, BlockHeight, Memo } from '../canisters/ledger';
3
+ import { ActorSubclass, HttpAgent, SignIdentity } from '@dfinity/agent';
4
+ import { DelegationIdentity } from '@dfinity/identity';
5
+ export interface SendOpts {
6
+ fee?: bigint;
7
+ memo?: Memo;
8
+ from_subaccount?: number;
9
+ created_at_time?: Date;
10
+ }
11
+ export declare class LedgerConnection extends BaseConnection<LEDGER_SERVICE> {
12
+ identity: SignIdentity;
13
+ delegationIdentity: DelegationIdentity;
14
+ actor?: ActorSubclass<LEDGER_SERVICE> | undefined;
15
+ agent?: HttpAgent | undefined;
16
+ protected constructor(identity: SignIdentity, delegationIdentity: DelegationIdentity, actor?: ActorSubclass<LEDGER_SERVICE> | undefined, agent?: HttpAgent | undefined, legerCanisterId?: string);
17
+ /**
18
+ * create connection
19
+ * @param identity
20
+ * @param delegationIdentity
21
+ * @param actor
22
+ * @param agent
23
+ * @function createConnection
24
+ * @returns {LedgerConnection}
25
+ */
26
+ static createConnection(identity: SignIdentity, delegationIdentity: DelegationIdentity, actor?: ActorSubclass<LEDGER_SERVICE>, agent?: HttpAgent): LedgerConnection;
27
+ /**
28
+ * create Actor with DelegationIdentity
29
+ * @param delegationIdentity
30
+ * @param canisterId
31
+ * @param ledgerCanisterId
32
+ * @function {function name}
33
+ * @returns {type} {description}
34
+ */
35
+ static createActor(delegationIdentity: DelegationIdentity, ledgerCanisterId?: string): Promise<CreateActorResult<LEDGER_SERVICE>>;
36
+ static createConnectionWithII(identity: SignIdentity, delegationIdentity: DelegationIdentity): Promise<LedgerConnection>;
37
+ static actorGetBalance(actor: ActorSubclass<LEDGER_SERVICE>, account: AccountIdentifier): Promise<bigint>;
38
+ static actorSend(actor: ActorSubclass<LEDGER_SERVICE>, { to, amount, sendOpts, }: {
39
+ to: AccountIdentifier;
40
+ amount: bigint;
41
+ sendOpts?: SendOpts;
42
+ }): Promise<BlockHeight>;
43
+ /**
44
+ * get NNS Actor, used internally
45
+ * @param canisterId
46
+ * @param ledgerCanisterId
47
+ * @function {function name}
48
+ * @returns {type} {description}
49
+ */
50
+ getLedgerActor(ledgerCanisterId?: string): Promise<ActorSubclass<LEDGER_SERVICE>>;
51
+ getBalance(account: AccountIdentifier): Promise<bigint>;
52
+ send({ to, amount, sendOpts, }: {
53
+ to: AccountIdentifier;
54
+ amount: bigint;
55
+ sendOpts: SendOpts;
56
+ }): Promise<BlockHeight>;
57
+ }
@@ -0,0 +1,135 @@
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.LedgerConnection = void 0;
7
+ const baseConnection_1 = require("./baseConnection");
8
+ const ledger_idl_1 = __importDefault(require("../canisters/ledger.idl"));
9
+ const converter_1 = require("../utils/converter");
10
+ const constants_1 = require("../utils/constants");
11
+ class LedgerConnection extends baseConnection_1.BaseConnection {
12
+ constructor(identity, delegationIdentity, actor, agent, legerCanisterId) {
13
+ super(identity, delegationIdentity, legerCanisterId !== null && legerCanisterId !== void 0 ? legerCanisterId : constants_1.LEDGER_CANISTER_ID, ledger_idl_1.default, actor, agent);
14
+ this.identity = identity;
15
+ this.delegationIdentity = delegationIdentity;
16
+ this.actor = actor;
17
+ this.agent = agent;
18
+ }
19
+ /**
20
+ * create connection
21
+ * @param identity
22
+ * @param delegationIdentity
23
+ * @param actor
24
+ * @param agent
25
+ * @function createConnection
26
+ * @returns {LedgerConnection}
27
+ */
28
+ static createConnection(identity, delegationIdentity, actor, agent) {
29
+ return new LedgerConnection(identity, delegationIdentity, actor, agent);
30
+ }
31
+ /**
32
+ * create Actor with DelegationIdentity
33
+ * @param delegationIdentity
34
+ * @param canisterId
35
+ * @param ledgerCanisterId
36
+ * @function {function name}
37
+ * @returns {type} {description}
38
+ */
39
+ static async createActor(delegationIdentity, ledgerCanisterId) {
40
+ const actor = await baseConnection_1._createActor(ledger_idl_1.default, ledgerCanisterId !== null && ledgerCanisterId !== void 0 ? ledgerCanisterId : constants_1.LEDGER_CANISTER_ID, delegationIdentity);
41
+ return actor;
42
+ }
43
+ static async createConnectionWithII(identity, delegationIdentity) {
44
+ const actorResult = await LedgerConnection.createActor(delegationIdentity);
45
+ return LedgerConnection.createConnection(identity, delegationIdentity, actorResult.actor, actorResult.agent);
46
+ }
47
+ static async actorGetBalance(actor, account) {
48
+ const response = await baseConnection_1.executeWithLogging(() => actor.account_balance_dfx({ account }));
49
+ return response.e8s;
50
+ }
51
+ static async actorSend(actor, { to, amount, sendOpts, }) {
52
+ const response = await baseConnection_1.executeWithLogging(() => {
53
+ var _a, _b, _c;
54
+ const defaultFee = BigInt(10000);
55
+ const defaultMemo = BigInt(Math.floor(Math.random() * 10000));
56
+ const subAccount = (sendOpts === null || sendOpts === void 0 ? void 0 : sendOpts.from_subaccount) === undefined
57
+ ? []
58
+ : Array.from([converter_1.fromSubAccountId(sendOpts === null || sendOpts === void 0 ? void 0 : sendOpts.from_subaccount)]);
59
+ const createAtTime = (sendOpts === null || sendOpts === void 0 ? void 0 : sendOpts.created_at_time) === undefined
60
+ ? []
61
+ : Array.from([
62
+ {
63
+ timestamp_nanos: BigInt((_a = sendOpts === null || sendOpts === void 0 ? void 0 : sendOpts.created_at_time) === null || _a === void 0 ? void 0 : _a.getTime()),
64
+ },
65
+ ]);
66
+ const sendArgs = {
67
+ to: to,
68
+ fee: {
69
+ e8s: (_b = sendOpts === null || sendOpts === void 0 ? void 0 : sendOpts.fee) !== null && _b !== void 0 ? _b : defaultFee,
70
+ },
71
+ amount: { e8s: amount },
72
+ memo: (_c = sendOpts === null || sendOpts === void 0 ? void 0 : sendOpts.memo) !== null && _c !== void 0 ? _c : defaultMemo,
73
+ from_subaccount: subAccount,
74
+ created_at_time: createAtTime,
75
+ };
76
+ return actor.send_dfx(sendArgs);
77
+ });
78
+ return response;
79
+ }
80
+ /**
81
+ * get NNS Actor, used internally
82
+ * @param canisterId
83
+ * @param ledgerCanisterId
84
+ * @function {function name}
85
+ * @returns {type} {description}
86
+ */
87
+ async getLedgerActor(ledgerCanisterId) {
88
+ const actor = await this._getActor(ledgerCanisterId !== null && ledgerCanisterId !== void 0 ? ledgerCanisterId : constants_1.LEDGER_CANISTER_ID, ledger_idl_1.default);
89
+ return actor;
90
+ }
91
+ async getBalance(account) {
92
+ const actor = await this.getLedgerActor();
93
+ const response = await baseConnection_1.executeWithLogging(() => actor.account_balance_dfx({ account }));
94
+ return response.e8s;
95
+ }
96
+ async send({ to, amount, sendOpts, }) {
97
+ const actor = await this.getLedgerActor();
98
+ const response = await baseConnection_1.executeWithLogging(() => {
99
+ var _a, _b, _c;
100
+ const defaultFee = BigInt(10000);
101
+ const defaultMemo = BigInt(Math.floor(Math.random() * 10000));
102
+ const subAccount = (sendOpts === null || sendOpts === void 0 ? void 0 : sendOpts.from_subaccount) === undefined
103
+ ? []
104
+ : Array.from([converter_1.fromSubAccountId(sendOpts === null || sendOpts === void 0 ? void 0 : sendOpts.from_subaccount)]);
105
+ const createAtTime = (sendOpts === null || sendOpts === void 0 ? void 0 : sendOpts.created_at_time) === undefined
106
+ ? []
107
+ : Array.from([
108
+ {
109
+ timestamp_nanos: BigInt((_a = sendOpts === null || sendOpts === void 0 ? void 0 : sendOpts.created_at_time) === null || _a === void 0 ? void 0 : _a.getTime()),
110
+ },
111
+ ]);
112
+ const sendArgs = {
113
+ to: to,
114
+ fee: {
115
+ e8s: (_b = sendOpts === null || sendOpts === void 0 ? void 0 : sendOpts.fee) !== null && _b !== void 0 ? _b : defaultFee,
116
+ },
117
+ amount: { e8s: amount },
118
+ memo: (_c = sendOpts === null || sendOpts === void 0 ? void 0 : sendOpts.memo) !== null && _c !== void 0 ? _c : defaultMemo,
119
+ from_subaccount: subAccount,
120
+ created_at_time: createAtTime,
121
+ };
122
+ return actor.send_dfx(sendArgs);
123
+ });
124
+ return response;
125
+ }
126
+ }
127
+ exports.LedgerConnection = LedgerConnection;
128
+ // export const requestNNSDelegation = async (
129
+ // identity: SignIdentity,
130
+ // ): Promise<DelegationIdentity> => {
131
+ // const tenMinutesInMsec = 10 * 1000 * 60;
132
+ // const date = new Date(Date.now() + tenMinutesInMsec);
133
+ // return requestDelegation(identity, { canisterId, date });
134
+ // };
135
+ //# sourceMappingURL=ledgerConnection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ledgerConnection.js","sourceRoot":"","sources":["../../../src/connections/ledgerConnection.ts"],"names":[],"mappings":"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"}