@o1-labs/mina-archive-node-graphql 0.0.6

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 (138) hide show
  1. package/README.md +321 -0
  2. package/build/benchmark/setup.js +32 -0
  3. package/build/benchmark/setup.js.map +1 -0
  4. package/build/src/blockchain/constants.js +2 -0
  5. package/build/src/blockchain/constants.js.map +1 -0
  6. package/build/src/blockchain/types.js +7 -0
  7. package/build/src/blockchain/types.js.map +1 -0
  8. package/build/src/blockchain/utils.js +39 -0
  9. package/build/src/blockchain/utils.js.map +1 -0
  10. package/build/src/consensus/mina-consensus.js +59 -0
  11. package/build/src/consensus/mina-consensus.js.map +1 -0
  12. package/build/src/context.js +10 -0
  13. package/build/src/context.js.map +1 -0
  14. package/build/src/db/archive-node-adapter/archive-node-adapter.interface.js +2 -0
  15. package/build/src/db/archive-node-adapter/archive-node-adapter.interface.js.map +1 -0
  16. package/build/src/db/archive-node-adapter/archive-node-adapter.js +47 -0
  17. package/build/src/db/archive-node-adapter/archive-node-adapter.js.map +1 -0
  18. package/build/src/db/sql/events-actions/queries.js +438 -0
  19. package/build/src/db/sql/events-actions/queries.js.map +1 -0
  20. package/build/src/db/sql/events-actions/types.js +2 -0
  21. package/build/src/db/sql/events-actions/types.js.map +1 -0
  22. package/build/src/errors/error.js +17 -0
  23. package/build/src/errors/error.js.map +1 -0
  24. package/build/src/index.js +27 -0
  25. package/build/src/index.js.map +1 -0
  26. package/build/src/resolvers-types.js +8 -0
  27. package/build/src/resolvers-types.js.map +1 -0
  28. package/build/src/resolvers.js +67 -0
  29. package/build/src/resolvers.js.map +1 -0
  30. package/build/src/server/plugins.js +39 -0
  31. package/build/src/server/plugins.js.map +1 -0
  32. package/build/src/server/server.js +25 -0
  33. package/build/src/server/server.js.map +1 -0
  34. package/build/src/services/actions-service/actions-service.interface.js +2 -0
  35. package/build/src/services/actions-service/actions-service.interface.js.map +1 -0
  36. package/build/src/services/actions-service/actions-service.js +94 -0
  37. package/build/src/services/actions-service/actions-service.js.map +1 -0
  38. package/build/src/services/blocks-service/blocks-service.interface.js +2 -0
  39. package/build/src/services/blocks-service/blocks-service.interface.js.map +1 -0
  40. package/build/src/services/blocks-service/blocks-service.js +263 -0
  41. package/build/src/services/blocks-service/blocks-service.js.map +1 -0
  42. package/build/src/services/data-adapters/database-row-adapters.js +116 -0
  43. package/build/src/services/data-adapters/database-row-adapters.js.map +1 -0
  44. package/build/src/services/events-service/events-service.interface.js +2 -0
  45. package/build/src/services/events-service/events-service.interface.js.map +1 -0
  46. package/build/src/services/events-service/events-service.js +64 -0
  47. package/build/src/services/events-service/events-service.js.map +1 -0
  48. package/build/src/services/network-service/network-service.interface.js +2 -0
  49. package/build/src/services/network-service/network-service.interface.js.map +1 -0
  50. package/build/src/services/network-service/network-service.js +31 -0
  51. package/build/src/services/network-service/network-service.js.map +1 -0
  52. package/build/src/tracing/jaeger-setup.js +39 -0
  53. package/build/src/tracing/jaeger-setup.js.map +1 -0
  54. package/build/src/tracing/jaeger-tracing.js +29 -0
  55. package/build/src/tracing/jaeger-tracing.js.map +1 -0
  56. package/build/src/tracing/tracer.js +31 -0
  57. package/build/src/tracing/tracer.js.map +1 -0
  58. package/build/tests/__mocks__/generate_mock_data.js +13 -0
  59. package/build/tests/__mocks__/generate_mock_data.js.map +1 -0
  60. package/build/tests/consensus/run-compare.js +40 -0
  61. package/build/tests/consensus/run-compare.js.map +1 -0
  62. package/build/tests/consensus/select-consensus-precomputed.js +80 -0
  63. package/build/tests/consensus/select-consensus-precomputed.js.map +1 -0
  64. package/build/tests/consensus/types.js +15 -0
  65. package/build/tests/consensus/types.js.map +1 -0
  66. package/build/tests/devnet-dump/devnet-dump.test.js +311 -0
  67. package/build/tests/devnet-dump/devnet-dump.test.js.map +1 -0
  68. package/build/tests/devnet-dump/setup.js +58 -0
  69. package/build/tests/devnet-dump/setup.js.map +1 -0
  70. package/build/tests/integration/integration.test.js +226 -0
  71. package/build/tests/integration/integration.test.js.map +1 -0
  72. package/build/tests/integration/setup.js +82 -0
  73. package/build/tests/integration/setup.js.map +1 -0
  74. package/build/tests/live-api/actions.test.js +4 -0
  75. package/build/tests/live-api/actions.test.js.map +1 -0
  76. package/build/tests/live-api/blocks.test.js +116 -0
  77. package/build/tests/live-api/blocks.test.js.map +1 -0
  78. package/build/tests/live-api/events.test.js +97 -0
  79. package/build/tests/live-api/events.test.js.map +1 -0
  80. package/build/tests/live-api/networkState.test.js +27 -0
  81. package/build/tests/live-api/networkState.test.js.map +1 -0
  82. package/build/tests/live-network/live-network.test.js +144 -0
  83. package/build/tests/live-network/live-network.test.js.map +1 -0
  84. package/build/tests/live-network/setup.js +206 -0
  85. package/build/tests/live-network/setup.js.map +1 -0
  86. package/build/tests/resolvers.test.js +475 -0
  87. package/build/tests/resolvers.test.js.map +1 -0
  88. package/build/tests/services/actions-service/actions-service.test.js +124 -0
  89. package/build/tests/services/actions-service/actions-service.test.js.map +1 -0
  90. package/build/tests/services/blocks-service/blocks-service.test.js +348 -0
  91. package/build/tests/services/blocks-service/blocks-service.test.js.map +1 -0
  92. package/build/tests/services/events-service/events-service.test.js +185 -0
  93. package/build/tests/services/events-service/events-service.test.js.map +1 -0
  94. package/build/tests/test-helpers.js +11 -0
  95. package/build/tests/test-helpers.js.map +1 -0
  96. package/build/tests/unit/blockchain-utils.test.js +106 -0
  97. package/build/tests/unit/blockchain-utils.test.js.map +1 -0
  98. package/build/tests/unit/consensus.test.js +154 -0
  99. package/build/tests/unit/consensus.test.js.map +1 -0
  100. package/build/tests/unit/error-handling.test.js +52 -0
  101. package/build/tests/unit/error-handling.test.js.map +1 -0
  102. package/build/tests/utils.test.js +313 -0
  103. package/build/tests/utils.test.js.map +1 -0
  104. package/build/zkapp/contract.js +144 -0
  105. package/build/zkapp/contract.js.map +1 -0
  106. package/build/zkapp/utils.js +174 -0
  107. package/build/zkapp/utils.js.map +1 -0
  108. package/package.json +85 -0
  109. package/schema.graphql +221 -0
  110. package/src/blockchain/constants.ts +2 -0
  111. package/src/blockchain/types.ts +121 -0
  112. package/src/blockchain/utils.ts +54 -0
  113. package/src/consensus/mina-consensus.ts +137 -0
  114. package/src/context.ts +18 -0
  115. package/src/db/archive-node-adapter/archive-node-adapter.interface.ts +23 -0
  116. package/src/db/archive-node-adapter/archive-node-adapter.ts +101 -0
  117. package/src/db/sql/events-actions/queries.ts +490 -0
  118. package/src/db/sql/events-actions/types.ts +208 -0
  119. package/src/envionment.d.ts +18 -0
  120. package/src/errors/error.ts +20 -0
  121. package/src/index.ts +31 -0
  122. package/src/resolvers-types.ts +754 -0
  123. package/src/resolvers.ts +102 -0
  124. package/src/server/plugins.ts +56 -0
  125. package/src/server/server.ts +30 -0
  126. package/src/services/actions-service/actions-service.interface.ts +9 -0
  127. package/src/services/actions-service/actions-service.ts +195 -0
  128. package/src/services/blocks-service/blocks-service.interface.ts +11 -0
  129. package/src/services/blocks-service/blocks-service.ts +407 -0
  130. package/src/services/data-adapters/database-row-adapters.ts +261 -0
  131. package/src/services/events-service/events-service.interface.ts +6 -0
  132. package/src/services/events-service/events-service.ts +118 -0
  133. package/src/services/network-service/network-service.interface.ts +5 -0
  134. package/src/services/network-service/network-service.ts +53 -0
  135. package/src/tracing/jaeger-setup.ts +65 -0
  136. package/src/tracing/jaeger-tracing.ts +44 -0
  137. package/src/tracing/tracer.ts +52 -0
  138. package/tsconfig.json +104 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.test.js","sourceRoot":"","sources":["../../tests/utils.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,144 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import { Bool, Field, SmartContract, State, Struct, UInt64, method, state, Reducer, PublicKey, Provable, } from 'o1js';
