@gurge/sdk-react-native 0.3.82 → 0.3.88
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/bootstrap.cjs +1 -1
- package/bootstrap.mjs +9 -0
- package/common/src/API/getCoingeckoPrice.cjs +1 -1
- package/common/src/API/proxyAccountsCalls.cjs +1 -1
- package/common/src/crypto/EddsaRN.cjs +1 -1
- package/common/src/crypto/ecdh-sealed-keys.cjs +1 -1
- package/common/src/crypto/ecdh-sealed-keys.mjs +12 -11
- package/common/src/crypto/ecdh.cjs +1 -1
- package/common/src/crypto/ecdh.mjs +0 -1
- package/common/src/crypto/poseidon.cjs +1 -1
- package/common/src/crypto/preProcessing.cjs +1 -1
- package/common/src/crypto/preProcessing.mjs +13 -12
- package/common/src/data-structures/AccountActions/AccountActions.cjs +1 -1
- package/common/src/data-structures/Hinkal/Hinkal.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalSolanaClaimUtxo.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalSolanaDeposit.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalSolanaDepositAndWithdraw.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalSolanaProxySend.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalSolanaProxyShield.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalSolanaProxySwap.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalSolanaSwap.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalSolanaTransfer.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalSolanaWithdraw.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalWithdrawStuckUtxos.cjs +1 -1
- package/common/src/data-structures/Hinkal/prepareDepositOnChainUtxosZkProof.cjs +1 -1
- package/common/src/data-structures/Hinkal/resetMerkleTrees.cjs +1 -1
- package/common/src/data-structures/TokenDBs/AlchemyPublicTokensDB.cjs +1 -1
- package/common/src/data-structures/TokenDBs/ArcPublicTokensDB.cjs +1 -1
- package/common/src/data-structures/TokenDBs/EventsPublicTokensDB.cjs +1 -1
- package/common/src/data-structures/crypto-keys/decodeUTXO.cjs +1 -1
- package/common/src/data-structures/crypto-keys/encryptDecryptUtxo.cjs +1 -1
- package/common/src/data-structures/crypto-keys/keys.cjs +1 -1
- package/common/src/data-structures/crypto-keys/keys.mjs +70 -69
- package/common/src/data-structures/event-service/evm/AbstractNullifierSnapshotService.cjs +1 -1
- package/common/src/data-structures/event-service/evm/BlockchainEventEmitter.cjs +1 -1
- package/common/src/data-structures/event-service/solana/AbstractSolanaNullifierSnapshotService.cjs +1 -1
- package/common/src/data-structures/event-service/solana/SolanaBlockchainEventEmitter.cjs +1 -1
- package/common/src/data-structures/http/BasicHttpClient.cjs +1 -1
- package/common/src/functions/pre-transaction/convert-okx-instructions.cjs +1 -1
- package/common/src/functions/pre-transaction/ensureAmountChanges.cjs +1 -1
- package/common/src/functions/pre-transaction/getSolanaCalldataHash.cjs +1 -1
- package/common/src/functions/pre-transaction/sendV0Transaction.cjs +1 -1
- package/common/src/functions/pre-transaction/solana.cjs +1 -1
- package/common/src/functions/pre-transaction/solanaTransfer.utils.cjs +1 -1
- package/common/src/functions/private-wallet/emporium.helpers.cjs +1 -1
- package/common/src/functions/private-wallet/emporium.swap.helpers.cjs +1 -1
- package/common/src/functions/snarkjs/common.snarkjs.cjs +1 -1
- package/common/src/functions/snarkjs/constructSolanaZkProof.cjs +1 -1
- package/common/src/functions/snarkjs/fetchOnChainRootHashes.cjs +1 -1
- package/common/src/functions/snarkjs/signedMessageHash.cjs +1 -1
- package/common/src/functions/snarkjs/verifyCommitmentValidationData.cjs +1 -1
- package/common/src/functions/utils/abi.utils.cjs +1 -1
- package/common/src/functions/utils/addresses.cjs +1 -1
- package/common/src/functions/utils/convertEmporiumOpToCallInfo.cjs +1 -1
- package/common/src/functions/utils/create-provider.cjs +1 -1
- package/common/src/functions/utils/encryptInputForEnclave.cjs +1 -1
- package/common/src/functions/utils/encryptInputForEnclave.mjs +25 -24
- package/common/src/functions/utils/external-action.utils.cjs +1 -1
- package/common/src/functions/utils/getSignerFromContract.cjs +1 -1
- package/common/src/functions/utils/getUtxosFromReceiptSolana.cjs +1 -1
- package/common/src/functions/utils/mnemonics.cjs +1 -1
- package/common/src/functions/utils/publicBalance.utils.cjs +1 -1
- package/common/src/functions/utils/solana-memo.cjs +1 -1
- package/common/src/functions/utils/solanaMint.utils.cjs +1 -1
- package/common/src/functions/utils/tron.utils.cjs +1 -1
- package/common/src/functions/utils/userAgent.cjs +1 -1
- package/common/src/functions/web3/etherFunctions.cjs +1 -1
- package/common/src/functions/web3/events/getInputUtxoAndBalance.cjs +1 -1
- package/common/src/functions/web3/events/getInputUtxosEnclave.cjs +1 -1
- package/common/src/functions/web3/events/getShieldedBalance.cjs +1 -1
- package/common/src/functions/web3/functionCalls/approveToken.cjs +1 -1
- package/common/src/functions/web3/functionCalls/constructBatchCall.cjs +1 -1
- package/common/src/functions/web3/functionCalls/transactCallDirect.cjs +1 -1
- package/common/src/functions/web3/getContractMetadata.cjs +1 -1
- package/common/src/functions/web3/okxAPI.cjs +1 -1
- package/common/src/functions/web3/uniswapAPI.cjs +1 -1
- package/common/src/mutexes/chainBalanceRwLock.cjs +1 -1
- package/common/src/mutexes/mutex.cjs +1 -1
- package/common/src/providers/EthersProviderAdapter.cjs +1 -1
- package/common/src/providers/SolanaProviderAdapter.cjs +1 -1
- package/common/src/providers/WagmiProviderAdapter.cjs +1 -1
- package/common/src/types/hinkal.types.cjs +1 -1
- 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/viteWorkerURL.constant.mjs +3 -3
- 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/package.json +5 -1
- package/react-native/HinkalProvider.cjs +1 -1
- package/react-native/HinkalWebViewWorker.cjs +1 -1
- package/react-native/bridge/HinkalRNWorker.cjs +1 -1
- package/shims/globals.cjs +11 -0
- package/vendor/libsodium/dist/modules/libsodium.cjs +1 -0
- package/vendor/libsodium/dist/modules/libsodium.mjs +3711 -0
- package/vendor/libsodium-wrappers/dist/modules/libsodium-wrappers.cjs +1 -0
- package/vendor/libsodium-wrappers/dist/modules/libsodium-wrappers.mjs +3623 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
require(
|
|
1
|
+
require("../../../../_virtual/_rolldown/runtime.cjs");const e=require(`../../constants/chains.constants.cjs`),t=require(`../../crypto/poseidon.cjs`);require(`./keys.cjs`);const n=require(`../utxo/Utxo.cjs`),r=require(`../../functions/utils/bit.operations.cjs`);let i=require(`ethers`),a=require(`@solana/web3.js`);var o=`solana-on-chain-utxo:`,s=8,c=e=>{if(e.length!==s)throw Error(`Expected ${s} on-chain fields, received ${e.length}`);let t=e.map((e,t)=>{let n=e instanceof Uint8Array?e:Uint8Array.from(e);if(n.length!==32)throw Error(`Expected bytes32 length 32 at position ${t}, got ${n.length}`);return`0x${Buffer.from(n).toString(`hex`)}`});return`${o}${i.ethers.AbiCoder.defaultAbiCoder().encode([`bytes32[8]`],[t])}`},l=e=>e.startsWith(o),u=e=>{if(!l(e))throw Error(`Invalid encoded Solana UTXO payload`);let[n]=i.ethers.AbiCoder.defaultAbiCoder().decode([`bytes32[8]`],e.slice(21)),o=n;if(!Array.isArray(o)||o.length!==s)throw Error(`Malformed encoded Solana UTXO payload`);let[c,u,d,f,p,m,h,g]=o,_=BigInt(c),v=BigInt(f),y=r.extractHighestBit(v)===1n,b=r.takeOffHighestBit(v),x=i.ethers.toBeHex(BigInt(p)),S=BigInt(m),C=BigInt(h),w=BigInt(g).toString(),T=Array.from(i.ethers.getBytes(u)),E=Array.from(i.ethers.getBytes(d)),D=new a.PublicKey(Uint8Array.from([...T.slice(16),...E.slice(16)])).toBase58();return{amount:_,erc20TokenAddress:t.poseidonHash(BigInt(u),BigInt(d)),mintAddress:D,randomization:b,stealthAddress:x,H0:S,H1:C,timeStamp:w,isNewStyle:y}},d=e=>{let t=i.ethers.AbiCoder.defaultAbiCoder().decode([`uint256`,`address`,`tuple(uint256, uint256, uint256, uint256)`,`uint256`,`uint256`],e),n=BigInt(t[0]),a=t[1],o=BigInt(t[2][0]),s=r.extractHighestBit(o),c=r.takeOffHighestBit(o),l=i.ethers.toBeHex(BigInt(t[2][1])),u=BigInt(t[2][2]),d=BigInt(t[2][3]),f=BigInt(t[3]).toString(),p=Number(t[4]);return{amount:n,erc20TokenAddress:a,randomization:c,isNewStyle:s===1n,stealthAddress:l,H0:u,H1:d,timeStamp:f,tokenId:p}},f=(t,n,r)=>{if(e.isSolanaLike(r)){let{amount:e,erc20TokenAddress:r,mintAddress:i,randomization:a,stealthAddress:o,timeStamp:s,isNewStyle:c,H0:l}=u(t);return{amount:e,erc20TokenAddress:r,mintAddress:i,timeStamp:s,nullifyingKey:n,stealthAddress:o,isNewStyle:c,...c?{H0:[a,l]}:{randomization:a}}}let{amount:i,erc20TokenAddress:a,timeStamp:o,randomization:s,isNewStyle:c,stealthAddress:l,H0:f}=d(t);return{amount:i,erc20TokenAddress:a,timeStamp:o,nullifyingKey:n,stealthAddress:l,isNewStyle:c,...c?{H0:[s,f]}:{randomization:s}}},p=(e,t,r)=>new n.Utxo(f(e,t,r));exports.decodeEvmUtxo=d,exports.decodeSolanaUtxo=u,exports.decodeUtxo=p,exports.decodeUtxoConstructorArgs=f,exports.encodeSolanaOnChainUtxo=c,exports.isSolanaOnChainUtxo=l;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
require(
|
|
1
|
+
require("../../../../_virtual/_rolldown/runtime.cjs"),require(`./keys.cjs`),require(`../utxo/Utxo.cjs`);const e=require(`../../crypto/ecdh-sealed-keys.cjs`);require(`../../crypto/ecdh.cjs`);let t=require(`ethers`),n=require(`@solana/web3.js`);var r=e=>e.startsWith(`0x`)?e:`0x${e}`,i=54912,a=e=>Uint8Array.from([Math.floor(e/256),e%256]),o=o=>{let s=[Buffer.from(t.ethers.toBeHex(o.amount)),Buffer.from(r(o.erc20TokenAddress)),Buffer.from(t.ethers.toBeHex(o.randomization??0n)),Buffer.from(r(o.getStealthAddress())),Buffer.from(t.ethers.toBeHex(BigInt(o.timeStamp))),Buffer.from(t.ethers.toBeHex(o.isNewStyle?1n:0n)),Buffer.from(t.ethers.toBeHex(o.H0?.[0]??0n)),Buffer.from(t.ethers.toBeHex(o.H0?.[1]??0n))];if(o.mintAddress){let e=new n.PublicKey(o.mintAddress),r=t.ethers.hexlify(e.toBytes());s.push(Buffer.from(r))}let c=e.encryptSealedKeys(Buffer.concat(s),[o.getEncryptionKey()]);return Buffer.concat([Buffer.from(a(i)),Buffer.from(c)])};exports.encryptUtxo=o;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require(
|
|
1
|
+
const e=require("../../../../_virtual/_rolldown/runtime.cjs"),t=require(`../../constants/protocol.constants.cjs`),n=require(`../../crypto/poseidon.cjs`),r=require(`../../../../vendor/libsodium-wrappers/dist/modules/libsodium-wrappers.cjs`),i=require(`../../crypto/babyJub.cjs`),a=require(`../../crypto/eddsa.cjs`),o=require(`../cacheDevices/AttachableMemoryCacheDevice.cjs`),s=require(`./keyUtils.cjs`);let c=require(`ethers`),l=require(`@solana/web3.js`),u=require(`bs58`);u=e.__toESM(u);let d=require(`tweetnacl`);d=e.__toESM(d);let f=require(`tronweb`);var p=e.__toESM(r.default),m=new o.AttachableMemoryCacheDevice,h=new o.AttachableMemoryCacheDevice,g=new o.AttachableMemoryCacheDevice,_=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===f.Trx.verifyMessageV2(e,this.signature)}getShieldedPrivateKey=()=>(this.requireKeyMaterial(),this.nullifyingKey||=c.ethers.keccak256(this.signature),this.nullifyingKey);getShieldedPublicKey=()=>(this.requireKeyMaterial(),n.poseidonHash(this.getShieldedPrivateKey()));getSpendingKeyPair=()=>{this.requireSignature();let e=a.eddsaInstance(),t=i.babyJubInstance(),r=n.poseidonHash(this.PREFIX_FOR_SPENDING_PAIR,this.getSignature()),o=Buffer.from(c.ethers.getBytes(r)),s=e.prv2pub(o);return{privSpendingKey:r,pubSpendingBJJPoint:[BigInt(t.F.toString(s[0])),BigInt(t.F.toString(s[1]))]}};signEddsa=e=>{this.requireSignature();let t=i.babyJubInstance(),n=a.eddsaInstance(),r=Buffer.from(c.ethers.getBytes(this.getSpendingKeyPair().privSpendingKey)),o=t.F.e(e),s=n.signPoseidon(r,o);return{R8:[BigInt(t.F.toString(s.R8[0])),BigInt(t.F.toString(s.R8[1]))],S:BigInt(s.S)}};getShieldedPrivateKeyFromNonce=e=>{this.requireKeyMaterial();let t=n.poseidonHash(e,this.getShieldedPrivateKey(),this.getShieldedPublicKey());return c.ethers.keccak256(c.ethers.toUtf8Bytes(`hinkal-offchain-shielded-key:${t}`))};getClaimableSignatureFromNonce=e=>{this.requireKeyMaterial();let t=n.poseidonHash(e,this.getShieldedPrivateKey(),this.getShieldedPublicKey());return c.ethers.keccak256(c.ethers.toUtf8Bytes(`hinkal-claimable-utxo-signature:${t}`))};getDerivedEthereumAddress=()=>(this.requireKeyMaterial(),new c.ethers.Wallet(this.getShieldedPrivateKey()).address);getDerivedSolanaPublicKey=()=>(this.requireKeyMaterial(),l.Keypair.fromSeed(c.ethers.getBytes(this.getShieldedPrivateKey())).publicKey.toBase58());getNearIntentsAccountId=()=>{this.requireKeyMaterial();let e=l.Keypair.fromSeed(c.ethers.getBytes(this.getShieldedPrivateKey()));return c.ethers.hexlify(e.publicKey.toBytes()).slice(2)};getNearIntentsKeyPairString=()=>{this.requireKeyMaterial();let e=l.Keypair.fromSeed(c.ethers.getBytes(this.getShieldedPrivateKey()));return`ed25519:${u.default.encode(e.secretKey)}`};getSignerPrivateKeyFromNonce=e=>{this.requireKeyMaterial();let t=n.poseidonHash(e,this.getShieldedPrivateKey(),this.getShieldedPublicKey());return c.ethers.keccak256(c.ethers.toUtf8Bytes(t))};getSignerSolanaPrivateKeyFromNonce=e=>{let t=this.getSignerPrivateKeyFromNonce(e),n=c.ethers.getBytes(t),r=l.Keypair.fromSeed(n);return u.default.encode(r.secretKey)};verifyMessage(e){return this.requireSignature(),c.ethers.verifyMessage(e,this.signature)}verifySolanaMessage(e,t){this.requireSignature();let n=new TextEncoder().encode(e),r=c.ethers.getBytes(this.signature),i=new l.PublicKey(t).toBytes();return d.default.sign.detached.verify(n,r,i)}static getRandomizedStealthPairOld=h.attach((e,n)=>{let r=i.babyJubInstance(),a=e*(BigInt(n)%t.CIRCOM_P)%t.CIRCOM_P,o=r.mulPointEscalar(r.Base8,e),s=r.mulPointEscalar(r.Base8,a);return{H0:[BigInt(r.F.toString(o[0])),BigInt(r.F.toString(o[1]))],H1:[BigInt(r.F.toString(s[0])),BigInt(r.F.toString(s[1]))]}});static getRandomizedStealthPair=m.attach((e,n)=>{let r=i.babyJubInstance(),a=BigInt(n)%t.CIRCOM_P,o=r.mulPointEscalar(r.Base8,e),s=r.mulPointEscalar(o,a);return{H0:[BigInt(r.F.toString(o[0])),BigInt(r.F.toString(o[1]))],H1:[BigInt(r.F.toString(s[0])),BigInt(r.F.toString(s[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*s.getCircomSign(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=g.attach((e,t)=>{let{H0:r,H1:i}=this.getRandomizedStealthPairOld(e,t);return n.poseidonHash(2n*s.getCircomSign(r[0])+s.getCircomSign(i[0]),r[1],i[1])});static getH1FromH0=(e,n)=>{let r=i.babyJubInstance(),a=BigInt(n)%t.CIRCOM_P,o=[r.F.e(e[0]),r.F.e(e[1])],s=r.mulPointEscalar(o,a);return[BigInt(r.F.toString(s[0])),BigInt(r.F.toString(s[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,r)=>{if(r?.length!==2)throw Error(`Spending public key must be an array of 2 elements`);let i=this.getH1FromH0(e,t);return n.poseidonHash(2n*s.getCircomSign(e[0])+s.getCircomSign(i[0]),e[1],i[1],r[0],r[1],t)};static findCorrectRandomization(e,n){if(!n)throw Error(`No Private Shielded Key Provided`);let r=BigInt(n)%t.CIRCOM_P,i,a,o=0n;do i=e*10n**o%t.CIRCOM_P,a=i*r%t.CIRCOM_P,o+=1n;while(a>=2n**253n||i>=2n**253n);return i}static getH0FromRandomization=e=>{let t=i.babyJubInstance(),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=p.default.crypto_box_seed_keypair(c.ethers.getBytes(e));return{privateKey:c.ethers.hexlify(t.privateKey),publicKey:c.ethers.hexlify(t.publicKey)}};getAccessKey=()=>(this.requireKeyMaterial(),n.poseidonHash(this.getShieldedPrivateKey(),this.getShieldedPublicKey()));getBackendToken=()=>(this.requireKeyMaterial(),n.poseidonHash(this.getAccessKey(),this.getShieldedPublicKey()))};exports.UserKeys=_,exports.stealthAddressCacheDevice=g,exports.stealthPairCacheDevice=m,exports.stealthPairOldCacheDevice=h;
|
|
@@ -1,17 +1,18 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import
|
|
10
|
-
import u from "
|
|
11
|
-
import d from "
|
|
12
|
-
import
|
|
1
|
+
import { __toESM as e } from "../../../../_virtual/_rolldown/runtime.mjs";
|
|
2
|
+
import { CIRCOM_P as t } from "../../constants/protocol.constants.mjs";
|
|
3
|
+
import { poseidonHash as n } from "../../crypto/poseidon.mjs";
|
|
4
|
+
import { require_libsodium_wrappers as r } from "../../../../vendor/libsodium-wrappers/dist/modules/libsodium-wrappers.mjs";
|
|
5
|
+
import { babyJubInstance as i } from "../../crypto/babyJub.mjs";
|
|
6
|
+
import { eddsaInstance as a } from "../../crypto/eddsa.mjs";
|
|
7
|
+
import { AttachableMemoryCacheDevice as o } from "../cacheDevices/AttachableMemoryCacheDevice.mjs";
|
|
8
|
+
import { getCircomSign as s } from "./keyUtils.mjs";
|
|
9
|
+
import { ethers as c } from "ethers";
|
|
10
|
+
import { Keypair as l, PublicKey as u } from "@solana/web3.js";
|
|
11
|
+
import d from "bs58";
|
|
12
|
+
import f from "tweetnacl";
|
|
13
|
+
import { Trx as p } from "tronweb";
|
|
13
14
|
//#region common/src/data-structures/crypto-keys/keys.ts
|
|
14
|
-
var
|
|
15
|
+
var m = /* @__PURE__ */ e(r()), h = new o(), g = new o(), _ = new o(), v = class {
|
|
15
16
|
signature;
|
|
16
17
|
nullifyingKey;
|
|
17
18
|
PREFIX_FOR_SPENDING_PAIR = "1";
|
|
@@ -32,118 +33,118 @@ var p = new i(), m = new i(), h = new i(), g = class {
|
|
|
32
33
|
if (!this.signature && !this.nullifyingKey) throw Error("No signature or private key provided");
|
|
33
34
|
}
|
|
34
35
|
verifyTronMessage(e, t) {
|
|
35
|
-
return this.requireSignature(), t ===
|
|
36
|
+
return this.requireSignature(), t === p.verifyMessageV2(e, this.signature);
|
|
36
37
|
}
|
|
37
|
-
getShieldedPrivateKey = () => (this.requireKeyMaterial(), this.nullifyingKey ||=
|
|
38
|
-
getShieldedPublicKey = () => (this.requireKeyMaterial(),
|
|
38
|
+
getShieldedPrivateKey = () => (this.requireKeyMaterial(), this.nullifyingKey ||= c.keccak256(this.signature), this.nullifyingKey);
|
|
39
|
+
getShieldedPublicKey = () => (this.requireKeyMaterial(), n(this.getShieldedPrivateKey()));
|
|
39
40
|
getSpendingKeyPair = () => {
|
|
40
41
|
this.requireSignature();
|
|
41
|
-
let e =
|
|
42
|
+
let e = a(), t = i(), r = n(this.PREFIX_FOR_SPENDING_PAIR, this.getSignature()), o = Buffer.from(c.getBytes(r)), s = e.prv2pub(o);
|
|
42
43
|
return {
|
|
43
|
-
privSpendingKey:
|
|
44
|
-
pubSpendingBJJPoint: [BigInt(
|
|
44
|
+
privSpendingKey: r,
|
|
45
|
+
pubSpendingBJJPoint: [BigInt(t.F.toString(s[0])), BigInt(t.F.toString(s[1]))]
|
|
45
46
|
};
|
|
46
47
|
};
|
|
47
48
|
signEddsa = (e) => {
|
|
48
49
|
this.requireSignature();
|
|
49
|
-
let t =
|
|
50
|
+
let t = i(), n = a(), r = Buffer.from(c.getBytes(this.getSpendingKeyPair().privSpendingKey)), o = t.F.e(e), s = n.signPoseidon(r, o);
|
|
50
51
|
return {
|
|
51
|
-
R8: [BigInt(t.F.toString(
|
|
52
|
-
S: BigInt(
|
|
52
|
+
R8: [BigInt(t.F.toString(s.R8[0])), BigInt(t.F.toString(s.R8[1]))],
|
|
53
|
+
S: BigInt(s.S)
|
|
53
54
|
};
|
|
54
55
|
};
|
|
55
56
|
getShieldedPrivateKeyFromNonce = (e) => {
|
|
56
57
|
this.requireKeyMaterial();
|
|
57
|
-
let
|
|
58
|
-
return
|
|
58
|
+
let t = n(e, this.getShieldedPrivateKey(), this.getShieldedPublicKey());
|
|
59
|
+
return c.keccak256(c.toUtf8Bytes(`hinkal-offchain-shielded-key:${t}`));
|
|
59
60
|
};
|
|
60
61
|
getClaimableSignatureFromNonce = (e) => {
|
|
61
62
|
this.requireKeyMaterial();
|
|
62
|
-
let
|
|
63
|
-
return
|
|
63
|
+
let t = n(e, this.getShieldedPrivateKey(), this.getShieldedPublicKey());
|
|
64
|
+
return c.keccak256(c.toUtf8Bytes(`hinkal-claimable-utxo-signature:${t}`));
|
|
64
65
|
};
|
|
65
|
-
getDerivedEthereumAddress = () => (this.requireKeyMaterial(), new
|
|
66
|
-
getDerivedSolanaPublicKey = () => (this.requireKeyMaterial(),
|
|
66
|
+
getDerivedEthereumAddress = () => (this.requireKeyMaterial(), new c.Wallet(this.getShieldedPrivateKey()).address);
|
|
67
|
+
getDerivedSolanaPublicKey = () => (this.requireKeyMaterial(), l.fromSeed(c.getBytes(this.getShieldedPrivateKey())).publicKey.toBase58());
|
|
67
68
|
getNearIntentsAccountId = () => {
|
|
68
69
|
this.requireKeyMaterial();
|
|
69
|
-
let e =
|
|
70
|
-
return
|
|
70
|
+
let e = l.fromSeed(c.getBytes(this.getShieldedPrivateKey()));
|
|
71
|
+
return c.hexlify(e.publicKey.toBytes()).slice(2);
|
|
71
72
|
};
|
|
72
73
|
getNearIntentsKeyPairString = () => {
|
|
73
74
|
this.requireKeyMaterial();
|
|
74
|
-
let e =
|
|
75
|
-
return `ed25519:${
|
|
75
|
+
let e = l.fromSeed(c.getBytes(this.getShieldedPrivateKey()));
|
|
76
|
+
return `ed25519:${d.encode(e.secretKey)}`;
|
|
76
77
|
};
|
|
77
78
|
getSignerPrivateKeyFromNonce = (e) => {
|
|
78
79
|
this.requireKeyMaterial();
|
|
79
|
-
let
|
|
80
|
-
return
|
|
80
|
+
let t = n(e, this.getShieldedPrivateKey(), this.getShieldedPublicKey());
|
|
81
|
+
return c.keccak256(c.toUtf8Bytes(t));
|
|
81
82
|
};
|
|
82
83
|
getSignerSolanaPrivateKeyFromNonce = (e) => {
|
|
83
|
-
let t = this.getSignerPrivateKeyFromNonce(e), n =
|
|
84
|
-
return
|
|
84
|
+
let t = this.getSignerPrivateKeyFromNonce(e), n = c.getBytes(t), r = l.fromSeed(n);
|
|
85
|
+
return d.encode(r.secretKey);
|
|
85
86
|
};
|
|
86
87
|
verifyMessage(e) {
|
|
87
|
-
return this.requireSignature(),
|
|
88
|
+
return this.requireSignature(), c.verifyMessage(e, this.signature);
|
|
88
89
|
}
|
|
89
90
|
verifySolanaMessage(e, t) {
|
|
90
91
|
this.requireSignature();
|
|
91
|
-
let n = new TextEncoder().encode(e), r =
|
|
92
|
-
return
|
|
92
|
+
let n = new TextEncoder().encode(e), r = c.getBytes(this.signature), i = new u(t).toBytes();
|
|
93
|
+
return f.sign.detached.verify(n, r, i);
|
|
93
94
|
}
|
|
94
|
-
static getRandomizedStealthPairOld =
|
|
95
|
-
let
|
|
95
|
+
static getRandomizedStealthPairOld = g.attach((e, n) => {
|
|
96
|
+
let r = i(), a = e * (BigInt(n) % t) % t, o = r.mulPointEscalar(r.Base8, e), s = r.mulPointEscalar(r.Base8, a);
|
|
96
97
|
return {
|
|
97
|
-
H0: [BigInt(
|
|
98
|
-
H1: [BigInt(
|
|
98
|
+
H0: [BigInt(r.F.toString(o[0])), BigInt(r.F.toString(o[1]))],
|
|
99
|
+
H1: [BigInt(r.F.toString(s[0])), BigInt(r.F.toString(s[1]))]
|
|
99
100
|
};
|
|
100
101
|
});
|
|
101
|
-
static getRandomizedStealthPair =
|
|
102
|
-
let
|
|
102
|
+
static getRandomizedStealthPair = h.attach((e, n) => {
|
|
103
|
+
let r = i(), a = BigInt(n) % t, o = r.mulPointEscalar(r.Base8, e), s = r.mulPointEscalar(o, a);
|
|
103
104
|
return {
|
|
104
|
-
H0: [BigInt(
|
|
105
|
-
H1: [BigInt(
|
|
105
|
+
H0: [BigInt(r.F.toString(o[0])), BigInt(r.F.toString(o[1]))],
|
|
106
|
+
H1: [BigInt(r.F.toString(s[0])), BigInt(r.F.toString(s[1]))]
|
|
106
107
|
};
|
|
107
108
|
});
|
|
108
109
|
static getStealthAddressCompressedPoints = (e, t) => {
|
|
109
|
-
let { H0: n, H1: r } = this.getRandomizedStealthPairOld(e, t), [i,
|
|
110
|
+
let { H0: n, H1: r } = this.getRandomizedStealthPairOld(e, t), [i, a] = [n, r].map((e) => BigInt(e[1]) + 2n ** 255n * s(e[0]));
|
|
110
111
|
return {
|
|
111
112
|
h0: i,
|
|
112
|
-
h1:
|
|
113
|
+
h1: a
|
|
113
114
|
};
|
|
114
115
|
};
|
|
115
116
|
static checkSignature = (e, t, n, r) => {
|
|
116
117
|
let { h0: i, h1: a } = this.getStealthAddressCompressedPoints(e, r);
|
|
117
118
|
return t === i && n === a;
|
|
118
119
|
};
|
|
119
|
-
static getStealthAddress =
|
|
120
|
-
let { H0: r, H1: i } = this.getRandomizedStealthPairOld(e,
|
|
121
|
-
return
|
|
120
|
+
static getStealthAddress = _.attach((e, t) => {
|
|
121
|
+
let { H0: r, H1: i } = this.getRandomizedStealthPairOld(e, t);
|
|
122
|
+
return n(2n * s(r[0]) + s(i[0]), r[1], i[1]);
|
|
122
123
|
});
|
|
123
|
-
static getH1FromH0 = (
|
|
124
|
-
let
|
|
125
|
-
return [BigInt(
|
|
124
|
+
static getH1FromH0 = (e, n) => {
|
|
125
|
+
let r = i(), a = BigInt(n) % t, o = [r.F.e(e[0]), r.F.e(e[1])], s = r.mulPointEscalar(o, a);
|
|
126
|
+
return [BigInt(r.F.toString(s[0])), BigInt(r.F.toString(s[1]))];
|
|
126
127
|
};
|
|
127
128
|
static verifyStealthPair = (e, t, n, r = !0) => {
|
|
128
129
|
let i = this.getH1FromH0(e, n);
|
|
129
130
|
return r ? i[1] === t[1] : i === t;
|
|
130
131
|
};
|
|
131
|
-
static getStealthAddressNewStyle = (e,
|
|
132
|
+
static getStealthAddressNewStyle = (e, t, r) => {
|
|
132
133
|
if (r?.length !== 2) throw Error("Spending public key must be an array of 2 elements");
|
|
133
|
-
let i = this.getH1FromH0(e,
|
|
134
|
-
return
|
|
134
|
+
let i = this.getH1FromH0(e, t);
|
|
135
|
+
return n(2n * s(e[0]) + s(i[0]), e[1], i[1], r[0], r[1], t);
|
|
135
136
|
};
|
|
136
|
-
static findCorrectRandomization(
|
|
137
|
+
static findCorrectRandomization(e, n) {
|
|
137
138
|
if (!n) throw Error("No Private Shielded Key Provided");
|
|
138
|
-
let r = BigInt(n) %
|
|
139
|
+
let r = BigInt(n) % t, i, a, o = 0n;
|
|
139
140
|
do
|
|
140
|
-
i =
|
|
141
|
+
i = e * 10n ** o % t, a = i * r % t, o += 1n;
|
|
141
142
|
while (a >= 2n ** 253n || i >= 2n ** 253n);
|
|
142
143
|
return i;
|
|
143
144
|
}
|
|
144
145
|
static getH0FromRandomization = (e) => {
|
|
145
|
-
let t =
|
|
146
|
-
return [BigInt(t.F.toString(
|
|
146
|
+
let t = i(), n = t.mulPointEscalar(t.Base8, e);
|
|
147
|
+
return [BigInt(t.F.toString(n[0])), BigInt(t.F.toString(n[1]))];
|
|
147
148
|
};
|
|
148
149
|
static findH0(e, t) {
|
|
149
150
|
if (!t) return;
|
|
@@ -151,14 +152,14 @@ var p = new i(), m = new i(), h = new i(), g = class {
|
|
|
151
152
|
return n;
|
|
152
153
|
}
|
|
153
154
|
static getEncryptionKeyPair = (e) => {
|
|
154
|
-
let t =
|
|
155
|
+
let t = m.default.crypto_box_seed_keypair(c.getBytes(e));
|
|
155
156
|
return {
|
|
156
|
-
privateKey:
|
|
157
|
-
publicKey:
|
|
157
|
+
privateKey: c.hexlify(t.privateKey),
|
|
158
|
+
publicKey: c.hexlify(t.publicKey)
|
|
158
159
|
};
|
|
159
160
|
};
|
|
160
|
-
getAccessKey = () => (this.requireKeyMaterial(),
|
|
161
|
-
getBackendToken = () => (this.requireKeyMaterial(),
|
|
161
|
+
getAccessKey = () => (this.requireKeyMaterial(), n(this.getShieldedPrivateKey(), this.getShieldedPublicKey()));
|
|
162
|
+
getBackendToken = () => (this.requireKeyMaterial(), n(this.getAccessKey(), this.getShieldedPublicKey()));
|
|
162
163
|
};
|
|
163
164
|
//#endregion
|
|
164
|
-
export {
|
|
165
|
+
export { v as UserKeys, _ as stealthAddressCacheDevice, h as stealthPairCacheDevice, g as stealthPairOldCacheDevice };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
require(
|
|
1
|
+
require("../../../../../_virtual/_rolldown/runtime.cjs");const e=require(`./AbstractSnapshotService.cjs`);let t=require(`ethers`);var n=class extends e.AbstractSnapshotService{constructor(e){super(e,`Nullified`)}_nullifiers;get nullifiers(){return this._nullifiers}serializeSnapshot(e){return{nullifiers:Array.from(e.payload.nullifiers).map(e=>e.toString()),latestBlockNumber:e.latestBlockNumber}}deserializeSnapshot(e){return{latestBlockNumber:e.latestBlockNumber??0,payload:{nullifiers:new Set(e.nullifiers??[])}}}acceptEvent(e,t){try{return this._nullifiers.has(e.nullifier)?!1:(this._nullifiers.add(e.nullifier),!0)}catch(e){return console.error(e),!1}}mapEvent(e){let n=e.getArg(`nullifier`);return{nullifier:t.ethers.toBeHex(n)}}getSnapshotPayload(){return{nullifiers:this._nullifiers}}populateSnapshot({payload:{nullifiers:e}}){this._nullifiers=e}};exports.AbstractNullifierSnapshotService=n;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
require(
|
|
1
|
+
require("../../../../../_virtual/_rolldown/runtime.cjs");const e=require(`../../../error-handling/logger.cjs`),t=require(`../../../functions/utils/resolve-sync.utils.cjs`),n=require(`../../../constants/reorg-depths.constants.cjs`),r=require(`../../../functions/utils/getSignerFromContract.cjs`),i=require(`../../BlockchainEvent/BlockchainEvent.cjs`);let a=require(`ethers`);var o=class{RETRY_MIN_PAGE_SIZE=100;MAX_RETRIES=20;_chainId;contract;depositOnChainUtxosContract;_latestBlockNumber;_initialBlockNumber;onEventsProcessed;eventProcessors=new Set;maxPageSize;_isReady=!1;isServer;inProgress;eventsFetchingMutex;constructor(e,t,n,r,i,a,o){this.contract=t,this.depositOnChainUtxosContract=o,this._chainId=e,this._initialBlockNumber=n,this.maxPageSize=a,this.isServer=r,this.inProgress=!1,this.eventsFetchingMutex=i}get latestBlockNumber(){return this._latestBlockNumber??this._initialBlockNumber}get chainId(){return this._chainId}get isReady(){return this._isReady}syncFromAtMost(e){(this._latestBlockNumber===void 0||e<this._latestBlockNumber)&&(this._latestBlockNumber=e)}advanceLatestBlockNumber(e){e>(this._latestBlockNumber??this._initialBlockNumber)&&(this._latestBlockNumber=e)}intervalClear(){this._isReady=!1,this.eventProcessors=new Set,this.clear()}async init(){if(this._isReady)throw Error(`Already initialized`);this._isReady=!0,await this.retrieveEvents(this.latestBlockNumber+1),this.startUpdateListener()}requireReady(){if(!this._isReady)throw Error(`Not ready`)}async getEventsForSingleContract(e,t,n,r=0){try{return(await e.queryFilter(`*`,t,n)).filter(e=>e instanceof a.ethers.EventLog)}catch(i){if(r<this.MAX_RETRIES&&n-t>this.RETRY_MIN_PAGE_SIZE){let i=Math.floor((t+n)/2),a=await this.getEventsForSingleContract(e,t,i,r+1),o=await this.getEventsForSingleContract(e,i+1,n,r+1);return[...a,...o]}throw i}}addEventProcessorFunction(e){if(this._isReady)throw Error(`Can't add event processor after event emitter initialized`);this.eventProcessors.add(e)}async getEventsInRange(e,n){let r=[],a=t.getSequence(e,n,this.maxPageSize);await t.resolveSync(a.map(({from:e,to:t})=>async()=>{let n=await this.getEventsForSingleContract(this.contract,e,t);r.push(...n)}));let o=this.depositOnChainUtxosContract;return o&&await t.resolveSync(a.map(({from:e,to:t})=>async()=>{let n=await this.getEventsForSingleContract(o,e,t);r.push(...n)})),r.map(e=>i.BlockchainEvent.fromEthers(e))}async getLastBlockNumberForEventRequest(){let e=await r.getProviderFromContract(this.contract).getBlockNumber();if(!this.isServer)return e;let{chainId:t}=await r.getProviderFromContract(this.contract).getNetwork();return Math.max(this.latestBlockNumber,e-n.blockReorgDepth[Number(t)]+1)}async retrieveEvents(t,n=!1){return this.requireReady(),await this.eventsFetchingMutex.runExclusive(async()=>{try{if(this.inProgress&&!n)return!1;this.inProgress=!0;let e=await this.getLastBlockNumberForEventRequest();if(e<t)return this.inProgress=!1,!1;let r=await this.getEventsInRange(t,e);return await this.processEvents(r,e),this._latestBlockNumber=e,this.inProgress=!1,!0}catch(t){return e.Logger.error(`retrieveEvents error`,t),this.inProgress=!1,!1}})}async processEvents(e,t){let n=(await Promise.all([...this.eventProcessors].map(n=>n(e,t)))).reduce((e,t)=>e+t,0);this.onEventsProcessed?.(n)}};exports.BlockchainEventEmitter=o;
|
package/common/src/data-structures/event-service/solana/AbstractSolanaNullifierSnapshotService.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
require(
|
|
1
|
+
require("../../../../../_virtual/_rolldown/runtime.cjs");const e=require(`../../../functions/utils/amounts.utils.cjs`),t=require(`./AbstractSolanaSnapshotService.cjs`);let n=require(`ethers`);var r=class extends t.AbstractSolanaSnapshotService{constructor(e){super(e,`Nullified`)}_nullifiers;get nullifiers(){return this._nullifiers}serializeSnapshot(e){return{nullifiers:Array.from(e.payload.nullifiers).map(e=>e.toString()),latestBlockNumber:e.latestBlockNumber}}deserializeSnapshot(e){return{latestBlockNumber:e.latestBlockNumber??0,payload:{nullifiers:new Set(e.nullifiers??[])}}}acceptEvent(e,t){try{return this._nullifiers.has(e.nullifier)?!1:(this._nullifiers.add(e.nullifier),!0)}catch(e){return console.error(e),!1}}mapEvent(t){return{nullifier:n.ethers.toBeHex(e.advancedToBigInt(t.getArg(`nullifier`)))}}getSnapshotPayload(){return{nullifiers:this._nullifiers}}populateSnapshot({payload:{nullifiers:e}}){this._nullifiers=e}};exports.AbstractSolanaNullifierSnapshotService=r;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
require(
|
|
1
|
+
require("../../../../../_virtual/_rolldown/runtime.cjs");const e=require(`../../../functions/utils/serialize.utils.cjs`),t=require(`../../../error-handling/logger.cjs`),n=require(`../../../functions/utils/resolve-sync.utils.cjs`),r=require(`../../BlockchainEvent/BlockchainEvent.cjs`);let i=require(`@coral-xyz/anchor`);var a=1e3,o=20,s=class{_chainId;connection;programId;_latestSlot;_initialSlot;onEventsProcessed;eventProcessors=new Set;maxPageSize;_isReady=!1;isServer;inProgress;anchorParser;anchorCoder;eventsFetchingMutex;constructor(e,t,n,r,i,a,o){this._chainId=e,this.connection=t,this.programId=n,this._initialSlot=r,this.maxPageSize=o,this.isServer=i,this.inProgress=!1,this.eventsFetchingMutex=a}get chainId(){return this._chainId}get latestBlockNumber(){return this._latestSlot??this._initialSlot}get isReady(){return this._isReady}setIdl(e){try{let t=new i.BorshCoder(e);this.anchorCoder=t,this.anchorParser=new i.EventParser(this.programId,t)}catch(e){t.Logger.error(`Failed to initialize Anchor EventParser:`,e),this.anchorParser=void 0,this.anchorCoder=void 0}}syncFromAtMost(e){(this._latestSlot===void 0||e<this._latestSlot)&&(this._latestSlot=e)}advanceLatestBlockNumber(e){e>(this._latestSlot??this._initialSlot)&&(this._latestSlot=e)}intervalClear(){this._isReady=!1,this.eventProcessors=new Set,this.clear()}async init(){if(this._isReady)throw Error(`Already initialized`);this._isReady=!0,await this.retrieveEvents(this.latestBlockNumber+1,!1,!0),this.startUpdateListener()}requireReady(){if(!this._isReady)throw Error(`Not ready`)}addEventProcessorFunction(e){if(this._isReady)throw Error(`Can't add event processor after event emitter initialized`);this.eventProcessors.add(e)}async getEventsInRange(e,t){return(await this.getProgramEvents(e,t)).map(e=>r.BlockchainEvent.fromSolanaEvent(e))}async getLastBlockNumberForEventRequest(){let e=await this.connection.getSlot();return this.isServer?Math.max(this.latestBlockNumber,e-32+1):e}async retrieveEvents(e,i=!1,a=!1){let o=e;return this.requireReady(),await this.eventsFetchingMutex.runExclusive(async()=>{try{if(this.inProgress&&!i)return!1;this.inProgress=!0;let e=await this.getLastBlockNumberForEventRequest();if(e<o)return this.inProgress=!1,!1;let t=n.getSequence(o,e,this.maxPageSize),s=[];await n.resolveSync(t.map(({from:e,to:t})=>async()=>{let n=await this.getProgramEvents(e,t,a);s.push(...n)})),s.sort((e,t)=>e.slot-t.slot);let c=s.map(e=>r.BlockchainEvent.fromSolanaEvent(e));return await this.processEvents(c,e),this._latestSlot=e,this.inProgress=!1,!0}catch(e){return t.Logger.error(`retrieveEvents error:`,e),this.inProgress=!1,!1}})}async getProgramEvents(e,n,r=!1){let i=[],s=r?a:o;try{let r=await this.connection.getSignaturesForAddress(this.programId,{limit:s,before:void 0}),a=r.length;for(;a>=s&&r[r.length-1].slot>=e;){let e=r[r.length-1],t=await this.connection.getSignaturesForAddress(this.programId,{limit:s,before:e.signature});if(t.length===0)break;r.push(...t),a=t.length}let o=r.filter(t=>t.slot>=e&&t.slot<=n).map(async e=>{try{let t=await this.connection.getTransaction(e.signature,{commitment:`confirmed`,maxSupportedTransactionVersion:0});return t&&t.meta&&!t.meta.err?this.parseTransactionForEvents(t,e.signature,e.slot,t.blockTime||null):[]}catch(n){return t.Logger.error(`Failed to get transaction ${e.signature}:`,n),[]}}),c=await Promise.all(o);i.push(...c.flat())}catch(e){t.Logger.error(`Error getting program events:`,e)}return i}parseTransactionForEvents(t,n,r,i){let a=this.parseLogsForEvents(t?.meta?.logMessages??[],n,r,i),o=this.parseCpiForEvents(t,n,r,i),s=[...a,...o];if(s.length===0)return[];let c=new Set;return s.filter(t=>{let n=`${t.signature}:${t.eventName}:${e.safeJsonStringify(t.data)}`;return c.has(n)?!1:(c.add(n),!0)})}parseLogsForEvents(e,n,r,i){if(!this.anchorParser)return[];try{return Array.from(this.anchorParser.parseLogs(e)).map(({name:e,data:t})=>({signature:n,slot:r,blockTime:i||0,programId:this.programId,data:t,eventName:e}))}catch(e){return t.Logger.error(`Anchor EventParser failed; falling back to generic parsing:`,e),[]}}parseCpiForEvents(e,n,r,a){if(!e||!this.anchorCoder)return[];let o=e.meta?.innerInstructions??[];if(o.length===0)return[];try{return o.flatMap(e=>e.instructions??[]).map(e=>{try{if(!e?.data)return null;let t=i.utils.bytes.bs58.decode(e.data);if(t.length<=8)return null;let o=i.utils.bytes.base64.encode(t.subarray(8)),s=this.anchorCoder?.events.decode(o);return s?{signature:n,slot:r,blockTime:a||0,programId:this.programId,data:s.data,eventName:s.name}:null}catch{return null}}).filter(e=>e!==null)}catch(e){return t.Logger.error(`Failed to parse emit_cpi events:`,e),[]}}async processEvents(e,t){let n=(await Promise.all([...this.eventProcessors].map(n=>n(e,t)))).reduce((e,t)=>e+t,0);this.onEventsProcessed?.(n)}};exports.SolanaBlockchainEventEmitter=s;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require(
|
|
1
|
+
const e=require("../../../../_virtual/_rolldown/runtime.cjs");let t=require(`axios`);t=e.__toESM(t);var n=class{axiosInstance;constructor(){this.axiosInstance=t.default.create()}async get(e,t){return(await this.axiosInstance.get(e,t)).data}async post(e,t,n){return(await this.axiosInstance.post(e,t,n)).data}async put(e,t,n){return(await this.axiosInstance.put(e,t,n)).data}async patch(e,t,n){return(await this.axiosInstance.patch(e,t,n)).data}async delete(e,t){return(await this.axiosInstance.delete(e,t)).data}};exports.BasicHttpClient=n;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
require(
|
|
1
|
+
require("../../../../_virtual/_rolldown/runtime.cjs");let e=require(`@solana/web3.js`);var t=255,n=(n,r)=>{let i=[],a=[];return n.forEach(n=>{let o=Buffer.from(n.accounts.map(n=>{if(n.pubkey.toString()===r.toString())return t;let a=i.findIndex(e=>e.pubkey.toBase58()===n.pubkey);return a===-1?(i.push({pubkey:new e.PublicKey(n.pubkey),isSigner:!1,isWritable:n.isWritable}),i.length-1):(i[a].isWritable!==n.isWritable&&(i[a].isWritable=!0),a)})),s=Buffer.from(n.data,`base64`),c=i.findIndex(e=>e.pubkey.toBase58()===n.programId);c===-1?(i.push({pubkey:new e.PublicKey(n.programId),isSigner:!1,isWritable:!1}),a.push({data:s,programIndex:i.length-1,accountIndexes:o})):a.push({data:s,programIndex:c,accountIndexes:o})}),{hinkalInstructions:a,remainingAccounts:i}};exports.convertOKXToHinkalInstructions=n;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
require(
|
|
1
|
+
require("../../../../_virtual/_rolldown/runtime.cjs");const e=require(`../../constants/protocol.constants.cjs`),t=require(`../snarkjs/common.snarkjs.cjs`);let n=require(`lodash`);var r=(r,i,a)=>{let o=t.calcAmountChanges(r,i),s=a.map(t=>t<0n?e.CIRCOM_P+t:t);if(o.length!==s.length||!(0,n.isEqual)(o,s))throw Error(`Amount changes are not equal`)};exports.ensureAmountChanges=r;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
require(
|
|
1
|
+
require("../../../../_virtual/_rolldown/runtime.cjs");const e=require(`../../constants/protocol.constants.cjs`);let t=require(`ethers`),n=require(`@coral-xyz/anchor`);var r=(r,i,a,o,s,c,l,u)=>{let d=new n.BN(s.toString()),f=new n.BN(c.toString()),p=o.reduce((e,t)=>[...e,...new n.BN(t.length).toArray(`be`,8),...t],[]),m=l.reduce((e,t)=>{let r=[...new n.BN(t.programIndex).toArray(`be`,1),...new n.BN(t.accountIndexes.length).toArray(`be`,8),...t.accountIndexes,...new n.BN(t.data.length).toArray(`be`,8),...t.data];return[...e,...r]},[]),h=u.reduce((e,t)=>[...e,+!!t.isWritable,...t.pubkey.toBytes()],[]),g=[r.tokenNumber,r.nullifierAmount,r.outputAmount,...i.toBytes(),...a.toBytes(),...p,...d.toArray(`be`,8),...f.toArray(`be`,8),...m,...h];return BigInt(t.ethers.sha256(new Uint8Array(g)))%e.CIRCOM_P};exports.getSolanaCalldataHash=r;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
require(
|
|
1
|
+
require("../../../../_virtual/_rolldown/runtime.cjs");const e=require(`../utils/serialize.utils.cjs`),t=require(`../../constants/protocol.constants.cjs`),n=require(`../../error-handling/logger.cjs`),r=require(`../../data-structures/AccountActions/AccountActions.cjs`),i=require(`../../types/fee.types.cjs`),a=require(`../web3/getSolanaPriorityFee.cjs`),o=require(`../utils/process.utils.cjs`),s=require(`../../error-handling/retrySolanaError.cjs`);let c=require(`@solana/web3.js`);require(`@solana/spl-token`);var l=5e3,u=6e4,d=async(e,t,n=`confirmed`)=>await o.pollForValue(()=>e.getTransaction(t,{commitment:n,maxSupportedTransactionVersion:0}),{timeoutMs:u,intervalMs:l})??null,f=async(r,i,a,o,s=!1)=>{try{let{blockhash:l}=await r.getLatestBlockhash(),u=new c.VersionedTransaction(new c.TransactionMessage({payerKey:i,recentBlockhash:l,instructions:[c.ComputeBudgetProgram.setComputeUnitLimit({units:t.MAX_COMPUTE_UNIT_LIMIT}),...s?[c.ComputeBudgetProgram.requestHeapFrame({bytes:t.MAX_SOLANA_HEAP_FRAME_BYTES})]:[],...a]}).compileToV0Message(o)),d=await r.simulateTransaction(u,{sigVerify:!1,replaceRecentBlockhash:!0});d.value.err&&n.Logger.error(`Solana compute-unit simulation failed:`,{error:e.safeJsonStringify(d.value.err),logs:d.value.logs});let{unitsConsumed:f}=d.value;if(!f)return t.MAX_COMPUTE_UNIT_LIMIT;let p=Math.ceil(f*(1+t.COMPUTE_UNIT_PADDING_PERCENTAGE));return Math.max(t.MIN_COMPUTE_UNIT_LIMIT,Math.min(p,t.MAX_COMPUTE_UNIT_LIMIT))}catch(e){return n.Logger.error(`Solana compute-unit estimation threw:`,e),t.MAX_COMPUTE_UNIT_LIMIT}},p=(e,t,n,r)=>{let i=new Set;return t&&i.add(t.toBase58()),n?.forEach(e=>i.add(e.toBase58())),e.forEach(e=>{i.add(e.programId.toBase58()),e.keys.forEach(e=>{i.add(e.pubkey.toBase58())})}),r&&r.forEach(e=>{i.add(e.key.toBase58()),e.state.addresses.forEach(e=>{i.add(e.toBase58())})}),[...i].map(e=>new c.PublicKey(e))},m=(t,r)=>{if(!t)throw Error(`Failed to fetch Solana transaction details for signature${r?` ${r}`:``}`);if(t.meta?.err){let i=e.safeJsonStringify(t.meta.err),a=t.meta.logMessages?.join(`
|
|
2
2
|
`);n.Logger.error(`Solana transaction failed on-chain`,{signature:r,error:i,logs:t.meta.logMessages});let o=r?` (signature: ${r})`:``;throw Error(a?`Solana transaction failed on-chain${o}: ${i}\n${a}`:`Solana transaction failed on-chain${o}: ${i}`)}},h=async(e,n,r,i,o,s=!1)=>{if(r.some(e=>e.programId.equals(c.ComputeBudgetProgram.programId)))return r.map(e=>e.programId.equals(c.ComputeBudgetProgram.programId)&&e.data[0]===2?c.ComputeBudgetProgram.setComputeUnitLimit({units:t.MAX_COMPUTE_UNIT_LIMIT}):e);let l=r.filter(e=>!e.programId.equals(c.ComputeBudgetProgram.programId)),u=await f(e,n,l,i,s),d=c.ComputeBudgetProgram.setComputeUnitLimit({units:u}),m=e.rpcEndpoint.includes(`helius`)?await a.getSolanaPriorityFee(p(l,n,[c.ComputeBudgetProgram.programId],i),o):0;return[d,c.ComputeBudgetProgram.setComputeUnitPrice({microLamports:m}),...s?[c.ComputeBudgetProgram.requestHeapFrame({bytes:t.MAX_SOLANA_HEAP_FRAME_BYTES})]:[],...l]},g=async({connection:e,chainId:t,subAccount:n,payerPublicKey:a,instructions:o,lookupTableAccounts:l})=>{let u=r.AccountActions.getPrivateKeyFromSubAccount(t,n);if(!u)throw Error(`Private key is not available`);for(let t=0;t<10;t+=1){let n=t===9;try{let t=await h(e,a,o,l,n?i.SolanaPriorityFeeMode.HIGH:i.SolanaPriorityFeeMode.RECOMMENDED),{blockhash:s,lastValidBlockHeight:f}=await e.getLatestBlockhash(),p=new c.VersionedTransaction(new c.TransactionMessage({payerKey:a,recentBlockhash:s,instructions:t}).compileToV0Message(l)),g=await r.AccountActions.sendAndSignSolanaTransactionFromPrivateKey(e,u,p,!0);return await e.confirmTransaction({signature:g,blockhash:s,lastValidBlockHeight:f},`confirmed`),m(await d(e,g),g),g}catch(e){if(s.shouldRetryForSolanaError(e)&&!n)continue;throw e}}throw Error(`Failed to send proxy v0 transaction due to expired blockheight after all retries`)};exports.estimateComputeUnitLimit=f,exports.fetchSolanaTransaction=d,exports.getAccountsFromInstructions=p,exports.sendProxyV0Transaction=g;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
require(
|
|
1
|
+
require("../../../../_virtual/_rolldown/runtime.cjs");const e=require(`../../crypto/poseidon.cjs`);let t=require(`@solana/web3.js`),n=require(`@coral-xyz/anchor`);var r=e=>new TextEncoder().encode(e),i=e=>{let t=[],n=e;for(;n>0n;)t.unshift(Number(n%256n)),n/=256n;for(;t.length<32;)t.unshift(0);return t},a=e=>({extraRandomization:i(e.extraRandomization),stealthAddress:i(e.stealthAddress),h0:i(e.H0),h1:i(e.H1)}),o=(e,n)=>{let i=[r(`hinkal`),n.toBytes()],[a]=t.PublicKey.findProgramAddressSync(i,e);return a},s=(e,n)=>{let i=[r(`hinkal_merkle`),n.toBytes()],[a]=t.PublicKey.findProgramAddressSync(i,e);return a},c=(e,i,a)=>{let o=[r(`hinkal_swapper`),i.toBytes(),new Uint8Array(new n.BN(a.toString()).toArray(`be`,32))],[s]=t.PublicKey.findProgramAddressSync(o,e);return s},l=(t,n,r)=>c(t,n,e.poseidonFunction(r)),u=(e,n)=>{let i=[r(`hinkal_vault`),n.toBytes()],[a]=t.PublicKey.findProgramAddressSync(i,e);return a};exports.buildAnchorStealthAddressStructure=a,exports.encodeToByte32Array=i,exports.getMerkleAccountPublicKey=s,exports.getStorageAccountPublicKey=o,exports.getStorageVaultPublicKey=u,exports.getSwapperAccountPublicKey=c,exports.getSwapperAccountPublicKeyFromSalt=l;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
require(
|
|
1
|
+
require("../../../../_virtual/_rolldown/runtime.cjs"),require(`../../constants/protocol.constants.cjs`);let e=require(`@solana/web3.js`),t=require(`@solana/spl-token`);var n=async(n,r,i,a,o)=>{let{erc20TokenAddress:s,is2022Program:c,decimals:l}=a,u=[];if(s===`11111111111111111111111111111111`)return u.push(e.SystemProgram.transfer({fromPubkey:r,toPubkey:i,lamports:Number(o)})),{instructions:u,programId:e.SystemProgram.programId};let d=c?t.TOKEN_2022_PROGRAM_ID:t.TOKEN_PROGRAM_ID,f=new e.PublicKey(s),p=await(0,t.getAssociatedTokenAddress)(f,r,!0,d),m=await(0,t.getAssociatedTokenAddress)(f,i,!0,d);return await n.getAccountInfo(m)||u.push((0,t.createAssociatedTokenAccountInstruction)(r,m,i,f,d)),c?u.push((0,t.createTransferCheckedInstruction)(p,f,m,r,o,l,[],d)):u.push((0,t.createTransferInstruction)(p,m,r,o,[],d)),{instructions:u,programId:d}};exports.buildSolanaTransferInstructions=n;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
require(
|
|
1
|
+
require("../../../../_virtual/_rolldown/runtime.cjs");const e=require(`../../constants/chains.constants.cjs`),t=require(`../../constants/protocol.constants.cjs`),n=require(`../utils/caseInsensitive.utils.cjs`),r=require(`../../types/ethereum-network.types.cjs`),i=require(`../../error-handling/logger.cjs`),a=require(`../utils/create-provider.cjs`),o=require(`../../data-structures/AccountActions/AccountActions.cjs`),s=require(`../utils/getContractAddress.cjs`);require(`../utils/index.cjs`);let c=require(`ethers`);var l=e=>{if(typeof e.target==`string`)return e.target;if(e.address)return e.address;throw Error(`Contract address not found`)},u=({contract:e,func:t,args:n,callDataString:r,invokeWallet:i,value:a})=>{let o=new Uint8Array,s=r?c.ethers.getBytesCopy(r):new Uint8Array;if(typeof e==`object`){if(o=c.ethers.getBytesCopy(l(e)),r?.length&&r?.length>0)throw Error(`If function and args are providedm no calldata is needed`);t&&n&&!r&&(s=c.ethers.getBytesCopy(e.interface.encodeFunctionData(t,n)))}else o=c.ethers.getBytesCopy(e);let u=c.ethers.getBytesCopy(new Uint8Array([+!!i])),d=c.ethers.zeroPadValue(c.ethers.toBeHex(a??0n),16),f=c.ethers.concat([o,u,d,s]);return c.ethers.hexlify(f)},d=async(n,r,i,a,s,l)=>{let u=e.getOnchainChainId(n),d=i?await o.AccountActions.signTypedDataFromPrivateKey(u,i,{name:`Emporium`,version:`1.0.0`,chainId:u,verifyingContract:r},{EmporiumSignature:[{name:`message`,type:`uint256`},{name:`ops`,type:`bytes[]`}]},{message:s,ops:a}):void 0,{v:f,r:p,s:m}=d?c.ethers.Signature.from(d):{v:0,r:c.ethers.ZeroHash,s:c.ethers.ZeroHash};return c.ethers.AbiCoder.defaultAbiCoder().encode([`tuple(uint8 v,bytes32 r, bytes32 s, uint256 message, address signerAddress, bytes[] ops)`],[{v:f,r:p,s:m,message:s??0n,signerAddress:l??t.zeroAddress,ops:a}])},f=(e,t,n,r)=>u(e?{contract:e,func:`transfer`,args:[t,n],invokeWallet:r}:{contract:t,value:n,invokeWallet:r}),p=(e,i,a,o,c)=>{let l=e.getContractWithFetcher(i,r.ContractType.HinkalContract);return a.map((a,u)=>f(n.caseInsensitiveEqual(a,t.zeroAddress)?void 0:e.getContractWithFetcher(i,r.ContractType.ERC20Contract,a),c??s.getContractAddress(l),o[u],!0))},m=(e,t,n,r)=>u({contract:e,func:`approve`,args:[t,n],invokeWallet:r}),h=(e,i,a,o,s,c,l,u)=>{let d=[];for(let s=0;s<a.length;s+=1){let c=a[s],u=n.caseInsensitiveEqual(c,t.zeroAddress)?void 0:e.getContractWithFetcher(i,r.ContractType.ERC20Contract,c);d.push(f(u,l,o[s],!1))}if(u)for(let a=0;a<s.length;a+=1){let o=s[a];if(!n.caseInsensitiveEqual(o,t.zeroAddress)){let t=e.getContractWithFetcher(i,r.ContractType.ERC20Contract,o);d.push(m(t,u,c[a],!0))}}return d},g=(e,r,i,a,o,s,c,l)=>{let d=[],f=[o],p=[s];l.nativeFee>0n&&!n.caseInsensitiveEqual(o,t.zeroAddress)&&(f.push(t.zeroAddress),p.push(l.nativeFee));let m=h(e,r,f,p,[o],[c],i,a);d.push(...m);let g=l.nativeFee;return n.caseInsensitiveEqual(o,t.zeroAddress)&&(g+=c),d.push(u({contract:a,callDataString:l.calldata,value:g>0n?g:void 0,invokeWallet:!0})),d},_=`0xef0100`,v=async(e,t)=>{try{let n=a.createJsonRpcProvider(e),r=await n.getCode(t);if(r===`0x`||!r)return{delegated:!1,implementation:void 0,nonce:void 0};if(r.toLowerCase().startsWith(_)&&r.length===48){let e=`0x${r.slice(8)}`,i=await n.getTransactionCount(t);return{delegated:!0,implementation:c.ethers.getAddress(e),nonce:i}}else throw Error(`checkEOAWithDelegation: It is a contract`)}catch(e){throw i.Logger.error(`checkEOAWithDelegation error`,{error:e}),e}},y=r=>{let{hinkalWalletAddress:i}=e.networkRegistry[r].contractData;if(!i||n.caseInsensitiveEqual(i,t.zeroAddress))throw Error(`Hinkal Wallet Address is not set`);return i},b=async(t,r)=>{if(t===e.chainIds.localhost||!r)return;let i=e.getOnchainChainId(t),{delegated:a,implementation:s}=await v(t,o.AccountActions.getSignerAddressFromPrivateKey(t,r)),c=y(t);if(!a||!n.caseInsensitiveEqual(s,c)){let e=await o.AccountActions.authorizeDelegation(i,r,c);return{v:e.signature.v.toString(),r:e.signature.r,s:e.signature.s,nonce:e.nonce.toString(),address:c,chainId:String(i)}}};exports.checkEOAWithDelegation=v,exports.createApproveEmporiumOp=m,exports.createLifiBridgeOps=g,exports.createTransaferEmporiumOpsBatch=p,exports.createTransferToEmporiumOp=f,exports.emporiumOp=u,exports.encodeEmporiumMetadata=d,exports.generateFundAndApproveOps=h,exports.getAuthorizationDataIfNeeded=b;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
require(
|
|
1
|
+
require("../../../../_virtual/_rolldown/runtime.cjs");const e=require(`../../constants/protocol.constants.cjs`),t=require(`../utils/caseInsensitive.utils.cjs`),n=require(`../../types/ethereum-network.types.cjs`),r=require(`../../types/external-action.types.cjs`),i=require(`../../error-handling/logger.cjs`),a=require(`../utils/string.utils.cjs`),o=require(`../utils/erc20tokenFunctions.cjs`),s=require(`../../constants/addresses.constants.cjs`),c=require(`../utils/getContractAddress.cjs`),l=require(`./emporium.helpers.cjs`),u=require(`../pre-transaction/getExternalSwapAddress.cjs`);let d=require(`ethers`);var f=(e,t,n,r,i,a,o=!1)=>{let s={tokenIn:t,tokenOut:r,fee:BigInt(a),recipient:i,amountIn:n,amountOutMinimum:0,sqrtPriceLimitX96:0};return l.emporiumOp({contract:new d.ethers.Contract(e,[`function exactInputSingle(tuple(address tokenIn,address tokenOut,uint24 fee,address recipient,uint256 amountIn,uint256 amountOutMinimum,uint160 sqrtPriceLimitX96)) external payable returns (uint256 amountOut)`]),func:`exactInputSingle`,args:[s],invokeWallet:o})},p=(e,t,n,r,i,o,s=!1)=>l.emporiumOp({contract:n,callDataString:a.replaceAllInstances(r,u.getExternalSwapAddress(e,t).slice(2),i.slice(2)),value:o,invokeWallet:s}),m=async(e,n)=>{let r=(await o.getErc20TokensForChainAPI(n)).find(e=>e.symbol===`USDT`);return r?t.caseInsensitiveEqual(e,r.erc20TokenAddress):!1},h=async(e,t,n,r,a,o)=>{if(await m(c.getContractAddress(n),e))try{await n.allowance(r,a)>0n&&t.push(l.createApproveEmporiumOp(n,a,0n,o))}catch(e){i.Logger.error(`Error in nullifyUsdtApprovalIfNeeded`,e)}},g=async(t,r,i,a,o,c,u,f)=>{if(i!==e.zeroAddress){let f=s.SWAP_FEE_TAKER_ADDRESSES[r],p=t.getContractWithFetcher(r,n.ContractType.ERC20Contract,i),m=await p.balanceOf(a);await h(r,c,p,a,f,u),c.push(l.createApproveEmporiumOp(p,f,2n**256n-1n,u));let g=new d.ethers.Contract(f,[`function takeSwapFee(address token, uint256 beforeBalance, uint256 variableRate, address relay) external payable`]),_=o;c.push(l.emporiumOp({contract:g,func:`takeSwapFee`,args:[i,m,e.HINKAL_SWAP_VARIABLE_RATE,_],invokeWallet:u}))}else{let t=o;c.push(l.emporiumOp({contract:t,value:f*e.HINKAL_SWAP_VARIABLE_RATE/10000n,invokeWallet:u}))}},_=async(t,i,a,o,c,u,m,_,v,y,b,x,S=!1)=>{let C=m<0n?-1n*m:m,w=[],T=s.NATIVE_TOKEN_WRAPPER_ADDRESSES[i],E=!1,D;if(a===r.ExternalActionId.OneInch||a===r.ExternalActionId.Lifi){if(u!==e.zeroAddress){let e=t.getContractWithFetcher(i,n.ContractType.ERC20Contract,u);w.push(l.createApproveEmporiumOp(e,o,C,S))}let s=0n;return u===e.zeroAddress&&(s+=C),_&&v===e.zeroAddress&&_<0n&&(s+=-1n*_),D=p(i,a,o,c,b,s>0n?s:void 0,S),w.push(D),(a===r.ExternalActionId.OneInch||y&&a===r.ExternalActionId.Lifi)&&v&&_!==void 0&&await g(t,i,v,b,x,w,S,_),w}if(!v||!_)throw Error(`There should be output token for UniSwap and Odos`);if(u===e.zeroAddress){let e=t.getContractWithFetcher(i,n.ContractType.ERC20Contract,T);w.push(l.emporiumOp({contract:e,func:`deposit`,value:C,invokeWallet:S})),u=T}let O=0n;if(v===e.zeroAddress&&(v=T,E=!0,O=await t.getContractWithFetcher(i,n.ContractType.ERC20Contract,T).balanceOf(b)),u!==e.zeroAddress){let e=t.getContractWithFetcher(i,n.ContractType.ERC20Contract,u);await h(i,w,e,b,o,S),w.push(l.createApproveEmporiumOp(e,o,C,S))}if(D=a===r.ExternalActionId.Uniswap?f(o,u,C,v,b,c,S):p(i,a,o,c,b,void 0,S),w.push(D),await g(t,i,v,b,x,w,S,_),E){let e=s.WRAPPER_TOKEN_EXCHANGE_ADDRESSES[i],r=t.getContractWithFetcher(i,n.ContractType.ERC20Contract,T);w.push(l.createApproveEmporiumOp(r,e,2n**256n-1n,S));let a=new d.ethers.Contract(e,[`function withdrawBalanceDifference(uint256 beforeBalance) external`]);w.push(l.emporiumOp({contract:a,func:`withdrawBalanceDifference`,args:[O],invokeWallet:S}))}return w};exports.createSwapToEmporiumOpForUniswap=f,exports.createSwapToEmporiumOps=_;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
require(
|
|
1
|
+
require("../../../../_virtual/_rolldown/runtime.cjs");const e=require(`../../constants/protocol.constants.cjs`),t=require(`../../data-structures/crypto-keys/keys.cjs`),n=require(`../../types/circom-data.types.cjs`),r=require(`../../data-structures/crypto-keys/encryptDecryptUtxo.cjs`),i=require(`../utils/external-action.utils.cjs`),a=require(`./getOriginalSender.cjs`),o=require(`../utils/bit.operations.cjs`);let s=require(`ethers`);var c=e=>{if(e.H0?.[0]!==void 0&&e.H0[1]!==void 0)return[e.H0[0],e.H0[1]];if(e.randomization!==void 0)return t.UserKeys.getH0FromRandomization(e.randomization);throw Error(`UTXO missing H0 coordinates for proof input`)},l=e=>{if(e.isNewStyle)return`0`;if(e.randomization!==void 0)return e.randomization.toString();throw Error(`UTXO missing randomization for old-style proof input`)},u=Array.from({length:25},()=>`0`),d=e=>e.length>0&&e.every(e=>e.every(e=>BigInt(e.amount)===0n)),f=e=>({inCommitmentSiblings:e.map(e=>e.map(()=>[...u])),inCommitmentSiblingSides:e.map(e=>e.map(()=>[...u])),inNullifiers:e.map(e=>e.map(()=>`0`))}),p=e=>e.map(e=>e.map(e=>e.amount===0n?`0`:e.getCommitment())),m=(t,n,r=!1)=>{let i=[];for(let a=0;a<t.length;a+=1){let o=0n,s=0n;for(let e=0;e<t[a].length;e+=1)o+=t[a][e].amount;for(let e=0;e<n[a].length;e+=1)s+=n[a][e].amount;s-o<0?r?i.push(s-o):i.push(e.CIRCOM_P+(s-o)):i.push(s-o)}return i},h=e=>e.map(e=>e>=0n?0n:e),g=e=>{if(e.length===0)return[];let t=[[``]];for(let n=0;n<e.length;n+=1)n>0&&t.push([``]),e[n].forEach((e,i)=>{t[n][i]=`0x${Buffer.from(r.encryptUtxo(e)).toString(`hex`)}`});return t},_=e=>{let t={...e};return t.amountChanges=e.amountChanges.map(e=>e.toString()),t.calldataHash=e.calldataHash.toString(),t.rootHashAccessToken=e.rootHashAccessToken?.toString(),t.stealthAddressStructure.extraRandomization=e.stealthAddressStructure.extraRandomization.toString(),t.stealthAddressStructure.stealthAddress=e.stealthAddressStructure.stealthAddress.toString(),t.stealthAddressStructure.H0=e.stealthAddressStructure.H0.toString(),t.stealthAddressStructure.H1=e.stealthAddressStructure.H1.toString(),t.rootHashHinkal=e.rootHashHinkal?.toString(),t.externalActionId=e.externalActionId?.toString(),t.slippageValues=e.slippageValues.map(e=>e.toString()),t.hinkalLogicArgs.inHinkalAddress=e.hinkalLogicArgs.inHinkalAddress.toString(),t.hinkalLogicArgs.executeApprovalChanges=e.hinkalLogicArgs.executeApprovalChanges.map(e=>e.toString()),t.hinkalLogicArgs.useApprovalUtxoData=e.hinkalLogicArgs.useApprovalUtxoData.map(e=>({approvalChanges:e.approvalChanges.map(e=>e.toString()),externalApprovalAddresses:e.externalApprovalAddresses,conversionInHinkalAddress:e.conversionInHinkalAddress.map(e=>e.toString())})),t.feeStructure.flatFee=e.feeStructure.flatFee.toString(),t.feeStructure.variableRate=e.feeStructure.variableRate.toString(),t},v=(t,r,o,c,l,u,d,f,p,m,h,g)=>{let _=Object.values(d||n.defaultHookData),v=g??a.getOriginalSender(o??e.zeroAddress,r),y=s.ethers.AbiCoder.defaultAbiCoder().encode([`uint16`,`address`,`address`,`uint256`,`bytes`],[t,r,o,typeof c==`bigint`?c:i.getExternalActionIdHash(c),l]),b=s.ethers.AbiCoder.defaultAbiCoder().encode([`tuple(address, address, bytes, bytes)`,`bytes[][]`,`tuple(address, uint256, uint256)`,`int256[]`,`bool[]`,`tuple(uint8 v, bytes32 r, bytes32 s, uint256 accessKey, uint256 nonce, address ethereumAddress)`,`address`],[_,u,[m.feeToken,m.flatFee,m.variableRate],f,p,h,v]),x=BigInt(s.ethers.keccak256(y)),S=BigInt(s.ethers.keccak256(b)),C=s.ethers.AbiCoder.defaultAbiCoder().encode([`uint256`,`uint256`],[x,S]);return BigInt(s.ethers.keccak256(C))%e.CIRCOM_P},y=(e,t,n,r,i)=>e.startsWith(`mainEVMCircuitMin0`)?3:2+t.length+n.length+1+r.flat().length+i.flat().length+1+1+1+1+1+1,b=(e,n,r)=>{let i=t.UserKeys.getH1FromH0(e,n),a=BigInt(t.UserKeys.getStealthAddressNewStyle(e,n,r));return{extraRandomization:o.addHighestBitToNumber(e[0]),H0:e[1],H1:i[1],stealthAddress:a}},x=(e,n,r)=>{let{H0:i}=t.UserKeys.getRandomizedStealthPair(e,n);return b(i,n,r)},S=(e,t)=>t.length===0?`mainEVMCircuitMin0`:`mainEVMCircuit${e.length}x${e[0].length}x${t[0].length}`;exports.buildOutCommitments=p,exports.buildZeroInputMerkleDataFromSerialized=f,exports.calcAmountChanges=m,exports.calcEncryptedOutputs=g,exports.calcPublicSignalCount=y,exports.calcStealthAddressStructure=x,exports.calcStealthAddressStructureFromH0=b,exports.createCallDataHash=v,exports.getSlippageValues=h,exports.getUtxoCircuitH0Coords=c,exports.getUtxoCircuitInRandomization=l,exports.getZkProofVerifierName=S,exports.hasOnlyZeroAmounts=d,exports.serializeCircomData=_;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
require(
|
|
1
|
+
require("../../../../_virtual/_rolldown/runtime.cjs");const e=require(`../../constants/chains.constants.cjs`),t=require(`../../crypto/poseidon.cjs`),n=require(`../web3/etherFunctions.cjs`),r=require(`../utils/solanaMint.utils.cjs`),i=require(`../utils/bit.operations.cjs`),a=require(`./common.snarkjs.cjs`),o=require(`../pre-transaction/solana.cjs`),s=require(`./signedMessageHash.cjs`);require(`../pre-transaction/index.cjs`);const c=require(`./generateMainAndCommitmentZkProof.cjs`);require(`../utils/index.cjs`);const l=require(`./getMerkleTreeSiblingsAndRootHashes.cjs`),u=require(`../pre-transaction/getSolanaCalldataHash.cjs`);require(`../web3/index.cjs`);let d=require(`@solana/web3.js`);var f=async(f,p,m,h,g,_,v,y,b,x,S,C,w,T=e.chainIds.solanaLocalnet,E=[],D=[],O=0n)=>{let k=new d.PublicKey(x),A=new d.PublicKey(S),j=m.getShieldedPrivateKey(),{pubSpendingBJJPoint:M}=m.getSpendingKeyPair(),N=a.calcStealthAddressStructure(v,j,m.getSpendingKeyPair().pubSpendingBJJPoint),P=n.randomBigInt(31),F=t.poseidonFunction(P),I=t.poseidonFunction(O),L=h.map(e=>r.formatMintAddress(e)),R=L.map(e=>e.mintAccountPart1),z=L.map(e=>e.mintAccountPart2),B=u.getSolanaCalldataHash(C,k,A,w,y,b,E,D),V=`${C.tokenNumber}x${C.nullifierAmount}x${C.outputAmount}`,H=a.calcAmountChanges(g,_),{inCommitmentSiblings:U,inCommitmentSiblingSides:W,rootHashHinkal:G,inNullifiers:K}=await l.getDataFromWorkers(T,p,g.map(e=>e.map(e=>e.getConstructableParams()))),q=a.buildOutCommitments(_),J=i.takeOffHighestBit(N.extraRandomization),Y=N.H0,X=s.computeSignedMessageHashSolana({rootHashHinkal:G,mintAccountPart1:R,mintAccountPart2:z,amountChanges:H,outTimeStamp:BigInt(_[0][0].timeStamp),inNullifiers:K,outCommitments:q,calldataHash:B,message:F,swapperAccountAdditionalSeed:I,outH1Ay:N.H1,H0Ax:J,H0Ay:Y}),{R8:Z,S:Q}=m.signEddsa(X),$={rootHashHinkal:G,spendingPublicKey:M,eddsaSignature:[Z[0],Z[1],Q],signedMessageHash:X,nullifyingPrivateKey:j,mintAccountPart1:R,mintAccountPart2:z,amountChanges:H,inAmounts:g.map(e=>e.map(e=>e.amount.toString())),inRandomizations:g.map(e=>e.map(e=>a.getUtxoCircuitInRandomization(e))),inH0Ax:g.map(e=>e.map(e=>a.getUtxoCircuitH0Coords(e)[0].toString())),inH0Ay:g.map(e=>e.map(e=>a.getUtxoCircuitH0Coords(e)[1].toString())),isNewStyle:g.map(e=>e.map(e=>!!e.isNewStyle)),inTimeStamps:g.map(e=>e.map(e=>e.timeStamp)),inNullifiers:K,inCommitmentSiblings:U,inCommitmentSiblingSides:W,outAmounts:_.map(e=>e.map(e=>e.amount.toString())),outTimeStamp:BigInt(_[0][0].timeStamp),outPublicKeys:_.map(e=>e.map(e=>e.getStealthAddress())),outCommitments:q,calldataHash:B,messageSeed:P,swapperAccountSalt:O,H0Ax:J,H0Ay:Y},{zkCallData:ee,publicSignals:te,commitmentValidationData:ne}=await c.generateMainAndCommitmentZkProof(T,m,h,g,`mainSolanaCircuit${V}`,$,f),[re,ie,ae]=ee;return{proofAArr:re.map(BigInt).map(o.encodeToByte32Array).flat(),proofBArr:ie.flat().map(BigInt).map(o.encodeToByte32Array).flat(),proofCArr:ae.map(BigInt).map(o.encodeToByte32Array).flat(),publicInputsArr:te.map(BigInt).map(o.encodeToByte32Array),commitmentValidationData:ne}};exports.constructSolanaZkProof=f;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
require(
|
|
1
|
+
require("../../../../_virtual/_rolldown/runtime.cjs");const e=require(`../../constants/chains.constants.cjs`),t=require(`../../types/ethereum-network.types.cjs`),n=require(`../pre-transaction/solana.cjs`),r=require(`../utils/create-provider.cjs`),i=require(`../web3/getContractMetadata.cjs`),a=require(`../web3/fetchSolanaMerkleTreeRootHash.cjs`);let o=require(`@solana/web3.js`),s=require(`@coral-xyz/anchor`);var c=()=>{let e=o.Keypair.generate();return{publicKey:e.publicKey,payer:e,signTransaction:async e=>e,signAllTransactions:async e=>e}},l=async e=>({hinkalRootHash:await i.getContractWithFetcherByChainId(e,t.ContractType.HinkalContract).getRootHash()}),u=async t=>{let{contractData:i,fetchRpcUrl:l}=e.networkRegistry[t],{hinkalIdl:u,hinkalAddress:d,originalDeployer:f}=i;if(!u||!d||!f||!l)throw Error(`Missing Solana configuration for chain ${t}`);return{hinkalRootHash:await a.fetchSolanaMerkleTreeRootHash(new s.Program(u,new s.AnchorProvider(r.createCustomSolanaConnection(l),c(),{preflightCommitment:`confirmed`,commitment:`confirmed`})),n.getMerkleAccountPublicKey(new o.PublicKey(d),new o.PublicKey(f)))}},d=async t=>e.isSolanaLike(t)?u(t):l(t);exports.fetchOnChainRootHashes=d;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
require(
|
|
1
|
+
require("../../../../_virtual/_rolldown/runtime.cjs");const e=require(`../../constants/protocol.constants.cjs`),t=require(`../pre-transaction/solana.cjs`);let n=require(`ethers`),r=require(`@coral-xyz/anchor`);var i=e=>[...new r.BN(e.length).toArray(`be`,8),...e.flatMap(e=>t.encodeToByte32Array(e))],a=t=>BigInt(n.ethers.keccak256(t))%e.CIRCOM_P,o=[`uint256`,`uint256[]`,`uint256[]`,`uint256`,`uint256[]`,`uint256[]`,`uint256`,`uint256`,`uint256`,`uint256`,`uint256`],s=e=>a(n.ethers.AbiCoder.defaultAbiCoder().encode(o,[e.rootHashHinkal,e.erc20TokenAddresses.map(e=>n.ethers.getBigInt(e)),e.amountChanges,e.outTimeStamp,e.inNullifiers.flat().map(e=>BigInt(e)),e.outCommitments.flat().map(e=>BigInt(e)),e.calldataHash,e.message,e.outH1Ay,e.H0Ax,e.H0Ay])),c=r=>{let a=r.inNullifiers.flat().map(e=>BigInt(e)),o=r.outCommitments.flat().map(e=>BigInt(e)),s=[...t.encodeToByte32Array(r.rootHashHinkal),...i(r.mintAccountPart1),...i(r.mintAccountPart2),...i(r.amountChanges),...t.encodeToByte32Array(r.outTimeStamp),...i(a),...i(o),...t.encodeToByte32Array(r.calldataHash),...t.encodeToByte32Array(r.message),...t.encodeToByte32Array(r.swapperAccountAdditionalSeed),...t.encodeToByte32Array(r.outH1Ay),...t.encodeToByte32Array(r.H0Ax),...t.encodeToByte32Array(r.H0Ay)];return BigInt(n.ethers.sha256(new Uint8Array(s)))%e.CIRCOM_P};exports.computeSignedMessageHashEvm=s,exports.computeSignedMessageHashSolana=c;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
require(
|
|
1
|
+
require("../../../../_virtual/_rolldown/runtime.cjs"),require(`../../data-structures/http/HttpClient.cjs`),require(`./common.snarkjs.cjs`),require(`../utils/bytes32.utils.cjs`),require(`./getZKFiles.cjs`);const e=require(`../../../../shims/snarkjs.cjs`);require(`ethers`),e.default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
require(
|
|
1
|
+
require("../../../../_virtual/_rolldown/runtime.cjs");let e=require(`ethers`);var t=t=>JSON.parse(new e.ethers.Interface(t).formatJson()),n=e=>Object.fromEntries(Object.entries(e).map(([e,n])=>[e,t(n)]));exports.toJsonAbi=t,exports.withJsonAbis=n;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
require(
|
|
1
|
+
require("../../../../_virtual/_rolldown/runtime.cjs"),require(`../../constants/chains.constants.cjs`),require(`../../constants/protocol.constants.cjs`);let e=require(`ethers`);require(`@solana/web3.js`),require(`tronweb`);var t=[`http://`,`https://`,`/payment/`,`.app/`,`.com/`,`.netlify.`],n=e=>{if(t.some(t=>e.includes(t)))return!1;let[n,r,i,a,o]=e.split(`,`),s=!n||!o||!r||!i||!a,c=n?.substring(0,2)!==`0x`||o?.substring(0,2)!==`0x`,l=o?.length!==66||n?.length>66||n?.length<64,u=e?.includes(`"`);return!(s||c||l||u)},r=e=>{if(t.some(t=>e.includes(t)))return!1;let[n,r,i,a,o]=e.split(`,`),s=!n||!r||!i||!a||!o,c=r?.substring(0,2)!==`0x`||i?.substring(0,2)!==`0x`,l=i?.length!==66||r?.length>66||r?.length<64,u=e?.includes(`"`);return!(s||c||l||u)},i=e=>{let[t,n,r,i]=e.split(`,`);return{extraRandomization:BigInt(n)|1n<<255n,stealthAddress:BigInt(t),H0:BigInt(r),H1:BigInt(i)}},a=t=>e.ethers.keccak256(e.ethers.toUtf8Bytes(t.toLowerCase())),o=t=>e.ethers.keccak256(e.ethers.toUtf8Bytes(t));exports.constructStealthAddressStructure=i,exports.hashEthereumAddress=a,exports.hashString=o,exports.isValidOldStylePrivateAddress=r,exports.isValidPrivateAddress=n;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
require(
|
|
1
|
+
require("../../../../_virtual/_rolldown/runtime.cjs");const e=require(`../../constants/chains.constants.cjs`);let t=require(`ethers`);var n=(n,r,i)=>{let{hinkalAddress:a}=e.networkRegistry[i].contractData,o=t.ethers.getBytes(n),s=o.slice(0,20),c=o.slice(20,21),[l,u,d,f]=[s,o.slice(21,37),c,o.slice(37)].map(e=>t.ethers.hexlify(e));return{from:BigInt(d)>0?r:a,to:l,value:BigInt(u),calldata:f}};exports.convertEmporiumOpToCallInfo=n;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
require(
|
|
1
|
+
require("../../../../_virtual/_rolldown/runtime.cjs");const e=require(`../../constants/chains.constants.cjs`);let t=require(`ethers`),n=require(`@solana/web3.js`);var r=n=>{let{fetchRpcUrl:r}=e.networkRegistry[n];if(!r)throw Error(`RPC URL not found for the specified chain ID`);return new t.JsonRpcProvider(r,e.getOnchainChainId(n),{staticNetwork:!0})},i=(e,t=`confirmed`)=>new n.Connection(e,t);exports.createCustomSolanaConnection=i,exports.createJsonRpcProvider=r;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require(
|
|
1
|
+
const e=require("../../../../_virtual/_rolldown/runtime.cjs"),t=require(`./serialize.utils.cjs`),n=require(`../../../../vendor/libsodium-wrappers/dist/modules/libsodium-wrappers.cjs`),r=require(`./enclaveHandshakeService.cjs`);let i=require(`ethers`),a=require(`node-forge`);a=e.__toESM(a);var o=e.__toESM(n.default),s=e=>typeof e==`bigint`||typeof e==`number`?e.toString():e,c=e=>a.util.hexToBytes(e.replace(`0x`,``)),l=e=>{let t=structuredClone(e);return Object.entries(t).forEach(([e,n])=>{t[e]=s(n),Array.isArray(n)&&(Array.isArray(n[0])?t[e]=n.map(e=>e.map(s)):t[e]=n.map(s))}),t},u=(e,t)=>{let n=a.util.decode64(e),r=a.asn1.fromDer(a.util.createBuffer(n)),i=a.pki.publicKeyFromAsn1(r),o=a.util.binary.raw.encode(t),s=i.encrypt(o,`RSA-OAEP`,{md:a.md.sha1.create(),mgf1:{md:a.md.sha1.create()}});return a.util.encode64(s)},d=(e,t)=>{let n=o.default.randombytes_buf(o.default.crypto_secretbox_NONCEBYTES),r=o.default.crypto_secretbox_easy(t,n,e),s=c(i.ethers.hexlify(n)+i.ethers.hexlify(r).slice(2));return a.util.encode64(s)},f=(e,t)=>{let n=o.default.randombytes_buf(o.default.crypto_secretbox_KEYBYTES);return{keyCiphertext:u(t,n),inputCiphertext:d(n,e)}},p=(e,n)=>{let r=typeof e==`string`?e:t.safeJsonStringify(l(e));return f(new TextEncoder().encode(r),n)},m=async e=>p(e,await r.enclaveHandshakeService.getPublicKey()),h=async e=>f(e,await r.enclaveHandshakeService.getPublicKey());exports.makeEnclaveHandshakeAndEncryptInput=m,exports.makeEnclaveHandshakeAndEncryptUint8Array=h;
|