Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
G
Geth-Modification
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
张蕾
Geth-Modification
Commits
1f6df0cd
Commit
1f6df0cd
authored
May 02, 2014
by
obscuren
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Added receipts for tx creation
parent
e798f221
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
28 additions
and
8 deletions
+28
-8
transaction.go
ethchain/transaction.go
+4
-0
pub.go
ethpub/pub.go
+8
-8
types.go
ethpub/types.go
+16
-0
No files found.
ethchain/transaction.go
View file @
1f6df0cd
...
...
@@ -59,6 +59,10 @@ func (tx *Transaction) IsContract() bool {
return
tx
.
contractCreation
}
func
(
tx
*
Transaction
)
CreationAddress
()
[]
byte
{
return
tx
.
Hash
()[
12
:
]
}
func
(
tx
*
Transaction
)
Signature
(
key
[]
byte
)
[]
byte
{
hash
:=
tx
.
Hash
()
...
...
ethpub/pub.go
View file @
1f6df0cd
...
...
@@ -47,15 +47,15 @@ func (lib *PEthereum) GetStateObject(address string) *PStateObject {
return
NewPStateObject
(
nil
)
}
func
(
lib
*
PEthereum
)
Transact
(
key
,
recipient
,
valueStr
,
gasStr
,
gasPriceStr
,
dataStr
string
)
(
string
,
error
)
{
func
(
lib
*
PEthereum
)
Transact
(
key
,
recipient
,
valueStr
,
gasStr
,
gasPriceStr
,
dataStr
string
)
(
*
PReceipt
,
error
)
{
return
lib
.
createTx
(
key
,
recipient
,
valueStr
,
gasStr
,
gasPriceStr
,
dataStr
,
""
)
}
func
(
lib
*
PEthereum
)
Create
(
key
,
valueStr
,
gasStr
,
gasPriceStr
,
initStr
,
bodyStr
string
)
(
string
,
error
)
{
func
(
lib
*
PEthereum
)
Create
(
key
,
valueStr
,
gasStr
,
gasPriceStr
,
initStr
,
bodyStr
string
)
(
*
PReceipt
,
error
)
{
return
lib
.
createTx
(
key
,
""
,
valueStr
,
gasStr
,
gasPriceStr
,
initStr
,
bodyStr
)
}
func
(
lib
*
PEthereum
)
createTx
(
key
,
recipient
,
valueStr
,
gasStr
,
gasPriceStr
,
initStr
,
scriptStr
string
)
(
string
,
error
)
{
func
(
lib
*
PEthereum
)
createTx
(
key
,
recipient
,
valueStr
,
gasStr
,
gasPriceStr
,
initStr
,
scriptStr
string
)
(
*
PReceipt
,
error
)
{
var
hash
[]
byte
var
contractCreation
bool
if
len
(
recipient
)
==
0
{
...
...
@@ -66,7 +66,7 @@ func (lib *PEthereum) createTx(key, recipient, valueStr, gasStr, gasPriceStr, in
keyPair
,
err
:=
ethchain
.
NewKeyPairFromSec
([]
byte
(
ethutil
.
FromHex
(
key
)))
if
err
!=
nil
{
return
""
,
err
return
nil
,
err
}
value
:=
ethutil
.
Big
(
valueStr
)
...
...
@@ -77,11 +77,11 @@ func (lib *PEthereum) createTx(key, recipient, valueStr, gasStr, gasPriceStr, in
if
contractCreation
{
initScript
,
err
:=
ethutil
.
Compile
(
initStr
)
if
err
!=
nil
{
return
""
,
err
return
nil
,
err
}
mainScript
,
err
:=
ethutil
.
Compile
(
scriptStr
)
if
err
!=
nil
{
return
""
,
err
return
nil
,
err
}
tx
=
ethchain
.
NewContractCreationTx
(
value
,
gas
,
gasPrice
,
mainScript
,
initScript
)
...
...
@@ -99,10 +99,10 @@ func (lib *PEthereum) createTx(key, recipient, valueStr, gasStr, gasPriceStr, in
lib
.
txPool
.
QueueTransaction
(
tx
)
if
contractCreation
{
ethutil
.
Config
.
Log
.
Infof
(
"Contract addr %x"
,
tx
.
Hash
()[
12
:
]
)
ethutil
.
Config
.
Log
.
Infof
(
"Contract addr %x"
,
tx
.
CreationAddress
()
)
}
else
{
ethutil
.
Config
.
Log
.
Infof
(
"Tx hash %x"
,
tx
.
Hash
())
}
return
ethutil
.
Hex
(
tx
.
Hash
()),
nil
return
NewPReciept
(
contractCreation
,
tx
.
CreationAddress
(),
tx
.
Hash
(),
keyPair
.
Address
()),
nil
}
ethpub/types.go
View file @
1f6df0cd
...
...
@@ -43,6 +43,22 @@ func NewPKey(key *ethchain.KeyPair) *PKey {
return
&
PKey
{
ethutil
.
Hex
(
key
.
Address
()),
ethutil
.
Hex
(
key
.
PrivateKey
),
ethutil
.
Hex
(
key
.
PublicKey
)}
}
type
PReceipt
struct
{
CreatedContract
bool
Address
string
Hash
string
Sender
string
}
func
NewPReciept
(
contractCreation
bool
,
creationAddress
,
hash
,
address
[]
byte
)
*
PReceipt
{
return
&
PReceipt
{
contractCreation
,
ethutil
.
Hex
(
creationAddress
),
ethutil
.
Hex
(
hash
),
ethutil
.
Hex
(
address
),
}
}
/*
type PKeyRing struct {
Keys []interface{}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment