@magic-ext/bitcoin 28.8.0 → 29.0.0-canary.1107.29954805103.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.
package/dist/cjs/index.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";var c=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var p=Object.getOwnPropertyNames;var u=Object.prototype.hasOwnProperty;var g=(t,n)=>{for(var i in n)c(t,i,{get:n[i],enumerable:!0})},l=(t,n,i,o)=>{if(n&&typeof n=="object"||typeof n=="function")for(let r of p(n))!u.call(t,r)&&r!==i&&c(t,r,{get:()=>n[r],enumerable:!(o=a(n,r))||o.enumerable});return t};var m=t=>l(c({},"__esModule",{value:!0}),t);var T={};g(T,{BitcoinExtension:()=>s});module.exports=m(T);var e=require("@magic-sdk/provider");var s=class extends e.MultichainExtension{constructor(i){super({rpcUrl:i.rpcUrl,chainType:"BITCOIN",options:{network:i.network}});this.bitcoinConfig=i}name="bitcoin";async signTransaction(i,o){return this.request(this.utils.createJsonRpcRequestPayload("btc_signTransaction",[i,o]))}};
1
+ "use strict";var a=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var p=Object.getOwnPropertyNames;var g=Object.prototype.hasOwnProperty;var T=(t,n)=>{for(var i in n)a(t,i,{get:n[i],enumerable:!0})},B=(t,n,i,o)=>{if(n&&typeof n=="object"||typeof n=="function")for(let r of p(n))!g.call(t,r)&&r!==i&&a(t,r,{get:()=>n[r],enumerable:!(o=u(n,r))||o.enumerable});return t};var d=t=>B(a({},"__esModule",{value:!0}),t);var m={};T(m,{BitcoinExtension:()=>s,BitcoinPayloadMethod:()=>c});module.exports=d(m);var e=require("@magic-sdk/provider");var c=(n=>(n.BitcoinSignTransaction="btc_signTransaction",n))(c||{});var s=class extends e.MultichainExtension{constructor(i){super({rpcUrl:i.rpcUrl,chainType:"BITCOIN",options:{network:i.network}});this.bitcoinConfig=i}name="bitcoin";async signTransaction(i,o){return this.request(this.utils.createJsonRpcRequestPayload("btc_signTransaction",[{inputs:i,outputs:o}]))}};
2
2
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../src/index.ts"],
4
- "sourcesContent": ["import { MultichainExtension } from '@magic-sdk/provider';\nimport { BitcoinConfig, BitcoinPayloadMethod } from './types';\n\nexport class BitcoinExtension extends MultichainExtension<'bitcoin'> {\n name = 'bitcoin' as const;\n\n constructor(public bitcoinConfig: BitcoinConfig) {\n super({\n rpcUrl: bitcoinConfig.rpcUrl,\n chainType: 'BITCOIN',\n options: {\n network: bitcoinConfig.network,\n },\n });\n }\n\n public async signTransaction(txn: string, inputIndex: number) {\n return this.request(\n this.utils.createJsonRpcRequestPayload(BitcoinPayloadMethod.BitcoinSignTransaction, [txn, inputIndex]),\n );\n }\n}\n"],
5
- "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,sBAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAoC,+BAG7B,IAAMC,EAAN,cAA+B,qBAA+B,CAGnE,YAAmBC,EAA8B,CAC/C,MAAM,CACJ,OAAQA,EAAc,OACtB,UAAW,UACX,QAAS,CACP,QAASA,EAAc,OACzB,CACF,CAAC,EAPgB,mBAAAA,CAQnB,CAVA,KAAO,UAYP,MAAa,gBAAgBC,EAAaC,EAAoB,CAC5D,OAAO,KAAK,QACV,KAAK,MAAM,kDAAyE,CAACD,EAAKC,CAAU,CAAC,CACvG,CACF,CACF",
6
- "names": ["index_exports", "__export", "BitcoinExtension", "__toCommonJS", "import_provider", "BitcoinExtension", "bitcoinConfig", "txn", "inputIndex"]
3
+ "sources": ["../../src/index.ts", "../../src/types.ts"],
4
+ "sourcesContent": ["import { MultichainExtension } from '@magic-sdk/provider';\nimport {\n BitcoinConfig,\n BitcoinPayloadMethod,\n BitcoinSignedTransaction,\n BitcoinTransactionInput,\n BitcoinTransactionOutput,\n} from './types';\n\nexport * from './types';\n\nexport class BitcoinExtension extends MultichainExtension<'bitcoin'> {\n name = 'bitcoin' as const;\n\n constructor(public bitcoinConfig: BitcoinConfig) {\n super({\n rpcUrl: bitcoinConfig.rpcUrl,\n chainType: 'BITCOIN',\n options: {\n network: bitcoinConfig.network,\n },\n });\n }\n\n /**\n * Signs a Bitcoin transaction in the TEE. The caller supplies fully-formed\n * inputs (the UTXOs to spend, each with its value) and outputs; coin selection,\n * fee, and change are the caller's responsibility. Resolves with the\n * broadcast-ready signed transaction.\n */\n public async signTransaction(\n inputs: BitcoinTransactionInput[],\n outputs: BitcoinTransactionOutput[],\n ): Promise<BitcoinSignedTransaction> {\n return this.request<BitcoinSignedTransaction>(\n this.utils.createJsonRpcRequestPayload(BitcoinPayloadMethod.BitcoinSignTransaction, [{ inputs, outputs }]),\n );\n }\n}\n", "export interface BitcoinConfig {\n rpcUrl: string;\n network: string;\n}\n\nexport enum BitcoinPayloadMethod {\n BitcoinSignTransaction = 'btc_signTransaction',\n}\n\n/**\n * A UTXO to spend. `value` is in BTC (not satoshis) and is required: the enclave\n * needs each input's value to compute its segwit (BIP143) sighash. `tx_num` is\n * the output index (vout) of the UTXO within its source transaction.\n */\nexport interface BitcoinTransactionInput {\n txid: string;\n tx_num: number;\n value: number;\n address?: string;\n}\n\n/** A transaction output. `value` is in BTC (not satoshis). */\nexport interface BitcoinTransactionOutput {\n address: string;\n value: number;\n}\n\nexport interface BitcoinSignedTransaction {\n /** The broadcast-ready, fully-signed transaction as hex. */\n signedTransaction: string;\n /** The transaction hash (txid). */\n transactionHash: string;\n}\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,sBAAAE,EAAA,yBAAAC,IAAA,eAAAC,EAAAJ,GAAA,IAAAK,EAAoC,+BCK7B,IAAKC,OACVA,EAAA,uBAAyB,sBADfA,OAAA,IDML,IAAMC,EAAN,cAA+B,qBAA+B,CAGnE,YAAmBC,EAA8B,CAC/C,MAAM,CACJ,OAAQA,EAAc,OACtB,UAAW,UACX,QAAS,CACP,QAASA,EAAc,OACzB,CACF,CAAC,EAPgB,mBAAAA,CAQnB,CAVA,KAAO,UAkBP,MAAa,gBACXC,EACAC,EACmC,CACnC,OAAO,KAAK,QACV,KAAK,MAAM,kDAAyE,CAAC,CAAE,OAAAD,EAAQ,QAAAC,CAAQ,CAAC,CAAC,CAC3G,CACF,CACF",
6
+ "names": ["index_exports", "__export", "BitcoinExtension", "BitcoinPayloadMethod", "__toCommonJS", "import_provider", "BitcoinPayloadMethod", "BitcoinExtension", "bitcoinConfig", "inputs", "outputs"]
7
7
  }
package/dist/es/index.js CHANGED
@@ -1,2 +1,2 @@
1
- import{MultichainExtension as r}from"@magic-sdk/provider";var i=class extends r{constructor(n){super({rpcUrl:n.rpcUrl,chainType:"BITCOIN",options:{network:n.network}});this.bitcoinConfig=n}name="bitcoin";async signTransaction(n,t){return this.request(this.utils.createJsonRpcRequestPayload("btc_signTransaction",[n,t]))}};export{i as BitcoinExtension};
1
+ import{MultichainExtension as a}from"@magic-sdk/provider";var t=(i=>(i.BitcoinSignTransaction="btc_signTransaction",i))(t||{});var r=class extends a{constructor(n){super({rpcUrl:n.rpcUrl,chainType:"BITCOIN",options:{network:n.network}});this.bitcoinConfig=n}name="bitcoin";async signTransaction(n,o){return this.request(this.utils.createJsonRpcRequestPayload("btc_signTransaction",[{inputs:n,outputs:o}]))}};export{r as BitcoinExtension,t as BitcoinPayloadMethod};
2
2
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../src/index.ts"],
4
- "sourcesContent": ["import { MultichainExtension } from '@magic-sdk/provider';\nimport { BitcoinConfig, BitcoinPayloadMethod } from './types';\n\nexport class BitcoinExtension extends MultichainExtension<'bitcoin'> {\n name = 'bitcoin' as const;\n\n constructor(public bitcoinConfig: BitcoinConfig) {\n super({\n rpcUrl: bitcoinConfig.rpcUrl,\n chainType: 'BITCOIN',\n options: {\n network: bitcoinConfig.network,\n },\n });\n }\n\n public async signTransaction(txn: string, inputIndex: number) {\n return this.request(\n this.utils.createJsonRpcRequestPayload(BitcoinPayloadMethod.BitcoinSignTransaction, [txn, inputIndex]),\n );\n }\n}\n"],
5
- "mappings": "AAAA,OAAS,uBAAAA,MAA2B,sBAG7B,IAAMC,EAAN,cAA+BC,CAA+B,CAGnE,YAAmBC,EAA8B,CAC/C,MAAM,CACJ,OAAQA,EAAc,OACtB,UAAW,UACX,QAAS,CACP,QAASA,EAAc,OACzB,CACF,CAAC,EAPgB,mBAAAA,CAQnB,CAVA,KAAO,UAYP,MAAa,gBAAgBC,EAAaC,EAAoB,CAC5D,OAAO,KAAK,QACV,KAAK,MAAM,kDAAyE,CAACD,EAAKC,CAAU,CAAC,CACvG,CACF,CACF",
6
- "names": ["MultichainExtension", "BitcoinExtension", "MultichainExtension", "bitcoinConfig", "txn", "inputIndex"]
3
+ "sources": ["../../src/index.ts", "../../src/types.ts"],
4
+ "sourcesContent": ["import { MultichainExtension } from '@magic-sdk/provider';\nimport {\n BitcoinConfig,\n BitcoinPayloadMethod,\n BitcoinSignedTransaction,\n BitcoinTransactionInput,\n BitcoinTransactionOutput,\n} from './types';\n\nexport * from './types';\n\nexport class BitcoinExtension extends MultichainExtension<'bitcoin'> {\n name = 'bitcoin' as const;\n\n constructor(public bitcoinConfig: BitcoinConfig) {\n super({\n rpcUrl: bitcoinConfig.rpcUrl,\n chainType: 'BITCOIN',\n options: {\n network: bitcoinConfig.network,\n },\n });\n }\n\n /**\n * Signs a Bitcoin transaction in the TEE. The caller supplies fully-formed\n * inputs (the UTXOs to spend, each with its value) and outputs; coin selection,\n * fee, and change are the caller's responsibility. Resolves with the\n * broadcast-ready signed transaction.\n */\n public async signTransaction(\n inputs: BitcoinTransactionInput[],\n outputs: BitcoinTransactionOutput[],\n ): Promise<BitcoinSignedTransaction> {\n return this.request<BitcoinSignedTransaction>(\n this.utils.createJsonRpcRequestPayload(BitcoinPayloadMethod.BitcoinSignTransaction, [{ inputs, outputs }]),\n );\n }\n}\n", "export interface BitcoinConfig {\n rpcUrl: string;\n network: string;\n}\n\nexport enum BitcoinPayloadMethod {\n BitcoinSignTransaction = 'btc_signTransaction',\n}\n\n/**\n * A UTXO to spend. `value` is in BTC (not satoshis) and is required: the enclave\n * needs each input's value to compute its segwit (BIP143) sighash. `tx_num` is\n * the output index (vout) of the UTXO within its source transaction.\n */\nexport interface BitcoinTransactionInput {\n txid: string;\n tx_num: number;\n value: number;\n address?: string;\n}\n\n/** A transaction output. `value` is in BTC (not satoshis). */\nexport interface BitcoinTransactionOutput {\n address: string;\n value: number;\n}\n\nexport interface BitcoinSignedTransaction {\n /** The broadcast-ready, fully-signed transaction as hex. */\n signedTransaction: string;\n /** The transaction hash (txid). */\n transactionHash: string;\n}\n"],
5
+ "mappings": "AAAA,OAAS,uBAAAA,MAA2B,sBCK7B,IAAKC,OACVA,EAAA,uBAAyB,sBADfA,OAAA,IDML,IAAMC,EAAN,cAA+BC,CAA+B,CAGnE,YAAmBC,EAA8B,CAC/C,MAAM,CACJ,OAAQA,EAAc,OACtB,UAAW,UACX,QAAS,CACP,QAASA,EAAc,OACzB,CACF,CAAC,EAPgB,mBAAAA,CAQnB,CAVA,KAAO,UAkBP,MAAa,gBACXC,EACAC,EACmC,CACnC,OAAO,KAAK,QACV,KAAK,MAAM,kDAAyE,CAAC,CAAE,OAAAD,EAAQ,QAAAC,CAAQ,CAAC,CAAC,CAC3G,CACF,CACF",
6
+ "names": ["MultichainExtension", "BitcoinPayloadMethod", "BitcoinExtension", "MultichainExtension", "bitcoinConfig", "inputs", "outputs"]
7
7
  }
