@firmachain/firma-js 0.2.61 → 0.2.64

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.
Files changed (83) hide show
  1. package/dist/sdk/FirmaCosmWasmCw721.d.ts +18 -0
  2. package/dist/sdk/FirmaCosmWasmCw721.js +25 -1
  3. package/dist/test/00.wallet.test.d.ts +1 -0
  4. package/dist/test/00.wallet.test.js +90 -0
  5. package/dist/test/01.contract_tx.test.d.ts +1 -0
  6. package/dist/test/01.contract_tx.test.js +149 -0
  7. package/dist/test/02.contract_query.test.d.ts +1 -0
  8. package/dist/test/02.contract_query.test.js +222 -0
  9. package/dist/test/03.contract_scenario.test.d.ts +1 -0
  10. package/dist/test/03.contract_scenario.test.js +562 -0
  11. package/dist/test/04.bank_tx.test.d.ts +1 -0
  12. package/dist/test/04.bank_tx.test.js +127 -0
  13. package/dist/test/05.bank_query.test.d.ts +1 -0
  14. package/dist/test/05.bank_query.test.js +167 -0
  15. package/dist/test/06.feegrant_tx.test.d.ts +1 -0
  16. package/dist/test/06.feegrant_tx.test.js +176 -0
  17. package/dist/test/07.feegrant_query.test.d.ts +1 -0
  18. package/dist/test/07.feegrant_query.test.js +84 -0
  19. package/dist/test/08.gas_estimate.test.d.ts +1 -0
  20. package/dist/test/08.gas_estimate.test.js +703 -0
  21. package/dist/test/09.ipfs.test.d.ts +1 -0
  22. package/dist/test/09.ipfs.test.js +72 -0
  23. package/dist/test/10.nft_tx.test.d.ts +1 -0
  24. package/dist/test/10.nft_tx.test.js +177 -0
  25. package/dist/test/11.nft_query.test.d.ts +1 -0
  26. package/dist/test/11.nft_query.test.js +170 -0
  27. package/dist/test/12.staking_tx.test.d.ts +1 -0
  28. package/dist/test/12.staking_tx.test.js +216 -0
  29. package/dist/test/13.staking_query.test.d.ts +1 -0
  30. package/dist/test/13.staking_query.test.js +209 -0
  31. package/dist/test/14.distribution_tx.test.d.ts +1 -0
  32. package/dist/test/14.distribution_tx.test.js +179 -0
  33. package/dist/test/15.distribution_query.test.d.ts +1 -0
  34. package/dist/test/15.distribution_query.test.js +219 -0
  35. package/dist/test/16.gov_tx.test.d.ts +1 -0
  36. package/dist/test/16.gov_tx.test.js +240 -0
  37. package/dist/test/17.gov_query.test.d.ts +1 -0
  38. package/dist/test/17.gov_query.test.js +118 -0
  39. package/dist/test/18.util.test.d.ts +1 -0
  40. package/dist/test/18.util.test.js +246 -0
  41. package/dist/test/19.chain.test.d.ts +1 -0
  42. package/dist/test/19.chain.test.js +81 -0
  43. package/dist/test/20.slashing_query.test.d.ts +1 -0
  44. package/dist/test/20.slashing_query.test.js +82 -0
  45. package/dist/test/21.token_tx.test.d.ts +1 -0
  46. package/dist/test/21.token_tx.test.js +157 -0
  47. package/dist/test/22.token_query.test.d.ts +1 -0
  48. package/dist/test/22.token_query.test.js +99 -0
  49. package/dist/test/23.authz_tx.test.d.ts +1 -0
  50. package/dist/test/23.authz_tx.test.js +471 -0
  51. package/dist/test/24.authz_query.test.d.ts +1 -0
  52. package/dist/test/24.authz_query.test.js +143 -0
  53. package/dist/test/25.cosmwasm_tx.test.d.ts +1 -0
  54. package/dist/test/25.cosmwasm_tx.test.js +191 -0
  55. package/dist/test/26.cosmwasm_query.test.d.ts +1 -0
  56. package/dist/test/26.cosmwasm_query.test.js +169 -0
  57. package/dist/test/27.arbitary_sign.test.d.ts +1 -0
  58. package/dist/test/27.arbitary_sign.test.js +167 -0
  59. package/dist/test/28.ibc_tx.test.d.ts +1 -0
  60. package/dist/test/28.ibc_tx.test.js +86 -0
  61. package/dist/test/29.mint_query.test.d.ts +1 -0
  62. package/dist/test/29.mint_query.test.js +57 -0
  63. package/dist/test/30.cw20_tx.test.d.ts +1 -0
  64. package/dist/test/30.cw20_tx.test.js +515 -0
  65. package/dist/test/31.cw20_query.test.d.ts +1 -0
  66. package/dist/test/31.cw20_query.test.js +187 -0
  67. package/dist/test/32.cw721_tx.test.d.ts +1 -0
  68. package/dist/test/32.cw721_tx.test.js +433 -0
  69. package/dist/test/33.cw721_query.test.d.ts +1 -0
  70. package/dist/test/33.cw721_query.test.js +219 -0
  71. package/dist/test/34.cw_bridge_tx.test.d.ts +1 -0
  72. package/dist/test/34.cw_bridge_tx.test.js +365 -0
  73. package/dist/test/35.cw_bridge_tx_low.test.d.ts +1 -0
  74. package/dist/test/35.cw_bridge_tx_low.test.js +258 -0
  75. package/dist/test/36.cw_bridge_query.test.d.ts +1 -0
  76. package/dist/test/36.cw_bridge_query.test.js +182 -0
  77. package/dist/test/37.cw_marketplace_tx.test.d.ts +1 -0
  78. package/dist/test/37.cw_marketplace_tx.test.js +794 -0
  79. package/dist/test/38.cw_marketplace_query.test.d.ts +1 -0
  80. package/dist/test/38.cw_marketplace_query.test.js +128 -0
  81. package/dist/test/config_test.d.ts +5 -0
  82. package/dist/test/config_test.js +20 -0
  83. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (_) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ var chai_1 = require("chai");
