Skip to content

Commit 74bbbf6

Browse files
authored
Merge pull request #368 from textileio/asutula/pow-2.3.1
Pow 2.3.1
2 parents d131758 + ce4effc commit 74bbbf6

File tree

14 files changed

+1937
-1924
lines changed

14 files changed

+1937
-1924
lines changed

.eslintrc.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
"parser": "@typescript-eslint/parser",
33
"extends": [
44
"plugin:@typescript-eslint/recommended",
5-
"prettier/@typescript-eslint",
6-
"plugin:prettier/recommended"
5+
"plugin:prettier/recommended",
6+
"prettier"
77
],
88
"parserOptions": {
99
"ecmaVersion": 2020,

package-lock.json

+1,655-1,870
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

+24-24
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
"docs": "npx -p typescript -p typedoc@next typedoc --plugin none --mode library --out docs --excludeNotExported --includeDeclarations --ignoreCompilerErrors src/index.ts",
1919
"docs:test": "npm run docs:clean && npm run docs:md && npm run docs:verify",
2020
"docs:clean": "rm -rf docs",
21-
"docs:md": "typedoc --plugin typedoc-plugin-markdown",
21+
"docs:md": "typedoc --plugin typedoc-plugin-markdown src/index.ts",
2222
"docs:verify": "typescript-docs-verifier --input-files=`find docs -type f -name '**.md'`",
2323
"localnet:up": "cd powergate-docker && make localnet",
2424
"localnet:down": "cd powergate-docker && make localnet-down",
@@ -34,43 +34,43 @@
3434
"author": "Textile <contact@textile.io>",
3535
"license": "MIT",
3636
"devDependencies": {
37-
"@commitlint/cli": "^11.0.0",
38-
"@commitlint/config-conventional": "^11.0.0",
39-
"@types/chai": "^4.2.12",
37+
"@commitlint/cli": "^12.0.1",
38+
"@commitlint/config-conventional": "^12.0.1",
39+
"@types/chai": "^4.2.15",
4040
"@types/dirty-chai": "^2.0.2",
41-
"@types/mocha": "^8.0.3",
42-
"@types/node": "^14.11.2",
43-
"@typescript-eslint/eslint-plugin": "^4.3.0",
44-
"@typescript-eslint/parser": "^4.3.0",
45-
"chai": "^4.2.0",
41+
"@types/mocha": "^8.2.1",
42+
"@types/node": "^14.14.34",
43+
"@typescript-eslint/eslint-plugin": "^4.18.0",
44+
"@typescript-eslint/parser": "^4.18.0",
45+
"chai": "^4.3.4",
4646
"dirty-chai": "^2.0.1",
47-
"eslint": "^7.10.0",
48-
"eslint-config-prettier": "^6.12.0",
49-
"eslint-plugin-prettier": "^3.1.4",
50-
"husky": "^4.3.0",
47+
"eslint": "^7.22.0",
48+
"eslint-config-prettier": "^8.1.0",
49+
"eslint-plugin-prettier": "^3.3.1",
50+
"husky": "^5.1.3",
5151
"json": "^10.0.0",
52-
"mocha": "^8.1.3",
52+
"mocha": "^8.3.2",
5353
"polendina": "^1.1.0",
54-
"prettier": "^2.1.2",
54+
"prettier": "^2.2.1",
5555
"prettier-plugin-organize-imports": "^1.1.1",
5656
"rimraf": "^3.0.2",
5757
"touch": "^3.1.0",
58-
"ts-loader": "^8.0.4",
59-
"ts-node": "^9.0.0",
60-
"typedoc": "^0.19.2",
61-
"typedoc-plugin-markdown": "^3.0.3",
62-
"typescript": "^4.0.3",
63-
"typescript-docs-verifier": "^1.1.2",
64-
"wait-on": "^5.2.0"
58+
"ts-loader": "^8.0.18",
59+
"ts-node": "^9.1.1",
60+
"typedoc": "^0.20.32",
61+
"typedoc-plugin-markdown": "^3.6.0",
62+
"typescript": "^4.2.3",
63+
"typescript-docs-verifier": "^1.1.3",
64+
"wait-on": "^5.2.1"
6565
},
6666
"husky": {
6767
"hooks": {
6868
"commit-msg": "commitlint -E HUSKY_GIT_PARAMS"
6969
}
7070
},
7171
"dependencies": {
72-
"@textile/grpc-powergate-client": "2.0.0",
73-
"@textile/grpc-transport": "0.0.3",
72+
"@textile/grpc-powergate-client": "2.3.1",
73+
"@textile/grpc-transport": "^0.4.0",
7474
"ipfs-http-client": "^47.0.1",
7575
"it-block": "^2.0.0"
7676
}

src/admin/data/index.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import { AdminServiceClient } from "@textile/grpc-powergate-client/dist/powergat
99
import { Config } from "../../types"
1010
import { promise } from "../../util"
1111

12-
export interface Data {
12+
export interface AdminData {
1313
/**
1414
* Unpins staged data not related to queued or executing jobs.
1515
* @returns An object containing a list of unpinned cids.
@@ -26,7 +26,7 @@ export interface Data {
2626
/**
2727
* @ignore
2828
*/
29-
export const createData = (config: Config, getMeta: () => grpc.Metadata): Data => {
29+
export const createData = (config: Config, getMeta: () => grpc.Metadata): AdminData => {
3030
const client = new AdminServiceClient(config.host, config)
3131
return {
3232
gcStaged: () => {

src/admin/index.ts

+35-11
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,59 @@
11
import { grpc } from "@improbable-eng/grpc-web"
22
import { Config } from "../types"
3-
import { createData, Data } from "./data"
4-
import { createStorageInfo, StorageInfo } from "./storage-info"
5-
import { createStorageJobs, StorageJobs } from "./storage-jobs"
6-
import { createUsers, Users } from "./users"
7-
import { createWallet, Wallet } from "./wallet"
8-
export { Users, StorageJobs, Wallet, StorageInfo }
3+
import { AdminData, createData } from "./data"
4+
import { AdminGetMinersOptions, AdminIndices, createIndices } from "./indices"
5+
import { AdminRecords, createRecords } from "./records"
6+
import { AdminStorageInfo, createStorageInfo } from "./storage-info"
7+
import { AdminListOptions, AdminStorageJobs, createStorageJobs } from "./storage-jobs"
8+
import { AdminUsers, createUsers } from "./users"
9+
import { AdminWallet, createWallet } from "./wallet"
10+
export {
11+
AdminUsers,
12+
AdminStorageJobs,
13+
AdminWallet,
14+
AdminStorageInfo,
15+
AdminGetMinersOptions,
16+
AdminListOptions,
17+
AdminData,
18+
AdminIndices,
19+
AdminRecords,
20+
}
921

1022
export interface Admin {
1123
/**
1224
* The admin Data API.
1325
*/
14-
data: Data
26+
data: AdminData
27+
28+
/**
29+
* The admin Records API.
30+
*/
31+
records: AdminRecords
32+
33+
/**
34+
* The admin Indices API.
35+
*/
36+
indices: AdminIndices
1537

1638
/**
1739
* The admin Users API.
1840
*/
19-
users: Users
41+
users: AdminUsers
2042

2143
/**
2244
* The admin Wallet API.
2345
*/
24-
wallet: Wallet
46+
wallet: AdminWallet
2547

2648
/**
2749
* The admin StorageInfo API.
2850
*/
29-
storageInfo: StorageInfo
51+
storageInfo: AdminStorageInfo
3052

3153
/**
3254
* The admin Storage Jobs API.
3355
*/
34-
storageJobs: StorageJobs
56+
storageJobs: AdminStorageJobs
3557
}
3658

3759
/**
@@ -40,6 +62,8 @@ export interface Admin {
4062
export const createAdmin = (config: Config, getMeta: () => grpc.Metadata): Admin => {
4163
return {
4264
data: createData(config, getMeta),
65+
records: createRecords(config, getMeta),
66+
indices: createIndices(config, getMeta),
4367
users: createUsers(config, getMeta),
4468
wallet: createWallet(config, getMeta),
4569
storageInfo: createStorageInfo(config, getMeta),

src/admin/indices/index.ts

+57
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
import { grpc } from "@improbable-eng/grpc-web"
2+
import {
3+
GetMinerInfoRequest,
4+
GetMinerInfoResponse,
5+
GetMinersRequest,
6+
GetMinersResponse,
7+
} from "@textile/grpc-powergate-client/dist/powergate/admin/v1/admin_pb"
8+
import { AdminServiceClient } from "@textile/grpc-powergate-client/dist/powergate/admin/v1/admin_pb_service"
9+
import { Config } from "../../types"
10+
import { promise } from "../../util"
11+
import { AdminGetMinersOptions } from "./types"
12+
13+
export { AdminGetMinersOptions }
14+
15+
export interface AdminIndices {
16+
/**
17+
* Gets a list of miner addresses that satisfies the provided filters.
18+
* @returns An object containing a list of miner addresses.
19+
*/
20+
getMiners: (opts?: AdminGetMinersOptions) => Promise<GetMinersResponse.AsObject>
21+
22+
/**
23+
* Gets all known indices data for the provided miner addresses.
24+
* @returns An object containing a list of miner info.
25+
*/
26+
getMinerInfo: (...miners: string[]) => Promise<GetMinerInfoResponse.AsObject>
27+
}
28+
29+
/**
30+
* @ignore
31+
*/
32+
export const createIndices = (config: Config, getMeta: () => grpc.Metadata): AdminIndices => {
33+
const client = new AdminServiceClient(config.host, config)
34+
return {
35+
getMiners: (opts?: AdminGetMinersOptions) => {
36+
const req = new GetMinersRequest()
37+
if (opts?.withPower) {
38+
req.setWithPower(opts.withPower)
39+
}
40+
return promise(
41+
(cb) => client.getMiners(req, getMeta(), cb),
42+
(resp: GetMinersResponse) => resp.toObject(),
43+
)
44+
},
45+
46+
getMinerInfo: (...miners: string[]) => {
47+
const req = new GetMinerInfoRequest()
48+
if (miners) {
49+
req.setMinersList(miners)
50+
}
51+
return promise(
52+
(cb) => client.getMinerInfo(req, getMeta(), cb),
53+
(resp: GetMinerInfoResponse) => resp.toObject(),
54+
)
55+
},
56+
}
57+
}

src/admin/indices/types.ts

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
export interface AdminGetMinersOptions {
2+
withPower?: boolean
3+
}

src/admin/records/index.ts

+63
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
import { grpc } from "@improbable-eng/grpc-web"
2+
import {
3+
GetUpdatedRetrievalRecordsSinceRequest,
4+
GetUpdatedRetrievalRecordsSinceResponse,
5+
GetUpdatedStorageDealRecordsSinceRequest,
6+
GetUpdatedStorageDealRecordsSinceResponse,
7+
} from "@textile/grpc-powergate-client/dist/powergate/admin/v1/admin_pb"
8+
import { AdminServiceClient } from "@textile/grpc-powergate-client/dist/powergate/admin/v1/admin_pb_service"
9+
import { Timestamp } from "google-protobuf/google/protobuf/timestamp_pb"
10+
import { Config } from "../../types"
11+
import { promise } from "../../util"
12+
13+
export interface AdminRecords {
14+
/**
15+
* Get the retrieval records that were created or modified since the specified date.
16+
* @returns An object containing a list of retrieval records.
17+
*/
18+
getUpdatedRetrievalRecordsSince: (
19+
time: Date,
20+
limit: number,
21+
) => Promise<GetUpdatedRetrievalRecordsSinceResponse.AsObject>
22+
23+
/**
24+
* Get the storage-deal records that were created or modified since the specified date.
25+
* @returns An object containing a list of storage-deal records.
26+
*/
27+
getUpdatedStorageDealRecordsSince: (
28+
time: Date,
29+
limit: number,
30+
) => Promise<GetUpdatedStorageDealRecordsSinceResponse.AsObject>
31+
}
32+
33+
/**
34+
* @ignore
35+
*/
36+
export const createRecords = (config: Config, getMeta: () => grpc.Metadata): AdminRecords => {
37+
const client = new AdminServiceClient(config.host, config)
38+
return {
39+
getUpdatedRetrievalRecordsSince: (time: Date, limit: number) => {
40+
const req = new GetUpdatedRetrievalRecordsSinceRequest()
41+
const since = new Timestamp()
42+
since.fromDate(time)
43+
req.setSince(since)
44+
req.setLimit(limit)
45+
return promise(
46+
(cb) => client.getUpdatedRetrievalRecordsSince(req, getMeta(), cb),
47+
(resp: GetUpdatedRetrievalRecordsSinceResponse) => resp.toObject(),
48+
)
49+
},
50+
51+
getUpdatedStorageDealRecordsSince: (time: Date, limit: number) => {
52+
const req = new GetUpdatedStorageDealRecordsSinceRequest()
53+
const since = new Timestamp()
54+
since.fromDate(time)
55+
req.setSince(since)
56+
req.setLimit(limit)
57+
return promise(
58+
(cb) => client.getUpdatedStorageDealRecordsSince(req, getMeta(), cb),
59+
(resp: GetUpdatedStorageDealRecordsSinceResponse) => resp.toObject(),
60+
)
61+
},
62+
}
63+
}

src/admin/storage-info/index.ts

+5-2
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import { AdminServiceClient } from "@textile/grpc-powergate-client/dist/powergat
99
import { Config } from "../../types"
1010
import { promise } from "../../util"
1111

12-
export interface StorageInfo {
12+
export interface AdminStorageInfo {
1313
/**
1414
* Get the current storage state of a cid.
1515
* @param userId The user id to query.
@@ -29,7 +29,10 @@ export interface StorageInfo {
2929
/**
3030
* @ignore
3131
*/
32-
export const createStorageInfo = (config: Config, getMeta: () => grpc.Metadata): StorageInfo => {
32+
export const createStorageInfo = (
33+
config: Config,
34+
getMeta: () => grpc.Metadata,
35+
): AdminStorageInfo => {
3336
const client = new AdminServiceClient(config.host, config)
3437
return {
3538
get: (userId: string, cid: string) => {

src/admin/storage-jobs/index.ts

+7-2
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,9 @@ import { Config } from "../../types"
1212
import { promise } from "../../util"
1313
import { AdminListOptions } from "./types"
1414

15-
export interface StorageJobs {
15+
export { AdminListOptions }
16+
17+
export interface AdminStorageJobs {
1618
/**
1719
* Lists StorageJobs according to the provided ListOptions.
1820
* @param opts Optional ListOptions to control the behavior of listing jobs.
@@ -32,7 +34,10 @@ export interface StorageJobs {
3234
/**
3335
* @ignore
3436
*/
35-
export const createStorageJobs = (config: Config, getMeta: () => grpc.Metadata): StorageJobs => {
37+
export const createStorageJobs = (
38+
config: Config,
39+
getMeta: () => grpc.Metadata,
40+
): AdminStorageJobs => {
3641
const client = new AdminServiceClient(config.host, config)
3742
return {
3843
list: (opts?: AdminListOptions) => {

src/admin/users/index.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import { AdminServiceClient } from "@textile/grpc-powergate-client/dist/powergat
99
import { Config } from "../../types"
1010
import { promise } from "../../util"
1111

12-
export interface Users {
12+
export interface AdminUsers {
1313
/**
1414
* Create a new user.
1515
* @returns Information about the new user.
@@ -26,7 +26,7 @@ export interface Users {
2626
/**
2727
* @ignore
2828
*/
29-
export const createUsers = (config: Config, getMeta: () => grpc.Metadata): Users => {
29+
export const createUsers = (config: Config, getMeta: () => grpc.Metadata): AdminUsers => {
3030
const client = new AdminServiceClient(config.host, config)
3131
return {
3232
create: () => {

src/admin/wallet/index.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import { AdminServiceClient } from "@textile/grpc-powergate-client/dist/powergat
1111
import { Config } from "../../types"
1212
import { promise } from "../../util"
1313

14-
export interface Wallet {
14+
export interface AdminWallet {
1515
/**
1616
* Create a new wallet address.
1717
* @param type The type of address to create, bls or secp256k1.
@@ -37,7 +37,7 @@ export interface Wallet {
3737
/**
3838
* @ignore
3939
*/
40-
export const createWallet = (config: Config, getMeta: () => grpc.Metadata): Wallet => {
40+
export const createWallet = (config: Config, getMeta: () => grpc.Metadata): AdminWallet => {
4141
const client = new AdminServiceClient(config.host, config)
4242
return {
4343
newAddress: (type: "bls" | "secp256k1" = "bls") => {

0 commit comments

Comments
 (0)