package/dist/es/index.mjs CHANGED
@@ -1,2 +1,2 @@
1
- import{MultichainExtension as r}from"@magic-sdk/provider";var i=class extends r{constructor(n){super({rpcUrl:n.rpcUrl,chainType:"BITCOIN",options:{network:n.network}});this.bitcoinConfig=n}name="bitcoin";async signTransaction(n,t){return this.request(this.utils.createJsonRpcRequestPayload("btc_signTransaction",[n,t]))}};export{i as BitcoinExtension};
1
+ import{MultichainExtension as a}from"@magic-sdk/provider";var t=(i=>(i.BitcoinSignTransaction="btc_signTransaction",i))(t||{});var r=class extends a{constructor(n){super({rpcUrl:n.rpcUrl,chainType:"BITCOIN",options:{network:n.network}});this.bitcoinConfig=n}name="bitcoin";async signTransaction(n,o){return this.request(this.utils.createJsonRpcRequestPayload("btc_signTransaction",[{inputs:n,outputs:o}]))}};export{r as BitcoinExtension,t as BitcoinPayloadMethod};
2
2
  //# sourceMappingURL=index.mjs.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../src/index.ts"],
4
- "sourcesContent": ["import { MultichainExtension } from '@magic-sdk/provider';\nimport { BitcoinConfig, BitcoinPayloadMethod } from './types';\n\nexport class BitcoinExtension extends MultichainExtension<'bitcoin'> {\n name = 'bitcoin' as const;\n\n constructor(public bitcoinConfig: BitcoinConfig) {\n super({\n rpcUrl: bitcoinConfig.rpcUrl,\n chainType: 'BITCOIN',\n options: {\n network: bitcoinConfig.network,\n },\n });\n }\n\n public async signTransaction(txn: string, inputIndex: number) {\n return this.request(\n this.utils.createJsonRpcRequestPayload(BitcoinPayloadMethod.BitcoinSignTransaction, [txn, inputIndex]),\n );\n }\n}\n"],
5
- "mappings": "AAAA,OAAS,uBAAAA,MAA2B,sBAG7B,IAAMC,EAAN,cAA+BC,CAA+B,CAGnE,YAAmBC,EAA8B,CAC/C,MAAM,CACJ,OAAQA,EAAc,OACtB,UAAW,UACX,QAAS,CACP,QAASA,EAAc,OACzB,CACF,CAAC,EAPgB,mBAAAA,CAQnB,CAVA,KAAO,UAYP,MAAa,gBAAgBC,EAAaC,EAAoB,CAC5D,OAAO,KAAK,QACV,KAAK,MAAM,kDAAyE,CAACD,EAAKC,CAAU,CAAC,CACvG,CACF,CACF",
6
- "names": ["MultichainExtension", "BitcoinExtension", "MultichainExtension", "bitcoinConfig", "txn", "inputIndex"]
3
+ "sources": ["../../src/index.ts", "../../src/types.ts"],
4
+ "sourcesContent": ["import { MultichainExtension } from '@magic-sdk/provider';\nimport {\n BitcoinConfig,\n BitcoinPayloadMethod,\n BitcoinSignedTransaction,\n BitcoinTransactionInput,\n BitcoinTransactionOutput,\n} from './types';\n\nexport * from './types';\n\nexport class BitcoinExtension extends MultichainExtension<'bitcoin'> {\n name = 'bitcoin' as const;\n\n constructor(public bitcoinConfig: BitcoinConfig) {\n super({\n rpcUrl: bitcoinConfig.rpcUrl,\n chainType: 'BITCOIN',\n options: {\n network: bitcoinConfig.network,\n },\n });\n }\n\n /**\n * Signs a Bitcoin transaction in the TEE. The caller supplies fully-formed\n * inputs (the UTXOs to spend, each with its value) and outputs; coin selection,\n * fee, and change are the caller's responsibility. Resolves with the\n * broadcast-ready signed transaction.\n */\n public async signTransaction(\n inputs: BitcoinTransactionInput[],\n outputs: BitcoinTransactionOutput[],\n ): Promise<BitcoinSignedTransaction> {\n return this.request<BitcoinSignedTransaction>(\n this.utils.createJsonRpcRequestPayload(BitcoinPayloadMethod.BitcoinSignTransaction, [{ inputs, outputs }]),\n );\n }\n}\n", "export interface BitcoinConfig {\n rpcUrl: string;\n network: string;\n}\n\nexport enum BitcoinPayloadMethod {\n BitcoinSignTransaction = 'btc_signTransaction',\n}\n\n/**\n * A UTXO to spend. `value` is in BTC (not satoshis) and is required: the enclave\n * needs each input's value to compute its segwit (BIP143) sighash. `tx_num` is\n * the output index (vout) of the UTXO within its source transaction.\n */\nexport interface BitcoinTransactionInput {\n txid: string;\n tx_num: number;\n value: number;\n address?: string;\n}\n\n/** A transaction output. `value` is in BTC (not satoshis). */\nexport interface BitcoinTransactionOutput {\n address: string;\n value: number;\n}\n\nexport interface BitcoinSignedTransaction {\n /** The broadcast-ready, fully-signed transaction as hex. */\n signedTransaction: string;\n /** The transaction hash (txid). */\n transactionHash: string;\n}\n"],
5
+ "mappings": "AAAA,OAAS,uBAAAA,MAA2B,sBCK7B,IAAKC,OACVA,EAAA,uBAAyB,sBADfA,OAAA,IDML,IAAMC,EAAN,cAA+BC,CAA+B,CAGnE,YAAmBC,EAA8B,CAC/C,MAAM,CACJ,OAAQA,EAAc,OACtB,UAAW,UACX,QAAS,CACP,QAASA,EAAc,OACzB,CACF,CAAC,EAPgB,mBAAAA,CAQnB,CAVA,KAAO,UAkBP,MAAa,gBACXC,EACAC,EACmC,CACnC,OAAO,KAAK,QACV,KAAK,MAAM,kDAAyE,CAAC,CAAE,OAAAD,EAAQ,QAAAC,CAAQ,CAAC,CAAC,CAC3G,CACF,CACF",
6
+ "names": ["MultichainExtension", "BitcoinPayloadMethod", "BitcoinExtension", "MultichainExtension", "bitcoinConfig", "inputs", "outputs"]
7
7
  }
