@gurge/sdk 0.3.26 → 0.3.28
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/common/src/crypto/BabyJubRN.cjs +1 -0
- package/common/src/crypto/BabyJubRN.d.ts +2 -0
- package/common/src/crypto/BabyJubRN.mjs +66 -0
- package/common/src/crypto/EddsaRN.cjs +1 -0
- package/common/src/crypto/EddsaRN.mjs +41 -0
- package/common/src/crypto/babyJub.cjs +1 -1
- package/common/src/crypto/babyJub.mjs +6 -12
- package/common/src/crypto/eddsa.cjs +1 -1
- package/common/src/crypto/eddsa.mjs +6 -12
- package/common/src/crypto/poseidon.cjs +1 -1
- package/common/src/crypto/poseidon.mjs +6 -12
- package/common/src/crypto/preProcessing.cjs +1 -1
- package/common/src/crypto/preProcessing.mjs +13 -23
- package/common/src/data-structures/Hinkal/hinkalClaimUtxo.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalClaimUtxo.mjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalDeposit.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalDeposit.mjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalPrivateWallet.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalPrivateWallet.mjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalSolanaSwap.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalSolanaSwap.mjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalSolanaTransfer.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalSolanaTransfer.mjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalSolanaWithdraw.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalSolanaWithdraw.mjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalSwap.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalSwap.mjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalTransfer.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalTransfer.mjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalWithdraw.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalWithdraw.d.ts +3 -1
- package/common/src/data-structures/Hinkal/hinkalWithdraw.mjs +32 -43
- package/common/src/data-structures/Hinkal/hinkalWithdrawStuckUtxos.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalWithdrawStuckUtxos.mjs +2 -2
- package/common/src/data-structures/Hinkal/prepareDepositOnChainUtxosZkProof.cjs +1 -1
- package/common/src/data-structures/Hinkal/prepareDepositOnChainUtxosZkProof.mjs +1 -1
- package/common/src/data-structures/MultiThreadedUtxoUtils/MultiThreadedUtxoUtils.cjs +1 -1
- package/common/src/data-structures/MultiThreadedUtxoUtils/MultiThreadedUtxoUtils.mjs +26 -42
- package/common/src/data-structures/utxo/Utxo.cjs +1 -1
- package/common/src/data-structures/utxo/Utxo.d.ts +0 -1
- package/common/src/data-structures/utxo/Utxo.mjs +6 -19
- package/common/src/functions/index.cjs +1 -1
- package/common/src/functions/index.mjs +1 -0
- package/common/src/functions/pre-transaction/buildCommitmentValidationData.cjs +1 -1
- package/common/src/functions/pre-transaction/buildCommitmentValidationData.mjs +43 -86
- package/common/src/functions/pre-transaction/outputUtxoProcessing.cjs +1 -1
- package/common/src/functions/pre-transaction/outputUtxoProcessing.d.ts +2 -2
- package/common/src/functions/pre-transaction/outputUtxoProcessing.mjs +22 -28
- package/common/src/functions/snarkjs/constructGeneralZkProof.cjs +1 -1
- package/common/src/functions/snarkjs/constructGeneralZkProof.mjs +43 -49
- package/common/src/functions/utils/bigint-math.utils.cjs +1 -1
- package/common/src/functions/utils/bigint-math.utils.d.ts +2 -0
- package/common/src/functions/utils/bigint-math.utils.mjs +18 -1
- package/common/src/functions/utils/index.cjs +1 -1
- package/common/src/functions/utils/index.mjs +1 -1
- package/common/src/functions/web3/events/getInputUtxoAndBalance.cjs +1 -1
- package/common/src/functions/web3/events/getInputUtxoAndBalance.mjs +44 -94
- package/common/src/functions/web3/events/getShieldedBalance.cjs +1 -1
- package/common/src/functions/web3/events/getShieldedBalance.mjs +64 -64
- package/common/src/webworker/logError-D8yBaP96.js +2 -0
- package/common/src/webworker/package.json +1 -1
- package/common/src/webworker/performTaskWithWorker.cjs +1 -1
- package/common/src/webworker/performTaskWithWorker.mjs +17 -18
- package/common/src/webworker/utxoWorker/utxoWorkerLauncher.ts?worker&url.cjs +1 -1
- package/common/src/webworker/utxoWorker/utxoWorkerLauncher.ts?worker&url.mjs +1 -1
- package/common/src/webworker/utxoWorkerNode.cjs +1 -1
- package/common/src/webworker/viteWorkerURL.constant.cjs +3 -4
- package/common/src/webworker/viteWorkerURL.constant.d.ts +0 -1
- package/common/src/webworker/viteWorkerURL.constant.mjs +3 -4
- package/common/src/webworker/zkProofWorker/zkProofWorkerLauncher.ts?worker&url.cjs +1 -1
- package/common/src/webworker/zkProofWorker/zkProofWorkerLauncher.ts?worker&url.mjs +1 -1
- package/common/src/webworker/zkProofWorkerNode.cjs +1 -1
- package/package.json +1 -1
- package/react-native/HinkalWebViewWorker.cjs +4 -76
- package/react-native/HinkalWebViewWorker.mjs +49 -152
- package/react-native/bridge/HinkalRNWorker.cjs +1 -1
- package/react-native/bridge/HinkalRNWorker.d.ts +0 -1
- package/react-native/bridge/HinkalRNWorker.mjs +11 -16
- package/react-native/shims/circomlibjs-hinkal-fork.js +2 -2
- package/react-native/shims/circomlibjs.js +2 -2
- package/react-native/workerCDNUrls.cjs +1 -1
- package/react-native/workerCDNUrls.d.ts +0 -1
- package/react-native/workerCDNUrls.mjs +2 -2
- package/sdk/package.json.cjs +1 -1
- package/sdk/package.json.mjs +1 -1
- package/common/src/crypto/rnCryptoBridge.cjs +0 -1
- package/common/src/crypto/rnCryptoBridge.d.ts +0 -8
- package/common/src/crypto/rnCryptoBridge.mjs +0 -10
- package/common/src/crypto/rnUtxoCrypto.cjs +0 -1
- package/common/src/crypto/rnUtxoCrypto.d.ts +0 -14
- package/common/src/crypto/rnUtxoCrypto.mjs +0 -40
- package/common/src/functions/utils/hinkalTiming.utils.cjs +0 -1
- package/common/src/functions/utils/hinkalTiming.utils.d.ts +0 -11
- package/common/src/functions/utils/hinkalTiming.utils.mjs +0 -21
- package/common/src/functions/utils/utxoPadding.utils.cjs +0 -1
- package/common/src/functions/utils/utxoPadding.utils.d.ts +0 -2
- package/common/src/functions/utils/utxoPadding.utils.mjs +0 -14
- package/common/src/webworker/cryptoWorker/cryptoWorker.types.cjs +0 -1
- package/common/src/webworker/cryptoWorker/cryptoWorker.types.d.ts +0 -49
- package/common/src/webworker/cryptoWorker/cryptoWorker.types.mjs +0 -6
- package/common/src/webworker/cryptoWorker/cryptoWorkerLauncher.d.ts +0 -1
- package/common/src/webworker/cryptoWorker/cryptoWorkerLogic.d.ts +0 -2
- package/common/src/webworker/logError-DFS-H2t0.js +0 -2
- package/react-native/bridge/RnWebViewCryptoBridge.cjs +0 -1
- package/react-native/bridge/RnWebViewCryptoBridge.d.ts +0 -7
- package/react-native/bridge/RnWebViewCryptoBridge.mjs +0 -49
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const e=require(`./workerProxy-DPeuP2Mg.js`);let t=require(`buffer`),n=require(`process`);n=e.u(n);let r=require(`ethers`),i=require(`poseidon-lite`);i=e.u(i);let a=require(`libsodium-wrappers`);a=e.u(a);let o=require(`@solana/web3.js`),s=require(`bs58`);s=e.u(s);let c=require(`tweetnacl`);c=e.u(c);let l=require(`tronweb`);var u=class{static bridge=null},d=()=>{let e=u.bridge;if(!e)throw Error(`RN crypto bridge is not registered. Mount HinkalWebViewWorker in your app.`);return e},f=new class{babyjub=void 0;async init(){if(this.babyjub)return;if(e.o){await d().init();return}let{buildBabyjub:t}=await import(`circomlibjs-hinkal-fork`);this.babyjub=await t()}getJub(){if(e.o)throw Error(`babyJubInstance is unavailable on React Native main thread. Use WebView crypto bridge.`);return this.babyjub}},p=()=>f.getJub(),m=new class{eddsa=void 0;async init(){if(this.eddsa)return;if(e.o){await d().init();return}let{buildEddsa:t}=await import(`circomlibjs-hinkal-fork`);this.eddsa=await t()}getEddsa(){if(e.o)throw Error(`eddsaInstance is unavailable on React Native main thread. Use WebView crypto bridge.`);return this.eddsa}},h=()=>m.getEddsa();function g(e){return typeof e==`object`&&`toBigInt`in e?e.toBigInt():BigInt(e)}var _=()=>{let e=e=>{let t=i[`poseidon${e.length}`];if(!t)throw Error(`Poseidon: arity ${e.length} not supported (1..16)`);return t(e.map(e=>BigInt(e)))};return e.F={toString:e=>BigInt(e).toString()},e},v=new class{poseidon=void 0;async init(){if(this.poseidon)return;if(e.o){await d().init(),this.poseidon=_();return}let{buildPoseidon:t}=await import(`circomlibjs-hinkal-fork`);this.poseidon=await t()}getPoseidon(){return this.poseidon}};function y(...e){let t=v.getPoseidon();return g(t.F.toString(t(e)))}var b=(...e)=>{let t=v.getPoseidon();return r.ethers.toBeHex(t.F.toString(t([...e])))},x=async(r=!1)=>{if((typeof window<`u`||typeof self<`u`)&&(typeof window<`u`&&(window.global=window),globalThis.Buffer=t.Buffer,globalThis.process=n.default),e.o&&!r){await Promise.all([a.default.ready,d().init(),v.init()]);return}await Promise.all([a.default.ready,v.init(),f.init(),...r?[]:[m.init()]])};`${`00`.repeat(20)}`;var S=21888242871839275222246405745257275088548364400416034343698204186575808495617n,C=S/2n,w=200n;`${`00`.repeat(32)}`;var T=class{inMemoryCache=new Map;constructor(e){e&&this.mergeWithSerialized(e)}getInMemory(e){return this.inMemoryCache.get(e)??void 0}setInMemory(e,t){this.inMemoryCache.set(e,t)}mergeWithSerialized(t){Object.entries(t).forEach(([t,n])=>{this.set(t,e.c(n))})}},E=class extends T{isAttached=!1;get(e){return this.getInMemory(e)}set(e,t){this.setInMemory(e,t)}serialize(){return Object.fromEntries([...this.inMemoryCache].map(([t,n])=>[t,e.l(n)]))}attach(t){if(this.isAttached)throw Error(`can't reattach cache device`);return this.isAttached=!0,(...n)=>{let r=e.l(n),i=this.get(r);if(i!==void 0)return i;let a=t(...n);return this.set(r,a),a}}},D=e=>{if(e<0n||e>=21888242871839275222246405745257275088548364400416034343698204186575808495617n)throw RangeError();return e>C},O=e=>D(e)?1n:0n,k=new E,A=new E,j=new E,M=class{signature;nullifyingKey;PREFIX_FOR_SPENDING_PAIR=`1`;PREFIX_FOR_NULLIFYING_PAIR=`2`;constructor(e,t){this.signature=e,this.nullifyingKey=t}getSignature(){return this.requireSignature(),this.signature}setSignature(e){this.signature=e}requireSignature(){if(!this.signature)throw Error(`No signature provided`)}requireKeyMaterial(){if(!this.signature&&!this.nullifyingKey)throw Error(`No signature or private key provided`)}verifyTronMessage(e,t){return this.requireSignature(),t===l.Trx.verifyMessageV2(e,this.signature)}getShieldedPrivateKey=()=>(this.requireKeyMaterial(),this.nullifyingKey||=r.ethers.keccak256(this.signature),this.nullifyingKey);getShieldedPublicKey=()=>(this.requireKeyMaterial(),b(this.getShieldedPrivateKey()));getSpendingKeyPair=()=>{this.requireSignature();let e=h(),t=p(),n=b(this.PREFIX_FOR_SPENDING_PAIR,this.getSignature()),i=Buffer.from(r.ethers.getBytes(n)),a=e.prv2pub(i);return{privSpendingKey:n,pubSpendingBJJPoint:[BigInt(t.F.toString(a[0])),BigInt(t.F.toString(a[1]))]}};signEddsa=e=>{this.requireSignature();let t=p(),n=h(),i=Buffer.from(r.ethers.getBytes(this.getSpendingKeyPair().privSpendingKey)),a=t.F.e(e),o=n.signPoseidon(i,a);return{R8:[BigInt(t.F.toString(o.R8[0])),BigInt(t.F.toString(o.R8[1]))],S:BigInt(o.S)}};getShieldedPrivateKeyFromNonce=e=>{this.requireKeyMaterial();let t=b(e,this.getShieldedPrivateKey(),this.getShieldedPublicKey());return r.ethers.keccak256(r.ethers.toUtf8Bytes(`hinkal-offchain-shielded-key:${t}`))};getClaimableSignatureFromNonce=e=>{this.requireKeyMaterial();let t=b(e,this.getShieldedPrivateKey(),this.getShieldedPublicKey());return r.ethers.keccak256(r.ethers.toUtf8Bytes(`hinkal-claimable-utxo-signature:${t}`))};getDerivedEthereumAddress=()=>(this.requireKeyMaterial(),new r.ethers.Wallet(this.getShieldedPrivateKey()).address);getDerivedSolanaPublicKey=()=>(this.requireKeyMaterial(),o.Keypair.fromSeed(r.ethers.getBytes(this.getShieldedPrivateKey())).publicKey.toBase58());getNearIntentsAccountId=()=>{this.requireKeyMaterial();let e=o.Keypair.fromSeed(r.ethers.getBytes(this.getShieldedPrivateKey()));return r.ethers.hexlify(e.publicKey.toBytes()).slice(2)};getNearIntentsKeyPairString=()=>{this.requireKeyMaterial();let e=o.Keypair.fromSeed(r.ethers.getBytes(this.getShieldedPrivateKey()));return`ed25519:${s.default.encode(e.secretKey)}`};getSignerPrivateKeyFromNonce=e=>{this.requireKeyMaterial();let t=b(e,this.getShieldedPrivateKey(),this.getShieldedPublicKey());return r.ethers.keccak256(r.ethers.toUtf8Bytes(t))};getSignerSolanaPrivateKeyFromNonce=e=>{let t=this.getSignerPrivateKeyFromNonce(e),n=r.ethers.getBytes(t),i=o.Keypair.fromSeed(n);return s.default.encode(i.secretKey)};verifyMessage(e){return this.requireSignature(),r.ethers.verifyMessage(e,this.signature)}verifySolanaMessage(e,t){this.requireSignature();let n=new TextEncoder().encode(e),i=r.ethers.getBytes(this.signature),a=new o.PublicKey(t).toBytes();return c.default.sign.detached.verify(n,i,a)}static getRandomizedStealthPairOld=A.attach((e,t)=>{let n=p(),r=e*(BigInt(t)%S)%S,i=n.mulPointEscalar(n.Base8,e),a=n.mulPointEscalar(n.Base8,r);return{H0:[BigInt(n.F.toString(i[0])),BigInt(n.F.toString(i[1]))],H1:[BigInt(n.F.toString(a[0])),BigInt(n.F.toString(a[1]))]}});static getRandomizedStealthPair=k.attach((e,t)=>{let n=p(),r=BigInt(t)%S,i=n.mulPointEscalar(n.Base8,e),a=n.mulPointEscalar(i,r);return{H0:[BigInt(n.F.toString(i[0])),BigInt(n.F.toString(i[1]))],H1:[BigInt(n.F.toString(a[0])),BigInt(n.F.toString(a[1]))]}});static getStealthAddressCompressedPoints=(e,t)=>{let{H0:n,H1:r}=this.getRandomizedStealthPairOld(e,t),[i,a]=[n,r].map(e=>BigInt(e[1])+2n**255n*O(e[0]));return{h0:i,h1:a}};static checkSignature=(e,t,n,r)=>{let{h0:i,h1:a}=this.getStealthAddressCompressedPoints(e,r);return t===i&&n===a};static getStealthAddress=j.attach((e,t)=>{let{H0:n,H1:r}=this.getRandomizedStealthPairOld(e,t);return b(2n*O(n[0])+O(r[0]),n[1],r[1])});static getH1FromH0=(e,t)=>{let n=p(),r=BigInt(t)%S,i=[n.F.e(e[0]),n.F.e(e[1])],a=n.mulPointEscalar(i,r);return[BigInt(n.F.toString(a[0])),BigInt(n.F.toString(a[1]))]};static verifyStealthPair=(e,t,n,r=!0)=>{let i=this.getH1FromH0(e,n);return r?i[1]===t[1]:i===t};static getStealthAddressNewStyle=(e,t,n)=>{if(n?.length!==2)throw Error(`Spending public key must be an array of 2 elements`);let r=this.getH1FromH0(e,t);return b(2n*O(e[0])+O(r[0]),e[1],r[1],n[0],n[1],t)};static findCorrectRandomization(e,t){if(!t)throw Error(`No Private Shielded Key Provided`);let n=BigInt(t)%S,r,i,a=0n;do r=e*10n**a%S,i=r*n%S,a+=1n;while(i>=2n**253n||r>=2n**253n);return r}static getH0FromRandomization=e=>{let t=p(),n=t.mulPointEscalar(t.Base8,e);return[BigInt(t.F.toString(n[0])),BigInt(t.F.toString(n[1]))]};static findH0(e,t){if(!t)return;let{H0:n}=this.getRandomizedStealthPair(e,t);return n}static getEncryptionKeyPair=e=>{let t=a.default.crypto_box_seed_keypair(r.ethers.getBytes(e));return{privateKey:r.ethers.hexlify(t.privateKey),publicKey:r.ethers.hexlify(t.publicKey)}};getAccessKey=()=>(this.requireKeyMaterial(),b(this.getShieldedPrivateKey(),this.getShieldedPublicKey()));getBackendToken=()=>(this.requireKeyMaterial(),b(this.getAccessKey(),this.getShieldedPublicKey()))},N={CANNOT_CERTIFY_FOR_PAST_WEEK:`Certification for the past week is not available`,CYCLICAL_REFERRALS_FORBIDDEN:`Cyclical referrals are forbidden`,USER_IS_UNRANKED:`Please certify transactions to see rank`},P={WC_NO_MATCHING_KEY:`creating the transaction failed
|
|
2
|
-
version`,CONNECTION_PROBLEM:`Failed to connect wallet. Please try again.`,REQUEST_PENDING:`request of type 'wallet_requestpermissions' already pending for origin`},F={INSUFFICIENT_FUNDS:`Insufficient funds`,INSUFFICIENT_FUNDS_WITHDRAW:`Not enough funds to withdraw`,INSUFFICIENT_FUNDS_TRANSFER:`Not enough funds to transfer`,INSUFFICIENT_FUNDS_TO_TRANSACT:`Not enough funds to transact`,INSUFFICIENT_FUNDS_GAS:`Insufficient funds for gas * price`,INSUFFICIENT_TRON_BALANCE_FOR_FEE:`Insufficient TRX balance to cover transfer amount and transaction fee reserve`,INSUFFICIENT_SOL_BALANCE:`Insufficient SOL balance`},I={GAS_PRICE_EXCEEDS_AUTOSHIELD_LIMIT:`Skipped shielding due to gas fee exceeding your limit.`,AUTO_SHIELD_INSUFFICIENT_GAS:`Auto-Shield skipped due to insufficient gas.`};({...N,...P,...F,...I});var L=e=>BigInt(r.ethers.hexlify(r.ethers.randomBytes(e))),R=function(e){return e.INIT=`init`,e.PREPARE_NEW_STYLE_UTXO_FIELDS=`prepareNewStyleUtxoFields`,e.PREPARE_NEW_STYLE_UTXO_FIELDS_BATCH=`prepareNewStyleUtxoFieldsBatch`,e.BATCH_STEALTH_VALIDATION=`batchStealthValidation`,e.POSEIDON_HASH=`poseidonHash`,e.GET_SPENDING_KEY_PAIR=`getSpendingKeyPair`,e}({}),z=()=>L(31).toString(),B=async(t,n)=>{if(!e.o)throw Error(`prepareNewStyleUtxoFields is only for React Native crypto bridge`);let r=d();await r.init();let i=await r.call(R.PREPARE_NEW_STYLE_UTXO_FIELDS,{initialRandomization:z(),nullifyingKey:t,spendingPublicKey:n?.map(e=>e.toString())});return{randomization:BigInt(i.randomization),H0:[BigInt(i.H0[0]),BigInt(i.H0[1])],stealthAddress:i.stealthAddress}},V=t=>e.o&&!!t.isNewStyle&&!!t.nullifyingKey&&t.H0===void 0&&t.randomization===void 0,H=()=>Math.floor(Date.now()/1e3),U=class t{amount;erc20TokenAddress;mintAddress;timeStamp;nullifyingKey;spendingPublicKey;randomization;H0;stealthAddress;encryptionKey;commitment;nullifier;isBlocked;isNewStyle;constructor({amount:e,erc20TokenAddress:t,mintAddress:n,timeStamp:r,nullifyingKey:i,spendingPublicKey:a,randomization:o,H0:s,stealthAddress:c,encryptionKey:l,commitment:u=void 0,nullifier:d=void 0,isBlocked:f=!1,isNewStyle:p=!1}){this.amount=e,this.erc20TokenAddress=t,this.mintAddress=n,this.timeStamp=r??H().toString(),this.nullifyingKey=i,this.spendingPublicKey=a,this.randomization=o??(i?M.findCorrectRandomization(L(31),i):void 0),this.H0=s??(p&&this.randomization?M.findH0(this.randomization,i):void 0),this.stealthAddress=c,this.encryptionKey=l,this.commitment=u,this.nullifier=d,this.isBlocked=f,this.isNewStyle=p}static async createAsync(e){if(V(e)){let n=await B(e.nullifyingKey,e.spendingPublicKey);return new t({...e,randomization:n.randomization,H0:n.H0,stealthAddress:n.stealthAddress})}return new t(e)}static createFrom(e,n){return new t({...e.getConstructableParams(),nullifier:void 0,commitment:void 0,...n})}getConstructableParams(){return{amount:this.amount,erc20TokenAddress:this.erc20TokenAddress,mintAddress:this.mintAddress,timeStamp:this.timeStamp,nullifyingKey:this.nullifyingKey,spendingPublicKey:this.spendingPublicKey,randomization:this.randomization,H0:this.H0,stealthAddress:this.stealthAddress,encryptionKey:this.encryptionKey,commitment:this.commitment,nullifier:this.nullifier,isBlocked:this.isBlocked,isNewStyle:this.isNewStyle}}getBasicUtxoParams(){return{amount:this.amount,erc20TokenAddress:this.erc20TokenAddress,mintAddress:this.mintAddress,timeStamp:this.timeStamp,randomization:this.randomization,H0:this.H0,stealthAddress:this.stealthAddress,commitment:this.commitment,nullifier:this.nullifier,isBlocked:this.isBlocked,isNewStyle:this.isNewStyle}}getCommitment(){if(!this.commitment){let e=[this.amount,this.erc20TokenAddress,BigInt(this.getStealthAddress()),this.timeStamp];this.commitment=b(...e)}return this.commitment}getNullifier(){if(!this.nullifier){if(!this.nullifyingKey)throw Error(`No Nullifiers if private key is not provided`);let e=this.getCommitment(),t=b(this.nullifyingKey,e);this.nullifier=b(e,t)}return this.nullifier}getStealthAddress(){if(!this.stealthAddress){if(!this.nullifyingKey)throw Error(`No stealth address in UTXO if private key is not provided`);if(this.isNewStyle){if(!this.H0)throw Error(`No H0 point provided`);this.stealthAddress=M.getStealthAddressNewStyle(this.H0,this.nullifyingKey,this.spendingPublicKey)}else{if(!this.randomization)throw Error(`No randomization provided`);this.stealthAddress=M.getStealthAddress(this.randomization,this.nullifyingKey)}}return this.stealthAddress}getTokenAddress(t){let n=e.r(t)?this.mintAddress:this.erc20TokenAddress;if(!n)throw Error(`No token address provided`);return n}getEncryptionKey(){if(!this.nullifyingKey){if(!this.encryptionKey)throw Error(`No encryption key provided in UTXO`);return this.encryptionKey}return M.getEncryptionKeyPair(this.nullifyingKey).publicKey}},W=()=>a.default.crypto_box_SEALBYTES+a.default.crypto_secretbox_KEYBYTES,G=e=>{let t=a.default.crypto_secretbox_NONCEBYTES,n=W(),r=0,i=e[r];r+=1;let o=e.slice(r,r+t);r+=t;let s=[];for(let t=0;t<i;t+=1)s.push(e.slice(r,r+n)),r+=n;return{nonce:o,sealedKeys:s,ciphertext:e.slice(r)}},K=(e,t,n,i)=>{let{nonce:o,sealedKeys:s,ciphertext:c}=G(e),l=a.default.crypto_box_seal_open(s[i],r.ethers.getBytes(n),r.ethers.getBytes(t)),u=a.default.crypto_secretbox_open_easy(c,o,l);return Buffer.from(u)},q=(e,t,n)=>{let i=a.default.crypto_box_seal_open(e,r.ethers.getBytes(n),r.ethers.getBytes(t));return Buffer.from(i)},J=54912,Y=2,X=e=>e[0]*256+e[1],Z=(e,t)=>{let{privateKey:n,publicKey:r}=M.getEncryptionKeyPair(t.getShieldedPrivateKey()),i=X(e)===J?K(e.slice(Y),n,r,0):q(e,n,r),a=Buffer.from(i).toString(`utf-8`).split(`0x`).filter(e=>e.length!==0),s=e=>BigInt(`0x${e}`),c=e=>`0x${e}`,l=a.length>=8,u=l&&s(a[5])===1n,d=l?8:6,f=a[d]?c(a[d]):void 0,p=f?new o.PublicKey(Buffer.from(f.slice(2),`hex`)).toString():void 0;return{amount:s(a[0]),erc20TokenAddress:c(a[1]),randomization:s(a[2]),stealthAddress:c(a[3]),nullifyingKey:t.getShieldedPrivateKey(),timeStamp:s(a[4]).toString(),isNewStyle:u,...u?{H0:[s(a[6]),s(a[7])]}:{},mintAddress:p}},Q=(e,t)=>new U(Z(e,t)),$=e=>e&2n**255n-1n,ee=e=>e>>255n&1n,te=(...t)=>{e.a&&console.log(...t)};Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return Z}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return j}}),Object.defineProperty(exports,`d`,{enumerable:!0,get:function(){return x}}),Object.defineProperty(exports,`f`,{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return Q}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return k}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return ee}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return U}}),Object.defineProperty(exports,`p`,{enumerable:!0,get:function(){return b}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return $}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return te}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return w}});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../common/src/functions/utils/hinkalTiming.utils.cjs`),t=require(`./serialization.utils.cjs`);let n=require(`react-native`);var r=class{initPromise=null;ready=!1;init(){return this.ready?Promise.resolve():(this.initPromise||=new Promise((r,i)=>{let a=t.nextRequestId(),o=setTimeout(()=>{s.remove(),i(Error(`RN crypto engine init timed out`))},12e4),s=n.DeviceEventEmitter.addListener(`FROM_WEBVIEW_CRYPTO`,t=>{if(t?.type===`CRYPTO_READY`){clearTimeout(o),s.remove(),this.ready=!0,e.logRnDeltaEvent(`rnBridge.crypto`,`ready`,{requestId:a}),r();return}t?.requestId===a&&t?.type===`ERROR`&&(clearTimeout(o),s.remove(),i(Error(t.error??`RN crypto engine init failed`)))});e.logRnDeltaEvent(`rnBridge.crypto`,`init-sent`,{requestId:a}),n.DeviceEventEmitter.emit(`TO_WEBVIEW_CRYPTO`,{type:`INIT`,requestId:a})}),this.initPromise)}call(r,i){return new Promise((a,o)=>{let s=t.nextRequestId(),c=Date.now(),l=n.DeviceEventEmitter.addListener(`FROM_WEBVIEW_CRYPTO`,t=>{if(!(!t||t.requestId!==s)){if(l.remove(),t.type===`RESULT`){e.logRnDeltaEvent(`rnBridge.crypto`,r,{requestId:s,ms:Date.now()-c}),a(t.data);return}o(Error(t.error??`RN crypto call failed: ${r}`))}});n.DeviceEventEmitter.emit(`TO_WEBVIEW_CRYPTO`,{type:`CALL`,requestId:s,op:r,payload:i})})}};exports.RnWebViewCryptoBridge=r;
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { IRnCryptoBridge } from '../../common/src/crypto/rnCryptoBridge';
|
|
2
|
-
export declare class RnWebViewCryptoBridge implements IRnCryptoBridge {
|
|
3
|
-
private initPromise;
|
|
4
|
-
private ready;
|
|
5
|
-
init(): Promise<void>;
|
|
6
|
-
call<T>(op: string, payload?: unknown): Promise<T>;
|
|
7
|
-
}
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import { logRnDeltaEvent as e } from "../../common/src/functions/utils/hinkalTiming.utils.mjs";
|
|
2
|
-
import { nextRequestId as t } from "./serialization.utils.mjs";
|
|
3
|
-
import { DeviceEventEmitter as n } from "react-native";
|
|
4
|
-
//#region libs/shared/sdk/src/react-native/bridge/RnWebViewCryptoBridge.ts
|
|
5
|
-
var r = class {
|
|
6
|
-
initPromise = null;
|
|
7
|
-
ready = !1;
|
|
8
|
-
init() {
|
|
9
|
-
return this.ready ? Promise.resolve() : (this.initPromise ||= new Promise((r, i) => {
|
|
10
|
-
let a = t(), o = setTimeout(() => {
|
|
11
|
-
s.remove(), i(/* @__PURE__ */ Error("RN crypto engine init timed out"));
|
|
12
|
-
}, 12e4), s = n.addListener("FROM_WEBVIEW_CRYPTO", (t) => {
|
|
13
|
-
if (t?.type === "CRYPTO_READY") {
|
|
14
|
-
clearTimeout(o), s.remove(), this.ready = !0, e("rnBridge.crypto", "ready", { requestId: a }), r();
|
|
15
|
-
return;
|
|
16
|
-
}
|
|
17
|
-
t?.requestId === a && t?.type === "ERROR" && (clearTimeout(o), s.remove(), i(Error(t.error ?? "RN crypto engine init failed")));
|
|
18
|
-
});
|
|
19
|
-
e("rnBridge.crypto", "init-sent", { requestId: a }), n.emit("TO_WEBVIEW_CRYPTO", {
|
|
20
|
-
type: "INIT",
|
|
21
|
-
requestId: a
|
|
22
|
-
});
|
|
23
|
-
}), this.initPromise);
|
|
24
|
-
}
|
|
25
|
-
call(r, i) {
|
|
26
|
-
return new Promise((a, o) => {
|
|
27
|
-
let s = t(), c = Date.now(), l = n.addListener("FROM_WEBVIEW_CRYPTO", (t) => {
|
|
28
|
-
if (!(!t || t.requestId !== s)) {
|
|
29
|
-
if (l.remove(), t.type === "RESULT") {
|
|
30
|
-
e("rnBridge.crypto", r, {
|
|
31
|
-
requestId: s,
|
|
32
|
-
ms: Date.now() - c
|
|
33
|
-
}), a(t.data);
|
|
34
|
-
return;
|
|
35
|
-
}
|
|
36
|
-
o(Error(t.error ?? `RN crypto call failed: ${r}`));
|
|
37
|
-
}
|
|
38
|
-
});
|
|
39
|
-
n.emit("TO_WEBVIEW_CRYPTO", {
|
|
40
|
-
type: "CALL",
|
|
41
|
-
requestId: s,
|
|
42
|
-
op: r,
|
|
43
|
-
payload: i
|
|
44
|
-
});
|
|
45
|
-
});
|
|
46
|
-
}
|
|
47
|
-
};
|
|
48
|
-
//#endregion
|
|
49
|
-
export { r as RnWebViewCryptoBridge };
|