Skip to content
This repository was archived by the owner on Jul 10, 2025. It is now read-only.

Commit d860ea6

Browse files
authored
Using polyfill for Buffer in browsers (#129)
1 parent 976cd04 commit d860ea6

File tree

7 files changed

+13
-2
lines changed

7 files changed

+13
-2
lines changed

package-lock.json

Lines changed: 2 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
"@fluencelabs/avm-runner-interface": "^0.2.0",
2929
"async": "3.2.0",
3030
"bs58": "4.0.1",
31+
"buffer": "^6.0.3",
3132
"cids": "0.8.1",
3233
"it-length-prefixed": "3.0.1",
3334
"it-pipe": "1.1.0",
@@ -40,7 +41,8 @@
4041
"peer-id": "=0.15.4",
4142
"rxjs": "^7.3.0",
4243
"ts-pattern": "^3.3.3",
43-
"uuid": "8.3.0"
44+
"uuid": "8.3.0",
45+
"browser-or-node": "^2.0.0"
4446
},
4547
"devDependencies": {
4648
"@fluencelabs/aqua": "^0.5.3-258",

src/internal/Buffer.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
import { isBrowser } from 'browser-or-node';
2+
import { Buffer as BufferPolyfill } from 'buffer';
3+
4+
export default isBrowser ? BufferPolyfill : Buffer;

src/internal/FluenceConnection.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ import PeerId from 'peer-id';
2626
import { Multiaddr } from 'multiaddr';
2727
import { all as allow_all } from 'libp2p-websockets/src/filters';
2828
import { Connection } from 'libp2p-interfaces/src/topology';
29+
import Buffer from './Buffer';
2930

3031
export const PROTOCOL_NAME = '/fluence/particle/2.0.0';
3132

src/internal/FluencePeer.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ import { AvmRunner, InterpreterResult, LogLevel } from '@fluencelabs/avm-runner-
3030
import { AvmRunnerBackground } from '@fluencelabs/avm-runner-background';
3131
import { defaultSigGuard, Sig } from './builtins/Sig';
3232
import { registerSig } from './_aqua/services';
33+
import Buffer from './Buffer';
3334

3435
/**
3536
* Node of the Fluence network specified as a pair of node's multiaddr and it's peer id

src/internal/Particle.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import { CallResultsArray, LogLevel } from '@fluencelabs/avm-runner-interface';
2020
import log from 'loglevel';
2121
import { ParticleContext } from './commonTypes';
2222
import { dataToString, jsonify } from './utils';
23+
import Buffer from './Buffer';
2324

2425
export class Particle {
2526
id: string;

src/internal/utils.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import log from 'loglevel';
1818
import { CallServiceData, CallServiceResult, CallServiceResultType, ResultCodes } from './commonTypes';
1919
import { FluencePeer } from './FluencePeer';
2020
import { Particle, ParticleExecutionStage } from './Particle';
21-
import { LogLevel as AvmLoglevel } from '@fluencelabs/avm-runner-interface';
21+
import Buffer from './Buffer';
2222

2323
export const MakeServiceCall = (fn: (args: any[]) => CallServiceResultType) => {
2424
return (req: CallServiceData): CallServiceResult => {

0 commit comments

Comments
 (0)