package/dist/extension.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";var MagicBitcoinExtension=(()=>{var g=Object.create;var c=Object.defineProperty;var l=Object.getOwnPropertyDescriptor;var m=Object.getOwnPropertyNames;var f=Object.getPrototypeOf,x=Object.prototype.hasOwnProperty;var B=(n,t)=>()=>(t||n((t={exports:{}}).exports,t),t.exports),T=(n,t)=>{for(var i in t)c(n,i,{get:t[i],enumerable:!0})},s=(n,t,i,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of m(t))!x.call(n,r)&&r!==i&&c(n,r,{get:()=>t[r],enumerable:!(o=l(t,r))||o.enumerable});return n};var b=(n,t,i)=>(i=n!=null?g(f(n)):{},s(t||!n||!n.__esModule?c(i,"default",{value:n,enumerable:!0}):i,n)),h=n=>s(c({},"__esModule",{value:!0}),n);var p=B((y,a)=>{"use strict";a.exports=Magic});var k={};T(k,{default:()=>d});var u=b(p());var e=class extends u.MultichainExtension{constructor(i){super({rpcUrl:i.rpcUrl,chainType:"BITCOIN",options:{network:i.network}});this.bitcoinConfig=i}name="bitcoin";async signTransaction(i,o){return this.request(this.utils.createJsonRpcRequestPayload("btc_signTransaction",[i,o]))}};var d=e;return h(k);})();
1
+ "use strict";var MagicBitcoinExtension=(()=>{var g=Object.create;var a=Object.defineProperty;var T=Object.getOwnPropertyDescriptor;var B=Object.getOwnPropertyNames;var m=Object.getPrototypeOf,d=Object.prototype.hasOwnProperty;var x=(n,i)=>()=>(i||n((i={exports:{}}).exports,i),i.exports),l=(n,i)=>{for(var t in i)a(n,t,{get:i[t],enumerable:!0})},s=(n,i,t,o)=>{if(i&&typeof i=="object"||typeof i=="function")for(let r of B(i))!d.call(n,r)&&r!==t&&a(n,r,{get:()=>i[r],enumerable:!(o=T(i,r))||o.enumerable});return n};var f=(n,i,t)=>(t=n!=null?g(m(n)):{},s(i||!n||!n.__esModule?a(t,"default",{value:n,enumerable:!0}):t,n)),b=n=>s(a({},"__esModule",{value:!0}),n);var p=x((O,e)=>{"use strict";e.exports=Magic});var h={};l(h,{default:()=>S});var u=f(p());var c=class extends u.MultichainExtension{constructor(t){super({rpcUrl:t.rpcUrl,chainType:"BITCOIN",options:{network:t.network}});this.bitcoinConfig=t}name="bitcoin";async signTransaction(t,o){return this.request(this.utils.createJsonRpcRequestPayload("btc_signTransaction",[{inputs:t,outputs:o}]))}};var S=c;return b(h);})();
2
2
  if (MagicBitcoinExtension && MagicBitcoinExtension.default != null) { MagicBitcoinExtension = Object.assign(MagicBitcoinExtension.default, MagicBitcoinExtension); delete MagicBitcoinExtension.default; }
