From 1613bdf39d72b1d3ec9eae3dcacdac58962ee320 Mon Sep 17 00:00:00 2001 From: Pavel Murygin Date: Tue, 15 Feb 2022 21:37:55 +0300 Subject: [PATCH 1/3] Using polyfill for buffer --- package-lock.json | 1 + package.json | 1 + src/internal/FluenceConnection.ts | 1 + src/internal/FluencePeer.ts | 1 + src/internal/Particle.ts | 1 + src/internal/utils.ts | 2 +- 6 files changed, 6 insertions(+), 1 deletion(-) diff --git a/package-lock.json b/package-lock.json index 7a0db4e5f..44e355a7b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -15,6 +15,7 @@ "@fluencelabs/avm-runner-interface": "^0.2.0", "async": "3.2.0", "bs58": "4.0.1", + "buffer": "^6.0.3", "cids": "0.8.1", "it-length-prefixed": "3.0.1", "it-pipe": "1.1.0", diff --git a/package.json b/package.json index b709fb63e..4cb3c4067 100644 --- a/package.json +++ b/package.json @@ -28,6 +28,7 @@ "@fluencelabs/avm-runner-interface": "^0.2.0", "async": "3.2.0", "bs58": "4.0.1", + "buffer": "^6.0.3", "cids": "0.8.1", "it-length-prefixed": "3.0.1", "it-pipe": "1.1.0", diff --git a/src/internal/FluenceConnection.ts b/src/internal/FluenceConnection.ts index 8523b1191..2419b07ce 100644 --- a/src/internal/FluenceConnection.ts +++ b/src/internal/FluenceConnection.ts @@ -26,6 +26,7 @@ import PeerId from 'peer-id'; import { Multiaddr } from 'multiaddr'; import { all as allow_all } from 'libp2p-websockets/src/filters'; import { Connection } from 'libp2p-interfaces/src/topology'; +import { Buffer } from 'buffer'; export const PROTOCOL_NAME = '/fluence/particle/2.0.0'; diff --git a/src/internal/FluencePeer.ts b/src/internal/FluencePeer.ts index 23ee016b1..8972da5a8 100644 --- a/src/internal/FluencePeer.ts +++ b/src/internal/FluencePeer.ts @@ -30,6 +30,7 @@ import { AvmRunner, InterpreterResult, LogLevel } from '@fluencelabs/avm-runner- import { AvmRunnerBackground } from '@fluencelabs/avm-runner-background'; import { defaultSigGuard, Sig } from './builtins/Sig'; import { registerSig } from './_aqua/services'; +import { Buffer } from 'buffer'; /** * Node of the Fluence network specified as a pair of node's multiaddr and it's peer id diff --git a/src/internal/Particle.ts b/src/internal/Particle.ts index 118c8fd4d..e57c7fae9 100644 --- a/src/internal/Particle.ts +++ b/src/internal/Particle.ts @@ -20,6 +20,7 @@ import { CallResultsArray, LogLevel } from '@fluencelabs/avm-runner-interface'; import log from 'loglevel'; import { ParticleContext } from './commonTypes'; import { dataToString, jsonify } from './utils'; +import { Buffer } from 'buffer'; export class Particle { id: string; diff --git a/src/internal/utils.ts b/src/internal/utils.ts index 22d71e590..98cf6c8cd 100644 --- a/src/internal/utils.ts +++ b/src/internal/utils.ts @@ -18,7 +18,7 @@ import log from 'loglevel'; import { CallServiceData, CallServiceResult, CallServiceResultType, ResultCodes } from './commonTypes'; import { FluencePeer } from './FluencePeer'; import { Particle, ParticleExecutionStage } from './Particle'; -import { LogLevel as AvmLoglevel } from '@fluencelabs/avm-runner-interface'; +import { Buffer } from 'buffer'; export const MakeServiceCall = (fn: (args: any[]) => CallServiceResultType) => { return (req: CallServiceData): CallServiceResult => { From 0ce6c5870d24fe4964161b6aa363fe83e7981570 Mon Sep 17 00:00:00 2001 From: Pavel Murygin Date: Wed, 16 Feb 2022 21:42:18 +0300 Subject: [PATCH 2/3] Not using polyfil for nodejs --- package-lock.json | 1 + package.json | 3 ++- src/internal/Buffer.ts | 4 ++++ src/internal/FluenceConnection.ts | 2 +- src/internal/FluencePeer.ts | 2 +- src/internal/Particle.ts | 2 +- src/internal/utils.ts | 2 +- 7 files changed, 11 insertions(+), 5 deletions(-) create mode 100644 src/internal/Buffer.ts diff --git a/package-lock.json b/package-lock.json index 44e355a7b..9907a45bb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,6 +14,7 @@ "@fluencelabs/avm-runner-background": "0.1.2", "@fluencelabs/avm-runner-interface": "^0.2.0", "async": "3.2.0", + "browser-or-node": "^2.0.0", "bs58": "4.0.1", "buffer": "^6.0.3", "cids": "0.8.1", diff --git a/package.json b/package.json index 4cb3c4067..a57e77788 100644 --- a/package.json +++ b/package.json @@ -41,7 +41,8 @@ "peer-id": "=0.15.4", "rxjs": "^7.3.0", "ts-pattern": "^3.3.3", - "uuid": "8.3.0" + "uuid": "8.3.0", + "browser-or-node": "^2.0.0" }, "devDependencies": { "@fluencelabs/aqua": "^0.5.3-258", diff --git a/src/internal/Buffer.ts b/src/internal/Buffer.ts new file mode 100644 index 000000000..5470ccca5 --- /dev/null +++ b/src/internal/Buffer.ts @@ -0,0 +1,4 @@ +import { isBrowser } from 'browser-or-node'; +import { Buffer as BufferPolyfill } from 'buffer'; + +export default isBrowser ? Buffer : BufferPolyfill; diff --git a/src/internal/FluenceConnection.ts b/src/internal/FluenceConnection.ts index 2419b07ce..f5f82493d 100644 --- a/src/internal/FluenceConnection.ts +++ b/src/internal/FluenceConnection.ts @@ -26,7 +26,7 @@ import PeerId from 'peer-id'; import { Multiaddr } from 'multiaddr'; import { all as allow_all } from 'libp2p-websockets/src/filters'; import { Connection } from 'libp2p-interfaces/src/topology'; -import { Buffer } from 'buffer'; +import Buffer from './Buffer'; export const PROTOCOL_NAME = '/fluence/particle/2.0.0'; diff --git a/src/internal/FluencePeer.ts b/src/internal/FluencePeer.ts index 8972da5a8..683b7bcd2 100644 --- a/src/internal/FluencePeer.ts +++ b/src/internal/FluencePeer.ts @@ -30,7 +30,7 @@ import { AvmRunner, InterpreterResult, LogLevel } from '@fluencelabs/avm-runner- import { AvmRunnerBackground } from '@fluencelabs/avm-runner-background'; import { defaultSigGuard, Sig } from './builtins/Sig'; import { registerSig } from './_aqua/services'; -import { Buffer } from 'buffer'; +import Buffer from './Buffer'; /** * Node of the Fluence network specified as a pair of node's multiaddr and it's peer id diff --git a/src/internal/Particle.ts b/src/internal/Particle.ts index e57c7fae9..9df33797b 100644 --- a/src/internal/Particle.ts +++ b/src/internal/Particle.ts @@ -20,7 +20,7 @@ import { CallResultsArray, LogLevel } from '@fluencelabs/avm-runner-interface'; import log from 'loglevel'; import { ParticleContext } from './commonTypes'; import { dataToString, jsonify } from './utils'; -import { Buffer } from 'buffer'; +import Buffer from './Buffer'; export class Particle { id: string; diff --git a/src/internal/utils.ts b/src/internal/utils.ts index 98cf6c8cd..81b2df129 100644 --- a/src/internal/utils.ts +++ b/src/internal/utils.ts @@ -18,7 +18,7 @@ import log from 'loglevel'; import { CallServiceData, CallServiceResult, CallServiceResultType, ResultCodes } from './commonTypes'; import { FluencePeer } from './FluencePeer'; import { Particle, ParticleExecutionStage } from './Particle'; -import { Buffer } from 'buffer'; +import Buffer from './Buffer'; export const MakeServiceCall = (fn: (args: any[]) => CallServiceResultType) => { return (req: CallServiceData): CallServiceResult => { From 94ee4df9c4a9d8c716ed4278a7c6226ea063d586 Mon Sep 17 00:00:00 2001 From: Pavel Murygin Date: Wed, 16 Feb 2022 22:57:20 +0300 Subject: [PATCH 3/3] fix if condition --- src/internal/Buffer.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/internal/Buffer.ts b/src/internal/Buffer.ts index 5470ccca5..a22bd96fe 100644 --- a/src/internal/Buffer.ts +++ b/src/internal/Buffer.ts @@ -1,4 +1,4 @@ import { isBrowser } from 'browser-or-node'; import { Buffer as BufferPolyfill } from 'buffer'; -export default isBrowser ? Buffer : BufferPolyfill; +export default isBrowser ? BufferPolyfill : Buffer;