@@ -31,7 +31,7 @@ export default class RoochIndexer {
31
31
private oracleAddress : string ,
32
32
) {
33
33
this . keyPair = Secp256k1Keypair . fromSecretKey ( this . privateKey ) ;
34
- this . orchestrator = `0x ${ this . keyPair . getSchnorrPublicKey ( ) } ` . toLowerCase ( ) ;
34
+ this . orchestrator = this . keyPair . getRoochAddress ( ) . toHexAddress ( ) ;
35
35
log . info ( `Rooch Indexer initialized` ) ;
36
36
log . info ( `Chain ID: ${ this . chainId } ` ) ;
37
37
log . info ( `Oracle Address: ${ this . oracleAddress } ` ) ;
@@ -77,19 +77,10 @@ export default class RoochIndexer {
77
77
}
78
78
}
79
79
80
- async sendFulfillment ( data : IRequestAdded , result : string ) {
80
+ async sendFulfillment ( data : IRequestAdded , status : number , result : string ) {
81
81
const client = new RoochClient ( {
82
82
url : getRoochNodeUrl ( this . chainId ) ,
83
83
} ) ;
84
- const session = await client . createSession ( {
85
- sessionArgs : {
86
- appName : "your app name" ,
87
- appUrl : "your app url" ,
88
- scopes : [ `${ this . oracleAddress } ::oracles::fulfil_request` ] ,
89
- } ,
90
- signer : this . keyPair ,
91
- } ) ;
92
-
93
84
const tx = new Transaction ( ) ;
94
85
tx . callFunction ( {
95
86
target : `${ this . oracleAddress } ::oracles::fulfil_request` ,
@@ -98,7 +89,7 @@ export default class RoochIndexer {
98
89
99
90
const receipt = await client . signAndExecuteTransaction ( {
100
91
transaction : tx ,
101
- signer : session ,
92
+ signer : this . keyPair ,
102
93
} ) ;
103
94
104
95
log . debug ( receipt ) ;
@@ -109,9 +100,9 @@ export default class RoochIndexer {
109
100
log . debug ( "processing:" , data . request_id ) ;
110
101
const token = xInstance . getAccessToken ( ) ;
111
102
112
- if ( data . oracle . toLowerCase ( ) !== this . orchestrator ) {
113
- return null ;
114
- }
103
+ // if (data.oracle.toLowerCase() !== this.orchestrator) {
104
+ // return null;
105
+ // }
115
106
const url = data . params . value . url ?. includes ( "http" ) ? data . params . value . url : `https://${ data . params . value . url } ` ;
116
107
try {
117
108
const _url = new URL ( url ) ;
@@ -151,9 +142,9 @@ export default class RoochIndexer {
151
142
try {
152
143
const result = await run ( data . pick , JSON . stringify ( request . data ) , { input : "string" } ) ;
153
144
log . debug ( { result } ) ;
154
- return result ;
145
+ return { status : request . status , message : result } ;
155
146
} catch {
156
- return { status : 406 , message : "`Pick` value provided could not be resolved on the returned response" } ;
147
+ return { status : 409 , message : "`Pick` value provided could not be resolved on the returned response" } ;
157
148
}
158
149
// return { status: request.status, message: result };
159
150
} catch ( error : any ) {
@@ -201,7 +192,11 @@ export default class RoochIndexer {
201
192
const data = await this . processRequestAddedEvent ( event . decoded_event_data . value ) ;
202
193
if ( data ) {
203
194
try {
204
- const temp = await this . sendFulfillment ( event . decoded_event_data . value , JSON . stringify ( data ) ) ;
195
+ const temp = await this . sendFulfillment (
196
+ event . decoded_event_data . value ,
197
+ data . status ,
198
+ JSON . stringify ( data . message ) ,
199
+ ) ;
205
200
await prismaClient . events . create ( {
206
201
data : {
207
202
eventHandleId : event . event_id . event_handle_id ,
@@ -216,6 +211,7 @@ export default class RoochIndexer {
216
211
} ,
217
212
} ) ;
218
213
} catch ( err ) {
214
+ log . error ( err ) ;
219
215
await prismaClient . events . create ( {
220
216
data : {
221
217
eventHandleId : event . event_id . event_handle_id ,
0 commit comments