diff --git a/package.json b/package.json index e950e1d..7b90f6e 100644 --- a/package.json +++ b/package.json @@ -33,7 +33,7 @@ }, "dependencies": { "elliptic": "^6.5.4", - "node-addon-api": "^2.0.0", + "node-addon-api": "^3.2.1", "node-gyp-build": "^4.2.0" }, "devDependencies": { diff --git a/src/secp256k1.cc b/src/secp256k1.cc index e97d4a6..40ea6a5 100644 --- a/src/secp256k1.cc +++ b/src/secp256k1.cc @@ -26,8 +26,7 @@ } while (0) // Secp256k1 -Napi::FunctionReference Secp256k1Addon::constructor; -unsigned int Secp256k1Addon::secp256k1_context_flags = +const unsigned int Secp256k1Addon::secp256k1_context_flags = SECP256K1_CONTEXT_SIGN | SECP256K1_CONTEXT_VERIFY; Napi::Value Secp256k1Addon::Init(Napi::Env env) { @@ -66,8 +65,9 @@ Napi::Value Secp256k1Addon::Init(Napi::Env env) { InstanceMethod("ecdh", &Secp256k1Addon::ECDH), }); - constructor = Napi::Persistent(func); - constructor.SuppressDestruct(); + Napi::FunctionReference* constructor = new Napi::FunctionReference(); + *constructor = Napi::Persistent(func); + env.SetInstanceData(constructor); return func; } diff --git a/src/secp256k1.h b/src/secp256k1.h index 6dabbf3..5f3e125 100644 --- a/src/secp256k1.h +++ b/src/secp256k1.h @@ -28,8 +28,7 @@ class Secp256k1Addon : public Napi::ObjectWrap { }; private: - static Napi::FunctionReference constructor; - static unsigned int secp256k1_context_flags; + static const unsigned int secp256k1_context_flags; const secp256k1_context* ctx_; ECDSASignData ecdsa_sign_data; ECDHData ecdh_data;