mirror of
https://github.com/cerc-io/watcher-ts
synced 2024-11-19 20:36:19 +00:00
Add demo for graph-watcher IPLD statediff and checkpointing
This commit is contained in:
parent
ba6b996e65
commit
ce6568aad2
@ -45,6 +45,10 @@ yarn build
|
||||
|
||||
* [graph-node](./packages/graph-node/README.md)
|
||||
|
||||
## Demos
|
||||
|
||||
* [IPLD statediff and checkpointing](./ipld-demo.md)
|
||||
|
||||
## Services
|
||||
|
||||
The default config files used by the watchers assume the following services are setup and running on localhost:
|
||||
|
209
ipld-demo.md
Normal file
209
ipld-demo.md
Normal file
@ -0,0 +1,209 @@
|
||||
# Demo for IPLD statediff and checkpointing
|
||||
|
||||
* In the root of `graph-watcher-ts`, run:
|
||||
|
||||
```bash
|
||||
yarn && yarn build
|
||||
```
|
||||
|
||||
* In console, run the IPFS daemon:
|
||||
|
||||
```bash
|
||||
# Verify ipfs version
|
||||
ipfs version
|
||||
# ipfs version 0.12.2
|
||||
|
||||
ipfs daemon
|
||||
```
|
||||
|
||||
* The following services should be running to work with watcher:
|
||||
|
||||
* [vulcanize/go-ethereum](https://github.com/vulcanize/go-ethereum) ([v1.10.17-statediff-3.2.0](https://github.com/vulcanize/go-ethereum/releases/tag/v1.10.17-statediff-3.2.0)) on port 8545.
|
||||
* [vulcanize/ipld-eth-server](https://github.com/vulcanize/ipld-eth-server) ([v3.0.0](https://github.com/vulcanize/ipld-eth-server/releases/tag/v3.0.0)) with native GQL API enabled on port 8082 and RPC API enabled on port 8081.
|
||||
* [postgraphile](https://github.com/vulcanize/postgraphile) ([v1.1.1](https://github.com/vulcanize/postgraphile/releases/tag/v1.1.1)) on the `vulcanize/ipld-eth-server` database, on port 5000
|
||||
|
||||
* Deploy `Example` contract:
|
||||
|
||||
```bash
|
||||
cd packages/graph-node
|
||||
|
||||
yarn example:deploy
|
||||
```
|
||||
|
||||
* Set the returned address to the variable `$EXAMPLE_ADDRESS`:
|
||||
|
||||
```bash
|
||||
EXAMPLE_ADDRESS=
|
||||
```
|
||||
|
||||
* In `packages/graph-node`, run:
|
||||
|
||||
```bash
|
||||
cp .env.example .env
|
||||
```
|
||||
|
||||
* In `.env` file, set `EXAMPLE_CONTRACT_ADDRESS` to the `EXAMPLE_ADDRESS`.
|
||||
|
||||
* In [packages/graph-node/test/subgraph/example1/subgraph.yaml](./packages/graph-node/test/subgraph/example1/subgraph.yaml), set the source address for `Example1` datasource to the `EXAMPLE_ADDRESS`.
|
||||
|
||||
```bash
|
||||
yarn build:example
|
||||
```
|
||||
|
||||
* In `packages/codegen`, create a `config.yaml` file with the following contents:
|
||||
|
||||
```yaml
|
||||
contracts:
|
||||
- name: Example
|
||||
path: ../graph-node/test/contracts/Example.sol
|
||||
kind: Example1
|
||||
|
||||
outputFolder: ../demo-example-watcher
|
||||
mode: all
|
||||
kind: active
|
||||
port: 3008
|
||||
flatten: true
|
||||
subgraphPath: ../graph-node/test/subgraph/example1/build
|
||||
```
|
||||
|
||||
Reference: [packages/codegen/README.md](./packages/codegen/README.md#run)
|
||||
|
||||
* Generate watcher:
|
||||
|
||||
```bash
|
||||
cd packages/codegen
|
||||
|
||||
yarn codegen --config-file ./config.yaml
|
||||
```
|
||||
|
||||
* In `packages/demo-example-watcher`, run:
|
||||
|
||||
```bash
|
||||
yarn
|
||||
```
|
||||
|
||||
* Create dbs:
|
||||
|
||||
```bash
|
||||
sudo su - postgres
|
||||
# Delete databases if they already exist.
|
||||
dropdb demo-example-watcher
|
||||
dropdb demo-example-watcher-job-queue
|
||||
|
||||
# Create databases
|
||||
createdb demo-example-watcher
|
||||
createdb demo-example-watcher-job-queue
|
||||
```
|
||||
|
||||
Enable the `pgcrypto` extension.
|
||||
```
|
||||
psql -U postgres -h localhost demo-example-watcher-job-queue
|
||||
|
||||
demo-example-watcher-job-queue=# CREATE EXTENSION pgcrypto;
|
||||
demo-example-watcher-job-queue=# exit
|
||||
```
|
||||
|
||||
* In a new terminal, in `packages/demo-example-watcher`, run:
|
||||
|
||||
```bash
|
||||
yarn server
|
||||
```
|
||||
|
||||
```bash
|
||||
yarn job-runner
|
||||
```
|
||||
|
||||
* Run the following GQL subscription at the [graphql endpoint](http://127.0.0.1:3008/graphql):
|
||||
|
||||
```graphql
|
||||
subscription {
|
||||
onEvent {
|
||||
event {
|
||||
__typename
|
||||
... on TestEvent {
|
||||
param1
|
||||
param2
|
||||
param3
|
||||
},
|
||||
},
|
||||
block {
|
||||
number
|
||||
hash
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
* Trigger the `Test` event by calling example contract method:
|
||||
|
||||
```bash
|
||||
cd packages/graph-node
|
||||
|
||||
yarn example:test --address $EXAMPLE_ADDRESS
|
||||
```
|
||||
|
||||
A `Test` event shall be visible in the subscription at endpoint.
|
||||
|
||||
* Run the `getState` query at the endpoint to get the latest `IPLDBlock` for `EXAMPLE_ADDRESS`:
|
||||
|
||||
```graphql
|
||||
query {
|
||||
getState (
|
||||
blockHash: "EVENT_BLOCK_HASH"
|
||||
contractAddress: "EXAMPLE_ADDRESS"
|
||||
kind: "diff_staged"
|
||||
) {
|
||||
cid
|
||||
block {
|
||||
cid
|
||||
hash
|
||||
number
|
||||
timestamp
|
||||
parentHash
|
||||
}
|
||||
contractAddress
|
||||
data
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
* Run the query for entity at the endpoint:
|
||||
|
||||
```graphql
|
||||
query {
|
||||
author (
|
||||
block: {
|
||||
hash: "EVENT_BLOCK_HASH"
|
||||
}
|
||||
id: "0xdc7d7a8920c8eecc098da5b7522a5f31509b5bfc"
|
||||
) {
|
||||
__typename
|
||||
name
|
||||
paramInt
|
||||
paramBigInt
|
||||
paramBytes
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
* `diff` IPLDBlocks get created corresponding to the `diff_staged` blocks when their respective `eth_block`s reach the pruned region.
|
||||
|
||||
* In `packages/demo-example-watcher`:
|
||||
|
||||
* After the `diff` block has been created, create a `checkpoint`:
|
||||
|
||||
```bash
|
||||
cd packages/demo-example-watcher
|
||||
|
||||
yarn checkpoint --address $EXAMPLE_ADDRESS
|
||||
```
|
||||
|
||||
* A `checkpoint` IPLDBlock should be created at the latest canonical block hash.
|
||||
|
||||
* Run the `getState` query again at the endpoint with the output `blockHash` and kind `checkpoint`.
|
||||
|
||||
* All the `IPLDBlock` entries can be seen in `pg-admin` in table `ipld_block`.
|
||||
|
||||
* All the `diff` and `checkpoint` IPLDBlocks should be pushed to `IPFS`.
|
||||
|
||||
* Open IPFS WebUI http://127.0.0.1:5001/webui and search for `IPLDBlock`s using their `CID`s.
|
@ -5,6 +5,7 @@
|
||||
import '@nomiclabs/hardhat-waffle';
|
||||
|
||||
import './test/tasks/example-deploy';
|
||||
import './test/tasks/example-test';
|
||||
|
||||
// You need to export an object to set up your config
|
||||
// Go to https://hardhat.org/config/ to learn more
|
||||
|
@ -42,7 +42,8 @@
|
||||
"build:example": "cd test/subgraph/example1 && yarn && yarn codegen && yarn build",
|
||||
"watch": "DEBUG=vulcanize:* nodemon --watch src src/watcher.ts",
|
||||
"compare-entity": "node bin/compare-entity",
|
||||
"example:deploy": "hardhat --network localhost example-deploy"
|
||||
"example:deploy": "hardhat --network localhost example-deploy",
|
||||
"example:test": "hardhat --network localhost example-test"
|
||||
},
|
||||
"dependencies": {
|
||||
"@apollo/client": "^3.3.19",
|
||||
|
31
packages/graph-node/test/tasks/example-test.ts
Normal file
31
packages/graph-node/test/tasks/example-test.ts
Normal file
@ -0,0 +1,31 @@
|
||||
//
|
||||
// Copyright 2022 Vulcanize, Inc.
|
||||
//
|
||||
|
||||
import { task, types } from 'hardhat/config';
|
||||
import '@nomiclabs/hardhat-ethers';
|
||||
import { ContractTransaction } from 'ethers';
|
||||
|
||||
task('example-test', 'Trigger Test event')
|
||||
.addParam('address', 'Contract address', undefined, types.string)
|
||||
.setAction(async (args, hre) => {
|
||||
const { address } = args;
|
||||
await hre.run('compile');
|
||||
const Example = await hre.ethers.getContractFactory('Example');
|
||||
const example = Example.attach(address);
|
||||
|
||||
const transaction: ContractTransaction = await example.emitEvent();
|
||||
|
||||
const receipt = await transaction.wait();
|
||||
|
||||
if (receipt.events) {
|
||||
const TestEvent = receipt.events.find(el => el.event === 'Test');
|
||||
|
||||
if (TestEvent && TestEvent.args) {
|
||||
console.log('Test Event');
|
||||
console.log('param1:', TestEvent.args.param1.toString());
|
||||
console.log('param2:', TestEvent.args.param2.toString());
|
||||
console.log('param3:', TestEvent.args.param3.toString());
|
||||
}
|
||||
}
|
||||
});
|
@ -32,25 +32,24 @@
|
||||
"@ethersproject/providers": "5.3.0",
|
||||
"@ipld/dag-cbor": "^6.0.12",
|
||||
"@vulcanize/cache": "^0.1.0",
|
||||
"@vulcanize/graph-node": "^0.1.0",
|
||||
"@vulcanize/ipld-eth-client": "^0.1.0",
|
||||
"@vulcanize/solidity-mapper": "^0.1.0",
|
||||
"@vulcanize/util": "^0.1.0",
|
||||
"@vulcanize/graph-node": "^0.1.0",
|
||||
"apollo-server-express": "^2.25.0",
|
||||
"apollo-type-bigint": "^0.1.3",
|
||||
"debug": "^4.3.1",
|
||||
"decimal.js": "^10.3.1",
|
||||
"ethers": "^5.2.0",
|
||||
"express": "^4.17.1",
|
||||
"graphql": "^15.5.0",
|
||||
"graphql-import-node": "^0.0.4",
|
||||
"ipfs-http-client": "^53.0.1",
|
||||
"json-bigint": "^1.0.0",
|
||||
"lodash": "^4.17.21",
|
||||
"multiformats": "^9.4.8",
|
||||
"reflect-metadata": "^0.1.13",
|
||||
"typeorm": "^0.2.32",
|
||||
"yargs": "^17.0.1",
|
||||
"decimal.js": "^10.3.1"
|
||||
"yargs": "^17.0.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@ethersproject/abi": "^5.3.0",
|
||||
|
@ -12,7 +12,8 @@
|
||||
"lodash": "^4.17.21",
|
||||
"multiformats": "^9.4.8",
|
||||
"pg-boss": "^6.1.0",
|
||||
"toml": "^3.0.0"
|
||||
"toml": "^3.0.0",
|
||||
"ipfs-http-client": "^56.0.3"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/fs-extra": "^9.0.11",
|
||||
|
@ -12,6 +12,6 @@ export class IPFSClient {
|
||||
}
|
||||
|
||||
async push (data: any): Promise<void> {
|
||||
await this._client.dag.put(data, { format: 'dag-cbor', hashAlg: 'sha2-256' });
|
||||
await this._client.dag.put(data, { storeCodec: 'dag-cbor', hashAlg: 'sha2-256' });
|
||||
}
|
||||
}
|
||||
|
147
yarn.lock
147
yarn.lock
@ -1116,7 +1116,7 @@
|
||||
resolved "https://registry.yarnpkg.com/@graphql-typed-document-node/core/-/core-3.1.0.tgz#0eee6373e11418bfe0b5638f654df7a4ca6a3950"
|
||||
integrity sha512-wYn6r8zVZyQJ6rQaALBEln5B1pzxb9shV5Ef97kTvn6yVGrqyXVnDqnU24MXnFubR+rZjBY9NWuxX3FB2sTsjg==
|
||||
|
||||
"@ipld/dag-cbor@^6.0.12", "@ipld/dag-cbor@^6.0.5":
|
||||
"@ipld/dag-cbor@^6.0.12":
|
||||
version "6.0.13"
|
||||
resolved "https://registry.yarnpkg.com/@ipld/dag-cbor/-/dag-cbor-6.0.13.tgz#b68265a3fbb808f2ea3fa247a107399dbc71d5a7"
|
||||
integrity sha512-tqh1VLjiHi6+i0gDEnoBrQcRvgnUwQV413uTyFnXQMOjJs8px95/TBVMBpQBkhQoeCL4oQlPAr4qIrelKEkQHw==
|
||||
@ -1124,6 +1124,30 @@
|
||||
cborg "^1.2.1"
|
||||
multiformats "^9.0.0"
|
||||
|
||||
"@ipld/dag-cbor@^6.0.3":
|
||||
version "6.0.15"
|
||||
resolved "https://registry.yarnpkg.com/@ipld/dag-cbor/-/dag-cbor-6.0.15.tgz#aebe7a26c391cae98c32faedb681b1519e3d2372"
|
||||
integrity sha512-Vm3VTSTwlmGV92a3C5aeY+r2A18zbH2amehNhsX8PBa3muXICaWrN8Uri85A5hLH7D7ElhE8PdjxD6kNqUmTZA==
|
||||
dependencies:
|
||||
cborg "^1.5.4"
|
||||
multiformats "^9.5.4"
|
||||
|
||||
"@ipld/dag-cbor@^7.0.0":
|
||||
version "7.0.1"
|
||||
resolved "https://registry.yarnpkg.com/@ipld/dag-cbor/-/dag-cbor-7.0.1.tgz#d46c6bbb9afa55c74a85d0117b4ab389ceb9083b"
|
||||
integrity sha512-XqG8VEzHjQDC/Qcy5Gyf1kvAav5VuAugc6c7VtdaRLI+3d8lJrUP3F76GYJNNXuEnRZ58cCBnNNglkIGTdg1+A==
|
||||
dependencies:
|
||||
cborg "^1.6.0"
|
||||
multiformats "^9.5.4"
|
||||
|
||||
"@ipld/dag-json@^8.0.1":
|
||||
version "8.0.9"
|
||||
resolved "https://registry.yarnpkg.com/@ipld/dag-json/-/dag-json-8.0.9.tgz#c41641ddbd3799abd0c683015c56a37f3f6d1edc"
|
||||
integrity sha512-NNKHmgHxc2zOEaB8qOUpAb2UK1vcEE/rBeh018Da/RzXE7N8GwiTJLRZ3Fe/G4fsiis67G0sagRz/YNQcANRsQ==
|
||||
dependencies:
|
||||
cborg "^1.5.4"
|
||||
multiformats "^9.5.4"
|
||||
|
||||
"@ipld/dag-pb@^2.1.3":
|
||||
version "2.1.13"
|
||||
resolved "https://registry.yarnpkg.com/@ipld/dag-pb/-/dag-pb-2.1.13.tgz#174779914cf2bffca9e5be96e5b7f06821402333"
|
||||
@ -3178,13 +3202,10 @@ any-promise@^1.0.0:
|
||||
resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f"
|
||||
integrity sha1-q8av7tzqUugJzcA3au0845Y10X8=
|
||||
|
||||
any-signal@^2.1.0, any-signal@^2.1.2:
|
||||
version "2.1.2"
|
||||
resolved "https://registry.yarnpkg.com/any-signal/-/any-signal-2.1.2.tgz#8d48270de0605f8b218cf9abe8e9c6a0e7418102"
|
||||
integrity sha512-B+rDnWasMi/eWcajPcCWSlYc7muXOrcYrqgyzcdKisl2H/WTlQ0gip1KyQfr0ZlxJdsuWCj/LWwQm7fhyhRfIQ==
|
||||
dependencies:
|
||||
abort-controller "^3.0.0"
|
||||
native-abort-controller "^1.0.3"
|
||||
any-signal@^3.0.0:
|
||||
version "3.0.1"
|
||||
resolved "https://registry.yarnpkg.com/any-signal/-/any-signal-3.0.1.tgz#49cae34368187a3472e31de28fb5cb1430caa9a6"
|
||||
integrity sha512-xgZgJtKEa9YmDqXodIgl7Fl1C8yNXr8w6gXjqK3LW4GcEiYT+6AQfJSE/8SPsEpLLmcvbv8YU+qet94UewHxqg==
|
||||
|
||||
anymatch@~3.1.1, anymatch@~3.1.2:
|
||||
version "3.1.2"
|
||||
@ -4678,6 +4699,11 @@ cborg@^1.2.1:
|
||||
resolved "https://registry.yarnpkg.com/cborg/-/cborg-1.5.3.tgz#94cd037a50cde007397ca872259457d2f8dd0846"
|
||||
integrity sha512-iUweYinQpR48eXxcmEoZlixY2eo+vDCGc5utNwXV0oYhmowHU/2DwcSiJ4xU1l7niwXOR91pcE3zEgZl4VoFAQ==
|
||||
|
||||
cborg@^1.5.4, cborg@^1.6.0:
|
||||
version "1.9.1"
|
||||
resolved "https://registry.yarnpkg.com/cborg/-/cborg-1.9.1.tgz#9ea2f7b1745048e7db51e78d54e8a9a0e4f64a11"
|
||||
integrity sha512-6xKRdJ89ncwEXJGx9rFMRBNp72UqgYSGt2a88rqsvCLda4OuhRlh3xD2nu+ufrw6h9l94K0cnvyD4WEGpKtRtw==
|
||||
|
||||
chai-spies@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/chai-spies/-/chai-spies-1.0.0.tgz#d16b39336fb316d03abf8c375feb23c0c8bb163d"
|
||||
@ -5422,6 +5448,14 @@ d@1, d@^1.0.1:
|
||||
es5-ext "^0.10.50"
|
||||
type "^1.0.1"
|
||||
|
||||
dag-jose@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/dag-jose/-/dag-jose-1.0.0.tgz#52e42d70cb5bee31ae4e8e3ab860615568d7ad73"
|
||||
integrity sha512-U0b/YsIPBp6YZNTFrVjwLZAlY3qGRxZTIEcM/CcQmrVrCWq9MWQq9pheXVSPLIhF4SNwzp2SikPva4/BIrJY+g==
|
||||
dependencies:
|
||||
"@ipld/dag-cbor" "^6.0.3"
|
||||
multiformats "^9.0.2"
|
||||
|
||||
dargs@^7.0.0:
|
||||
version "7.0.0"
|
||||
resolved "https://registry.yarnpkg.com/dargs/-/dargs-7.0.0.tgz#04015c41de0bcb69ec84050f3d9be0caf8d6d5cc"
|
||||
@ -8457,28 +8491,30 @@ ipaddr.js@1.9.1:
|
||||
resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3"
|
||||
integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==
|
||||
|
||||
ipfs-core-types@^0.8.1:
|
||||
version "0.8.2"
|
||||
resolved "https://registry.yarnpkg.com/ipfs-core-types/-/ipfs-core-types-0.8.2.tgz#6923dd1a5fda9ea26d7b03e83f96a16a9e8cfc24"
|
||||
integrity sha512-qgKn+hHAdRRyP4eX7ygmNSPucI75KUMxtoxgYaJGPcew4rdvCA1VCD/Rc0W+dHlRbTRM4CYIE10VS3qjpXSgDQ==
|
||||
ipfs-core-types@^0.10.3:
|
||||
version "0.10.3"
|
||||
resolved "https://registry.yarnpkg.com/ipfs-core-types/-/ipfs-core-types-0.10.3.tgz#89ebe98199d4d829f2b20104bfa3299f808c80fe"
|
||||
integrity sha512-GNid2lRBjR5qgScCglgk7w9Hk3TZAwPHQXxOLQx72wgyc0jF2U5NXRoKW0GRvX8NPbHmsrFszForIqxd23I1Gw==
|
||||
dependencies:
|
||||
"@ipld/dag-pb" "^2.1.3"
|
||||
interface-datastore "^6.0.2"
|
||||
ipfs-unixfs "^6.0.3"
|
||||
multiaddr "^10.0.0"
|
||||
multiformats "^9.4.1"
|
||||
multiformats "^9.5.1"
|
||||
|
||||
ipfs-core-utils@^0.11.1:
|
||||
version "0.11.1"
|
||||
resolved "https://registry.yarnpkg.com/ipfs-core-utils/-/ipfs-core-utils-0.11.1.tgz#4ac2143f2d89917f0823c9b8104e5ed489383ecb"
|
||||
integrity sha512-SYBTeESuLgjYeDh8meCgttHV/LlES8FbljIDCySp+DpgPxYJA4EyC4GhywBaneQc/X3GWvHEzvW5b7ADluFcAw==
|
||||
ipfs-core-utils@^0.14.3:
|
||||
version "0.14.3"
|
||||
resolved "https://registry.yarnpkg.com/ipfs-core-utils/-/ipfs-core-utils-0.14.3.tgz#d04c631c472507bdefc58d4e8d1d9109efbb411c"
|
||||
integrity sha512-aBkewVhgAj3NWXPwu6imj0wADGiGVZmJzqKzODOJsibDjkx6FGdMv8kvvqtLnK8LS/dvSk9yk32IDtuDyYoV7Q==
|
||||
dependencies:
|
||||
any-signal "^2.1.2"
|
||||
any-signal "^3.0.0"
|
||||
blob-to-it "^1.0.1"
|
||||
browser-readablestream-to-it "^1.0.1"
|
||||
debug "^4.1.1"
|
||||
err-code "^3.0.1"
|
||||
ipfs-core-types "^0.8.1"
|
||||
ipfs-core-types "^0.10.3"
|
||||
ipfs-unixfs "^6.0.3"
|
||||
ipfs-utils "^9.0.2"
|
||||
ipfs-utils "^9.0.6"
|
||||
it-all "^1.0.4"
|
||||
it-map "^1.0.4"
|
||||
it-peekable "^1.0.2"
|
||||
@ -8486,32 +8522,32 @@ ipfs-core-utils@^0.11.1:
|
||||
merge-options "^3.0.4"
|
||||
multiaddr "^10.0.0"
|
||||
multiaddr-to-uri "^8.0.0"
|
||||
multiformats "^9.4.1"
|
||||
multiformats "^9.5.1"
|
||||
nanoid "^3.1.23"
|
||||
parse-duration "^1.0.0"
|
||||
timeout-abort-controller "^1.1.1"
|
||||
timeout-abort-controller "^3.0.0"
|
||||
uint8arrays "^3.0.0"
|
||||
|
||||
ipfs-http-client@^53.0.1:
|
||||
version "53.0.1"
|
||||
resolved "https://registry.yarnpkg.com/ipfs-http-client/-/ipfs-http-client-53.0.1.tgz#1ae5afce607c87cec285429c7de665e341a3ec7d"
|
||||
integrity sha512-0hmm5esSxoArEtVE9jeLwLw3pJm6rJA1kWKW+3Nqs2O8TQVSot8u1nzopF/yJ2IJGd5PHJc2JxqtEdVzV+p7nQ==
|
||||
ipfs-http-client@^56.0.3:
|
||||
version "56.0.3"
|
||||
resolved "https://registry.yarnpkg.com/ipfs-http-client/-/ipfs-http-client-56.0.3.tgz#45bbea55347ef13524769d5919cbed84d9d022d6"
|
||||
integrity sha512-E3L5ylVl6BjyRUsNehvfuRBYp1hj8vQ8in4zskVPMNzXs6JiCFUbif5a6BtcAlSK4xPQyJCeLNNAWLUeFQTLNA==
|
||||
dependencies:
|
||||
"@ipld/dag-cbor" "^6.0.5"
|
||||
"@ipld/dag-cbor" "^7.0.0"
|
||||
"@ipld/dag-json" "^8.0.1"
|
||||
"@ipld/dag-pb" "^2.1.3"
|
||||
abort-controller "^3.0.0"
|
||||
any-signal "^2.1.2"
|
||||
any-signal "^3.0.0"
|
||||
dag-jose "^1.0.0"
|
||||
debug "^4.1.1"
|
||||
err-code "^3.0.1"
|
||||
ipfs-core-types "^0.8.1"
|
||||
ipfs-core-utils "^0.11.1"
|
||||
ipfs-utils "^9.0.2"
|
||||
ipfs-core-types "^0.10.3"
|
||||
ipfs-core-utils "^0.14.3"
|
||||
ipfs-utils "^9.0.6"
|
||||
it-first "^1.0.6"
|
||||
it-last "^1.0.4"
|
||||
merge-options "^3.0.4"
|
||||
multiaddr "^10.0.0"
|
||||
multiformats "^9.4.1"
|
||||
native-abort-controller "^1.0.3"
|
||||
multiformats "^9.5.1"
|
||||
parse-duration "^1.0.0"
|
||||
stream-to-it "^0.2.2"
|
||||
uint8arrays "^3.0.0"
|
||||
@ -8524,13 +8560,12 @@ ipfs-unixfs@^6.0.3:
|
||||
err-code "^3.0.1"
|
||||
protobufjs "^6.10.2"
|
||||
|
||||
ipfs-utils@^9.0.2:
|
||||
version "9.0.2"
|
||||
resolved "https://registry.yarnpkg.com/ipfs-utils/-/ipfs-utils-9.0.2.tgz#7e816a863753c5af1187464839a6b46aa8764e5b"
|
||||
integrity sha512-o0DjVfd1kcr09fAYMkSnZ56ZkfoAzZhFWkizG3/tL7svukZpqyGyRxNlF58F+hsrn/oL8ouAP9x+4Hdf8XM+hg==
|
||||
ipfs-utils@^9.0.6:
|
||||
version "9.0.6"
|
||||
resolved "https://registry.yarnpkg.com/ipfs-utils/-/ipfs-utils-9.0.6.tgz#b7657b8be101e0bb64402aeb631c64168075a5e4"
|
||||
integrity sha512-/WfdwOIiJVb3uqfKRQ9Eo+vCEKsDgp7h4Pdc37MRwAiFciZ7xKAkEqsfXubV0VQi8x5jWTifeHn8WEPBLL451w==
|
||||
dependencies:
|
||||
abort-controller "^3.0.0"
|
||||
any-signal "^2.1.0"
|
||||
any-signal "^3.0.0"
|
||||
buffer "^6.0.1"
|
||||
electron-fetch "^1.7.2"
|
||||
err-code "^3.0.1"
|
||||
@ -8540,7 +8575,6 @@ ipfs-utils@^9.0.2:
|
||||
it-to-stream "^1.0.0"
|
||||
merge-options "^3.0.4"
|
||||
nanoid "^3.1.20"
|
||||
native-abort-controller "^1.0.3"
|
||||
native-fetch "^3.0.0"
|
||||
node-fetch "https://registry.npmjs.org/@achingbrain/node-fetch/-/node-fetch-2.6.7.tgz"
|
||||
react-native-fetch-api "^2.0.0"
|
||||
@ -10523,11 +10557,16 @@ multicodec@^1.0.0:
|
||||
buffer "^5.6.0"
|
||||
varint "^5.0.0"
|
||||
|
||||
multiformats@^9.0.0, multiformats@^9.4.1, multiformats@^9.4.2, multiformats@^9.4.5, multiformats@^9.4.8:
|
||||
multiformats@^9.0.0, multiformats@^9.4.2, multiformats@^9.4.5, multiformats@^9.4.8:
|
||||
version "9.4.10"
|
||||
resolved "https://registry.yarnpkg.com/multiformats/-/multiformats-9.4.10.tgz#d654d06b28cc066506e4e59b246d65267fb6b93b"
|
||||
integrity sha512-BwWGvgqB/5J/cnWaOA0sXzJ+UGl+kyFAw3Sw1L6TN4oad34C9OpW+GCpYTYPDp4pUaXDC1EjvB3yv9Iodo1EhA==
|
||||
|
||||
multiformats@^9.0.2, multiformats@^9.5.1, multiformats@^9.5.4:
|
||||
version "9.6.4"
|
||||
resolved "https://registry.yarnpkg.com/multiformats/-/multiformats-9.6.4.tgz#5dce1f11a407dbb69aa612cb7e5076069bb759ca"
|
||||
integrity sha512-fCCB6XMrr6CqJiHNjfFNGT0v//dxOBMrOMqUIzpPc/mmITweLEyhvMpY9bF+jZ9z3vaMAau5E8B68DW77QMXkg==
|
||||
|
||||
multihashes@^0.4.15, multihashes@~0.4.15:
|
||||
version "0.4.21"
|
||||
resolved "https://registry.yarnpkg.com/multihashes/-/multihashes-0.4.21.tgz#dc02d525579f334a7909ade8a122dabb58ccfcb5"
|
||||
@ -10618,11 +10657,6 @@ napi-macros@~2.0.0:
|
||||
resolved "https://registry.yarnpkg.com/napi-macros/-/napi-macros-2.0.0.tgz#2b6bae421e7b96eb687aa6c77a7858640670001b"
|
||||
integrity sha512-A0xLykHtARfueITVDernsAWdtIMbOJgKgcluwENp3AlsKN/PloyO10HtmoqnFAQAcxPkgZN7wdfPfEd0zNGxbg==
|
||||
|
||||
native-abort-controller@^1.0.3:
|
||||
version "1.0.4"
|
||||
resolved "https://registry.yarnpkg.com/native-abort-controller/-/native-abort-controller-1.0.4.tgz#39920155cc0c18209ff93af5bc90be856143f251"
|
||||
integrity sha512-zp8yev7nxczDJMoP6pDxyD20IU0T22eX8VwN2ztDccKvSZhRaV33yP1BGwKSZfXuqWUzsXopVFjBdau9OOAwMQ==
|
||||
|
||||
native-fetch@^3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/native-fetch/-/native-fetch-3.0.0.tgz#06ccdd70e79e171c365c75117959cf4fe14a09bb"
|
||||
@ -12609,10 +12643,10 @@ ret@~0.1.10:
|
||||
resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc"
|
||||
integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==
|
||||
|
||||
retimer@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/retimer/-/retimer-2.0.0.tgz#e8bd68c5e5a8ec2f49ccb5c636db84c04063bbca"
|
||||
integrity sha512-KLXY85WkEq2V2bKex/LOO1ViXVn2KGYe4PYysAdYdjmraYIUsVkXu8O4am+8+5UbaaGl1qho4aqAAPHNQ4GSbg==
|
||||
retimer@^3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/retimer/-/retimer-3.0.0.tgz#98b751b1feaf1af13eb0228f8ea68b8f9da530df"
|
||||
integrity sha512-WKE0j11Pa0ZJI5YIk0nflGI7SQsfl2ljihVy7ogh7DeQSeYAUi0ubZ/yEueGtDfUPk6GH5LRw1hBdLq4IwUBWA==
|
||||
|
||||
retry@0.12.0, retry@^0.12.0:
|
||||
version "0.12.0"
|
||||
@ -13722,13 +13756,12 @@ timed-out@^4.0.0, timed-out@^4.0.1:
|
||||
resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f"
|
||||
integrity sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=
|
||||
|
||||
timeout-abort-controller@^1.1.1:
|
||||
version "1.1.1"
|
||||
resolved "https://registry.yarnpkg.com/timeout-abort-controller/-/timeout-abort-controller-1.1.1.tgz#2c3c3c66f13c783237987673c276cbd7a9762f29"
|
||||
integrity sha512-BsF9i3NAJag6T0ZEjki9j654zoafI2X6ayuNd6Tp8+Ul6Tr5s4jo973qFeiWrRSweqvskC+AHDKUmIW4b7pdhQ==
|
||||
timeout-abort-controller@^3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/timeout-abort-controller/-/timeout-abort-controller-3.0.0.tgz#dd57ffca041652c03769904f8d95afd93fb95595"
|
||||
integrity sha512-O3e+2B8BKrQxU2YRyEjC/2yFdb33slI22WRdUaDx6rvysfi9anloNZyR2q0l6LnePo5qH7gSM7uZtvvwZbc2yA==
|
||||
dependencies:
|
||||
abort-controller "^3.0.0"
|
||||
retimer "^2.0.0"
|
||||
retimer "^3.0.0"
|
||||
|
||||
tmp@0.0.33, tmp@^0.0.33:
|
||||
version "0.0.33"
|
||||
|
Loading…
Reference in New Issue
Block a user