@@ -1,8 +1,15 @@
1
1
  import { MultichainExtension } from '@magic-sdk/provider';
2
- import { BitcoinConfig } from './types';
2
+ import { BitcoinConfig, BitcoinSignedTransaction, BitcoinTransactionInput, BitcoinTransactionOutput } from './types';
3
+ export * from './types';
3
4
  export declare class BitcoinExtension extends MultichainExtension<'bitcoin'> {
4
5
  bitcoinConfig: BitcoinConfig;
5
6
  name: "bitcoin";
6
7
  constructor(bitcoinConfig: BitcoinConfig);
7
- signTransaction(txn: string, inputIndex: number): Promise<any>;
8
+ /**
9
+ * Signs a Bitcoin transaction in the TEE. The caller supplies fully-formed
10
+ * inputs (the UTXOs to spend, each with its value) and outputs; coin selection,
11
+ * fee, and change are the caller's responsibility. Resolves with the
12
+ * broadcast-ready signed transaction.
13
+ */
14
+ signTransaction(inputs: BitcoinTransactionInput[], outputs: BitcoinTransactionOutput[]): Promise<BitcoinSignedTransaction>;
8
15
  }
@@ -5,3 +5,25 @@ export interface BitcoinConfig {
5
5
  export declare enum BitcoinPayloadMethod {
6
6
  BitcoinSignTransaction = "btc_signTransaction"
7
7
  }
8
+ /**
9
+ * A UTXO to spend. `value` is in BTC (not satoshis) and is required: the enclave
10
+ * needs each input's value to compute its segwit (BIP143) sighash. `tx_num` is
11
+ * the output index (vout) of the UTXO within its source transaction.
12
+ */
13
+ export interface BitcoinTransactionInput {
14
+ txid: string;
15
+ tx_num: number;
16
+ value: number;
17
+ address?: string;
18
+ }
19
+ /** A transaction output. `value` is in BTC (not satoshis). */
20
+ export interface BitcoinTransactionOutput {
21
+ address: string;
22
+ value: number;
23
+ }
24
+ export interface BitcoinSignedTransaction {
25
+ /** The broadcast-ready, fully-signed transaction as hex. */
26
+ signedTransaction: string;
27
+ /** The transaction hash (txid). */
28
+ transactionHash: string;
29
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@magic-ext/bitcoin",
3
- "version": "28.8.0",
3
+ "version": "29.0.0-canary.1107.29954805103.0",
4
4
  "description": "magic bitcoin extension",
5
5
  "author": "Magic <team@magic.link> (https://magic.link/)",
6
6
  "license": "MIT",
@@ -30,5 +30,5 @@
30
30
  "devDependencies": {
31
31
  "@magic-sdk/provider": "^33.9.0"
32
32
  },
33
- "gitHead": "e78fd658ed68a5347e943bc18ca9368304b75657"
33
+ "gitHead": "721abe11d15c060608597ed7162964299a3ddc35"
34
34
  }