40
+ var FirmaSDK_1 = require("../sdk/FirmaSDK");
41
+ var config_test_1 = require("./config_test");
42
+ describe('[09. IPFS Test]', function () {
43
+ var firma;
44
+ beforeEach(function () {
45
+ firma = new FirmaSDK_1.FirmaSDK(config_test_1.TestChainConfig);
46
+ });
47
+ it('ipfs test', function () { return __awaiter(void 0, void 0, void 0, function () {
48
+ var hash, ee, hash, url, srcUrl;
49
+ return __generator(this, function (_a) {
50
+ switch (_a.label) {
51
+ case 0: return [4 /*yield*/, firma.Ipfs.addJson("hello world")];
52
+ case 1:
53
+ hash = _a.sent();
54
+ chai_1.expect(hash).to.equal("Qmf412jQZiuVUtdgnB36FXFX7xg5V6KEbSJ4dpQuhkLyfD");
55
+ ee = new ArrayBuffer(1000);
56
+ return [4 /*yield*/, firma.Ipfs.addBuffer(ee)];
57
+ case 2:
58
+ hash = _a.sent();
59
+ url = firma.Ipfs.getURLFromHash(hash);
60
+ srcUrl = firma.Config.ipfsWebApiAddress + "/ipfs/QmVRqQTWMy2gNtNd8i9ugz8STaoZmFGYg6fn5YyEBHp9Be";
61
+ chai_1.expect(srcUrl).to.equal(url);
62
+ return [4 /*yield*/, firma.Ipfs.addFile("./test/sample/test-bear.jpg")];
63
+ case 3:
64
+ hash = _a.sent();
65
+ url = firma.Ipfs.getURLFromHash(hash);
66
+ srcUrl = firma.Config.ipfsWebApiAddress + "/ipfs/QmYsezxzunake9EmyoU4HsWKEyHQLgE3syTEpTSQEhNChA";
67
+ chai_1.expect(srcUrl).to.equal(url);
68
+ return [2 /*return*/];
69
+ }
70
+ });
71
+ }); });
72
+ });
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,177 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (_) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ var chai_1 = require("chai");
40
+ var nft_1 = require("../sdk/firmachain/nft");
41
+ var FirmaSDK_1 = require("../sdk/FirmaSDK");
42
+ var config_test_1 = require("./config_test");
43
+ describe('[10. NFT Tx Test]', function () {
44
+ var firma;
45
+ beforeEach(function () {
46
+ firma = new FirmaSDK_1.FirmaSDK(config_test_1.TestChainConfig);
47
+ });
48
+ it('NFT Mint', function () { return __awaiter(void 0, void 0, void 0, function () {
49
+ var wallet, result, jsonData, nftId;
50
+ return __generator(this, function (_a) {
51
+ switch (_a.label) {
52
+ case 0: return [4 /*yield*/, firma.Wallet.fromMnemonic(config_test_1.aliceMnemonic)];
53
+ case 1:
54
+ wallet = _a.sent();
55
+ return [4 /*yield*/, firma.Nft.mint(wallet, "https://naver.com")];
56
+ case 2:
57
+ result = _a.sent();
58
+ jsonData = JSON.parse(result.rawLog);
59
+ nftId = jsonData[0]["events"][0]["attributes"][2]["value"];
60
+ chai_1.expect(result.code).to.be.equal(0);
61
+ return [2 /*return*/];
62
+ }
63
+ });
64
+ }); });
65
+ it('NFT Mint - BULK', function () { return __awaiter(void 0, void 0, void 0, function () {
66
+ var wallet, address, tx1, tx2, tx3, txList, gas, fee, result, jsonData, nftId;
67
+ return __generator(this, function (_a) {
68
+ switch (_a.label) {
69
+ case 0: return [4 /*yield*/, firma.Wallet.fromMnemonic(config_test_1.aliceMnemonic)];
70
+ case 1:
71
+ wallet = _a.sent();
72
+ return [4 /*yield*/, wallet.getAddress()];
73
+ case 2:
74
+ address = _a.sent();
75
+ return [4 /*yield*/, firma.Nft.getUnsignedTxMint(wallet, "https://naver1.com")];
76
+ case 3:
77
+ tx1 = _a.sent();
78
+ return [4 /*yield*/, firma.Nft.getUnsignedTxMint(wallet, "https://naver2.com")];
79
+ case 4:
80
+ tx2 = _a.sent();
81
+ return [4 /*yield*/, firma.Nft.getUnsignedTxMint(wallet, "https://naver3.com")];
82
+ case 5:
83
+ tx3 = _a.sent();
84
+ txList = [tx1, tx2, tx3, tx1, tx2, tx3, tx1, tx2, tx3, tx1, tx2, tx3];
85
+ return [4 /*yield*/, firma.Nft.getGasEstimationFromEncodeObject(wallet, txList)];
86
+ case 6:
87
+ gas = _a.sent();
88
+ fee = Math.ceil(gas * 0.1);
89
+ console.log("gas :" + gas);
90
+ console.log("fee :" + fee);
91
+ return [4 /*yield*/, firma.Nft.signAndBroadcast(wallet, txList, { gas: gas, fee: fee })];
92
+ case 7:
93
+ result = _a.sent();
94
+ jsonData = JSON.parse(result.rawLog);
95
+ nftId = jsonData[0]["events"][0]["attributes"][2]["value"];
96
+ //console.log(nftId);
97
+ chai_1.expect(result.code).to.be.equal(0);
98
+ return [2 /*return*/];
99
+ }
100
+ });
101
+ }); });
102
+ it('NFT Mint - BULK low level', function () { return __awaiter(void 0, void 0, void 0, function () {
103
+ var wallet, address, tx1, tx2, tx3, txList, gas, fee, result, jsonData, nftId;
104
+ return __generator(this, function (_a) {
105
+ switch (_a.label) {
106
+ case 0: return [4 /*yield*/, firma.Wallet.fromMnemonic(config_test_1.aliceMnemonic)];
107
+ case 1:
108
+ wallet = _a.sent();
109
+ return [4 /*yield*/, wallet.getAddress()];
110
+ case 2:
111
+ address = _a.sent();
112
+ tx1 = nft_1.NftTxClient.msgMint({ owner: address, tokenURI: "https://naver1.com" });
113
+ tx2 = nft_1.NftTxClient.msgMint({ owner: address, tokenURI: "https://naver2.com" });
114
+ tx3 = nft_1.NftTxClient.msgMint({ owner: address, tokenURI: "https://naver3.com" });
115
+ txList = [tx1, tx2, tx3, tx1, tx2, tx3, tx1, tx2, tx3, tx1, tx2, tx3];
116
+ return [4 /*yield*/, firma.Nft.getGasEstimationFromEncodeObject(wallet, txList)];
117
+ case 3:
118
+ gas = _a.sent();
119
+ fee = Math.ceil(gas * 0.1);
120
+ return [4 /*yield*/, firma.Nft.signAndBroadcast(wallet, txList, { gas: gas, fee: fee })];
121
+ case 4:
122
+ result = _a.sent();
123
+ jsonData = JSON.parse(result.rawLog);
124
+ nftId = jsonData[0]["events"][0]["attributes"][2]["value"];
125
+ //console.log(nftId);
126
+ chai_1.expect(result.code).to.be.equal(0);
127
+ return [2 /*return*/];
128
+ }
129
+ });
130
+ }); });
131
+ it('NFT Transfer', function () { return __awaiter(void 0, void 0, void 0, function () {
132
+ var wallet, targetWallet, result, jsonData, nftId, result, _a, _b, _c;
133
+ return __generator(this, function (_d) {
134
+ switch (_d.label) {
135
+ case 0: return [4 /*yield*/, firma.Wallet.fromMnemonic(config_test_1.aliceMnemonic)];
136
+ case 1:
137
+ wallet = _d.sent();
138
+ return [4 /*yield*/, firma.Wallet.fromMnemonic(config_test_1.bobMnemonic)];
139
+ case 2:
140
+ targetWallet = _d.sent();
141
+ return [4 /*yield*/, firma.Nft.mint(wallet, "https://naver.com")];
142
+ case 3:
143
+ result = _d.sent();
144
+ jsonData = JSON.parse(result.rawLog);
145
+ nftId = jsonData[0]["events"][0]["attributes"][2]["value"];
146
+ _b = (_a = firma.Nft).transfer;
147
+ _c = [wallet];
148
+ return [4 /*yield*/, targetWallet.getAddress()];
149
+ case 4: return [4 /*yield*/, _b.apply(_a, _c.concat([_d.sent(), nftId]))];
150
+ case 5:
151
+ result = _d.sent();
152
+ chai_1.expect(result.code).to.be.equal(0);
153
+ return [2 /*return*/];
154
+ }
155
+ });
156
+ }); });
157
+ it('NFT Burn', function () { return __awaiter(void 0, void 0, void 0, function () {
158
+ var wallet, result, jsonData, nftId, result;
159
+ return __generator(this, function (_a) {
160
+ switch (_a.label) {
161
+ case 0: return [4 /*yield*/, firma.Wallet.fromMnemonic(config_test_1.aliceMnemonic)];
162
+ case 1:
163
+ wallet = _a.sent();
164
+ return [4 /*yield*/, firma.Nft.mint(wallet, "https://naver.com")];
165
+ case 2:
166
+ result = _a.sent();
167
+ jsonData = JSON.parse(result.rawLog);
168
+ nftId = jsonData[0]["events"][0]["attributes"][2]["value"];
169
+ return [4 /*yield*/, firma.Nft.burn(wallet, nftId)];
170
+ case 3:
171
+ result = _a.sent();
172
+ chai_1.expect(result.code).to.be.equal(0);
173
+ return [2 /*return*/];
174
+ }
175
+ });
176
+ }); });
177
+ });
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,170 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (_) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ var chai_1 = require("chai");
40
+ var FirmaSDK_1 = require("../sdk/FirmaSDK");
41
+ var config_test_1 = require("./config_test");
42
+ describe('[11. NFT Query Test]', function () {
43
+ var firma;
44
+ beforeEach(function () {
45
+ firma = new FirmaSDK_1.FirmaSDK(config_test_1.TestChainConfig);
46
+ });
47
+ it('NFT getBalanceOf', function () { return __awaiter(void 0, void 0, void 0, function () {
48
+ var wallet, totalNft, _a, _b;
49
+ return __generator(this, function (_c) {
50
+ switch (_c.label) {
51
+ case 0: return [4 /*yield*/, firma.Wallet.fromMnemonic(config_test_1.aliceMnemonic)];
52
+ case 1:
53
+ wallet = _c.sent();
54
+ _b = (_a = firma.Nft).getBalanceOf;
55
+ return [4 /*yield*/, wallet.getAddress()];
56
+ case 2: return [4 /*yield*/, _b.apply(_a, [(_c.sent())])];
57
+ case 3:
58
+ totalNft = _c.sent();
59
+ chai_1.expect(totalNft).to.be.equal(totalNft);
60
+ chai_1.expect(totalNft).to.be.greaterThan(0);
61
+ return [2 /*return*/];
62
+ }
63
+ });
64
+ }); });
65
+ it('NFT getNftIdListOfOwner', function () { return __awaiter(void 0, void 0, void 0, function () {
66
+ var wallet, result, _a, _b;
67
+ return __generator(this, function (_c) {
68
+ switch (_c.label) {
69
+ case 0: return [4 /*yield*/, firma.Wallet.fromMnemonic(config_test_1.aliceMnemonic)];
70
+ case 1:
71
+ wallet = _c.sent();
72
+ _b = (_a = firma.Nft).getNftIdListOfOwner;
73
+ return [4 /*yield*/, wallet.getAddress()];
74
+ case 2: return [4 /*yield*/, _b.apply(_a, [_c.sent()])];
75
+ case 3:
76
+ result = _c.sent();
77
+ chai_1.expect(result.nftIdList.length).to.be.greaterThan(0);
78
+ return [2 /*return*/];
79
+ }
80
+ });
81
+ }); });
82
+ it('NFT getNftItemAllFromAddress-Pagination', function () { return __awaiter(void 0, void 0, void 0, function () {
83
+ var wallet, address, result, total, current;
84
+ return __generator(this, function (_a) {
85
+ switch (_a.label) {
86
+ case 0: return [4 /*yield*/, firma.Wallet.fromMnemonic(config_test_1.aliceMnemonic)];
87
+ case 1:
88
+ wallet = _a.sent();
89
+ return [4 /*yield*/, wallet.getAddress()];
90
+ case 2:
91
+ address = _a.sent();
92
+ return [4 /*yield*/, firma.Nft.getNftItemAllFromAddress(address)];
93
+ case 3:
94
+ result = _a.sent();
95
+ total = result.pagination.total;
96
+ current = result.dataList.length;
97
+ _a.label = 4;
98
+ case 4:
99
+ if (!(result.pagination.next_key != "" && result.pagination.next_key != null)) return [3 /*break*/, 6];
100
+ return [4 /*yield*/, firma.Nft.getNftItemAllFromAddress(address, result.pagination.next_key)];
101
+ case 5:
102
+ result = _a.sent();
103
+ current += result.dataList.length;
104
+ return [3 /*break*/, 4];
105
+ case 6:
106
+ chai_1.expect(current).to.be.equal(total);
107
+ return [2 /*return*/];
108
+ }
109
+ });
110
+ }); });
111
+ it('NFT getNftItemAllFromAddress', function () { return __awaiter(void 0, void 0, void 0, function () {
112
+ var wallet, nftItemList, _a, _b;
113
+ return __generator(this, function (_c) {
114
+ switch (_c.label) {
115
+ case 0: return [4 /*yield*/, firma.Wallet.fromMnemonic(config_test_1.aliceMnemonic)];
116
+ case 1:
117
+ wallet = _c.sent();
118
+ _b = (_a = firma.Nft).getNftItemAllFromAddress;
119
+ return [4 /*yield*/, wallet.getAddress()];
120
+ case 2: return [4 /*yield*/, _b.apply(_a, [_c.sent()])];
121
+ case 3:
122
+ nftItemList = _c.sent();
123
+ chai_1.expect(nftItemList.dataList.length).to.be.greaterThan(0);
124
+ return [2 /*return*/];
125
+ }
126
+ });
127
+ }); });
128
+ it('NFT getNftItemAll-pagination', function () { return __awaiter(void 0, void 0, void 0, function () {
129
+ var result, total, totalItemList, index, i, i;
130
+ return __generator(this, function (_a) {
131
+ switch (_a.label) {
132
+ case 0: return [4 /*yield*/, firma.Nft.getNftItemAll()];
133
+ case 1:
134
+ result = _a.sent();
135
+ total = result.pagination.total;
136
+ totalItemList = [];
137
+ index = 0;
138
+ _a.label = 2;
139
+ case 2:
140
+ if (!(result.pagination.next_key != null)) return [3 /*break*/, 4];
141
+ for (i = 0; i < result.dataList.length; i++) {
142
+ totalItemList[index++] = result.dataList[i];
143
+ }
144
+ return [4 /*yield*/, firma.Nft.getNftItemAll(result.pagination.next_key)];
145
+ case 3:
146
+ result = _a.sent();
147
+ return [3 /*break*/, 2];
148
+ case 4:
149
+ for (i = 0; i < result.dataList.length; i++) {
150
+ totalItemList[index++] = result.dataList[i];
151
+ }
152
+ chai_1.expect(totalItemList.length).to.be.equal(total);
153
+ return [2 /*return*/];
154
+ }
155
+ });
156
+ }); });
157
+ it('NFT getNftItemAll', function () { return __awaiter(void 0, void 0, void 0, function () {
158
+ var result;
159
+ return __generator(this, function (_a) {
160
+ switch (_a.label) {
161
+ case 0: return [4 /*yield*/, firma.Nft.getNftItemAll()];
162
+ case 1:
163
+ result = _a.sent();
164
+ chai_1.expect(result.dataList.length).to.be.equal(result.dataList.length);
165
+ chai_1.expect(result.dataList.length).to.be.greaterThan(0);
166
+ return [2 /*return*/];
167
+ }
168
+ });
169
+ }); });
170
+ });
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,216 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (_) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ var chai_1 = require("chai");
40
+ var FirmaSDK_1 = require("../sdk/FirmaSDK");
41
+ var FirmaUtil_1 = require("../sdk/FirmaUtil");
42
+ var config_test_1 = require("./config_test");
43
+ describe('[12. Staking Tx Test]', function () {
44
+ var firma;
45
+ beforeEach(function () {
46
+ firma = new FirmaSDK_1.FirmaSDK(config_test_1.TestChainConfig);
47
+ });
48
+ it('delegate OK', function () { return __awaiter(void 0, void 0, void 0, function () {
49
+ var wallet, validatorWallet, validatorAddress, _a, _b, amountFCT, result;
50
+ return __generator(this, function (_c) {
51
+ switch (_c.label) {
52
+ case 0: return [4 /*yield*/, firma.Wallet.fromMnemonic(config_test_1.aliceMnemonic)];
53
+ case 1:
54
+ wallet = _c.sent();
55
+ return [4 /*yield*/, firma.Wallet.fromMnemonic(config_test_1.validatorMnemonic)];
56
+ case 2:
57
+ validatorWallet = _c.sent();
58
+ _b = (_a = FirmaUtil_1.FirmaUtil).getValOperAddressFromAccAddress;
59
+ return [4 /*yield*/, validatorWallet.getAddress()];
60
+ case 3:
61
+ validatorAddress = _b.apply(_a, [_c.sent()]);
62
+ amountFCT = 60;
63
+ return [4 /*yield*/, firma.Staking.delegate(wallet, validatorAddress, amountFCT)];
64
+ case 4:
65
+ result = _c.sent();
66
+ //console.log(result);
67
+ chai_1.expect(result.code).to.equal(0);
68
+ return [2 /*return*/];
69
+ }
70
+ });
71
+ }); });
72
+ it('undelegate OK', function () { return __awaiter(void 0, void 0, void 0, function () {
73
+ var wallet, validatorWallet, validatorAddress, _a, _b, amount, result;
74
+ return __generator(this, function (_c) {
75
+ switch (_c.label) {
76
+ case 0: return [4 /*yield*/, firma.Wallet.fromMnemonic(config_test_1.aliceMnemonic)];
77
+ case 1:
78
+ wallet = _c.sent();
79
+ return [4 /*yield*/, firma.Wallet.fromMnemonic(config_test_1.validatorMnemonic)];
80
+ case 2:
81
+ validatorWallet = _c.sent();
82
+ _b = (_a = FirmaUtil_1.FirmaUtil).getValOperAddressFromAccAddress;
83
+ return [4 /*yield*/, validatorWallet.getAddress()];
84
+ case 3:
85
+ validatorAddress = _b.apply(_a, [_c.sent()]);
86
+ amount = 5;
87
+ return [4 /*yield*/, firma.Staking.undelegate(wallet, validatorAddress, amount)];
88
+ case 4:
89
+ result = _c.sent();
90
+ chai_1.expect(result.code).to.equal(0);
91
+ return [2 /*return*/];
92
+ }
93
+ });
94
+ }); });
95
+ it('redelegate OK', function () { return __awaiter(void 0, void 0, void 0, function () {
96
+ var wallet, validatorList, srcValidatorAddress, dstValidatorAddress, amount, result, result1;
97
+ return __generator(this, function (_a) {
98
+ switch (_a.label) {
99
+ case 0: return [4 /*yield*/, firma.Wallet.fromMnemonic(config_test_1.aliceMnemonic)];
100
+ case 1:
101
+ wallet = _a.sent();
102
+ return [4 /*yield*/, firma.Staking.getValidatorList()];
103
+ case 2:
104
+ validatorList = (_a.sent()).dataList;
105
+ if (validatorList.length < 2)
106
+ return [2 /*return*/];
107
+ srcValidatorAddress = validatorList[0].operator_address;
108
+ dstValidatorAddress = validatorList[1].operator_address;
109
+ amount = 10;
110
+ return [4 /*yield*/, firma.Staking.delegate(wallet, srcValidatorAddress, amount)];
111
+ case 3:
112
+ result = _a.sent();
113
+ chai_1.expect(result.code).to.equal(0);
114
+ return [4 /*yield*/, firma.Staking.redelegate(wallet, srcValidatorAddress, dstValidatorAddress, amount, { gas: 300000, fee: 30000 })];
115
+ case 4:
116
+ result1 = _a.sent();
117
+ chai_1.expect(result1.code).to.equal(0);
118
+ return [2 /*return*/];
119
+ }
120
+ });
121
+ }); });
122
+ // new case added. if succeed, the dapp needs to prevent zero amount input from users.
123
+ it('staking send Fail - send zero money', function () { return __awaiter(void 0, void 0, void 0, function () {
124
+ var wallet, validatorWallet, validatorAddress, _a, _b, amount, result, error_1;
125
+ return __generator(this, function (_c) {
126
+ switch (_c.label) {
127
+ case 0: return [4 /*yield*/, firma.Wallet.fromMnemonic(config_test_1.aliceMnemonic)];
128
+ case 1:
129
+ wallet = _c.sent();
130
+ return [4 /*yield*/, firma.Wallet.fromMnemonic(config_test_1.validatorMnemonic)];
131
+ case 2:
132
+ validatorWallet = _c.sent();
133
+ _b = (_a = FirmaUtil_1.FirmaUtil).getValOperAddressFromAccAddress;
134
+ return [4 /*yield*/, validatorWallet.getAddress()];
135
+ case 3:
136
+ validatorAddress = _b.apply(_a, [_c.sent()]);
137
+ amount = 0;
138
+ _c.label = 4;
139
+ case 4:
140
+ _c.trys.push([4, 6, , 7]);
141
+ return [4 /*yield*/, firma.Staking.delegate(wallet, validatorAddress, amount)];
142
+ case 5:
143
+ result = _c.sent();
144
+ return [3 /*break*/, 7];
145
+ case 6:
146
+ error_1 = _c.sent();
147
+ return [3 /*break*/, 7];
148
+ case 7: return [2 /*return*/];
149
+ }
150
+ });
151
+ }); });
152
+ it('staking send Fail - send lots of money', function () { return __awaiter(void 0, void 0, void 0, function () {
153
+ var wallet, validatorWallet, validatorAddress, _a, _b, amount, result;
154
+ return __generator(this, function (_c) {
155
+ switch (_c.label) {
156
+ case 0: return [4 /*yield*/, firma.Wallet.fromMnemonic(config_test_1.aliceMnemonic)];
157
+ case 1:
158
+ wallet = _c.sent();
159
+ return [4 /*yield*/, firma.Wallet.fromMnemonic(config_test_1.validatorMnemonic)];
160
+ case 2:
161
+ validatorWallet = _c.sent();
162
+ _b = (_a = FirmaUtil_1.FirmaUtil).getValOperAddressFromAccAddress;
163
+ return [4 /*yield*/, validatorWallet.getAddress()];
164
+ case 3:
165
+ validatorAddress = _b.apply(_a, [_c.sent()]);
166
+ amount = 20000000000000;
167
+ return [4 /*yield*/, firma.Staking.delegate(wallet, validatorAddress, amount)];
168
+ case 4:
169
+ result = _c.sent();
170
+ // error code 5 : not enough money.
171
+ chai_1.expect(result.code).to.equal(5);
172
+ return [2 /*return*/];
173
+ }
174
+ });
175
+ }); });
176
+ // NOTICE: not decide to include firma.js spec
177
+ it.skip('editValidator OK', function () { return __awaiter(void 0, void 0, void 0, function () {
178
+ var wallet, validatorWallet, validatorAddress, _a, _b, inputPercentage, fixed, count, number, per, per1, fianlper, commissionRate, minSelfDelegation, description, result;
179
+ return __generator(this, function (_c) {
180
+ switch (_c.label) {
181
+ case 0: return [4 /*yield*/, firma.Wallet.fromMnemonic(config_test_1.validatorMnemonic)];
182
+ case 1:
183
+ wallet = _c.sent();
184
+ return [4 /*yield*/, firma.Wallet.fromMnemonic(config_test_1.validatorMnemonic)];
185
+ case 2:
186
+ validatorWallet = _c.sent();
187
+ _b = (_a = FirmaUtil_1.FirmaUtil).getValOperAddressFromAccAddress;
188
+ return [4 /*yield*/, validatorWallet.getAddress()];
189
+ case 3:
190
+ validatorAddress = _b.apply(_a, [_c.sent()]);
191
+ inputPercentage = 0.098767;
192
+ fixed = 4;
193
+ count = Math.pow(10, fixed);
194
+ number = Math.floor(inputPercentage * count) / count;
195
+ per = number.toFixed(fixed) // fill 0
196
+ ;
197
+ per1 = Number.parseFloat(per) * 10000;
198
+ fianlper = per1.toFixed(0);
199
+ commissionRate = fianlper + "00000000000000";
200
+ minSelfDelegation = "100000";
201
+ description = {
202
+ moniker: "firma-node-3(gom)",
203
+ identity: "",
204
+ website: "https://naver.com",
205
+ securityContact: "fly33499@gmail.com",
206
+ details: "we're now testing to edit validator info"
207
+ };
208
+ return [4 /*yield*/, firma.Staking.editValidator(wallet, validatorAddress, description, commissionRate, minSelfDelegation)];
209
+ case 4:
210
+ result = _c.sent();
211
+ chai_1.expect(result.code).to.equal(0);
212
+ return [2 /*return*/];
213
+ }
214
+ });
215
+ }); });
216
+ });
@@ -0,0 +1 @@
1
+ export {};