@@ -12,6 +12,7 @@ const MAIN_MODULE_ABI = [
1212export interface Options {
1313 readonly namespace ?: string
1414 readonly owners ?: string [ ]
15+ readonly arweaveUrl ?: string
1516 readonly graphqlUrl ?: string
1617 readonly eip5719Provider ?: ethers . Provider
1718 readonly rateLimitRetryDelayMs ?: number
@@ -20,6 +21,7 @@ export interface Options {
2021export const defaults = {
2122 namespace : 'Sequence-Sessions' ,
2223 owners : [ 'AZ6R2mG8zxW9q7--iZXGrBknjegHoPzmG5IG-nxvMaM' ] ,
24+ arweaveUrl : 'https://arweave.net' ,
2325 graphqlUrl : 'https://arweave.net/graphql' ,
2426 eip5719Provider : undefined ,
2527 rateLimitRetryDelayMs : 5 * 60 * 1000
@@ -175,7 +177,7 @@ export class ArweaveReader implements ConfigTracker, migrator.PresignedMigration
175177 nextCandidateSigners . map ( async signer => {
176178 const { id, subdigest, signatureType } = nextCandidateItems . get ( signer ) !
177179 try {
178- let signature = await ( await fetchItem ( id , this . options . rateLimitRetryDelayMs ) ) . text ( )
180+ let signature = await ( await fetchItem ( id , this . options . rateLimitRetryDelayMs , this . options . arweaveUrl ) ) . text ( )
179181 switch ( signatureType ) {
180182 case 'eip-712' :
181183 signature += '01'
@@ -276,7 +278,10 @@ export class ArweaveReader implements ConfigTracker, migrator.PresignedMigration
276278
277279 for ( const { id, version } of items ) {
278280 try {
279- const config = { ...( await ( await fetchItem ( id , this . options . rateLimitRetryDelayMs ) ) . json ( ) ) , version }
281+ const config = {
282+ ...( await ( await fetchItem ( id , this . options . rateLimitRetryDelayMs , this . options . arweaveUrl ) ) . json ( ) ) ,
283+ version
284+ }
280285 if ( config . tree ) {
281286 config . tree = toTopology ( config . tree )
282287 }
@@ -401,7 +406,7 @@ export class ArweaveReader implements ConfigTracker, migrator.PresignedMigration
401406 throw new Error ( 'incorrect subdigest' )
402407 }
403408
404- const signature = fetchItem ( id , this . options . rateLimitRetryDelayMs ) . then ( async response => {
409+ const signature = fetchItem ( id , this . options . rateLimitRetryDelayMs , this . options . arweaveUrl ) . then ( async response => {
405410 const signature = ( await response . text ( ) ) + signatureType
406411 if ( this . eip5719 ) {
407412 try {
@@ -488,7 +493,7 @@ export class ArweaveReader implements ConfigTracker, migrator.PresignedMigration
488493 const { id, toVersion, toImageHash, executor } = items [ 0 ]
489494
490495 const [ data , toConfig ] = await Promise . all ( [
491- fetchItem ( id , this . options . rateLimitRetryDelayMs ) . then ( response => response . text ( ) ) ,
496+ fetchItem ( id , this . options . rateLimitRetryDelayMs , this . options . arweaveUrl ) . then ( response => response . text ( ) ) ,
492497 this . configOfImageHash ( { imageHash : toImageHash } )
493498 ] )
494499
@@ -568,7 +573,7 @@ async function findItems(
568573 break
569574 }
570575 console . warn (
571- `rate limited by arweave.net , trying again in ${ rateLimitRetryDelayMs / 1000 } seconds at ${ new Date ( Date . now ( ) + rateLimitRetryDelayMs ) . toLocaleTimeString ( ) } `
576+ `rate limited by ${ graphqlUrl } , trying again in ${ rateLimitRetryDelayMs / 1000 } seconds at ${ new Date ( Date . now ( ) + rateLimitRetryDelayMs ) . toLocaleTimeString ( ) } `
572577 )
573578 await new Promise ( resolve => setTimeout ( resolve , rateLimitRetryDelayMs ) )
574579 }
@@ -595,14 +600,18 @@ async function findItems(
595600 )
596601}
597602
598- async function fetchItem ( id : string , rateLimitRetryDelayMs = defaults . rateLimitRetryDelayMs ) : Promise < Response > {
603+ async function fetchItem (
604+ id : string ,
605+ rateLimitRetryDelayMs = defaults . rateLimitRetryDelayMs ,
606+ arweaveUrl = defaults . arweaveUrl
607+ ) : Promise < Response > {
599608 while ( true ) {
600- const response = await fetch ( `https://arweave.net /${ id } ` , { redirect : 'follow' } )
609+ const response = await fetch ( `${ arweaveUrl } /${ id } ` , { redirect : 'follow' } )
601610 if ( response . status !== 429 ) {
602611 return response
603612 }
604613 console . warn (
605- `rate limited by arweave.net , trying again in ${ rateLimitRetryDelayMs / 1000 } seconds at ${ new Date ( Date . now ( ) + rateLimitRetryDelayMs ) . toLocaleTimeString ( ) } `
614+ `rate limited by ${ arweaveUrl } , trying again in ${ rateLimitRetryDelayMs / 1000 } seconds at ${ new Date ( Date . now ( ) + rateLimitRetryDelayMs ) . toLocaleTimeString ( ) } `
606615 )
607616 await new Promise ( resolve => setTimeout ( resolve , rateLimitRetryDelayMs ) )
608617 }
0 commit comments