@magicnewton/newton-protocol-sdk 0.2.11--canary.91.20272186597.0 → 0.2.11--canary.91.20273429901.0
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var c=require("../../abis/newtonAbi.js"),P=require("../../const.js"),p=require("../../types/task.js"),
|
|
1
|
+
"use strict";var c=require("../../abis/newtonAbi.js"),P=require("../../const.js"),p=require("../../types/task.js"),M=require("../../utils/https.js"),v=require("../../utils/intent.js"),h=require("../../utils/task.js"),i=require("viem"),_=require("viem/accounts"),f=require("viem/chains");const q={[f.sepolia.id]:BigInt(9223883),[f.mainnet.id]:BigInt(23385048)},A=async(t,e,a,g)=>{if(!e.taskId)throw new Error("Newton SDK: waitForTaskResponded requires taskId");const l=i.padHex(e.taskId,{size:32}),T=q[t.chain?.id??1],s=g??T,r=(await t.getContractEvents({address:a,abi:c.NewtonProverTaskManagerAbi,eventName:"TaskResponded",fromBlock:s,toBlock:"latest"})).find(n=>i.padHex(n.args.taskResponse.taskId,{size:32})===l);return r?h.convertLogToTaskResponse(r):new Promise((n,w)=>{let m,u;const d=o=>{m?.(),u&&clearTimeout(u),o&&w(o)};if(e.timeoutMs&&e.timeoutMs>0&&(u=setTimeout(()=>d(new Error("waitForTaskResponded: timeout")),e.timeoutMs)),e.abortSignal){if(e.abortSignal.aborted){d(new Error("waitForTaskResponded: aborted"));return}e.abortSignal.addEventListener("abort",()=>d(new Error("waitForTaskResponded: aborted")),{once:!0})}m=t.watchContractEvent({address:a,abi:c.NewtonProverTaskManagerAbi,eventName:"TaskResponded",onLogs:o=>{for(const b of o)if(i.padHex(b.args.taskResponse.taskId,{size:32})===l){const I=h.convertLogToTaskResponse(b);d(),n(I);return}},onError:o=>{d(o)}})})},y=(t,e,a)=>t.readContract({address:a,abi:c.NewtonProverTaskManagerAbi,functionName:"allTaskHashes",args:[e.taskId]}),F=async(t,e,a,g)=>{const l=await t.readContract({address:a,abi:c.NewtonProverTaskManagerAbi,functionName:"allTaskHashes",args:[e.taskId]});if(!i.hexToBigInt(l))throw new Error(`Failed to retrieve task status for taskId ${e.taskId}`);const T=await t.readContract({address:a,abi:c.NewtonProverTaskManagerAbi,functionName:"allTaskResponses",args:[e.taskId]}),s=!!i.hexToBigInt(T);if(!s)return p.TaskStatus.Created;const r=(await t.getContractEvents({address:a,abi:c.NewtonProverTaskManagerAbi,eventName:"TaskResponded",fromBlock:q[t.chain?.id??1],toBlock:"latest"})).find(u=>i.padHex(u.args.taskResponse.taskId,{size:32})===e.taskId);if(!r)throw new Error(`Failed to retrieve task status for taskId ${e.taskId}`);const n=h.convertLogToTaskResponse(r),w=await t.getBlockNumber();if(n?.responseCertificate?.responseExpireBlock&&w>n.responseCertificate.responseExpireBlock)return p.TaskStatus.AttestationExpired;const m=await t.readContract({address:g,abi:c.AttestationValidatorAbi,functionName:"attestations",args:[e.taskId]});return i.hexToBigInt(m)?s?p.TaskStatus.Responded:p.TaskStatus.Created:p.TaskStatus.AttestationSpent};async function z(t,e,a,g,l,T){const s=t.extend(i.publicActions),r={taskRequestedAtBlock:await s.getBlockNumber()},n=new M.AvsHttpService(!!s?.chain?.testnet,T),{policyClient:w,intentSignature:m,quorumNumber:u,quorumThresholdPercentage:d,wasmArgs:o,timeout:b}=e,I=v.normalizeIntent(e.intent),R=h.getEvaluationRequestHash({policyClient:w,intent:I,intentSignature:m,quorumNumber:u,quorumThresholdPercentage:d,wasmArgs:o,timeout:b}),N=await _.privateKeyToAccount(g).sign({hash:R}),x=v.sanitizeIntentForRequest(e.intent),E={policy_client:e.policyClient,intent:x,intent_signature:e.intentSignature?v.removeHexPrefix(e.intentSignature):null,quorum_number:e.quorumNumber?v.removeHexPrefix(e.quorumNumber):null,quorum_threshold_percentage:e.quorumThresholdPercentage??null,wasm_args:e.wasmArgs?v.removeHexPrefix(e.wasmArgs):null,timeout:e.timeout,signature:N},k=await n.Post(P.GATEWAY_METHODS.createTask,E,l);if(k.error)throw k.error;if(k.result.error)throw new Error(k.result.error);const S=k.result;r.taskId=S.task_id;const B={get taskId(){return r.taskId},waitForTaskResponded:async({timeoutMs:H})=>{const C=r.taskId;return A(s,{taskId:C,timeoutMs:H},a,r.taskRequestedAtBlock)}};return{result:{taskId:k.result.task_id,txHash:k.result.tx_hash},...B}}exports.getTaskResponseHash=y,exports.getTaskStatus=F,exports.submitEvaluationRequest=z,exports.waitForTaskResponded=A;
|
package/dist/cjs/utils/intent.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var a=require("viem");const e=t=>t.startsWith("0x")?t.slice(2):t;function o(t){let i;typeof t.value=="bigint"?i=t.value:i=a.hexToBigInt(t.value);let n;return typeof t.chainId=="bigint"?n=t.chainId:typeof t.chainId=="number"?n=BigInt(t.chainId):n=a.hexToBigInt(t.chainId),{...t,value:i,chainId:n}}function r(t){let i;typeof t.value=="bigint"?i=a.toHex(t.value):i=t.value;let n;return typeof t.chainId=="bigint"||typeof t.chainId=="number"?n=a.toHex(t.chainId):n=t.chainId,{from:t.from,to:t.to,value:i,data:
|
|
1
|
+
"use strict";var a=require("viem");const e=t=>t.startsWith("0x")?t.slice(2):t;function o(t){let i;typeof t.value=="bigint"?i=t.value:i=a.hexToBigInt(t.value);let n;return typeof t.chainId=="bigint"?n=t.chainId:typeof t.chainId=="number"?n=BigInt(t.chainId):n=a.hexToBigInt(t.chainId),{...t,value:i,chainId:n}}function r(t){let i;typeof t.value=="bigint"?i=a.toHex(t.value):i=t.value;let n;return typeof t.chainId=="bigint"||typeof t.chainId=="number"?n=a.toHex(t.chainId):n=t.chainId,{from:t.from,to:t.to,value:i,data:t.data,chain_id:n,function_signature:t.functionSignature}}exports.normalizeIntent=o,exports.removeHexPrefix=e,exports.sanitizeIntentForRequest=r;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";function n(){const
|
|
1
|
+
"use strict";function n(){const e=new Uint8Array(16);crypto.getRandomValues(e),e[6]=e[6]&15|64,e[8]=e[8]&63|128;const t=Array.from(e).map(r=>r.toString(16).padStart(2,"0")).join("");return[t.slice(0,8),t.slice(8,12),t.slice(12,16),t.slice(16,20),t.slice(20,32)].join("-")}function c(e,t){return{jsonrpc:"2.0",id:n(),method:e,params:t}}exports.createJsonRpcRequestPayload=c;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{NewtonProverTaskManagerAbi as k,AttestationValidatorAbi as H}from"../../abis/newtonAbi.js";import{GATEWAY_METHODS as y}from"../../const.js";import{TaskStatus as w}from"../../types/task.js";import{AvsHttpService as F}from"../../utils/https.js";import{normalizeIntent as M,sanitizeIntentForRequest as P,removeHexPrefix as I}from"../../utils/intent.js";import{convertLogToTaskResponse as b,getEvaluationRequestHash as z}from"../../utils/task.js";import{hexToBigInt as R,padHex as T,publicActions as L}from"viem";import{privateKeyToAccount as D}from"viem/accounts";import{mainnet as G,sepolia as K}from"viem/chains";const E={[K.id]:BigInt(9223883),[G.id]:BigInt(23385048)},
|
|
1
|
+
import{NewtonProverTaskManagerAbi as k,AttestationValidatorAbi as H}from"../../abis/newtonAbi.js";import{GATEWAY_METHODS as y}from"../../const.js";import{TaskStatus as w}from"../../types/task.js";import{AvsHttpService as F}from"../../utils/https.js";import{normalizeIntent as M,sanitizeIntentForRequest as P,removeHexPrefix as I}from"../../utils/intent.js";import{convertLogToTaskResponse as b,getEvaluationRequestHash as z}from"../../utils/task.js";import{hexToBigInt as R,padHex as T,publicActions as L}from"viem";import{privateKeyToAccount as D}from"viem/accounts";import{mainnet as G,sepolia as K}from"viem/chains";const E={[K.id]:BigInt(9223883),[G.id]:BigInt(23385048)},v=async(e,t,r,l)=>{if(!t.taskId)throw new Error("Newton SDK: waitForTaskResponded requires taskId");const m=T(t.taskId,{size:32}),p=E[e.chain?.id??1],s=l??p,a=(await e.getContractEvents({address:r,abi:k,eventName:"TaskResponded",fromBlock:s,toBlock:"latest"})).find(o=>T(o.args.taskResponse.taskId,{size:32})===m);return a?b(a):new Promise((o,g)=>{let c,i;const d=n=>{c?.(),i&&clearTimeout(i),n&&g(n)};if(t.timeoutMs&&t.timeoutMs>0&&(i=setTimeout(()=>d(new Error("waitForTaskResponded: timeout")),t.timeoutMs)),t.abortSignal){if(t.abortSignal.aborted){d(new Error("waitForTaskResponded: aborted"));return}t.abortSignal.addEventListener("abort",()=>d(new Error("waitForTaskResponded: aborted")),{once:!0})}c=e.watchContractEvent({address:r,abi:k,eventName:"TaskResponded",onLogs:n=>{for(const f of n)if(T(f.args.taskResponse.taskId,{size:32})===m){const h=b(f);d(),o(h);return}},onError:n=>{d(n)}})})},O=(e,t,r)=>e.readContract({address:r,abi:k,functionName:"allTaskHashes",args:[t.taskId]}),V=async(e,t,r,l)=>{const m=await e.readContract({address:r,abi:k,functionName:"allTaskHashes",args:[t.taskId]});if(!R(m))throw new Error(`Failed to retrieve task status for taskId ${t.taskId}`);const p=await e.readContract({address:r,abi:k,functionName:"allTaskResponses",args:[t.taskId]}),s=!!R(p);if(!s)return w.Created;const a=(await e.getContractEvents({address:r,abi:k,eventName:"TaskResponded",fromBlock:E[e.chain?.id??1],toBlock:"latest"})).find(i=>T(i.args.taskResponse.taskId,{size:32})===t.taskId);if(!a)throw new Error(`Failed to retrieve task status for taskId ${t.taskId}`);const o=b(a),g=await e.getBlockNumber();if(o?.responseCertificate?.responseExpireBlock&&g>o.responseCertificate.responseExpireBlock)return w.AttestationExpired;const c=await e.readContract({address:l,abi:H,functionName:"attestations",args:[t.taskId]});return R(c)?s?w.Responded:w.Created:w.AttestationSpent};async function $(e,t,r,l,m,p){const s=e.extend(L),a={taskRequestedAtBlock:await s.getBlockNumber()},o=new F(!!s?.chain?.testnet,p),{policyClient:g,intentSignature:c,quorumNumber:i,quorumThresholdPercentage:d,wasmArgs:n,timeout:f}=t,h=M(t.intent),A=z({policyClient:g,intent:h,intentSignature:c,quorumNumber:i,quorumThresholdPercentage:d,wasmArgs:n,timeout:f}),q=await D(l).sign({hash:A}),N=P(t.intent),B={policy_client:t.policyClient,intent:N,intent_signature:t.intentSignature?I(t.intentSignature):null,quorum_number:t.quorumNumber?I(t.quorumNumber):null,quorum_threshold_percentage:t.quorumThresholdPercentage??null,wasm_args:t.wasmArgs?I(t.wasmArgs):null,timeout:t.timeout,signature:q},u=await o.Post(y.createTask,B,m);if(u.error)throw u.error;if(u.result.error)throw new Error(u.result.error);const C=u.result;a.taskId=C.task_id;const S={get taskId(){return a.taskId},waitForTaskResponded:async({timeoutMs:x})=>{const _=a.taskId;return v(s,{taskId:_,timeoutMs:x},r,a.taskRequestedAtBlock)}};return{result:{taskId:u.result.task_id,txHash:u.result.tx_hash},...S}}export{O as getTaskResponseHash,V as getTaskStatus,$ as submitEvaluationRequest,v as waitForTaskResponded};
|
package/dist/es/utils/intent.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{hexToBigInt as
|
|
1
|
+
import{hexToBigInt as o,toHex as a}from"viem";const u=t=>t.startsWith("0x")?t.slice(2):t;function c(t){let i;typeof t.value=="bigint"?i=t.value:i=o(t.value);let n;return typeof t.chainId=="bigint"?n=t.chainId:typeof t.chainId=="number"?n=BigInt(t.chainId):n=o(t.chainId),{...t,value:i,chainId:n}}function r(t){let i;typeof t.value=="bigint"?i=a(t.value):i=t.value;let n;return typeof t.chainId=="bigint"?n=a(t.chainId):typeof t.chainId=="number"?n=a(t.chainId):n=t.chainId,{from:t.from,to:t.to,value:i,data:t.data,chain_id:n,function_signature:t.functionSignature}}export{c as normalizeIntent,u as removeHexPrefix,r as sanitizeIntentForRequest};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function n(){const t=new Uint8Array(
|
|
1
|
+
function n(){const t=new Uint8Array(16);crypto.getRandomValues(t),t[6]=t[6]&15|64,t[8]=t[8]&63|128;const e=Array.from(t).map(r=>r.toString(16).padStart(2,"0")).join("");return[e.slice(0,8),e.slice(8,12),e.slice(12,16),e.slice(16,20),e.slice(20,32)].join("-")}function o(t,e){return{jsonrpc:"2.0",id:n(),method:t,params:e}}export{o as createJsonRpcRequestPayload};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@magicnewton/newton-protocol-sdk",
|
|
3
|
-
"version": "0.2.11--canary.91.
|
|
3
|
+
"version": "0.2.11--canary.91.20273429901.0",
|
|
4
4
|
"description": "Official SDK for the Newton Protocol.",
|
|
5
5
|
"author": "Newton Foundation <https://x.com/newtfoundation> (https://newton.foundation)",
|
|
6
6
|
"private": false,
|