11
+ export class TestStruct extends Struct({
12
+ x: Field,
13
+ y: Bool,
14
+ z: UInt64,
15
+ address: PublicKey,
16
+ }) {
17
+ }
18
+ export class TestStructArray extends Struct({
19
+ structs: Provable.Array(TestStruct, 3),
20
+ }) {
21
+ }
22
+ export class HelloWorld extends SmartContract {
23
+ constructor() {
24
+ super(...arguments);
25
+ this.reducer = Reducer({ actionType: TestStructArray });
26
+ this.events = {
27
+ singleField: Field,
28
+ struct: TestStruct,
29
+ structs: TestStructArray,
30
+ };
31
+ this.x = State();
32
+ this.y = State();
33
+ this.z = State();
34
+ this.counter = State();
35
+ this.actionState = State();
36
+ }
37
+ init() {
38
+ super.init();
39
+ this.x.set(Field(2));
40
+ this.y.set(Bool(true));
41
+ this.z.set(UInt64.from(1));
42
+ this.actionState.set(Reducer.initialActionState);
43
+ }
44
+ async update(squared) {
45
+ const x = this.x.getAndRequireEquals();
46
+ x.square().assertEquals(squared);
47
+ this.x.set(squared);
48
+ }
49
+ async emitSingleEvent() {
50
+ const x = this.x.getAndRequireEquals();
51
+ this.emitEvent('singleField', x);
52
+ }
53
+ async emitStructEvent(struct) {
54
+ this.emitEvent('struct', struct);
55
+ }
56
+ async emitStructsEvent(structs) {
57
+ this.emitEvent('structs', structs);
58
+ }
59
+ async emitStaticStructAction() {
60
+ const x = this.x.getAndRequireEquals();
61
+ const y = this.y.getAndRequireEquals();
62
+ const z = this.z.getAndRequireEquals();
63
+ const struct = new TestStruct({ x, y, z, address: this.address });
64
+ this.reducer.dispatch({ structs: [struct, struct, struct] });
65
+ }
66
+ async emitAction(structs) {
67
+ this.reducer.dispatch(structs);
68
+ }
69
+ async reduceStructAction() {
70
+ let counter = this.counter.getAndRequireEquals();
71
+ let actionState = this.actionState.getAndRequireEquals();
72
+ const pendingActions = this.reducer.getActions({
73
+ fromActionState: actionState,
74
+ });
75
+ let newCounter = this.reducer.reduce(pendingActions, Field, (state, action) => {
76
+ return state.add(action.structs[0].x);
77
+ }, counter);
78
+ this.counter.set(newCounter);
79
+ this.actionState.set(pendingActions.hash);
80
+ }
81
+ }
82
+ __decorate([
83
+ state(Field),
84
+ __metadata("design:type", Object)
85
+ ], HelloWorld.prototype, "x", void 0);
86
+ __decorate([
87
+ state(Bool),
88
+ __metadata("design:type", Object)
89
+ ], HelloWorld.prototype, "y", void 0);
90
+ __decorate([
91
+ state(UInt64),
92
+ __metadata("design:type", Object)
93
+ ], HelloWorld.prototype, "z", void 0);
94
+ __decorate([
95
+ state(Field),
96
+ __metadata("design:type", Object)
97
+ ], HelloWorld.prototype, "counter", void 0);
98
+ __decorate([
99
+ state(Field),
100
+ __metadata("design:type", Object)
101
+ ], HelloWorld.prototype, "actionState", void 0);
102
+ __decorate([
103
+ method,
104
+ __metadata("design:type", Function),
105
+ __metadata("design:paramtypes", [Field]),
106
+ __metadata("design:returntype", Promise)
107
+ ], HelloWorld.prototype, "update", null);
108
+ __decorate([
109
+ method,
110
+ __metadata("design:type", Function),
111
+ __metadata("design:paramtypes", []),
112
+ __metadata("design:returntype", Promise)
113
+ ], HelloWorld.prototype, "emitSingleEvent", null);
114
+ __decorate([
115
+ method,
116
+ __metadata("design:type", Function),
117
+ __metadata("design:paramtypes", [TestStruct]),
118
+ __metadata("design:returntype", Promise)
119
+ ], HelloWorld.prototype, "emitStructEvent", null);
120
+ __decorate([
121
+ method,
122
+ __metadata("design:type", Function),
123
+ __metadata("design:paramtypes", [TestStructArray]),
124
+ __metadata("design:returntype", Promise)
125
+ ], HelloWorld.prototype, "emitStructsEvent", null);
126
+ __decorate([
127
+ method,
128
+ __metadata("design:type", Function),
129
+ __metadata("design:paramtypes", []),
130
+ __metadata("design:returntype", Promise)
131
+ ], HelloWorld.prototype, "emitStaticStructAction", null);
132
+ __decorate([
133
+ method,
134
+ __metadata("design:type", Function),
135
+ __metadata("design:paramtypes", [TestStructArray]),
136
+ __metadata("design:returntype", Promise)
137
+ ], HelloWorld.prototype, "emitAction", null);
138
+ __decorate([
139
+ method,
140
+ __metadata("design:type", Function),
141
+ __metadata("design:paramtypes", []),
142
+ __metadata("design:returntype", Promise)
143
+ ], HelloWorld.prototype, "reduceStructAction", null);
144
+ //# sourceMappingURL=contract.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contract.js","sourceRoot":"","sources":["../../zkapp/contract.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,174 @@
1
+ import { AccountUpdate, Field, Mina, PrivateKey, fetchAccount, UInt64, Bool, UInt32, } from 'o1js';
2
+ import { HelloWorld, TestStruct } from './contract.js';
3
+ export { setNetworkConfig, fetchAccountInfo, deployContract, updateContractState, emitSingleEvent, emitMultipleFieldsEvent, emitMultipleFieldsEvents, emitAction, emitActionsFromMultipleSenders, reduceAction, fetchNetworkState, randomStruct, };
4
+ const transactionFee = 100_000_000;
5
+ function setNetworkConfig({ mina = 'http://localhost:8080/graphql', archive = 'http://localhost:8282', lightnetAccountManager = 'http://localhost:8181', } = {}) {
6
+ const network = Mina.Network({
7
+ mina,
8
+ archive,
9
+ lightnetAccountManager,
10
+ });
11
+ Mina.setActiveInstance(network);
12
+ }
13
+ async function fetchAccountInfo(sender) {
14
+ console.log(`Fetching the fee payer account information.`);
15
+ const accountDetails = (await fetchAccount({ publicKey: sender })).account;
16
+ console.log(`Using the fee payer account ${sender.toBase58()} with nonce: ${accountDetails?.nonce} and balance: ${accountDetails?.balance}.\n`);
17
+ }
18
+ async function deployContract({ publicKey: zkAppAddress, privateKey: zkAppKey }, { publicKey: sender, privateKey: senderKey }, fundNewAccount = true) {
19
+ console.log('Compiling the smart contract.');
20
+ const { verificationKey } = await HelloWorld.compile();
21
+ const zkApp = new HelloWorld(zkAppAddress);
22
+ console.log(`Deploying zkApp for public key ${zkAppAddress.toBase58()}.`);
23
+ let transaction = await Mina.transaction({ sender, fee: transactionFee }, async () => {
24
+ if (fundNewAccount) {
25
+ AccountUpdate.fundNewAccount(sender);
26
+ }
27
+ await zkApp.deploy({ verificationKey });
28
+ });
29
+ transaction.sign([senderKey, zkAppKey]);
30
+ await sendTransaction(transaction);
31
+ return zkApp;
32
+ }
33
+ async function updateContractState(zkApp, { publicKey: sender, privateKey: senderKey }) {
34
+ console.log('Trying to update deployed zkApp state.');
35
+ let transaction = await Mina.transaction({ sender, fee: transactionFee }, async () => {
36
+ await zkApp.update(Field(4));
37
+ });
38
+ await transaction.sign([senderKey]).prove();
39
+ await sendTransaction(transaction);
40
+ }
41
+ async function emitSingleEvent(zkApp, { publicKey: sender, privateKey: senderKey }, options = { numberOfEmits: 1 }) {
42
+ console.log('Emitting single field event.');
43
+ let transaction = await Mina.transaction({ sender, fee: transactionFee }, async () => {
44
+ for (let i = 0; i < options?.numberOfEmits; i++) {
45
+ await zkApp.emitSingleEvent();
46
+ }
47
+ });
48
+ transaction.sign([senderKey]);
49
+ await transaction.prove();
50
+ await sendTransaction(transaction);
51
+ }
52
+ async function emitMultipleFieldsEvent(zkApp, { publicKey: sender, privateKey: senderKey }, options = { numberOfEmits: 1 }, baseStruct = randomStruct()) {
53
+ console.log('Emitting multiple fields event.');
54
+ let transaction = await Mina.transaction({ sender, fee: transactionFee }, async () => {
55
+ for (let i = 0; i < options.numberOfEmits; i++) {
56
+ const struct = new TestStruct(baseStruct);
57
+ struct.x = struct.x.add(Field(i));
58
+ await zkApp.emitStructEvent(struct);
59
+ }
60
+ });
61
+ transaction.sign([senderKey]);
62
+ await transaction.prove();
63
+ await sendTransaction(transaction);
64
+ }
65
+ async function emitMultipleFieldsEvents(zkApp, { publicKey: sender, privateKey: senderKey }, options = { numberOfEmits: 1 }, baseStruct = randomStruct()) {
66
+ console.log('Emitting multiple fields event.');
67
+ let transaction = await Mina.transaction({ sender, fee: transactionFee }, async () => {
68
+ for (let i = 0; i < options.numberOfEmits; i++) {
69
+ const struct = new TestStruct(baseStruct);
70
+ struct.x = struct.x.add(Field(i));
71
+ const s1 = new TestStruct(struct);
72
+ const s2 = new TestStruct(struct);
73
+ const s3 = new TestStruct(struct);
74
+ s1.z = s1.z.add(UInt64.from(i));
75
+ s2.z = s2.z.add(UInt64.from(i + 1));
76
+ s3.z = s3.z.add(UInt64.from(i + 2));
77
+ await zkApp.emitStructsEvent({
78
+ structs: [s1, s2, s3],
79
+ });
80
+ }
81
+ });
82
+ transaction.sign([senderKey]);
83
+ await transaction.prove();
84
+ await sendTransaction(transaction);
85
+ }
86
+ async function emitAction(zkApp, { publicKey: sender, privateKey: senderKey }, options = { numberOfEmits: 1 }, testStructs = {
87
+ structs: [randomStruct(), randomStruct(), randomStruct()],
88
+ }) {
89
+ console.log('Emitting action.');
90
+ let transaction = await Mina.transaction({ sender, fee: transactionFee }, async () => {
91
+ for (let i = 0; i < options.numberOfEmits; i++) {
92
+ await zkApp.emitAction(testStructs);
93
+ }
94
+ });
95
+ transaction.sign([senderKey]);
96
+ await transaction.prove();
97
+ await sendTransaction(transaction);
98
+ }
99
+ async function emitActionsFromMultipleSenders(zkApp, callers, options = { numberOfEmits: 2 }) {
100
+ const txs = [];
101
+ for (const caller of callers) {
102
+ console.log('Compiling transaction for ', caller.publicKey.toBase58());
103
+ const testStruct = randomStruct();
104
+ let transaction = await Mina.transaction({ sender: caller.publicKey, fee: transactionFee }, async () => {
105
+ for (let i = 0; i < options.numberOfEmits; i++) {
106
+ testStruct.x = testStruct.x.add(Field(i));
107
+ await zkApp.emitAction({
108
+ structs: [testStruct, testStruct, testStruct],
109
+ });
110
+ }
111
+ });
112
+ transaction.sign([caller.privateKey]);
113
+ await transaction.prove();
114
+ txs.push(transaction);
115
+ }
116
+ await sendTransactions(txs);
117
+ }
118
+ async function reduceAction(zkApp, { publicKey: sender, privateKey: senderKey }) {
119
+ console.log('Reducing action.');
120
+ let transaction = await Mina.transaction({ sender, fee: transactionFee }, async () => {
121
+ await zkApp.reduceStructAction();
122
+ });
123
+ transaction.sign([senderKey]);
124
+ await transaction.prove();
125
+ await sendTransaction(transaction);
126
+ }
127
+ async function fetchNetworkState(zkApp, { publicKey: sender, privateKey: senderKey }) {
128
+ console.log('Fetching network state.');
129
+ let blockchainLength = UInt32.zero;
130
+ let transaction = await Mina.transaction({ sender, fee: transactionFee }, async () => {
131
+ blockchainLength = Mina.getNetworkState().blockchainLength;
132
+ });
133
+ transaction.sign([senderKey]);
134
+ await transaction.prove();
135
+ await sendTransaction(transaction);
136
+ return Number(blockchainLength.toString());
137
+ }
138
+ async function sendTransaction(transaction) {
139
+ let pendingTx = await transaction.send();
140
+ if (pendingTx.status === 'pending') {
141
+ console.log(`Success! Transaction sent.
142
+ Txn hash: ${pendingTx.hash}`);
143
+ }
144
+ console.log('Waiting for transaction inclusion in a block.\n');
145
+ try {
146
+ await pendingTx.wait({ maxAttempts: 90 });
147
+ }
148
+ catch (error) {
149
+ console.error('Transaction rejected or failed to finalize:', error);
150
+ }
151
+ }
152
+ async function sendTransactions(transactions) {
153
+ const pendingTxs = transactions.map((tx) => tx.send());
154
+ console.log('Waiting for transactions to be included in a block.\n');
155
+ for (const pendingTx of pendingTxs) {
156
+ let tx = await pendingTx;
157
+ try {
158
+ await tx.wait({ maxAttempts: 90 });
159
+ console.log(`Success! Transaction sent. Txn hash: ${tx.hash}`);
160
+ }
161
+ catch (error) {
162
+ console.error('Transaction rejected or failed to finalize:', error);
163
+ }
164
+ }
165
+ }
166
+ function randomStruct() {
167
+ return new TestStruct({
168
+ x: Field(Math.floor(Math.random() * 100_000)),
169
+ y: Bool(true),
170
+ z: UInt64.from(Math.floor(Math.random() * 100_000)),
171
+ address: PrivateKey.random().toPublicKey(),
172
+ });
173
+ }
174
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../zkapp/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,aAAa,EACb,KAAK,EACL,IAAI,EACJ,UAAU,EACV,YAAY,EACZ,MAAM,EACN,IAAI,EACJ,MAAM,GACP,MAAM,MAAM,CAAC;AACd,OAAO,EAAE,UAAU,EAAE,UAAU,EAAwB,MAAM,eAAe,CAAC;AAE7E,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,mBAAmB,EACnB,eAAe,EACf,uBAAuB,EACvB,wBAAwB,EACxB,UAAU,EACV,8BAA8B,EAC9B,YAAY,EACZ,iBAAiB,EAEjB,YAAY,GACb,CAAC;AAEF,MAAM,cAAc,GAAG,WAAW,CAAC;AAWnC,SAAS,gBAAgB,CAAC,EAExB,IAAI,GAAG,+BAA+B,EACtC,OAAO,GAAG,uBAAuB,EACjC,sBAAsB,GAAG,uBAAuB,MAK9C,EAAE;IACJ,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC3B,IAAI;QACJ,OAAO;QACP,sBAAsB;KACvB,CAAC,CAAC;IACH,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;AAClC,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,MAAiB;IAC/C,OAAO,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;IAC3D,MAAM,cAAc,GAAG,CAAC,MAAM,YAAY,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;IAC3E,OAAO,CAAC,GAAG,CACT,+BAA+B,MAAM,CAAC,QAAQ,EAAE,gBAAgB,cAAc,EAAE,KAAK,iBAAiB,cAAc,EAAE,OAAO,KAAK,CACnI,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,cAAc,CAC3B,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAW,EAC1D,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAW,EACrD,cAAc,GAAG,IAAI;IAErB,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;IAC7C,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,UAAU,CAAC,OAAO,EAAE,CAAC;IACvD,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,YAAY,CAAC,CAAC;IAE3C,OAAO,CAAC,GAAG,CAAC,kCAAkC,YAAY,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IAC1E,IAAI,WAAW,GAAG,MAAM,IAAI,CAAC,WAAW,CACtC,EAAE,MAAM,EAAE,GAAG,EAAE,cAAc,EAAE,EAC/B,KAAK,IAAI,EAAE;QACT,IAAI,cAAc,EAAE,CAAC;YACnB,aAAa,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QACvC,CAAC;QACD,MAAM,KAAK,CAAC,MAAM,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC;IAC1C,CAAC,CACF,CAAC;IACF,WAAW,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;IACxC,MAAM,eAAe,CAAC,WAAW,CAAC,CAAC;IACnC,OAAO,KAAK,CAAC;AACf,CAAC;AAED,KAAK,UAAU,mBAAmB,CAChC,KAAiB,EACjB,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAW;IAErD,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;IACtD,IAAI,WAAW,GAAG,MAAM,IAAI,CAAC,WAAW,CACtC,EAAE,MAAM,EAAE,GAAG,EAAE,cAAc,EAAE,EAC/B,KAAK,IAAI,EAAE;QACT,MAAM,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/B,CAAC,CACF,CAAC;IACF,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;IAC5C,MAAM,eAAe,CAAC,WAAW,CAAC,CAAC;AACrC,CAAC;AAED,KAAK,UAAU,eAAe,CAC5B,KAAiB,EACjB,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAW,EACrD,UAAmB,EAAE,aAAa,EAAE,CAAC,EAAE;IAEvC,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;IAC5C,IAAI,WAAW,GAAG,MAAM,IAAI,CAAC,WAAW,CACtC,EAAE,MAAM,EAAE,GAAG,EAAE,cAAc,EAAE,EAC/B,KAAK,IAAI,EAAE;QACT,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,EAAE,aAAa,EAAE,CAAC,EAAE,EAAE,CAAC;YAChD,MAAM,KAAK,CAAC,eAAe,EAAE,CAAC;QAChC,CAAC;IACH,CAAC,CACF,CAAC;IACF,WAAW,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IAC9B,MAAM,WAAW,CAAC,KAAK,EAAE,CAAC;IAC1B,MAAM,eAAe,CAAC,WAAW,CAAC,CAAC;AACrC,CAAC;AAED,KAAK,UAAU,uBAAuB,CACpC,KAAiB,EACjB,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAW,EACrD,UAAmB,EAAE,aAAa,EAAE,CAAC,EAAE,EACvC,aAAyB,YAAY,EAAE;IAEvC,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;IAC/C,IAAI,WAAW,GAAG,MAAM,IAAI,CAAC,WAAW,CACtC,EAAE,MAAM,EAAE,GAAG,EAAE,cAAc,EAAE,EAC/B,KAAK,IAAI,EAAE;QACT,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/C,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC;YAC1C,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAClC,MAAM,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QACtC,CAAC;IACH,CAAC,CACF,CAAC;IACF,WAAW,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IAC9B,MAAM,WAAW,CAAC,KAAK,EAAE,CAAC;IAC1B,MAAM,eAAe,CAAC,WAAW,CAAC,CAAC;AACrC,CAAC;AAED,KAAK,UAAU,wBAAwB,CACrC,KAAiB,EACjB,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAW,EACrD,UAAmB,EAAE,aAAa,EAAE,CAAC,EAAE,EACvC,aAAyB,YAAY,EAAE;IAEvC,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;IAC/C,IAAI,WAAW,GAAG,MAAM,IAAI,CAAC,WAAW,CACtC,EAAE,MAAM,EAAE,GAAG,EAAE,cAAc,EAAE,EAC/B,KAAK,IAAI,EAAE;QACT,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/C,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC;YAC1C,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAClC,MAAM,EAAE,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;YAClC,MAAM,EAAE,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;YAClC,MAAM,EAAE,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;YAClC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YAChC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACpC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACpC,MAAM,KAAK,CAAC,gBAAgB,CAAC;gBAC3B,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;aACtB,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CACF,CAAC;IACF,WAAW,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IAC9B,MAAM,WAAW,CAAC,KAAK,EAAE,CAAC;IAC1B,MAAM,eAAe,CAAC,WAAW,CAAC,CAAC;AACrC,CAAC;AAED,KAAK,UAAU,UAAU,CACvB,KAAiB,EACjB,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAW,EACrD,UAAmB,EAAE,aAAa,EAAE,CAAC,EAAE,EACvC,cAA+B;IAC7B,OAAO,EAAE,CAAC,YAAY,EAAE,EAAE,YAAY,EAAE,EAAE,YAAY,EAAE,CAAC;CAC1D;IAED,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IAChC,IAAI,WAAW,GAAG,MAAM,IAAI,CAAC,WAAW,CACtC,EAAE,MAAM,EAAE,GAAG,EAAE,cAAc,EAAE,EAC/B,KAAK,IAAI,EAAE;QACT,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/C,MAAM,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QACtC,CAAC;IACH,CAAC,CACF,CAAC;IACF,WAAW,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IAC9B,MAAM,WAAW,CAAC,KAAK,EAAE,CAAC;IAC1B,MAAM,eAAe,CAAC,WAAW,CAAC,CAAC;AACrC,CAAC;AAED,KAAK,UAAU,8BAA8B,CAC3C,KAAiB,EACjB,OAAkB,EAClB,UAAmB,EAAE,aAAa,EAAE,CAAC,EAAE;IAEvC,MAAM,GAAG,GAAG,EAAE,CAAC;IACf,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,4BAA4B,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;QACvE,MAAM,UAAU,GAAG,YAAY,EAAE,CAAC;QAClC,IAAI,WAAW,GAAG,MAAM,IAAI,CAAC,WAAW,CACtC,EAAE,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE,GAAG,EAAE,cAAc,EAAE,EACjD,KAAK,IAAI,EAAE;YACT,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC/C,UAAU,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC1C,MAAM,KAAK,CAAC,UAAU,CAAC;oBACrB,OAAO,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC;iBAC9C,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CACF,CAAC;QACF,WAAW,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;QACtC,MAAM,WAAW,CAAC,KAAK,EAAE,CAAC;QAC1B,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACxB,CAAC;IAED,MAAM,gBAAgB,CAAC,GAAG,CAAC,CAAC;AAC9B,CAAC;AAED,KAAK,UAAU,YAAY,CACzB,KAAiB,EACjB,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAW;IAErD,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IAChC,IAAI,WAAW,GAAG,MAAM,IAAI,CAAC,WAAW,CACtC,EAAE,MAAM,EAAE,GAAG,EAAE,cAAc,EAAE,EAC/B,KAAK,IAAI,EAAE;QACT,MAAM,KAAK,CAAC,kBAAkB,EAAE,CAAC;IACnC,CAAC,CACF,CAAC;IACF,WAAW,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IAC9B,MAAM,WAAW,CAAC,KAAK,EAAE,CAAC;IAC1B,MAAM,eAAe,CAAC,WAAW,CAAC,CAAC;AACrC,CAAC;AAED,KAAK,UAAU,iBAAiB,CAC9B,KAAiB,EACjB,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAW;IAErD,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;IACvC,IAAI,gBAAgB,GAAW,MAAM,CAAC,IAAI,CAAC;IAC3C,IAAI,WAAW,GAAG,MAAM,IAAI,CAAC,WAAW,CACtC,EAAE,MAAM,EAAE,GAAG,EAAE,cAAc,EAAE,EAC/B,KAAK,IAAI,EAAE;QACR,gBAAgB,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC,gBAAgB,CAAC;IAC9D,CAAC,CACF,CAAC;IACF,WAAW,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IAC9B,MAAM,WAAW,CAAC,KAAK,EAAE,CAAC;IAC1B,MAAM,eAAe,CAAC,WAAW,CAAC,CAAC;IACnC,OAAO,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC7C,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,WAAuC;IACpE,IAAI,SAAS,GAAG,MAAM,WAAW,CAAC,IAAI,EAAE,CAAC;IACzC,IAAI,SAAS,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC;gBACA,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;IAChC,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAC;IAC/D,IAAI,CAAC;QACH,MAAM,SAAS,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC;IAC5C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,6CAA6C,EAAE,KAAK,CAAC,CAAC;IACtE,CAAC;AACH,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,YAA0C;IACxE,MAAM,UAAU,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;IACvD,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;IAErE,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,IAAI,EAAE,GAAG,MAAM,SAAS,CAAC;QACzB,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC;YACnC,OAAO,CAAC,GAAG,CAAC,wCAAwC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;QACjE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,6CAA6C,EAAE,KAAK,CAAC,CAAC;QACtE,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,YAAY;IACnB,OAAO,IAAI,UAAU,CAAC;QACpB,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC;QAC7C,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC;QACb,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC;QACnD,OAAO,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE;KAC3C,CAAC,CAAC;AACL,CAAC"}
package/package.json ADDED
@@ -0,0 +1,85 @@
1
+ {
2
+ "name": "@o1-labs/mina-archive-node-graphql",
3
+ "version": "0.0.6",
4
+ "description": "A NodeJS GraphQL server for exposing Mina Protocol archive node data for o1js/zkApps",
5
+ "repository": {
6
+ "type": "git",
7
+ "url": "https://github.com/o1-labs/Archive-Node-API"
8
+ },
9
+ "main": "build/src/index.js",
10
+ "start": "build/src/index.js",
11
+ "bin": {
12
+ "mina-archive-node-graphql": "build/src/index.js"
13
+ },
14
+ "type": "module",
15
+ "files": [
16
+ "build",
17
+ "src",
18
+ "schema.graphql",
19
+ "README.md",
20
+ "tsconfig.json"
21
+ ],
22
+ "scripts": {
23
+ "build": "npm run clean && npx tsc",
24
+ "start": "node build/src/index.js",
25
+ "dev": "cross-env NODE_NO_WARNINGS=1 npx nodemon --exec 'node -r dotenv/config --loader ts-node/esm' src/index.ts",
26
+ "test": "./run-tests.sh",
27
+ "test:unit": "npm run build && for f in ./build/tests/unit/*test.js ./build/tests/utils.test.js ./build/tests/services/*/*.test.js; do node --enable-source-maps --test \"$f\"; done",
28
+ "test:coverage": "npm run build && npx c8 --include 'build/src/**' --reporter text --reporter lcov -- bash -c 'for f in ./build/tests/unit/*test.js ./build/tests/utils.test.js ./build/tests/services/*/*.test.js; do node --enable-source-maps --test \"$f\"; done'",
29
+ "test:integration": "npm run build && node --enable-source-maps --test ./build/tests/integration/integration.test.js",
30
+ "test:live-network": "npm run build && node --enable-source-maps --test-timeout 600000 --test ./build/tests/live-network/live-network.test.js",
31
+ "test:devnet-dump": "npm run build && node --enable-source-maps --test-timeout 900000 --test ./build/tests/devnet-dump/devnet-dump.test.js",
32
+ "clean": "rimraf ./build",
33
+ "gen-test-mocks": "cross-env NODE_NO_WARNINGS=1 node --loader ts-node/esm tests/mocked_sql/generate_mock_data.ts",
34
+ "benchmark": "cross-env NODE_NO_WARNINGS=1 node --loader ts-node/esm benchmark/setup.ts && npx artillery run benchmark/graphql.yaml --output benchmark/report.json",
35
+ "lint": "eslint . --ext .ts",
36
+ "format": "prettier --write .",
37
+ "codegen": "graphql-codegen-esm --config codegen.ts",
38
+ "compose": "docker compose up",
39
+ "prepublishOnly": "npm run build"
40
+ },
41
+ "keywords": ["mina", "mina-protocol", "archive-node", "graphql", "o1js", "zkapp", "blockchain"],
42
+ "author": "O(1) Labs <build@o1labs.org>",
43
+ "license": "ISC",
44
+ "devDependencies": {
45
+ "@graphql-codegen/cli": "^6.0.1",
46
+ "@graphql-codegen/typescript": "^5.0.2",
47
+ "@graphql-codegen/typescript-resolvers": "^5.0.1",
48
+ "@graphql-eslint/eslint-plugin": "^4.4.0",
49
+ "@types/node": "^20.5.7",
50
+ "@typescript-eslint/eslint-plugin": "^6.5.0",
51
+ "@typescript-eslint/parser": "^6.5.0",
52
+ "artillery": "^2.0.0-36",
53
+ "c8": "^11.0.0",
54
+ "cross-env": "^7.0.3",
55
+ "eslint": "^8.48.0",
56
+ "graphql-request": "^7.4.0",
57
+ "nodemon": "^3.0.3",
58
+ "o1js": "^2.*",
59
+ "prettier": "3.0.3",
60
+ "rimraf": "^5.0.5",
61
+ "ts-node": "^10.9.2",
62
+ "typescript": "^5.2.2"
63
+ },
64
+ "dependencies": {
65
+ "@envelop/core": "^4.0.0",
66
+ "@envelop/disable-introspection": "^5.0.0",
67
+ "@envelop/graphql-jit": "^6.0.1",
68
+ "@envelop/opentelemetry": "^5.0.0",
69
+ "@graphql-tools/executor-http": "^3.0.4",
70
+ "@graphql-tools/graphql-file-loader": "^8.1.2",
71
+ "@graphql-tools/load": "^8.1.2",
72
+ "@graphql-tools/schema": "^10.0.25",
73
+ "@graphql-tools/utils": "^10.9.1",
74
+ "@opentelemetry/exporter-jaeger": "^1.15.2",
75
+ "@opentelemetry/sdk-trace-base": "^1.15.2",
76
+ "blakejs": "^1.2.1",
77
+ "dotenv": "^16.3.1",
78
+ "graphql": "^16.8.0",
79
+ "graphql-yoga": "4.0.4",
80
+ "postgres": "^3.3.5"
81
+ },
82
+ "volta": {
83
+ "node": "20.18.0"
84
+ }
85
+ }
package/schema.graphql ADDED
@@ -0,0 +1,221 @@
1
+ scalar DateTime
2
+
3
+ """
4
+ Filter for the consensus status of the block
5
+ """
6
+ enum BlockStatusFilter {
7
+ """
8
+ All blocks
9
+ """
10
+ ALL
11
+ """
12
+ Only pending blocks
13
+ """
14
+ PENDING
15
+ """
16
+ Only canonical (finalized) blocks
17
+ """
18
+ CANONICAL
19
+ }
20
+
21
+ """
22
+ Filter events from a specific account
23
+
24
+ **WARNING**: The graphQL schema server will limit the block scan range to a fixed number of blocks. The default is 10,000 blocks, but can be changed by the host.
25
+ It is the responsibility of the client to use a block range that is within the limit, which will guarantee that all events are eventually returned. It is possible to get a partial result if you do not specify both a `from` and a `to` parameter.
26
+ """
27
+ input EventFilterOptionsInput {
28
+ address: String!
29
+ tokenId: String
30
+ status: BlockStatusFilter
31
+ """
32
+ Mina block height to filter events to, exclusive
33
+ """
34
+ to: Int
35
+ """
36
+ Mina block height to filter events from, inclusive
37
+ """
38
+ from: Int
39
+ }
40
+
41
+ """
42
+ Filter actions from a specific account
43
+
44
+ **WARNING**: The graphQL schema server will limit the block scan range to a fixed number of blocks. The default is 10,000 blocks, but can be changed by the host.
45
+ It is the responsibility of the client to use a block range that is within the limit, which will guarantee that all actions are eventually returned. It is possible to get a partial result if you do not specify both a `from` and a `to` parameter.
46
+ """
47
+ input ActionFilterOptionsInput {
48
+ address: String!
49
+ tokenId: String
50
+ status: BlockStatusFilter
51
+ """
52
+ Mina block height to filter actions to, exclusive
53
+ """
54
+ to: Int
55
+ """
56
+ Mina block height to filter actions from, inclusive
57
+ """
58
+ from: Int
59
+ """
60
+ Filter for actions that happened after this action state, inclusive
61
+ """
62
+ fromActionState: String
63
+ """
64
+ Filter for actions that happened before this action state, inclusive
65
+ """
66
+ endActionState: String
67
+ }
68
+
69
+ type EventData {
70
+ accountUpdateId: String!
71
+ transactionInfo: TransactionInfo
72
+ data: [String]!
73
+ }
74
+
75
+ type ActionData {
76
+ accountUpdateId: String!
77
+ transactionInfo: TransactionInfo
78
+ data: [String]!
79
+ }
80
+
81
+ type BlockInfo {
82
+ height: Int!
83
+ stateHash: String!
84
+ parentHash: String!
85
+ ledgerHash: String!
86
+ chainStatus: String!
87
+ timestamp: String!
88
+ globalSlotSinceHardfork: Int!
89
+ globalSlotSinceGenesis: Int!
90
+ distanceFromMaxBlockHeight: Int!
91
+ }
92
+
93
+ type MaxBlockHeightInfo {
94
+ canonicalMaxBlockHeight: Int!
95
+ pendingMaxBlockHeight: Int!
96
+ }
97
+
98
+ type TransactionInfo {
99
+ status: String!
100
+ hash: String!
101
+ memo: String!
102
+ authorizationKind: String!
103
+ sequenceNumber: Int!
104
+ zkappAccountUpdateIds: [Int]!
105
+ }
106
+
107
+ type ActionStates {
108
+ actionStateOne: String
109
+ actionStateTwo: String
110
+ actionStateThree: String
111
+ actionStateFour: String
112
+ actionStateFive: String
113
+ }
114
+
115
+ type EventOutput {
116
+ blockInfo: BlockInfo
117
+ eventData: [EventData]
118
+ }
119
+
120
+ type ActionOutput {
121
+ blockInfo: BlockInfo
122
+ transactionInfo: TransactionInfo
123
+ actionData: [ActionData]
124
+ actionState: ActionStates!
125
+ }
126
+
127
+ """
128
+ Metadata about the network
129
+ """
130
+ type NetworkStateOutput {
131
+ """
132
+ Returns the latest pending and canonical block heights that are synced by the archive node. If the archive node is not fully synced, the pending block height will be lower than the actual network state. Wait some time for the archive node to get back in sync.
133
+ """
134
+ maxBlockHeight: MaxBlockHeightInfo
135
+ }
136
+
137
+ enum BlockSortByInput {
138
+ BLOCKHEIGHT_ASC
139
+ BLOCKHEIGHT_DESC
140
+ }
141
+
142
+ """
143
+ Filter for blocks by date range, canonical status, and other criteria
144
+ """
145
+ input BlockQueryInput {
146
+ """
147
+ Filter blocks from this height, inclusive
148
+ """
149
+ blockHeight_gte: Int
150
+ """
151
+ Filter blocks to this height, exclusive
152
+ """
153
+ blockHeight_lt: Int
154
+ """
155
+ Filter blocks from this date/time, inclusive
156
+ """
157
+ dateTime_gte: DateTime
158
+ """
159
+ Filter blocks to this date/time, exclusive
160
+ """
161
+ dateTime_lt: DateTime
162
+ """
163
+ Filter for canonical (finalized) blocks only
164
+ """
165
+ canonical: Boolean
166
+ """
167
+ Filter for blocks in best chain only
168
+ """
169
+ inBestChain: Boolean
170
+ }
171
+
172
+ type UserCommand {
173
+ hash: String!
174
+ kind: String!
175
+ from: String!
176
+ to: String!
177
+ amount: String!
178
+ fee: String!
179
+ memo: String!
180
+ nonce: Int!
181
+ status: String!
182
+ failureReason: String
183
+ }
184
+
185
+ type ZkAppCommand {
186
+ hash: String!
187
+ feePayer: String!
188
+ fee: String!
189
+ memo: String!
190
+ status: String!
191
+ failureReason: String
192
+ }
193
+
194
+ type FeeTransfer {
195
+ recipient: String!
196
+ fee: String!
197
+ type: String!
198
+ }
199
+
200
+ type BlockTransactions {
201
+ coinbase: String!
202
+ userCommands: [UserCommand!]!
203
+ zkappCommands: [ZkAppCommand!]!
204
+ feeTransfer: [FeeTransfer!]!
205
+ }
206
+
207
+ type Block {
208
+ blockHeight: Int!
209
+ creator: String!
210
+ stateHash: String!
211
+ parentHash: String!
212
+ dateTime: DateTime!
213
+ transactions: BlockTransactions!
214
+ }
215
+
216
+ type Query {
217
+ events(input: EventFilterOptionsInput!): [EventOutput]!
218
+ actions(input: ActionFilterOptionsInput!): [ActionOutput]!
219
+ networkState: NetworkStateOutput!
220
+ blocks(query: BlockQueryInput, limit: Int, sortBy: BlockSortByInput): [Block]!
221
+ }