diff --git a/web3.js/src/publickey.ts b/web3.js/src/publickey.ts index cc8b2f8efa98ca..7aa030361294c3 100644 --- a/web3.js/src/publickey.ts +++ b/web3.js/src/publickey.ts @@ -143,10 +143,10 @@ export class PublicKey extends Struct { * Derive a program address from seeds and a program ID. */ /* eslint-disable require-await */ - static async createProgramAddress( + static createProgramAddressSync( seeds: Array, programId: PublicKey, - ): Promise { + ): PublicKey { let buffer = Buffer.alloc(0); seeds.forEach(function (seed) { if (seed.length > MAX_SEED_LENGTH) { @@ -167,6 +167,18 @@ export class PublicKey extends Struct { return new PublicKey(publicKeyBytes); } + /** + * Async version of createProgramAddressSync + * For backwards compatibility + */ + /* eslint-disable require-await */ + static async createProgramAddress( + seeds: Array, + programId: PublicKey, + ): Promise { + return this.createProgramAddressSync(seeds, programId); + } + /** * Find a valid program address * @@ -174,16 +186,16 @@ export class PublicKey extends Struct { * iterates a nonce until it finds one that when combined with the seeds * results in a valid program address. */ - static async findProgramAddress( + static findProgramAddressSync( seeds: Array, programId: PublicKey, - ): Promise<[PublicKey, number]> { + ): [PublicKey, number] { let nonce = 255; let address; while (nonce != 0) { try { const seedsWithNonce = seeds.concat(Buffer.from([nonce])); - address = await this.createProgramAddress(seedsWithNonce, programId); + address = this.createProgramAddressSync(seedsWithNonce, programId); } catch (err) { if (err instanceof TypeError) { throw err; @@ -196,6 +208,17 @@ export class PublicKey extends Struct { throw new Error(`Unable to find a viable program address nonce`); } + /** + * Async version of findProgramAddressSync + * For backwards compatibility + */ + static async findProgramAddress( + seeds: Array, + programId: PublicKey, + ): Promise<[PublicKey, number]> { + return this.findProgramAddressSync(seeds, programId); + } + /** * Check that a pubkey is on the ed25519 curve. */ diff --git a/web3.js/test/publickey.test.ts b/web3.js/test/publickey.test.ts index d6a725c4f53e70..ac9132199e7ed9 100644 --- a/web3.js/test/publickey.test.ts +++ b/web3.js/test/publickey.test.ts @@ -246,4 +246,4 @@ describe('PublicKey', function () { const decoded = PublicKey.decodeUnchecked(encoded); expect(decoded.equals(publicKey)).to.be.true; }); -}); +}); \ No newline at end of file