@massalabs/wallet-provider 0.0.1-dev.20230525084049 → 0.0.1-dev.20230526090450
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/bundle.js +69 -16
- package/dist/index.d.ts +2 -0
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/thyra/ThyraAccount.js +39 -5
- package/dist/thyra/ThyraAccount.js.map +1 -1
- package/dist/thyra/ThyraProvider.d.ts +7 -4
- package/dist/thyra/ThyraProvider.js +27 -9
- package/dist/thyra/ThyraProvider.js.map +1 -1
- package/package.json +1 -1
package/bundle.js
CHANGED
|
@@ -337,7 +337,7 @@ exports.connector = new Connector();
|
|
|
337
337
|
},{"..":4,"../thyra/ThyraDiscovery":11,"../thyra/ThyraProvider":12,"uid":46}],4:[function(require,module,exports){
|
|
338
338
|
"use strict";
|
|
339
339
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
340
|
-
exports.Provider = exports.EAccountImportResponse = exports.EAccountDeletionResponse = exports.Account = exports.providers = exports.AvailableCommands = void 0;
|
|
340
|
+
exports.ThyraAccount = exports.Provider = exports.EAccountImportResponse = exports.EAccountDeletionResponse = exports.Account = exports.providers = exports.AvailableCommands = void 0;
|
|
341
341
|
const Connector_1 = require("./connector/Connector");
|
|
342
342
|
const Provider_1 = require("./provider/Provider");
|
|
343
343
|
const ThyraProvider_1 = require("./thyra/ThyraProvider");
|
|
@@ -376,8 +376,10 @@ var provider_1 = require("./provider");
|
|
|
376
376
|
Object.defineProperty(exports, "EAccountDeletionResponse", { enumerable: true, get: function () { return provider_1.EAccountDeletionResponse; } });
|
|
377
377
|
Object.defineProperty(exports, "EAccountImportResponse", { enumerable: true, get: function () { return provider_1.EAccountImportResponse; } });
|
|
378
378
|
Object.defineProperty(exports, "Provider", { enumerable: true, get: function () { return provider_1.Provider; } });
|
|
379
|
+
var ThyraAccount_1 = require("./thyra/ThyraAccount");
|
|
380
|
+
Object.defineProperty(exports, "ThyraAccount", { enumerable: true, get: function () { return ThyraAccount_1.ThyraAccount; } });
|
|
379
381
|
|
|
380
|
-
},{"./account":2,"./connector/Connector":3,"./provider":8,"./provider/Provider":7,"./thyra/ThyraProvider":12}],5:[function(require,module,exports){
|
|
382
|
+
},{"./account":2,"./connector/Connector":3,"./provider":8,"./provider/Provider":7,"./thyra/ThyraAccount":10,"./thyra/ThyraProvider":12}],5:[function(require,module,exports){
|
|
381
383
|
"use strict";
|
|
382
384
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
383
385
|
exports.EAccountDeletionResponse = void 0;
|
|
@@ -769,7 +771,7 @@ class ThyraAccount {
|
|
|
769
771
|
async sign(data) {
|
|
770
772
|
let signOpResponse = null;
|
|
771
773
|
try {
|
|
772
|
-
signOpResponse = await (0, RequestHandler_1.postRequest)(`${ThyraProvider_1.THYRA_ACCOUNTS_URL}/${this._name}/
|
|
774
|
+
signOpResponse = await (0, RequestHandler_1.postRequest)(`${ThyraProvider_1.THYRA_ACCOUNTS_URL}/${this._name}/sign`, {
|
|
773
775
|
operation: data,
|
|
774
776
|
batch: false,
|
|
775
777
|
});
|
|
@@ -790,8 +792,25 @@ class ThyraAccount {
|
|
|
790
792
|
* @param fee - The fee to be paid for the transaction execution by the node.
|
|
791
793
|
* @returns An ITransactionDetails object. It contains the operationId on the network.
|
|
792
794
|
*/
|
|
793
|
-
buyRolls(amount, fee) {
|
|
794
|
-
|
|
795
|
+
async buyRolls(amount, fee) {
|
|
796
|
+
let buyRollsOpResponse = null;
|
|
797
|
+
const url = `${ThyraProvider_1.THYRA_ACCOUNTS_URL}/${this._name}/rolls`;
|
|
798
|
+
const body = {
|
|
799
|
+
fee: fee.toString(),
|
|
800
|
+
amount: amount.toString(),
|
|
801
|
+
side: 'buy',
|
|
802
|
+
};
|
|
803
|
+
try {
|
|
804
|
+
buyRollsOpResponse = await (0, RequestHandler_1.postRequest)(url, body);
|
|
805
|
+
}
|
|
806
|
+
catch (ex) {
|
|
807
|
+
console.error(`Thyra account: error while buying rolls: ${ex}`);
|
|
808
|
+
throw ex;
|
|
809
|
+
}
|
|
810
|
+
if (buyRollsOpResponse.isError || buyRollsOpResponse.error) {
|
|
811
|
+
throw buyRollsOpResponse.error;
|
|
812
|
+
}
|
|
813
|
+
return buyRollsOpResponse.result;
|
|
795
814
|
}
|
|
796
815
|
/**
|
|
797
816
|
* This method aims to sell rolls on behalf of the sender.
|
|
@@ -800,8 +819,25 @@ class ThyraAccount {
|
|
|
800
819
|
* @param fee - The fee to be paid for the transaction execution by the node.
|
|
801
820
|
* @returns An ITransactionDetails object. It contains the operationId on the network.
|
|
802
821
|
*/
|
|
803
|
-
sellRolls(amount, fee) {
|
|
804
|
-
|
|
822
|
+
async sellRolls(amount, fee) {
|
|
823
|
+
let sellRollsOpResponse = null;
|
|
824
|
+
const url = `${ThyraProvider_1.THYRA_ACCOUNTS_URL}/${this._name}/rolls`;
|
|
825
|
+
const body = {
|
|
826
|
+
fee: fee.toString(),
|
|
827
|
+
amount: amount.toString(),
|
|
828
|
+
side: 'sell',
|
|
829
|
+
};
|
|
830
|
+
try {
|
|
831
|
+
sellRollsOpResponse = await (0, RequestHandler_1.postRequest)(url, body);
|
|
832
|
+
}
|
|
833
|
+
catch (ex) {
|
|
834
|
+
console.error(`Thyra account: error while selling rolls: ${ex}`);
|
|
835
|
+
throw ex;
|
|
836
|
+
}
|
|
837
|
+
if (sellRollsOpResponse.isError || sellRollsOpResponse.error) {
|
|
838
|
+
throw sellRollsOpResponse.error;
|
|
839
|
+
}
|
|
840
|
+
return sellRollsOpResponse.result;
|
|
805
841
|
}
|
|
806
842
|
/**
|
|
807
843
|
* This method aims to transfer MAS on behalf of the sender to a recipient.
|
|
@@ -928,7 +964,7 @@ exports.ThyraDiscovery = ThyraDiscovery;
|
|
|
928
964
|
Object.defineProperty(exports, "__esModule", {
|
|
929
965
|
value: true
|
|
930
966
|
});
|
|
931
|
-
exports.ThyraProvider = exports.THYRA_PROVIDER_NAME = exports.
|
|
967
|
+
exports.ThyraProvider = exports.THYRA_PROVIDER_NAME = exports.THYRA_URL = exports.THYRA_IMPORT_ACCOUNTS_URL = exports.THYRA_ACCOUNTS_URL = void 0;
|
|
932
968
|
const AccountDeletion_1 = require("../provider/AccountDeletion");
|
|
933
969
|
const AccountImport_1 = require("../provider/AccountImport");
|
|
934
970
|
const RequestHandler_1 = require("./RequestHandler");
|
|
@@ -936,12 +972,15 @@ const ThyraAccount_1 = require("./ThyraAccount");
|
|
|
936
972
|
/**
|
|
937
973
|
* The Thyra accounts url
|
|
938
974
|
*/
|
|
939
|
-
exports.
|
|
940
|
-
exports.THYRA_URL = 'https://my.massa';
|
|
975
|
+
exports.THYRA_ACCOUNTS_URL = 'https://my.massa/thyra/plugin/massalabs/wallet/api/accounts';
|
|
941
976
|
/**
|
|
942
977
|
* Thyra's url for importing accounts
|
|
943
978
|
*/
|
|
944
|
-
exports.
|
|
979
|
+
exports.THYRA_IMPORT_ACCOUNTS_URL = `${exports.THYRA_ACCOUNTS_URL}/import/`;
|
|
980
|
+
/**
|
|
981
|
+
* MassaStation url
|
|
982
|
+
*/
|
|
983
|
+
exports.THYRA_URL = 'https://my.massa/';
|
|
945
984
|
/**
|
|
946
985
|
* Thyra's wallet provider name
|
|
947
986
|
*/
|
|
@@ -977,7 +1016,7 @@ class ThyraProvider {
|
|
|
977
1016
|
async accounts() {
|
|
978
1017
|
let thyraAccountsResponse = null;
|
|
979
1018
|
try {
|
|
980
|
-
thyraAccountsResponse = await (0, RequestHandler_1.getRequest)(exports.
|
|
1019
|
+
thyraAccountsResponse = await (0, RequestHandler_1.getRequest)(exports.THYRA_ACCOUNTS_URL);
|
|
981
1020
|
} catch (ex) {
|
|
982
1021
|
console.error(`Thyra accounts retrieval error`);
|
|
983
1022
|
throw ex;
|
|
@@ -997,8 +1036,8 @@ class ThyraProvider {
|
|
|
997
1036
|
*
|
|
998
1037
|
* @param publicKey - The public key of the account.
|
|
999
1038
|
* @param privateKey - The private key of the account.
|
|
1000
|
-
* @returns a Promise that resolves to an instance of IAccountImportResponse.
|
|
1001
1039
|
*
|
|
1040
|
+
* @returns a Promise that resolves to an instance of IAccountImportResponse.
|
|
1002
1041
|
*/
|
|
1003
1042
|
async importAccount(publicKey, privateKey) {
|
|
1004
1043
|
const accountImportRequest = {
|
|
@@ -1043,7 +1082,7 @@ class ThyraProvider {
|
|
|
1043
1082
|
// delete the account in question
|
|
1044
1083
|
let thyraAccountsResponse = null;
|
|
1045
1084
|
try {
|
|
1046
|
-
thyraAccountsResponse = await (0, RequestHandler_1.deleteRequest)(`${exports.THYRA_ACCOUNTS_URL}
|
|
1085
|
+
thyraAccountsResponse = await (0, RequestHandler_1.deleteRequest)(`${exports.THYRA_ACCOUNTS_URL}/${accountToDelete.nickname}`);
|
|
1047
1086
|
} catch (ex) {
|
|
1048
1087
|
console.log(`Thyra accounts deletion error`, ex);
|
|
1049
1088
|
return {
|
|
@@ -1068,7 +1107,7 @@ class ThyraProvider {
|
|
|
1068
1107
|
async getNodesUrls() {
|
|
1069
1108
|
let nodesResponse = null;
|
|
1070
1109
|
try {
|
|
1071
|
-
nodesResponse = await (0, RequestHandler_1.getRequest)(`${exports.THYRA_URL}
|
|
1110
|
+
nodesResponse = await (0, RequestHandler_1.getRequest)(`${exports.THYRA_URL}massa/node`);
|
|
1072
1111
|
if (nodesResponse.isError || nodesResponse.error) {
|
|
1073
1112
|
throw nodesResponse.error.message;
|
|
1074
1113
|
}
|
|
@@ -1086,7 +1125,21 @@ class ThyraProvider {
|
|
|
1086
1125
|
* @returns a Promise that resolves to the details of the newly generated account.
|
|
1087
1126
|
*/
|
|
1088
1127
|
async generateNewAccount(name) {
|
|
1089
|
-
|
|
1128
|
+
let thyraAccountsResponse = null;
|
|
1129
|
+
console.log(exports.THYRA_ACCOUNTS_URL + '/' + name);
|
|
1130
|
+
try {
|
|
1131
|
+
thyraAccountsResponse = await (0, RequestHandler_1.postRequest)(exports.THYRA_ACCOUNTS_URL + '/' + name, {});
|
|
1132
|
+
if (thyraAccountsResponse.isError || thyraAccountsResponse.error) {
|
|
1133
|
+
throw thyraAccountsResponse.error.message;
|
|
1134
|
+
}
|
|
1135
|
+
return {
|
|
1136
|
+
address: thyraAccountsResponse.result.address,
|
|
1137
|
+
name: thyraAccountsResponse.result.nickname
|
|
1138
|
+
};
|
|
1139
|
+
} catch (ex) {
|
|
1140
|
+
console.error(`Error while generating account: ${ex}`);
|
|
1141
|
+
throw ex;
|
|
1142
|
+
}
|
|
1090
1143
|
}
|
|
1091
1144
|
}
|
|
1092
1145
|
exports.ThyraProvider = ThyraProvider;
|
package/dist/index.d.ts
CHANGED
|
@@ -19,3 +19,5 @@ export declare function providers(): IProvider[];
|
|
|
19
19
|
export { AllowedRequests, AllowedResponses } from './connector';
|
|
20
20
|
export { IAccountDetails, IAccountBalanceRequest, IAccountBalanceResponse, IAccountSignRequest, IAccountSignResponse, IAccount, Account, IAccountRollsRequest, IAccountSendTransactionRequest, IAccountInteractWithSCRequest, } from './account';
|
|
21
21
|
export { EAccountDeletionResponse, EAccountImportResponse, IAccountDeletionRequest, IAccountDeletionResponse, IAccountImportRequest, IAccountImportResponse, IProvider, Provider, } from './provider';
|
|
22
|
+
export { IThyraWallet } from './thyra/ThyraProvider';
|
|
23
|
+
export { ThyraAccount } from './thyra/ThyraAccount';
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Provider = exports.EAccountImportResponse = exports.EAccountDeletionResponse = exports.Account = exports.providers = exports.AvailableCommands = void 0;
|
|
3
|
+
exports.ThyraAccount = exports.Provider = exports.EAccountImportResponse = exports.EAccountDeletionResponse = exports.Account = exports.providers = exports.AvailableCommands = void 0;
|
|
4
4
|
const Connector_1 = require("./connector/Connector");
|
|
5
5
|
const Provider_1 = require("./provider/Provider");
|
|
6
6
|
const ThyraProvider_1 = require("./thyra/ThyraProvider");
|
|
@@ -39,4 +39,6 @@ var provider_1 = require("./provider");
|
|
|
39
39
|
Object.defineProperty(exports, "EAccountDeletionResponse", { enumerable: true, get: function () { return provider_1.EAccountDeletionResponse; } });
|
|
40
40
|
Object.defineProperty(exports, "EAccountImportResponse", { enumerable: true, get: function () { return provider_1.EAccountImportResponse; } });
|
|
41
41
|
Object.defineProperty(exports, "Provider", { enumerable: true, get: function () { return provider_1.Provider; } });
|
|
42
|
+
var ThyraAccount_1 = require("./thyra/ThyraAccount");
|
|
43
|
+
Object.defineProperty(exports, "ThyraAccount", { enumerable: true, get: function () { return ThyraAccount_1.ThyraAccount; } });
|
|
42
44
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,qDAAkD;AAElD,kDAA+C;AAC/C,yDAA2E;AAE3E,IAAY,iBAYX;AAZD,WAAY,iBAAiB;IAC3B,2DAAsC,CAAA;IACtC,6DAAwC,CAAA;IACxC,6DAAwC,CAAA;IACxC,4DAAuC,CAAA;IACvC,uDAAkC,CAAA;IAClC,iDAA4B,CAAA;IAC5B,wEAAmD,CAAA;IACnD,4DAAuC,CAAA;IACvC,0DAAqC,CAAA;IACrC,wEAAmD,CAAA;IACnD,uEAAkD,CAAA;AACpD,CAAC,EAZW,iBAAiB,GAAjB,yBAAiB,KAAjB,yBAAiB,QAY5B;AAMD,SAAgB,SAAS;IACvB,IAAI,SAAS,GAAgB,EAAE,CAAC;IAChC,KAAK,MAAM,YAAY,IAAI,MAAM,CAAC,IAAI,CAAC,qBAAS,CAAC,kBAAkB,EAAE,CAAC,EAAE;QACtE,IAAI,YAAY,KAAK,mCAAmB,EAAE;YACxC,MAAM,CAAC,GAAG,IAAI,6BAAa,EAAE,CAAC;YAC9B,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SACnB;aAAM;YACL,MAAM,CAAC,GAAG,IAAI,mBAAQ,CAAC,YAAY,CAAC,CAAC;YACrC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SACnB;KACF;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAZD,8BAYC;AAID,qCAWmB;AAJjB,kGAAA,OAAO,OAAA;AAMT,uCASoB;AARlB,oHAAA,wBAAwB,OAAA;AACxB,kHAAA,sBAAsB,OAAA;AAMtB,oGAAA,QAAQ,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,qDAAkD;AAElD,kDAA+C;AAC/C,yDAA2E;AAE3E,IAAY,iBAYX;AAZD,WAAY,iBAAiB;IAC3B,2DAAsC,CAAA;IACtC,6DAAwC,CAAA;IACxC,6DAAwC,CAAA;IACxC,4DAAuC,CAAA;IACvC,uDAAkC,CAAA;IAClC,iDAA4B,CAAA;IAC5B,wEAAmD,CAAA;IACnD,4DAAuC,CAAA;IACvC,0DAAqC,CAAA;IACrC,wEAAmD,CAAA;IACnD,uEAAkD,CAAA;AACpD,CAAC,EAZW,iBAAiB,GAAjB,yBAAiB,KAAjB,yBAAiB,QAY5B;AAMD,SAAgB,SAAS;IACvB,IAAI,SAAS,GAAgB,EAAE,CAAC;IAChC,KAAK,MAAM,YAAY,IAAI,MAAM,CAAC,IAAI,CAAC,qBAAS,CAAC,kBAAkB,EAAE,CAAC,EAAE;QACtE,IAAI,YAAY,KAAK,mCAAmB,EAAE;YACxC,MAAM,CAAC,GAAG,IAAI,6BAAa,EAAE,CAAC;YAC9B,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SACnB;aAAM;YACL,MAAM,CAAC,GAAG,IAAI,mBAAQ,CAAC,YAAY,CAAC,CAAC;YACrC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SACnB;KACF;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAZD,8BAYC;AAID,qCAWmB;AAJjB,kGAAA,OAAO,OAAA;AAMT,uCASoB;AARlB,oHAAA,wBAAwB,OAAA;AACxB,kHAAA,sBAAsB,OAAA;AAMtB,oGAAA,QAAQ,OAAA;AAKV,qDAAoD;AAA3C,4GAAA,YAAY,OAAA"}
|
|
@@ -83,7 +83,7 @@ class ThyraAccount {
|
|
|
83
83
|
async sign(data) {
|
|
84
84
|
let signOpResponse = null;
|
|
85
85
|
try {
|
|
86
|
-
signOpResponse = await (0, RequestHandler_1.postRequest)(`${ThyraProvider_1.THYRA_ACCOUNTS_URL}/${this._name}/
|
|
86
|
+
signOpResponse = await (0, RequestHandler_1.postRequest)(`${ThyraProvider_1.THYRA_ACCOUNTS_URL}/${this._name}/sign`, {
|
|
87
87
|
operation: data,
|
|
88
88
|
batch: false,
|
|
89
89
|
});
|
|
@@ -104,8 +104,25 @@ class ThyraAccount {
|
|
|
104
104
|
* @param fee - The fee to be paid for the transaction execution by the node.
|
|
105
105
|
* @returns An ITransactionDetails object. It contains the operationId on the network.
|
|
106
106
|
*/
|
|
107
|
-
buyRolls(amount, fee) {
|
|
108
|
-
|
|
107
|
+
async buyRolls(amount, fee) {
|
|
108
|
+
let buyRollsOpResponse = null;
|
|
109
|
+
const url = `${ThyraProvider_1.THYRA_ACCOUNTS_URL}/${this._name}/rolls`;
|
|
110
|
+
const body = {
|
|
111
|
+
fee: fee.toString(),
|
|
112
|
+
amount: amount.toString(),
|
|
113
|
+
side: 'buy',
|
|
114
|
+
};
|
|
115
|
+
try {
|
|
116
|
+
buyRollsOpResponse = await (0, RequestHandler_1.postRequest)(url, body);
|
|
117
|
+
}
|
|
118
|
+
catch (ex) {
|
|
119
|
+
console.error(`Thyra account: error while buying rolls: ${ex}`);
|
|
120
|
+
throw ex;
|
|
121
|
+
}
|
|
122
|
+
if (buyRollsOpResponse.isError || buyRollsOpResponse.error) {
|
|
123
|
+
throw buyRollsOpResponse.error;
|
|
124
|
+
}
|
|
125
|
+
return buyRollsOpResponse.result;
|
|
109
126
|
}
|
|
110
127
|
/**
|
|
111
128
|
* This method aims to sell rolls on behalf of the sender.
|
|
@@ -114,8 +131,25 @@ class ThyraAccount {
|
|
|
114
131
|
* @param fee - The fee to be paid for the transaction execution by the node.
|
|
115
132
|
* @returns An ITransactionDetails object. It contains the operationId on the network.
|
|
116
133
|
*/
|
|
117
|
-
sellRolls(amount, fee) {
|
|
118
|
-
|
|
134
|
+
async sellRolls(amount, fee) {
|
|
135
|
+
let sellRollsOpResponse = null;
|
|
136
|
+
const url = `${ThyraProvider_1.THYRA_ACCOUNTS_URL}/${this._name}/rolls`;
|
|
137
|
+
const body = {
|
|
138
|
+
fee: fee.toString(),
|
|
139
|
+
amount: amount.toString(),
|
|
140
|
+
side: 'sell',
|
|
141
|
+
};
|
|
142
|
+
try {
|
|
143
|
+
sellRollsOpResponse = await (0, RequestHandler_1.postRequest)(url, body);
|
|
144
|
+
}
|
|
145
|
+
catch (ex) {
|
|
146
|
+
console.error(`Thyra account: error while selling rolls: ${ex}`);
|
|
147
|
+
throw ex;
|
|
148
|
+
}
|
|
149
|
+
if (sellRollsOpResponse.isError || sellRollsOpResponse.error) {
|
|
150
|
+
throw sellRollsOpResponse.error;
|
|
151
|
+
}
|
|
152
|
+
return sellRollsOpResponse.result;
|
|
119
153
|
}
|
|
120
154
|
/**
|
|
121
155
|
* This method aims to transfer MAS on behalf of the sender to a recipient.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThyraAccount.js","sourceRoot":"","sources":["../../src/thyra/ThyraAccount.ts"],"names":[],"mappings":";;;AAOA,qDAAgF;AAChF,mDAAqD;AAErD;;GAEG;AACH,MAAM,iBAAiB,GAAG,+DAA+D,CAAC;AA4B1F;;;;;;GAMG;AACH,MAAa,YAAY;IAKvB;;;;;;;;;;;;OAYG;IACH,YAAmB,EAAE,OAAO,EAAE,IAAI,EAAmB,EAAE,YAAoB;QACzE,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;IACpC,CAAC;IAED;;OAEG;IACI,OAAO;QACZ,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED;;OAEG;IACI,IAAI;QACT,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED;;OAEG;IACI,YAAY;QACjB,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,OAAO;QAClB,IAAI,cAAc,GAA4C,IAAI,CAAC;QACnE,IAAI;YACF,cAAc,GAAG,MAAM,IAAA,2BAAU,EAC/B,GAAG,iBAAiB,IAAI,IAAI,CAAC,QAAQ,EAAE,CACxC,CAAC;SACH;QAAC,OAAO,EAAE,EAAE;YACX,OAAO,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;YAC7C,MAAM,EAAE,CAAC;SACV;QACD,IAAI,cAAc,CAAC,OAAO,IAAI,cAAc,CAAC,KAAK,EAAE;YAClD,MAAM,cAAc,CAAC,KAAK,CAAC;SAC5B;QACD,MAAM,OAAO,GACX,cAAc,CAAC,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC;QACnE,OAAO;YACL,YAAY,EAAE,OAAO,CAAC,KAAK;YAC3B,gBAAgB,EAAE,OAAO,CAAC,OAAO;SAClC,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,IAAI,CAAC,IAAyB;QACzC,IAAI,cAAc,GAA8C,IAAI,CAAC;QACrE,IAAI;YACF,cAAc,GAAG,MAAM,IAAA,4BAAW,EAChC,GAAG,kCAAkB,IAAI,IAAI,CAAC,KAAK,
|
|
1
|
+
{"version":3,"file":"ThyraAccount.js","sourceRoot":"","sources":["../../src/thyra/ThyraAccount.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,12 +6,15 @@ import { IAccountDetails } from '../account';
|
|
|
6
6
|
/**
|
|
7
7
|
* The Thyra accounts url
|
|
8
8
|
*/
|
|
9
|
-
export declare const
|
|
10
|
-
export declare const THYRA_URL = "https://my.massa";
|
|
9
|
+
export declare const THYRA_ACCOUNTS_URL = "https://my.massa/thyra/plugin/massalabs/wallet/api/accounts";
|
|
11
10
|
/**
|
|
12
11
|
* Thyra's url for importing accounts
|
|
13
12
|
*/
|
|
14
|
-
export declare const
|
|
13
|
+
export declare const THYRA_IMPORT_ACCOUNTS_URL: string;
|
|
14
|
+
/**
|
|
15
|
+
* MassaStation url
|
|
16
|
+
*/
|
|
17
|
+
export declare const THYRA_URL = "https://my.massa/";
|
|
15
18
|
/**
|
|
16
19
|
* Thyra's wallet provider name
|
|
17
20
|
*/
|
|
@@ -60,8 +63,8 @@ export declare class ThyraProvider implements IProvider {
|
|
|
60
63
|
*
|
|
61
64
|
* @param publicKey - The public key of the account.
|
|
62
65
|
* @param privateKey - The private key of the account.
|
|
63
|
-
* @returns a Promise that resolves to an instance of IAccountImportResponse.
|
|
64
66
|
*
|
|
67
|
+
* @returns a Promise that resolves to an instance of IAccountImportResponse.
|
|
65
68
|
*/
|
|
66
69
|
importAccount(publicKey: string, privateKey: string): Promise<IAccountImportResponse>;
|
|
67
70
|
/**
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ThyraProvider = exports.THYRA_PROVIDER_NAME = exports.
|
|
3
|
+
exports.ThyraProvider = exports.THYRA_PROVIDER_NAME = exports.THYRA_URL = exports.THYRA_IMPORT_ACCOUNTS_URL = exports.THYRA_ACCOUNTS_URL = void 0;
|
|
4
4
|
const AccountDeletion_1 = require("../provider/AccountDeletion");
|
|
5
5
|
const AccountImport_1 = require("../provider/AccountImport");
|
|
6
6
|
const RequestHandler_1 = require("./RequestHandler");
|
|
@@ -8,12 +8,15 @@ const ThyraAccount_1 = require("./ThyraAccount");
|
|
|
8
8
|
/**
|
|
9
9
|
* The Thyra accounts url
|
|
10
10
|
*/
|
|
11
|
-
exports.
|
|
12
|
-
exports.THYRA_URL = 'https://my.massa';
|
|
11
|
+
exports.THYRA_ACCOUNTS_URL = 'https://my.massa/thyra/plugin/massalabs/wallet/api/accounts';
|
|
13
12
|
/**
|
|
14
13
|
* Thyra's url for importing accounts
|
|
15
14
|
*/
|
|
16
|
-
exports.
|
|
15
|
+
exports.THYRA_IMPORT_ACCOUNTS_URL = `${exports.THYRA_ACCOUNTS_URL}/import/`;
|
|
16
|
+
/**
|
|
17
|
+
* MassaStation url
|
|
18
|
+
*/
|
|
19
|
+
exports.THYRA_URL = 'https://my.massa/';
|
|
17
20
|
/**
|
|
18
21
|
* Thyra's wallet provider name
|
|
19
22
|
*/
|
|
@@ -49,7 +52,7 @@ class ThyraProvider {
|
|
|
49
52
|
async accounts() {
|
|
50
53
|
let thyraAccountsResponse = null;
|
|
51
54
|
try {
|
|
52
|
-
thyraAccountsResponse = await (0, RequestHandler_1.getRequest)(exports.
|
|
55
|
+
thyraAccountsResponse = await (0, RequestHandler_1.getRequest)(exports.THYRA_ACCOUNTS_URL);
|
|
53
56
|
}
|
|
54
57
|
catch (ex) {
|
|
55
58
|
console.error(`Thyra accounts retrieval error`);
|
|
@@ -67,8 +70,8 @@ class ThyraProvider {
|
|
|
67
70
|
*
|
|
68
71
|
* @param publicKey - The public key of the account.
|
|
69
72
|
* @param privateKey - The private key of the account.
|
|
70
|
-
* @returns a Promise that resolves to an instance of IAccountImportResponse.
|
|
71
73
|
*
|
|
74
|
+
* @returns a Promise that resolves to an instance of IAccountImportResponse.
|
|
72
75
|
*/
|
|
73
76
|
async importAccount(publicKey, privateKey) {
|
|
74
77
|
const accountImportRequest = {
|
|
@@ -115,7 +118,7 @@ class ThyraProvider {
|
|
|
115
118
|
// delete the account in question
|
|
116
119
|
let thyraAccountsResponse = null;
|
|
117
120
|
try {
|
|
118
|
-
thyraAccountsResponse = await (0, RequestHandler_1.deleteRequest)(`${exports.THYRA_ACCOUNTS_URL}
|
|
121
|
+
thyraAccountsResponse = await (0, RequestHandler_1.deleteRequest)(`${exports.THYRA_ACCOUNTS_URL}/${accountToDelete.nickname}`);
|
|
119
122
|
}
|
|
120
123
|
catch (ex) {
|
|
121
124
|
console.log(`Thyra accounts deletion error`, ex);
|
|
@@ -141,7 +144,7 @@ class ThyraProvider {
|
|
|
141
144
|
async getNodesUrls() {
|
|
142
145
|
let nodesResponse = null;
|
|
143
146
|
try {
|
|
144
|
-
nodesResponse = await (0, RequestHandler_1.getRequest)(`${exports.THYRA_URL}
|
|
147
|
+
nodesResponse = await (0, RequestHandler_1.getRequest)(`${exports.THYRA_URL}massa/node`);
|
|
145
148
|
if (nodesResponse.isError || nodesResponse.error) {
|
|
146
149
|
throw nodesResponse.error.message;
|
|
147
150
|
}
|
|
@@ -160,7 +163,22 @@ class ThyraProvider {
|
|
|
160
163
|
* @returns a Promise that resolves to the details of the newly generated account.
|
|
161
164
|
*/
|
|
162
165
|
async generateNewAccount(name) {
|
|
163
|
-
|
|
166
|
+
let thyraAccountsResponse = null;
|
|
167
|
+
console.log(exports.THYRA_ACCOUNTS_URL + '/' + name);
|
|
168
|
+
try {
|
|
169
|
+
thyraAccountsResponse = await (0, RequestHandler_1.postRequest)(exports.THYRA_ACCOUNTS_URL + '/' + name, {});
|
|
170
|
+
if (thyraAccountsResponse.isError || thyraAccountsResponse.error) {
|
|
171
|
+
throw thyraAccountsResponse.error.message;
|
|
172
|
+
}
|
|
173
|
+
return {
|
|
174
|
+
address: thyraAccountsResponse.result.address,
|
|
175
|
+
name: thyraAccountsResponse.result.nickname,
|
|
176
|
+
};
|
|
177
|
+
}
|
|
178
|
+
catch (ex) {
|
|
179
|
+
console.error(`Error while generating account: ${ex}`);
|
|
180
|
+
throw ex;
|
|
181
|
+
}
|
|
164
182
|
}
|
|
165
183
|
}
|
|
166
184
|
exports.ThyraProvider = ThyraProvider;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThyraProvider.js","sourceRoot":"","sources":["../../src/thyra/ThyraProvider.ts"],"names":[],"mappings":";;;AAAA,iEAGqC;AACrC,6DAImC;AAEnC,qDAM0B;AAC1B,iDAA8C;AAI9C;;GAEG;AACU,QAAA,
|
|
1
|
+
{"version":3,"file":"ThyraProvider.js","sourceRoot":"","sources":["../../src/thyra/ThyraProvider.ts"],"names":[],"mappings":"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"}
|